Finds a resource with the given name. : Utilities « Threads « Java






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;

  }

}

   
  








Related examples in the same category

1.View current Threads in a table View current Threads in a table
2.Exception call backException call back
3.Listing all threads and threadgroups in the VM.Listing all threads and threadgroups in the VM.
4.Early returnEarly return
5.Transition DetectorTransition Detector
6.Busy Flag
7.Sleep utilities
8.Thread-based logging utility
9.Return a new instance of the given class. Checks the ThreadContext classloader first, then uses the System classloader.