Mega Code Archive

 
Categories / Java / Threads
 

Finds a resource with the given name

/*  * Copyright  2003-2008 The Apache Software Foundation.  *  *  Licensed under the Apache License, Version 2.0 (the "License");  *  you may not use this file except in compliance with the License.  *  You may obtain a copy of the License at  *  *      http://www.apache.org/licenses/LICENSE-2.0  *  *  Unless required by applicable law or agreed to in writing, software  *  distributed under the License is distributed on an "AS IS" BASIS,  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  *  See the License for the specific language governing permissions and  *  limitations under the License.  *  */ import java.io.InputStream; /**  *  *  @author <a href="mailto:wglass@apache.org">Will Glass-Husain</a>  *  @version $Id: ClassUtils.java 685685 2008-08-13 21:43:27Z nbubna $  * @since 1.5  */ public class Main {   /**    * Finds a resource with the given name.  Checks the Thread Context    * classloader, then uses the System classloader.  Should replace all    * calls to <code>Class.getResourceAsString</code> when the resource    * might come from a different classloader.  (e.g. a webapp).    * @param claz Class to use when getting the System classloader (used if no Thread    * Context classloader available or fails to get resource).    * @param name name of the resource    * @return InputStream for the resource.    */   public static InputStream getResourceAsStream(Class claz, String name)   {       InputStream result = null;       /**        * remove leading slash so path will work with classes in a JAR file        */       while (name.startsWith("/"))       {           name = name.substring(1);       }       ClassLoader classLoader = Thread.currentThread()                                   .getContextClassLoader();       if (classLoader == null)       {           classLoader = claz.getClassLoader();           result = classLoader.getResourceAsStream( name );       }       else       {           result= classLoader.getResourceAsStream( name );           /**           * for compatibility with texen / ant tasks, fall back to           * old method when resource is not found.           */           if (result == null)           {               classLoader = claz.getClassLoader();               if (classLoader != null)                   result = classLoader.getResourceAsStream( name );           }       }       return result;   } }