1 8 package org.codehaus.loom.classman.builder.test; 9 10 import java.io.File ; 11 import java.util.HashMap ; 12 13 import org.codehaus.loom.classman.builder.LoaderBuilder; 14 import org.codehaus.loom.classman.builder.SimpleLoaderResolver; 15 import org.codehaus.loom.classman.metadata.ClassLoaderMetaData; 16 import org.codehaus.loom.classman.metadata.ClassLoaderSetMetaData; 17 import org.codehaus.loom.classman.metadata.FileSetMetaData; 18 import org.codehaus.loom.classman.metadata.JoinMetaData; 19 import org.codehaus.loom.classman.test.AbstractLoaderTestCase; 20 import org.codehaus.loom.classman.test.DataConstants; 21 import org.codehaus.loom.extension.Extension; 22 23 29 public class LoaderBuilderTestCase 30 extends AbstractLoaderTestCase 31 { 32 public void testMissingClassLoader() 33 throws Exception 34 { 35 final LoaderBuilder builder = new LoaderBuilder(); 36 final ClassLoaderMetaData classLoader = 37 new ClassLoaderMetaData( "blah", 38 "bad-parent", 39 new String [ 0 ], 40 new Extension[ 0 ], 41 new FileSetMetaData[ 0 ] ); 42 final ClassLoaderSetMetaData metadata = 43 new ClassLoaderSetMetaData( "blah", 44 new String [ 0 ], 45 new ClassLoaderMetaData[]{classLoader}, 46 new JoinMetaData[ 0 ] ); 47 final SimpleLoaderResolver resolver = new SimpleLoaderResolver( null ); 48 final HashMap predefined = new HashMap (); 49 try 50 { 51 builder.buildClassLoaders( metadata, resolver, predefined ); 52 fail( "Expected to fail as unable to find classloader 'bad-parent'" ); 53 } 54 catch( Exception e ) 55 { 56 assertTrue( "Exception message", -1 != e.getMessage().indexOf( "bad-parent" ) ); 57 return; 58 } 59 } 60 61 public void testMissingPredefined() 62 throws Exception 63 { 64 final LoaderBuilder builder = new LoaderBuilder(); 65 final ClassLoaderSetMetaData metadata = 66 new ClassLoaderSetMetaData( "*system*", 67 new String []{"*system*"}, 68 new ClassLoaderMetaData[ 0 ], 69 new JoinMetaData[ 0 ] ); 70 final SimpleLoaderResolver resolver = new SimpleLoaderResolver( null ); 71 final HashMap predefined = new HashMap (); 72 try 73 { 74 builder.buildClassLoaders( metadata, resolver, predefined ); 75 fail( "Expected to fail as predefined list did " + 76 "not container predefined specified in metadata" ); 77 } 78 catch( Exception e ) 79 { 80 assertTrue( "Exception message", -1 != e.getMessage().indexOf( "*system*" ) ); 81 return; 82 } 83 } 84 85 public void testExtensions() 86 throws Exception 87 { 88 final LoaderBuilder builder = new LoaderBuilder(); 89 final ClassLoaderMetaData classLoader = 90 new ClassLoaderMetaData( "ext", 91 "*system*", 92 new String [ 0 ], 93 new Extension[]{DataConstants.EXTENSION}, 94 new FileSetMetaData[ 0 ] ); 95 final ClassLoaderSetMetaData metadata = 96 new ClassLoaderSetMetaData( "ext", 97 new String []{"*system*"}, 98 new ClassLoaderMetaData[]{classLoader}, 99 new JoinMetaData[ 0 ] ); 100 final SimpleLoaderResolver resolver = new TestLoaderResolver( new File ( "." ) ); 101 final HashMap predefined = new HashMap (); 102 predefined.put( "*system*", ClassLoader.getSystemClassLoader() ); 103 try 104 { 105 builder.buildClassLoaders( metadata, resolver, predefined ); 106 } 107 catch( Exception e ) 108 { 109 fail( "Unexpected failure to build classloaders with extension: " + e ); 110 } 111 } 112 } 113 | Popular Tags |