Coverage Report - org.mule.config.builders.MuleClasspathConfigurationBuilder
 
Classes in this File Line Coverage Branch Coverage Complexity
MuleClasspathConfigurationBuilder
0%
0/22
0%
0/4
4.5
 
 1  
 /*
 2  
  * $Id: MuleClasspathConfigurationBuilder.java 7976 2007-08-21 14:26:13Z dirk.olmes $
 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
                 url = Thread.currentThread().getContextClassLoader().getResource(resString[i]);
 86  0
                 if (url == null) break;
 87  0
                 list.add(new ReaderResource(url.toExternalForm(), new InputStreamReader(url.openStream())));
 88  
             }
 89  
         }
 90  0
         catch (IOException ioe)
 91  
         {
 92  0
             throw new ConfigurationException(
 93  
                 CoreMessages.failedToLoad("Config: " + ObjectUtils.toString(url, "null")), ioe);
 94  0
         }
 95  
 
 96  0
         if (list.size() != resString.length)
 97  
         {
 98  0
             throw new ConfigurationException(
 99  
                 CoreMessages.failedToLoad("Not all resources specified loaded: " + resString[i]));
 100  
         }
 101  
 
 102  0
         ReaderResource[] resources = new ReaderResource[list.size()];
 103  0
         resources = (ReaderResource[])list.toArray(resources);
 104  0
         configure(resources, null);
 105  0
         return manager;
 106  
     }
 107  
 }