DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=31360>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=31360 Extension.getCompatibilityWith Summary: Extension.getCompatibilityWith Product: Ant Version: 1.6.2 Platform: All OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Optional Tasks AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] The method "getCompatibilityWith" of class "org.apache.tools.ant.taskdefs.optional.extension.Extension" is not correct implementet. This Method compares the same variables for the specification and implementation version. Here the code parts: isCompatible(specificationVersion, specificationVersion) isCompatible(implementationVersion, implementationVersion) This is the cause that the optional tasks like "jarlib-resolve" not work correct because is compares not the version from the jar Manifest file with the given extensions but it compares the given extension with himself. solution proposal: public Compatibility getCompatibilityWith(final Extension required) { // Extension Name must match if (!extensionName.equals(required.getExtensionName())) { return INCOMPATIBLE; } // Available specification version must be >= required final DeweyDecimal requiredSpecificationVersion = required.getSpecificationVersion(); if (null != requiredSpecificationVersion) { if (null == specificationVersion || !isCompatible(specificationVersion, requiredSpecificationVersion)) { return REQUIRE_SPECIFICATION_UPGRADE; } } // Implementation Vendor ID must match final String requiredImplementationVendorID = required.getImplementationVendorID(); if (null != requiredImplementationVendorID) { if (null == implementationVendorID || !implementationVendorID.equals(requiredImplementationVendorID)) { return REQUIRE_VENDOR_SWITCH; } } // Implementation version must be >= required final DeweyDecimal requiredImplementationVersion = required.getImplementationVersion(); if (null != requiredImplementationVersion) { if (null == implementationVersion || !isCompatible(implementationVersion, requiredImplementationVersion)) { return REQUIRE_IMPLEMENTATION_UPGRADE; } } // This available optional package satisfies the requirements return COMPATIBLE; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]