matth       2004/02/18 11:40:44

  Modified:    discovery STATUS.html maven.xml project.xml
               discovery/src/java/org/apache/commons/discovery/jdk
                        JDK12Hooks.java
               discovery/src/test/org/apache/commons/discovery/test
                        TestAll.java
  Log:
  PR: Bugzilla Bug 26875
  
  - Added a try/catch for RuntimeExceptions in JDK12Hooks to avoid 
NullPointerExceptions
  from JBoss' UnifiedClassLoader.  Reloading the Axis webapp after a redepoy of service
  classes then allows things to work normally.
  
  - Added a pregoal to test:test in maven.xml to make the unit tests pass.  There were
  some problems with the classpath configuration.
  
  - Added self as committer.
  
  Revision  Changes    Path
  1.5       +3 -2      jakarta-commons/discovery/STATUS.html
  
  Index: STATUS.html
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/discovery/STATUS.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- STATUS.html       14 Apr 2003 17:56:09 -0000      1.4
  +++ STATUS.html       18 Feb 2004 19:40:44 -0000      1.5
  @@ -41,7 +41,7 @@
   <li>Functional within a J2EE environment.</li>
   </ul>
   </p>
  - 
  +
   <p>
   Non-goals:
   <ul>
  @@ -54,7 +54,7 @@
   NOT use commons-discovery.</li>
   </ul>
   </p>
  - 
  +
   
   <a name="Dependencies"></a>
   <h3>2.  DEPENDENCIES</h3>
  @@ -88,6 +88,7 @@
     <li>Richard A. Sitze</li>
     <li>Costin Manoloche</li>
     <li>Craig R. McClanahan</li>
  +  <li>Matthew Hawthorne</li>
   </ul>
   
   
  
  
  
  1.4       +27 -3     jakarta-commons/discovery/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/discovery/maven.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- maven.xml 8 Jan 2003 04:36:17 -0000       1.3
  +++ maven.xml 18 Feb 2004 19:40:44 -0000      1.4
  @@ -1,4 +1,28 @@
  -<project default="java:jar"
  -  xmlns:j="jelly:core">
  +<?xml version="1.0"?>
  +
  +<project default="java:jar" xmlns:j="jelly:core" xmlns:ant="jelly:ant"
  +    xmlns:maven="jelly:maven">
  +
  +
  +    <preGoal name="test:test">
  +        <ant:property name="test.dest"
  +            
