Browse Source

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


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274780 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 22 years ago
parent
commit
3341571e8e
2 changed files with 19 additions and 4 deletions
  1. +7
    -0
      WHATSNEW
  2. +12
    -4
      src/main/org/apache/tools/ant/taskdefs/Manifest.java

+ 7
- 0
WHATSNEW View File

@@ -39,6 +39,10 @@ Changes that could break older environments:
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
@@ -182,6 +186,9 @@ Fixed bugs:
* 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:
--------------
* Six new Clearcase tasks added.


+ 12
- 4
src/main/org/apache/tools/ant/taskdefs/Manifest.java View File

@@ -459,16 +459,19 @@ public class Manifest {
}

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
@@ -476,6 +479,11 @@ public class Manifest {
}
}

if (classpathAttribute != null) {
// the merge file *always* wins, even for Class-Path
storeAttribute(classpathAttribute);
}

// add in the warnings
Enumeration warnEnum = section.warnings.elements();
while (warnEnum.hasMoreElements()) {


Loading…
Cancel
Save