View Javadoc

1   /*
2    * $Id: PlexusUtils.java 439747 2006-09-03 09:22:46Z mrdon $
3    *
4    * Copyright 2006 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.struts2.plexus;
19  
20  import java.io.ByteArrayInputStream;
21  import java.io.InputStream;
22  import java.io.InputStreamReader;
23  
24  import org.apache.commons.logging.Log;
25  import org.apache.commons.logging.LogFactory;
26  import org.codehaus.plexus.PlexusContainer;
27  import org.codehaus.plexus.configuration.PlexusConfigurationResourceException;
28  
29  /***
30   * Utility methods for dealing with Plexus
31   */
32  public class PlexusUtils {
33      private static final Log log = LogFactory.getLog(PlexusObjectFactory.class);
34  
35      /***
36       * Configures the container with the configuration file
37       * 
38       * @param pc The plexus container
39       * @param file The file path
40       * @throws PlexusConfigurationResourceException If the plexus configuration can't be loaded
41       */
42      public static void configure(PlexusContainer pc, String file) throws PlexusConfigurationResourceException {
43          InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(file);
44          if (is == null) {
45              log.info("Could not find " + file + ", skipping");
46              is = new ByteArrayInputStream("<plexus><components></components></plexus>".getBytes());
47          }
48          pc.setConfigurationResource(new InputStreamReader(is));
49      }
50  }