donaldp 2002/09/13 04:38:43 Modified: loader/src/java/org/apache/excalibur/loader/builder ClassLoaderSetBuilder.java classloader.dtd loader/src/test/org/apache/excalibur/loader/builder/test ReaderTestCase.java config1.xml config2.xml config3.xml config4.xml loader/src/test/org/apache/excalibur/loader/test AbstractLoaderTestCase.java loader/src/test/org/apache/excalibur/loader/verifier/test VerifierTestCase.java config1.xml config10.xml config11.xml config12.xml config13.xml config2.xml config3.xml config4.xml config5.xml config6.xml config7.xml config8.xml config9.xml Log: Declare the predefined classloaders in classloaders.xml Revision Changes Path 1.3 +23 -3 jakarta-avalon-excalibur/loader/src/java/org/apache/excalibur/loader/builder/ClassLoaderSetBuilder.java Index: ClassLoaderSetBuilder.java =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/java/org/apache/excalibur/loader/builder/ClassLoaderSetBuilder.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ClassLoaderSetBuilder.java 13 Sep 2002 09:16:12 -0000 1.2 +++ ClassLoaderSetBuilder.java 13 Sep 2002 11:38:41 -0000 1.3 @@ -26,8 +26,7 @@ */ public class ClassLoaderSetBuilder { - public ClassLoaderSetDef build( final Configuration config, - final String[] predefined ) + public ClassLoaderSetDef build( final Configuration config ) throws ConfigurationException { final String defaultClassLoader = @@ -51,10 +50,31 @@ final ClassLoaderDef[] classloaders = buildClassLoaders( clConfigs ); + + final Configuration[] predefinedConfigs = + config.getChildren( "predefined" ); + + final String[] predefined = + buildPredefined( predefinedConfigs ); + return new ClassLoaderSetDef( defaultClassLoader, predefined, classloaders, joins ); + } + + private String[] buildPredefined( final Configuration[] configs ) + throws ConfigurationException + { + final ArrayList predefines = new ArrayList(); + + for( int i = 0; i < configs.length; i++ ) + { + final String predefined = configs[ i ].getAttribute( "name" ); + predefines.add( predefined ); + } + + return (String[])predefines.toArray( new String[ predefines.size() ] ); } private ClassLoaderDef[] buildClassLoaders( Configuration[] configs ) 1.4 +10 -1 jakarta-avalon-excalibur/loader/src/java/org/apache/excalibur/loader/builder/classloader.dtd Index: classloader.dtd =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/java/org/apache/excalibur/loader/builder/classloader.dtd,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- classloader.dtd 13 Sep 2002 09:16:12 -0000 1.3 +++ classloader.dtd 13 Sep 2002 11:38:42 -0000 1.4 @@ -22,7 +22,7 @@ join the join classloaders classloader the regular classloaders --> -<!ELEMENT classloaders (classloader*,join*)> +<!ELEMENT classloaders (predefined*,classloader*,join*)> <!ATTLIST classloaders id ID #IMPLIED xmlns CDATA #FIXED "http://jakarta.apache.org/avalon/dtds/phoenix/classloaders_1_0.dtd" > <!ATTLIST classloaders @@ -47,6 +47,15 @@ <!ATTLIST classloader name CDATA #REQUIRED parent CDATA #REQUIRED > + +<!-- +The predefined element defines a predefined classloader. It defines: + +Attributes: +name the name of classloader. +--> +<!ELEMENT predefined EMPTY> + <!ATTLIST predefined name CDATA #REQUIRED > <!-- The classloader element describes a regular classloader It defines: 1.7 +6 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/ReaderTestCase.java Index: ReaderTestCase.java =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/ReaderTestCase.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ReaderTestCase.java 7 Sep 2002 05:48:01 -0000 1.6 +++ ReaderTestCase.java 13 Sep 2002 11:38:42 -0000 1.7 @@ -30,6 +30,12 @@ final ClassLoaderSetDef defs = buildFromResource( "config1.xml" ); + assertEquals( "ClassLoader Predefined Count", + 1, + defs.getPredefined().length ); + assertEquals( "ClassLoader Predefined", + "*system*", + defs.getPredefined()[ 0 ] ); assertEquals( "ClassLoader Default", "join2", defs.getDefault() ); 1.3 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config1.xml Index: config1.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config1.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- config1.xml 13 Sep 2002 09:16:12 -0000 1.2 +++ config1.xml 13 Sep 2002 11:38:42 -0000 1.3 @@ -1,4 +1,5 @@ <classloaders default="join2" version="1.0"> + <predefined name="*system*"/> <classloader name="cl1" parent="*system*"> <entry location="someFile.jar"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config2.xml Index: config2.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config2.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config2.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config2.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,3 +1,4 @@ <classloaders version="1.0"> + <predefined name="*system*"/> </classloaders> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config3.xml Index: config3.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config3.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config3.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config3.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,3 +1,4 @@ <classloaders default="*system*"> + <predefined name="*system*"/> </classloaders> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config4.xml Index: config4.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config4.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config4.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config4.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,3 +1,4 @@ <classloaders default="*system*" version="1.2"> + <predefined name="*system*"/> </classloaders> 1.2 +4 -15 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/test/AbstractLoaderTestCase.java Index: AbstractLoaderTestCase.java =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/test/AbstractLoaderTestCase.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractLoaderTestCase.java 7 Sep 2002 05:48:01 -0000 1.1 +++ AbstractLoaderTestCase.java 13 Sep 2002 11:38:42 -0000 1.2 @@ -22,18 +22,14 @@ */ public class AbstractLoaderTestCase extends TestCase { - private static final String[] BASE_PREDEFINED = - new String[]{"*system*"}; - - protected ClassLoaderSetDef buildFromStream( final InputStream stream, - final String[] predefined ) + protected ClassLoaderSetDef buildFromStream( final InputStream stream ) throws Exception { try { final ClassLoaderSetBuilder builder = new ClassLoaderSetBuilder(); final Configuration config = load( stream ); - return builder.build( config, predefined ); + return builder.build( config ); } catch( final Exception e ) { @@ -52,19 +48,12 @@ protected ClassLoaderSetDef buildFromResource( final String resource ) throws Exception { - return buildFromResource( resource, BASE_PREDEFINED ); - } - - protected ClassLoaderSetDef buildFromResource( final String resource, - final String[] predefines ) - throws Exception - { final InputStream stream = getClass().getResourceAsStream( resource ); if( null == stream ) { fail( "Missing resource " + resource ); } - return buildFromStream( stream, predefines ); + return buildFromStream( stream ); } public AbstractLoaderTestCase( String name ) 1.2 +1 -3 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/VerifierTestCase.java Index: VerifierTestCase.java =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/VerifierTestCase.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- VerifierTestCase.java 7 Sep 2002 05:48:01 -0000 1.1 +++ VerifierTestCase.java 13 Sep 2002 11:38:42 -0000 1.2 @@ -229,10 +229,8 @@ { try { - final String[] predefines = - new String[]{ "*system*", "*system*"}; final ClassLoaderSetDef defs = - buildFromResource( "config13.xml", predefines ); + buildFromResource( "config13.xml" ); verify( defs ); } catch( final Throwable t ) 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config1.xml Index: config1.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config1.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config1.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config1.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <join name="join$3"> </join> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config10.xml Index: config10.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config10.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config10.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config10.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <join name="*system*"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config11.xml Index: config11.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config11.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config11.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config11.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <classloader name="X" parent="*system*"/> <classloader name="X" parent="*system*"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config12.xml Index: config12.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config12.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config12.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config12.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <classloader name="*system*" parent="*system*"/> 1.2 +2 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config13.xml Index: config13.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config13.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config13.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config13.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,3 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> + <predefined name="*system*"/> </classloaders> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config2.xml Index: config2.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config2.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config2.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config2.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <classloader name="cl&" parent="*system*"> </classloader> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config3.xml Index: config3.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config3.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config3.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config3.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <classloader name="cl" parent="missing-parent"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config4.xml Index: config4.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config4.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config4.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config4.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <join name="jl"> <classloader-ref name="non-existent"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config5.xml Index: config5.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config5.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config5.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config5.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,3 +1,4 @@ <classloaders default="iNoExist" version="1.0"> + <predefined name="*system*"/> </classloaders> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config6.xml Index: config6.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config6.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config6.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config6.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <join name="jl"> <classloader-ref name="*system*"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config7.xml Index: config7.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config7.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config7.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config7.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <classloader name="cl" parent="*system*"> <entry location="someFile.jar"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config8.xml Index: config8.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config8.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config8.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config8.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <join name="jl"/> <join name="jl"/> 1.2 +1 -0 jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config9.xml Index: config9.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config9.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config9.xml 7 Sep 2002 05:48:01 -0000 1.1 +++ config9.xml 13 Sep 2002 11:38:42 -0000 1.2 @@ -1,4 +1,5 @@ <classloaders default="*system*" version="1.0"> + <predefined name="*system*"/> <join name="j1"/>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>