bodewig     2004/01/12 02:15:56

  Modified:    .        WHATSNEW
               src/etc/testcases/taskdefs whichresource.xml
               src/main/org/apache/tools/ant/taskdefs WhichResource.java
               src/testcases/org/apache/tools/ant/taskdefs
                        WhichResourceTest.java
  Log:
  A leading slash in a resource name is only required for
  Class.getResource*, not the corresponding ClassLoader methods.  Adding
  the slash makes the task completely useless.
  
  Reported by:  <koji underscore sekiguchi at excite dot co dot jp>,
                  Jack J. Woehr <jax at purematrix dot com>
  
  Revision  Changes    Path
  1.518     +2 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.517
  retrieving revision 1.518
  diff -u -r1.517 -r1.518
  --- WHATSNEW  9 Jan 2004 17:52:24 -0000       1.517
  +++ WHATSNEW  12 Jan 2004 10:15:55 -0000      1.518
  @@ -16,6 +16,8 @@
   
   * Fix jboss element of ejb task (introduced in ant 1.6.0).
   
  +* <whichresource> failed to load classes correctly.
  +
   Other changes:
   --------------
   * Translate task logs a debug message specifying the number of files
  
  
  
  1.2       +5 -0      ant/src/etc/testcases/taskdefs/whichresource.xml
  
  Index: whichresource.xml
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/whichresource.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- whichresource.xml 12 Jan 2004 10:07:23 -0000      1.1
  +++ whichresource.xml 12 Jan 2004 10:15:55 -0000      1.2
  @@ -12,4 +12,9 @@
       <whichresource 
resource="org/apache/tools/ant/taskdefs/defaults.properties"
         property="defaults"/>
     </target>
  +
  +  <target name="testResourcenameWithLeadingSlash">
  +    <whichresource 
resource="/org/apache/tools/ant/taskdefs/defaults.properties"
  +      property="defaults"/>
  +  </target>
   </project>
  
  
  
  1.7       +11 -7     
ant/src/main/org/apache/tools/ant/taskdefs/WhichResource.java
  
  Index: WhichResource.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/WhichResource.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- WhichResource.java        12 Dec 2003 19:32:58 -0000      1.6
  +++ WhichResource.java        12 Jan 2004 10:15:55 -0000      1.7
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
  + * Copyright (c) 2003-2004 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -168,13 +168,17 @@
           String location = null;
           if (classname != null) {
               //convert a class name into a resource
  -            classname = classname.replace('.', '/');
  -            resource = "/" + classname + ".class";
  -        } else {
  -            if (!resource.startsWith("/")) {
  -                resource = "/" + resource;
  -            }
  +            resource = classname.replace('.', '/') + ".class";
  +        }
  +
  +        if (resource == null) {
  +            throw new BuildException("One of class or resource is required");
           }
  +
  +        if (resource.startsWith("/")) {
  +            resource = resource.substring(1);
  +        }
  +
           log("Searching for " + resource, Project.MSG_VERBOSE);
           URL url;
           url = loader.getResource(resource);
  
  
  
  1.2       +5 -0      
ant/src/testcases/org/apache/tools/ant/taskdefs/WhichResourceTest.java
  
  Index: WhichResourceTest.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/WhichResourceTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WhichResourceTest.java    12 Jan 2004 10:07:23 -0000      1.1
  +++ WhichResourceTest.java    12 Jan 2004 10:15:55 -0000      1.2
  @@ -77,4 +77,9 @@
           executeTarget("testResourcename");
           assertNotNull(getProject().getProperty("defaults"));
       }
  +
  +    public void testResourcenameWithLeadingSlash() {
  +        executeTarget("testResourcenameWithLeadingSlash");
  +        assertNotNull(getProject().getProperty("defaults"));
  +    }
   }
  
  
  

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

Reply via email to