donaldp 2002/09/06 22:48:02
Modified: loader/src/java/org/apache/excalibur/loader/verifier
ClassLoaderVerifier.java
loader/src/test/org/apache/excalibur/loader/builder/test
ReaderTestCase.java
loader/src/test/org/apache/excalibur/loader/test
LoaderTestSuite.java
Added: loader/src/test/org/apache/excalibur/loader/builder/test
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:
Add in some unit tests for verification process.
Revision Changes Path
1.2 +2 -2
jakarta-avalon-excalibur/loader/src/java/org/apache/excalibur/loader/verifier/ClassLoaderVerifier.java
Index: ClassLoaderVerifier.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/loader/src/java/org/apache/excalibur/loader/verifier/ClassLoaderVerifier.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ClassLoaderVerifier.java 1 Sep 2002 05:54:59 -0000 1.1
+++ ClassLoaderVerifier.java 7 Sep 2002 05:48:01 -0000 1.2
@@ -126,7 +126,7 @@
{
final ClassLoaderDef classLoader = classLoaders[ i ];
final String parent = classLoader.getParent();
- if( isLoaderDefined( parent, set ) )
+ if( !isLoaderDefined( parent, set ) )
{
final String message =
REZ.getString( "invalid-parent.error",
1.6 +48 -44
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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ReaderTestCase.java 7 Sep 2002 01:58:36 -0000 1.5
+++ ReaderTestCase.java 7 Sep 2002 05:48:01 -0000 1.6
@@ -7,12 +7,9 @@
*/
package org.apache.excalibur.loader.builder.test;
-import java.io.InputStream;
-import junit.framework.TestCase;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
import org.apache.excalibur.loader.builder.ClassLoaderSetBuilder;
import org.apache.excalibur.loader.metadata.ClassLoaderSetDef;
+import org.apache.excalibur.loader.test.AbstractLoaderTestCase;
/**
* TestCase for {@link ClassLoaderSetBuilder}.
@@ -20,55 +17,18 @@
* @author <a href="mailto:peter at apache.org">Peter Donald</a>
*/
public class ReaderTestCase
- extends TestCase
+ extends AbstractLoaderTestCase
{
- private static final String[] BASE_PREDEFINED =
- new String[]{"*system*"};
-
public ReaderTestCase( final String name )
{
super( name );
}
- private ClassLoaderSetDef build( final InputStream stream,
- final String[] predefined )
- throws Exception
- {
- try
- {
- final ClassLoaderSetBuilder builder = new ClassLoaderSetBuilder();
- final Configuration config = load( stream );
- return builder.build( config, predefined );
- }
- catch( final Exception e )
- {
- fail( "Error building ClassLoaderSet: " + e );
- return null;
- }
- }
-
- private Configuration load( final InputStream stream )
- throws Exception
- {
- final DefaultConfigurationBuilder builder = new
DefaultConfigurationBuilder();
- return builder.build( stream );
- }
-
- private ClassLoaderSetDef build( final String resource )
- throws Exception
- {
- final InputStream stream = getClass().getResourceAsStream( resource );
- if( null == stream )
- {
- fail( "Missing resource " + resource );
- }
- return build( stream, BASE_PREDEFINED );
- }
-
public void testConfig1()
throws Exception
{
- final ClassLoaderSetDef defs = build( "config1.xml" );
+ final ClassLoaderSetDef defs =
+ buildFromResource( "config1.xml" );
assertEquals( "ClassLoader Default",
"join2",
@@ -163,6 +123,50 @@
assertEquals( "Join join2.refs[1] Name",
defs.getJoin( "join2" ).getClassloaders()[ 1 ],
"cl2" );
+ }
+
+ public void testConfig2()
+ throws Exception
+ {
+ try
+ {
+ buildFromResource( "config2.xml" );
+ }
+ catch( final Throwable t )
+ {
+ return;
+ }
+ fail( "Should have failed as loaded a " +
+ "configuration with no default set" );
+ }
+ public void testConfig3()
+ throws Exception
+ {
+ try
+ {
+ buildFromResource( "config3.xml" );
+ }
+ catch( final Throwable t )
+ {
+ return;
+ }
+ fail( "Should have failed as loaded a " +
+ "configuration with no version set" );
+ }
+
+ public void testConfig4()
+ throws Exception
+ {
+ try
+ {
+ buildFromResource( "config4.xml" );
+ }
+ catch( final Throwable t )
+ {
+ return;
+ }
+ fail( "Should have failed as loaded a " +
+ "configuration with bad version" );
}
}
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config2.xml
Index: config2.xml
===================================================================
<classloaders version="1.0">
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config3.xml
Index: config3.xml
===================================================================
<classloaders default="*system*">
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/builder/test/config4.xml
Index: config4.xml
===================================================================
<classloaders default="*system*" version="1.2">
</classloaders>
1.3 +2 -0
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/test/LoaderTestSuite.java
Index: LoaderTestSuite.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/test/LoaderTestSuite.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- LoaderTestSuite.java 7 Sep 2002 01:42:10 -0000 1.2
+++ LoaderTestSuite.java 7 Sep 2002 05:48:01 -0000 1.3
@@ -10,6 +10,7 @@
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.excalibur.loader.builder.test.ReaderTestCase;
+import org.apache.excalibur.loader.verifier.test.VerifierTestCase;
/**
* A basic test suite that tests all the Loader package.
@@ -20,6 +21,7 @@
{
final TestSuite suite = new TestSuite( "Loader Utilities" );
suite.addTest( new TestSuite( ReaderTestCase.class ) );
+ suite.addTest( new TestSuite( VerifierTestCase.class ) );
return suite;
}
}
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/test/AbstractLoaderTestCase.java
Index: AbstractLoaderTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.loader.test;
import java.io.InputStream;
import junit.framework.TestCase;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
import org.apache.excalibur.loader.builder.ClassLoaderSetBuilder;
import org.apache.excalibur.loader.metadata.ClassLoaderSetDef;
/**
*
*
* @author <a href="mailto:peter at apache.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2002/09/07 05:48:01 $
*/
public class AbstractLoaderTestCase extends TestCase
{
private static final String[] BASE_PREDEFINED =
new String[]{"*system*"};
protected ClassLoaderSetDef buildFromStream( final InputStream stream,
final String[] predefined )
throws Exception
{
try
{
final ClassLoaderSetBuilder builder = new ClassLoaderSetBuilder();
final Configuration config = load( stream );
return builder.build( config, predefined );
}
catch( final Exception e )
{
fail( "Error building ClassLoaderSet: " + e );
return null;
}
}
protected Configuration load( final InputStream stream )
throws Exception
{
final DefaultConfigurationBuilder builder = new
DefaultConfigurationBuilder();
return builder.build( stream );
}
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 );
}
public AbstractLoaderTestCase( String name )
{
super( name );
}
}
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/VerifierTestCase.java
Index: VerifierTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.loader.verifier.test;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.excalibur.loader.builder.ClassLoaderSetBuilder;
import org.apache.excalibur.loader.metadata.ClassLoaderSetDef;
import org.apache.excalibur.loader.test.AbstractLoaderTestCase;
import org.apache.excalibur.loader.verifier.ClassLoaderVerifier;
/**
* TestCase for {@link ClassLoaderSetBuilder}.
*
* @author <a href="mailto:peter at apache.org">Peter Donald</a>
*/
public class VerifierTestCase
extends AbstractLoaderTestCase
{
public VerifierTestCase( final String name )
{
super( name );
}
public void testConfig1()
throws Exception
{
try
{
verifyResource( "config1.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as specified " +
"bad name for join" );
}
public void testConfig2()
throws Exception
{
try
{
verifyResource( "config2.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as specified " +
"bad name for classloader" );
}
public void testConfig3()
throws Exception
{
try
{
verifyResource( "config3.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as specified " +
"bad parent for classloader" );
}
public void testConfig4()
throws Exception
{
try
{
verifyResource( "config4.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as specified " +
"non existing ClassLoader in Join " +
"classloader-ref" );
}
public void testConfig5()
throws Exception
{
try
{
verifyResource( "config5.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as specified " +
"default classloader does not exist." );
}
public void testConfig6()
throws Exception
{
try
{
verifyResource( "config6.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as specified " +
"join classloader links against same " +
"classloader multiple times." );
}
public void testConfig7()
throws Exception
{
try
{
verifyResource( "config7.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as specified " +
"classloader has entry multiple times." );
}
public void testConfig8()
throws Exception
{
try
{
verifyResource( "config8.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as a " +
"join had same name as another join." );
}
public void testConfig9()
throws Exception
{
try
{
verifyResource( "config9.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as a " +
"join had same name as a " +
"classloader." );
}
public void testConfig10()
throws Exception
{
try
{
verifyResource( "config10.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as a " +
"join had same name as another " +
"predefined classloader." );
}
public void testConfig11()
throws Exception
{
try
{
verifyResource( "config11.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as a " +
"classloader had same name as another " +
"classloader." );
}
public void testConfig12()
throws Exception
{
try
{
verifyResource( "config12.xml" );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as a " +
"classloader had same name as a " +
"predefined classloader." );
}
public void testConfig13()
throws Exception
{
try
{
final String[] predefines =
new String[]{ "*system*", "*system*"};
final ClassLoaderSetDef defs =
buildFromResource( "config13.xml", predefines );
verify( defs );
}
catch( final Throwable t )
{
return;
}
fail( "Expected verify to fail as a " +
"predefined had same name as another " +
"predefined." );
}
private void verifyResource( final String resource )
throws Exception
{
final ClassLoaderSetDef defs = buildFromResource( resource );
verify( defs );
}
private void verify( final ClassLoaderSetDef defs )
throws Exception
{
final ClassLoaderVerifier verifier = new ClassLoaderVerifier();
verifier.enableLogging( new ConsoleLogger() );
verifier.verifyClassLoaderSet( defs );
}
}
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config1.xml
Index: config1.xml
===================================================================
<classloaders default="*system*" version="1.0">
<join name="join$3">
</join>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config10.xml
Index: config10.xml
===================================================================
<classloaders default="*system*" version="1.0">
<join name="*system*"/>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config11.xml
Index: config11.xml
===================================================================
<classloaders default="*system*" version="1.0">
<classloader name="X" parent="*system*"/>
<classloader name="X" parent="*system*"/>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config12.xml
Index: config12.xml
===================================================================
<classloaders default="*system*" version="1.0">
<classloader name="*system*" parent="*system*"/>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config13.xml
Index: config13.xml
===================================================================
<classloaders default="*system*" version="1.0">
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config2.xml
Index: config2.xml
===================================================================
<classloaders default="*system*" version="1.0">
<classloader name="cl&" parent="*system*">
</classloader>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config3.xml
Index: config3.xml
===================================================================
<classloaders default="*system*" version="1.0">
<classloader name="cl" parent="missing-parent"/>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config4.xml
Index: config4.xml
===================================================================
<classloaders default="*system*" version="1.0">
<join name="jl">
<classloader-ref name="non-existent"/>
</join>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config5.xml
Index: config5.xml
===================================================================
<classloaders default="iNoExist" version="1.0">
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config6.xml
Index: config6.xml
===================================================================
<classloaders default="*system*" version="1.0">
<join name="jl">
<classloader-ref name="*system*"/>
<classloader-ref name="*system*"/>
</join>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config7.xml
Index: config7.xml
===================================================================
<classloaders default="*system*" version="1.0">
<classloader name="cl" parent="*system*">
<entry location="someFile.jar"/>
<entry location="someFile.jar"/>
</classloader>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config8.xml
Index: config8.xml
===================================================================
<classloaders default="*system*" version="1.0">
<join name="jl"/>
<join name="jl"/>
</classloaders>
1.1
jakarta-avalon-excalibur/loader/src/test/org/apache/excalibur/loader/verifier/test/config9.xml
Index: config9.xml
===================================================================
<classloaders default="*system*" version="1.0">
<join name="j1"/>
<classloader name="j1" parent="*system*"/>
</classloaders>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>