value="${pom.getPluginContext('maven-test-plugin').getVariable('maven.test.dest')}"/>
  +
  +        <ant:path id="test.extra.classpath">
  +            <pathelement location="${test.dest}/test"/>
  +            <pathelement location="${test.dest}/testAlt1"/>
  +            <pathelement location="${test.dest}/testAlt2"/>
  +        </ant:path>
  +
  +        <maven:addPath id="maven.dependency.classpath"
  +            refid="test.extra.classpath"/>
  +
  +        <ant:pathconvert property="classpath"
  +            refid="maven.dependency.classpath" targetOS="unix"/>
  +
  +        <ant:echo message="classpath: ${classpath}"/>
  +    </preGoal>
  +
  +
  +</project>
   
  -  </project>
  
  
  
  1.17      +13 -4     jakarta-commons/discovery/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/discovery/project.xml,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- project.xml       10 Feb 2004 19:15:04 -0000      1.16
  +++ project.xml       18 Feb 2004 19:40:44 -0000      1.17
  @@ -20,7 +20,7 @@
     <description>
       Commons Discovery
     </description>
  -  
  +
     <developers>
       <developer>
         <name>Richard Sitze</name>
  @@ -46,8 +46,13 @@
         <email>[EMAIL PROTECTED]</email>
         <organization>SpiritSoft, Inc.</organization>
       </developer>
  +    <developer>
  +      <name>Matthew Hawthorne</name>
  +      <id>matth</id>
  +      <email>[EMAIL PROTECTED]</email>
  +    </developer>
     </developers>
  -  
  +
     <dependencies>
   
       <dependency>
  @@ -63,10 +68,12 @@
     </dependencies>
   
     <build>
  +
       <unitTest>
         <includes>
           <include>**/TestAll.java</include>
         </includes>
  +
         <resources>
           <resource>
             <directory>${basedir}/src</directory>
  @@ -74,6 +81,7 @@
               <include>**/testResource</include>
             </includes>
           </resource>
  +
           <resource>
             <directory>${basedir}/src/test</directory>
             <includes>
  @@ -81,8 +89,9 @@
               <include>META-INF/**</include>
             </includes>
           </resource>
  -      </resources>  
  -    </unitTest>
  +     </resources>
  +   </unitTest>
  +
     </build>
   
   
  
  
  
  1.5       +46 -2     
jakarta-commons/discovery/src/java/org/apache/commons/discovery/jdk/JDK12Hooks.java
  
  Index: JDK12Hooks.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/discovery/src/java/org/apache/commons/discovery/jdk/JDK12Hooks.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JDK12Hooks.java   9 Oct 2003 19:38:19 -0000       1.4
  +++ JDK12Hooks.java   18 Feb 2004 19:40:44 -0000      1.5
  @@ -63,17 +63,35 @@
   
   import java.io.IOException;
   import java.net.URL;
  +import java.util.Collections;
   import java.util.Enumeration;
   
  +import org.apache.commons.discovery.log.DiscoveryLogFactory;
  +import org.apache.commons.logging.Log;
  +
   
   /**
    * @author Richard A. Sitze
    */
   class JDK12Hooks extends JDKHooks {
  +    
  +    /**
  +     * Logger
  +     */
  +    private static Log log = DiscoveryLogFactory.newLog(JDK12Hooks.class);
  +    
  +    
       private static final ClassLoader systemClassLoader
           = findSystemClassLoader();
   
       /**
  +     * Must be implemented to use DiscoveryLogFactory
  +     */
  +    public static void setLog(Log _log) {
  +        log = _log;
  +    }
  +    
  +    /**
        * The thread context class loader is available for JDK 1.2
        * or later, if certain security conditions are met.
        * 
  @@ -146,9 +164,35 @@
            * and eliminate the redundent element.
            */
           
  -        final URL first = (URL)loader.getResource(resourceName);
  -        final Enumeration rest = loader.getResources(resourceName);
  +        final URL first = loader.getResource(resourceName);
  +        
  +        // XXX: Trying to avoid JBoss UnifiedClassLoader problem
  +        
  +        Enumeration resources;
  +        
  +        if(first == null) {
  +            log.debug("Could not find resource: " + resourceName);
  +            resources = Collections.enumeration(Collections.EMPTY_LIST);
  +            
  +        } else {
           
  +            try {
  +                
  +                resources = loader.getResources(resourceName);
  +                
  +            } catch (RuntimeException ex) {
  +                log.error("Exception occured during attept to get " + resourceName 
  +                        + " from " + first, ex);
  +                resources = Collections.enumeration(Collections.EMPTY_LIST);
  +            }
  +            
  +            resources = getResourcesFromUrl(first, resources);
  +        }
  +        
  +        return resources;
  +    }
  +    
  +    private static Enumeration getResourcesFromUrl(final URL first, final 
Enumeration rest) {
           return new Enumeration() {
               private boolean firstDone = (first == null);
               private URL next = getNext();
  
  
  
  1.8       +2 -1      
jakarta-commons/discovery/src/test/org/apache/commons/discovery/test/TestAll.java
  
  Index: TestAll.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/discovery/src/test/org/apache/commons/discovery/test/TestAll.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- TestAll.java      9 Oct 2003 19:36:01 -0000       1.7
  +++ TestAll.java      18 Feb 2004 19:40:44 -0000      1.8
  @@ -316,6 +316,7 @@
           DiscoverResources discovery = new DiscoverResources(loaders);
           ResourceIterator iter = discovery.findResources(name);
           int count = 0;
  +        
           while (iter.hasNext()) {
               Resource resource = iter.nextResource();
               URL url = resource.getResource();
  @@ -323,7 +324,7 @@
                   System.out.println("URL = " + url.toString());
                   
                   if (url.getFile().indexOf(partialPaths[count]) == -1) {
  -                    fail("expected to locate URL containing " + 
partialPaths[count]);
  +                    fail(url + " does not contain " + partialPaths[count]);
                   }
                   count++;
               }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to