mcconnell 2003/03/06 04:05:25
Modified: merlin/src/java/org/apache/avalon/merlin/block/impl
DefaultBlockLoader.java
Log:
Updated such that a classpath directive is created (if required) relative to the
directory containing the block.xml descriptor. This ensures that the notion of home
directory is distict and seperate from the directory from which classpath filesets are
resolved. As such all classpath filesets are not relative to the directory containing
the block.xml file.
Revision Changes Path
1.15 +22 -6
avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlockLoader.java
Index: DefaultBlockLoader.java
===================================================================
RCS file:
/home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlockLoader.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DefaultBlockLoader.java 6 Mar 2003 09:14:39 -0000 1.14
+++ DefaultBlockLoader.java 6 Mar 2003 12:05:24 -0000 1.15
@@ -75,6 +75,7 @@
import org.apache.avalon.assembly.engine.EngineException;
import org.apache.avalon.assembly.engine.Engine;
import org.apache.avalon.assembly.engine.model.LibraryDescriptor;
+import org.apache.avalon.assembly.engine.model.Classpath;
import org.apache.avalon.assembly.engine.model.ClasspathDescriptor;
import org.apache.avalon.assembly.util.ExceptionHelper;
import org.apache.avalon.assembly.appliance.Appliance;
@@ -404,7 +405,7 @@
catch( Throwable e )
{
final String error =
- "Unexpected error while resolviong base path from URL: " + url;
+ "Unexpected error while resolving base path from URL: " + url;
throw new BlockRuntimeException( error, e );
}
}
@@ -789,18 +790,33 @@
LibraryDescriptor extensions =
createLibraryDescriptor( config.getChild( "library", false ) );
- ClasspathDescriptor classpath =
- createClasspathDescriptor( config.getChild( "classpath" ) );
+ Classpath classpath = null;
+ Configuration classpathConfig = config.getChild( "classpath", false );
+ if( classpathConfig != null )
+ {
+ ClasspathDescriptor descriptor = createClasspathDescriptor(
classpathConfig );
+ try
+ {
+ classpath = new Classpath( base, descriptor );
+ }
+ catch( IllegalArgumentException iae )
+ {
+ final String error =
+ "Cannot construct classpath due to unresolvable base directory.";
+ throw new EngineException( error, iae );
+ }
+ }
if( target != null )
{
- return parent.newInstance( name, base, extensions, classpath, new
URL[]{ target } );
+ return parent.newInstance( name, extensions, classpath, new URL[]{
target } );
}
else
{
- return parent.newInstance( name, base, extensions, classpath );
+ return parent.newInstance( name, extensions, classpath );
}
}
+
/**
* Utility that handles the creation of a extension set descriptor from
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]