bodewig     2003/07/07 01:18:39

  Modified:    .        WHATSNEW
               src/main/org/apache/tools/ant/taskdefs Manifest.java
  Log:
  Don't merge Class-Path attributes, deal with them like with any other
  attribute - except that they may occur several times, that is.
  
  PR: 21170
  
  Revision  Changes    Path
  1.452     +7 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.451
  retrieving revision 1.452
  diff -u -r1.451 -r1.452
  --- WHATSNEW  3 Jul 2003 21:48:43 -0000       1.451
  +++ WHATSNEW  7 Jul 2003 08:18:38 -0000       1.452
  @@ -39,6 +39,10 @@
     defined in the project.  If you rely on the task waiting for input,
     don't use the addproperty attribute.
   
  +* The Class-Path attribute in manifests will no longer merge the
  +  entries of all manifests found, but will be treated like all other
  +  manifest attributes - the most recent attribute(s) will be used.
  +
   Fixed bugs:
   -----------
   * Filter readers were not handling line endings properly.  Bugzilla
  @@ -181,6 +185,9 @@
   
   * Nested websphere element for ejbjar does not support spaces in file name.
     Bugzilla Report 21298
  +
  +* Don't multiply Class-Path attributes when updating jars.  Bugzilla
  +  Report 21170.
   
   Other changes:
   --------------
  
  
  
  1.43      +12 -4     ant/src/main/org/apache/tools/ant/taskdefs/Manifest.java
  
  Index: Manifest.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Manifest.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- Manifest.java     6 Jul 2003 09:57:36 -0000       1.42
  +++ Manifest.java     7 Jul 2003 08:18:39 -0000       1.43
  @@ -459,21 +459,29 @@
               }
   
               Enumeration e = section.getAttributeKeys();
  +            Attribute classpathAttribute = null;
               while (e.hasMoreElements()) {
                   String attributeName = (String) e.nextElement();
                   Attribute attribute = section.getAttribute(attributeName);
  -                if (attributeName.equals(ATTRIBUTE_CLASSPATH) &&
  -                        attributes.containsKey(attributeName)) {
  -                    Attribute ourClassPath = getAttribute(attributeName);
  +                if (attributeName.equals(ATTRIBUTE_CLASSPATH)) {
  +                    if (classpathAttribute == null) {
  +                        classpathAttribute = new Attribute();
  +                        classpathAttribute.setName(ATTRIBUTE_CLASSPATH);
  +                    }
                       Enumeration cpe = attribute.getValues();
                       while (cpe.hasMoreElements()) {
                           String value = (String) cpe.nextElement();
  -                        ourClassPath.addValue(value);
  +                        classpathAttribute.addValue(value);
                       }
                   } else {
                       // the merge file always wins
                       storeAttribute(attribute);
                   }
  +            }
  +
  +            if (classpathAttribute != null) {
  +                // the merge file *always* wins, even for Class-Path
  +                storeAttribute(classpathAttribute);
               }
   
               // add in the warnings
  
  
  

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

Reply via email to