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>"&lt;extension&gt;-"</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>"&lt;extension&gt;-"</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]>

Reply via email to