Coverage Report - org.mule.config.builders.MuleClasspathConfigurationBuilder
 
Classes in this File Line Coverage Branch Coverage Complexity
MuleClasspathConfigurationBuilder
0%
0/26
0%
0/10
5
 
 1  
 /*
 2  
  * $Id: MuleClasspathConfigurationBuilder.java 10623 2008-01-30 14:29:00Z aperepel $
 3  
  * --------------------------------------------------------------------------------------
 4  
  * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
 5  
  *
 6  
  * The software in this package is published under the terms of the CPAL v1.0
 7  
  * license, a copy of which has been included with this distribution in the
 8  
  * LICENSE.txt file.
 9  
  */
 10  
 
 11  
 package org.mule.config.builders;
 12  
 
 13  
 import org.mule.config.ConfigurationException;
 14  
 import org.mule.config.ReaderResource;
 15  
 import org.mule.config.i18n.CoreMessages;
 16  
 import org.mule.umo.manager.UMOManager;
 17  
 import org.mule.util.ObjectUtils;
 18  
 import org.mule.util.StringUtils;
 19  
 
 20  
 import java.io.IOException;
 21  
 import java.io.InputStreamReader;
 22  
 import java.net.URL;
 23  
 import java.util.ArrayList;
 24  
 import java.util.List;
 25  
 
 26  
 import org.apache.commons.logging.Log;
 27  
 import org.apache.commons.logging.LogFactory;
 28  
 
 29  
 /**
 30  
  * <code>MuleClasspathConfigurationBuilder</code> can be used to configure a
 31  
  * MuleManager based on the configuration files on the classpath. the default config
 32  
  * resource name is <b>mule-config.xml</b> but this can be overrided by passing a
 33  
  * config resourse name or a list of resource names (comma separated) to the
 34  
  * configure method.
 35  
  * 
 36  
  * @deprecated The functionality of this configuration builder (loading resources
 37  
  *             from the classpath) is now available in the standard
 38  
  *             MuleXmlConfigurationBuilder. If you are using this builder, please
 39  
  *             verify whether your configuration will work with
 40  
  *             org.mule.config.builders.MuleXmlConfigurationBuilder as this class is
 41  
  *             deprecated and is soon to be removed.
 42  
  */
 43  
 public class MuleClasspathConfigurationBuilder extends MuleXmlConfigurationBuilder
 44  
 {
 45  
     /**
 46  
      * logger used by this class
 47  
      */
 48  0
     protected static final Log logger = LogFactory.getLog(MuleClasspathConfigurationBuilder.class);
 49  
 
 50  
     public static final String MULE_CONFIGURATION_RESOURCE = "mule-config.xml";
 51  
 
 52  
     public MuleClasspathConfigurationBuilder() throws ConfigurationException
 53  
     {
 54  0
         super();
 55  0
     }
 56  
 
 57  
     /**
 58  
      * Will configure a UMOManager based on the configuration file(s) provided.
 59  
      * 
 60  
      * @param configResources can be null or a comma separated resources name string
 61  
      *            that will be used to search the classpath. The default is
 62  
      *            mule-config.xml.
 63  
      * @return A configured UMOManager
 64  
      * @throws org.mule.config.ConfigurationException if the configResources param is
 65  
      *             invalid or the configurations fail to load
 66  
      */
 67  
     public UMOManager configure(String configResources, String startupPropertiesFile)
 68  
         throws ConfigurationException
 69  
     {
 70  0
         if (StringUtils.isBlank(configResources))
 71  
         {
 72  0
             configResources = MULE_CONFIGURATION_RESOURCE;
 73  
         }
 74  
 
 75  0
         URL url = null;
 76  0
         List list = new ArrayList();
 77  
         String[] resString;
 78  0
         int i = 0;
 79  
 
 80  
         try
 81  
         {
 82  0
             resString = StringUtils.splitAndTrim(configResources, ",");
 83  0
             for (i = 0; i < resString.length; i++)
 84  
             {
 85  0
                 final ClassLoader cl = Thread.currentThread().getContextClassLoader();
 86  0
                 if (cl == null)
 87  
                 {
 88  0
                     break;
 89  
                 }
 90  
                 
 91  0
                 url = cl.getResource(resString[i]);
 92  0
                 if (url == null)
 93  
                 {
 94  0
                     break;
 95  
                 }
 96  0
                 list.add(new ReaderResource(url.toExternalForm(), new InputStreamReader(url.openStream())));
 97  
             }
 98  
         }
 99  0
         catch (IOException ioe)
 100  
         {
 101  0
             throw new ConfigurationException(
 102  
                 CoreMessages.failedToLoad("Config: " + ObjectUtils.toString(url, "null")), ioe);
 103  0
         }
 104  
 
 105  0
         if (list.size() != resString.length)
 106  
         {
 107  0
             throw new ConfigurationException(
 108  
                 CoreMessages.failedToLoad("Not all resources specified loaded: " + resString[i]));
 109  
         }
 110  
 
 111  0
         ReaderResource[] resources = new ReaderResource[list.size()];
 112  0
         resources = (ReaderResource[])list.toArray(resources);
 113  0
         configure(resources, null);
 114  0
         return manager;
 115  
     }
 116  
 }