donaldp 01/11/12 05:03:11 Modified: src/scratchpad/org/apache/avalon/excalibur/extension Extension.java ExtensionUtil.java src/scratchpad/org/apache/avalon/excalibur/extension/test ExtensionTestCase.java Log: Move getRequired/Available Extensions back into Extension class. Revision Changes Path 1.2 +119 -1 jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/extension/Extension.java Index: Extension.java =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/extension/Extension.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Extension.java 2001/09/03 03:21:02 1.1 +++ Extension.java 2001/11/12 13:03:11 1.2 @@ -30,7 +30,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Craig R. McClanahan</a> * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> - * @version $Revision: 1.1 $ $Date: 2001/09/03 03:21:02 $ + * @version $Revision: 1.2 $ $Date: 2001/11/12 13:03:11 $ */ public final class Extension { @@ -74,6 +74,124 @@ * of the optional package. */ private DeweyDecimal m_implementationVersion; + + + /** + * Return an array of <code>Extension</code> objects representing optional + * packages that are available in the JAR file associated with the + * specified <code>Manifest</code>. If there are no such optional + * packages, a zero-length array is returned. + * + * @param manifest Manifest to be parsed + */ + public static Extension[] getAvailableExtensions( final Manifest manifest ) + { + if( null == manifest ) return new Extension[ 0 ]; + + final ArrayList results = new ArrayList(); + + final Attributes mainAttributes = manifest.getMainAttributes(); + if( null != mainAttributes ) + { + final Extension extension = getExtension( "", mainAttributes ); + if( null != extension ) results.add( extension ); + } + + final Map entries = manifest.getEntries(); + final Iterator keys = entries.keySet().iterator(); + while( keys.hasNext() ) + { + final String key = (String)keys.next(); + final Attributes attributes = (Attributes)entries.get( key ); + final Extension extension = getExtension( "", attributes ); + if( null != extension ) results.add( extension ); + } + + return (Extension[])results.toArray( new Extension[ 0 ] ); + } + + /** + * Return the set of <code>Extension</code> objects representing optional + * packages that are required by the application contained in the JAR + * file associated with the specified <code>Manifest</code>. If there + * are no such optional packages, a zero-length list is returned. + * + * @param manifest Manifest to be parsed + */ + public static Extension[] getRequiredExtensions( final Manifest manifest ) + { + final ArrayList results = new ArrayList(); + final Attributes mainAttributes = manifest.getMainAttributes(); + + if( null != mainAttributes ) + { + getRequired( mainAttributes, results ); + } + + final Map entries = manifest.getEntries(); + final Iterator keys = entries.keySet().iterator(); + while( keys.hasNext() ) + { + final String key = (String)keys.next(); + final Attributes attributes = (Attributes)entries.get( key ); + getRequired( mainAttributes, results ); + } + + return (Extension[])results.toArray( new Extension[ 0 ] ); + } + + /** + * Add required optional packages defined in the specified attributes entry, if any. + * + * @param attributes Attributes to be parsed + * @param required list to add required optional packages to + */ + private static void getRequired( final Attributes attributes, + final ArrayList required ) + { + final String names = attributes.getValue( Name.EXTENSION_LIST ); + if( null == names ) return; + + final String[] extentions = StringUtil.split( names, " " ); + for( int i = 0; i < extentions.length; i++ ) + { + final String prefix = extentions[ i ] + "-"; + final Extension extension = getExtension( prefix, attributes ); + + if( null != extension ) + { + required.add( extension ); + } + } + } + + /** + * Extract an Extension from Attributes. + * Prefix indicates the prefix checked for each string. + * Usually the prefix is <em>"<extension>-"</em> if looking for a + * <b>Required</b> extension. If you are looking for an <b>Available</b> extension + * then the prefix is <em>""</em>. + * + * @param prefix the prefix for each attribute name + * @param attributes Attributes to searched + * @return the new Extension object, or null + */ + private static Extension getExtension( final String prefix, final Attributes attributes ) + { + final String name = attributes.getValue( prefix + Name.EXTENSION_NAME ); + if( null == name ) return null; + + final String specVendor = attributes.getValue( prefix + Name.SPECIFICATION_VENDOR ); + final String specVersion = attributes.getValue( prefix + Name.SPECIFICATION_VERSION ); + + final String impVersion = attributes.getValue( prefix + Name.IMPLEMENTATION_VERSION ); + final String impVendor = attributes.getValue( prefix + Name.IMPLEMENTATION_VENDOR ); + final String impVendorId = attributes.getValue( prefix + Name.IMPLEMENTATION_VENDOR_ID ); + final String impURL = attributes.getValue( prefix + Name.IMPLEMENTATION_URL ); + + return new Extension( name, specVersion, specVendor, impVersion, + impVendor, impVendorId, impURL ); + } /** * The constructor to create Extension object. 1.5 +1 -118 jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/extension/ExtensionUtil.java Index: ExtensionUtil.java =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/extension/ExtensionUtil.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ExtensionUtil.java 2001/10/25 16:04:59 1.4 +++ ExtensionUtil.java 2001/11/12 13:03:11 1.5 @@ -34,7 +34,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Craig R. McClanahan</a> * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> - * @version $Revision: 1.4 $ $Date: 2001/10/25 16:04:59 $ + * @version $Revision: 1.5 $ $Date: 2001/11/12 13:03:11 $ */ public final class ExtensionUtil { @@ -93,122 +93,5 @@ } return results; - } - - /** - * Return an array of <code>Extension</code> objects representing optional - * packages that are available in the JAR file associated with the - * specified <code>Manifest</code>. If there are no such optional - * packages, a zero-length array is returned. - * - * @param manifest Manifest to be parsed - */ - public static Extension[] getAvailableExtensions( final Manifest manifest ) - { - if( null == manifest ) return new Extension[ 0 ]; - - final ArrayList results = new ArrayList(); - - final Attributes mainAttributes = manifest.getMainAttributes(); - if( null != mainAttributes ) - { - final Extension extension = getExtension( "", mainAttributes ); - if( null != extension ) results.add( extension ); - } - - final Map entries = manifest.getEntries(); - final Iterator keys = entries.keySet().iterator(); - while( keys.hasNext() ) - { - final String key = (String)keys.next(); - final Attributes attributes = (Attributes)entries.get( key ); - final Extension extension = getExtension( "", attributes ); - if( null != extension ) results.add( extension ); - } - - return (Extension[])results.toArray( new Extension[ 0 ] ); - } - - /** - * Return the set of <code>Extension</code> objects representing optional - * packages that are required by the application contained in the JAR - * file associated with the specified <code>Manifest</code>. If there - * are no such optional packages, a zero-length list is returned. - * - * @param manifest Manifest to be parsed - */ - public static Extension[] getRequiredExtensions( final Manifest manifest ) - { - final ArrayList results = new ArrayList(); - final Attributes mainAttributes = manifest.getMainAttributes(); - - if( null != mainAttributes ) - { - getRequired( mainAttributes, results ); - } - - final Map entries = manifest.getEntries(); - final Iterator keys = entries.keySet().iterator(); - while( keys.hasNext() ) - { - final String key = (String)keys.next(); - final Attributes attributes = (Attributes)entries.get( key ); - getRequired( mainAttributes, results ); - } - - return (Extension[])results.toArray( new Extension[ 0 ] ); - } - - /** - * Add required optional packages defined in the specified attributes entry, if any. - * - * @param attributes Attributes to be parsed - * @param required list to add required optional packages to - */ - private static void getRequired( final Attributes attributes, - final ArrayList required ) - { - final String names = attributes.getValue( Name.EXTENSION_LIST ); - if( null == names ) return; - - final String[] extentions = StringUtil.split( names, " " ); - for( int i = 0; i < extentions.length; i++ ) - { - final String prefix = extentions[ i ] + "-"; - final Extension extension = getExtension( prefix, attributes ); - - if( null != extension ) - { - required.add( extension ); - } - } - } - - /** - * Extract an Extension from Attributes. - * Prefix indicates the prefix checked for each string. - * Usually the prefix is <em>"<extension>-"</em> if looking for a - * <b>Required</b> extension. If you are looking for an <b>Available</b> extension - * then the prefix is <em>""</em>. - * - * @param prefix the prefix for each attribute name - * @param attributes Attributes to searched - * @return the new Extension object, or null - */ - private static Extension getExtension( final String prefix, final Attributes attributes ) - { - final String name = attributes.getValue( prefix + Name.EXTENSION_NAME ); - if( null == name ) return null; - - final String specVendor = attributes.getValue( prefix + Name.SPECIFICATION_VENDOR ); - final String specVersion = attributes.getValue( prefix + Name.SPECIFICATION_VERSION ); - - final String impVersion = attributes.getValue( prefix + Name.IMPLEMENTATION_VERSION ); - final String impVendor = attributes.getValue( prefix + Name.IMPLEMENTATION_VENDOR ); - final String impVendorId = attributes.getValue( prefix + Name.IMPLEMENTATION_VENDOR_ID ); - final String impURL = attributes.getValue( prefix + Name.IMPLEMENTATION_URL ); - - return new Extension( name, specVersion, specVendor, impVersion, - impVendor, impVendorId, impURL ); } } 1.3 +14 -14 jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/extension/test/ExtensionTestCase.java Index: ExtensionTestCase.java =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/extension/test/ExtensionTestCase.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ExtensionTestCase.java 2001/09/03 07:54:02 1.2 +++ ExtensionTestCase.java 2001/11/12 13:03:11 1.3 @@ -18,7 +18,7 @@ * TestCases for Extension. * * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> - * @version $Revision: 1.2 $ $Date: 2001/09/03 07:54:02 $ + * @version $Revision: 1.3 $ $Date: 2001/11/12 13:03:11 $ */ public class ExtensionTestCase extends TestCase @@ -79,7 +79,7 @@ throws Exception { final Manifest manifest = getManifest( "manifest-1.mf" ); - final Extension[] available = ExtensionUtil.getAvailableExtensions( manifest ); + final Extension[] available = Extension.getAvailableExtensions( manifest ); assertEquals( "Available Count", 1, available.length ); assertEquals( "Available Name", MF1_NAME, available[ 0 ].getExtensionName() ); @@ -97,7 +97,7 @@ throws Exception { final Manifest manifest = getManifest( "manifest-2.mf" ); - final Extension[] available = ExtensionUtil.getAvailableExtensions( manifest ); + final Extension[] available = Extension.getAvailableExtensions( manifest ); assertEquals( "Available Count", 1, available.length ); assertEquals( "Available Name", MF2_NAME, available[ 0 ].getExtensionName() ); @@ -110,7 +110,7 @@ assertEquals( "Available ImpVersion", MF2_IVERSION, available[ 0 ].getImplementationVersion().toString() ); - final Extension[] required = ExtensionUtil.getRequiredExtensions( manifest ); + final Extension[] required = Extension.getRequiredExtensions( manifest ); assertEquals( "Available Count", 1, required.length ); assertEquals( "required Name", MFR1_NAME, required[ 0 ].getExtensionName() ); assertEquals( "required SpecVendor", MFR1_SVENDOR, required[ 0 ].getSpecificationVendor() ); @@ -127,7 +127,7 @@ throws Exception { final Manifest manifest = getManifest( "manifest-3.mf" ); - final Extension[] available = ExtensionUtil.getAvailableExtensions( manifest ); + final Extension[] available = Extension.getAvailableExtensions( manifest ); assertEquals( "Available Count", 1, available.length ); assertEquals( "Available Name", MF3_NAME, available[ 0 ].getExtensionName() ); @@ -140,7 +140,7 @@ assertEquals( "Available ImpVersion", MF3_IVERSION, available[ 0 ].getImplementationVersion().toString() ); - final Extension[] required = ExtensionUtil.getRequiredExtensions( manifest ); + final Extension[] required = Extension.getRequiredExtensions( manifest ); assertEquals( "Required Count", 1, required.length ); } @@ -148,7 +148,7 @@ throws Exception { final Manifest manifest = getManifest( "manifest-4.mf" ); - final Extension[] available = ExtensionUtil.getAvailableExtensions( manifest ); + final Extension[] available = Extension.getAvailableExtensions( manifest ); assertEquals( "Available Count", 1, available.length ); assertEquals( "Available Name", MF4_NAME, available[ 0 ].getExtensionName() ); @@ -161,7 +161,7 @@ assertEquals( "Available ImpVersion", MF4_IVERSION, available[ 0 ].getImplementationVersion().toString() ); - final Extension[] required = ExtensionUtil.getRequiredExtensions( manifest ); + final Extension[] required = Extension.getRequiredExtensions( manifest ); assertEquals( "Available Count", 0, required.length ); } @@ -175,13 +175,13 @@ final Manifest manifest6 = getManifest( "manifest-6.mf" ); final Manifest manifest7 = getManifest( "manifest-7.mf" ); - final Extension req1 = ExtensionUtil.getRequiredExtensions( manifest2 )[ 0 ]; - final Extension req2 = ExtensionUtil.getRequiredExtensions( manifest5 )[ 0 ]; - final Extension req3 = ExtensionUtil.getRequiredExtensions( manifest6 )[ 0 ]; - final Extension req4 = ExtensionUtil.getRequiredExtensions( manifest7 )[ 0 ]; + final Extension req1 = Extension.getRequiredExtensions( manifest2 )[ 0 ]; + final Extension req2 = Extension.getRequiredExtensions( manifest5 )[ 0 ]; + final Extension req3 = Extension.getRequiredExtensions( manifest6 )[ 0 ]; + final Extension req4 = Extension.getRequiredExtensions( manifest7 )[ 0 ]; - final Extension avail3 = ExtensionUtil.getAvailableExtensions( manifest3 )[ 0 ]; - final Extension avail4 = ExtensionUtil.getAvailableExtensions( manifest4 )[ 0 ]; + final Extension avail3 = Extension.getAvailableExtensions( manifest3 )[ 0 ]; + final Extension avail4 = Extension.getAvailableExtensions( manifest4 )[ 0 ]; assertTrue( "avail3.isCompatibleWith( req1 )", avail3.isCompatibleWith( req1 ) ); assertTrue( "avail4.isCompatibleWith( req1 )", avail4.isCompatibleWith( req1 ) );
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>