You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2003/03/06 13:01:54 UTC
cvs commit: avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/engine EngineClassLoader.java
mcconnell 2003/03/06 04:01:54
Modified: assembly/src/java/org/apache/avalon/assembly/engine
EngineClassLoader.java
Log:
Updated the engine with the introduction of a classpath instance that seperates meta data usage from meta info usage and enables seperation of the classpath base from the working directory.
Revision Changes Path
1.40 +25 -34 avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/engine/EngineClassLoader.java
Index: EngineClassLoader.java
===================================================================
RCS file: /home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/engine/EngineClassLoader.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- EngineClassLoader.java 28 Feb 2003 06:09:16 -0000 1.39
+++ EngineClassLoader.java 6 Mar 2003 12:01:54 -0000 1.40
@@ -81,7 +81,7 @@
import org.apache.avalon.assembly.engine.model.ClasspathDescriptor;
import org.apache.avalon.assembly.engine.model.FilesetDescriptor;
import org.apache.avalon.assembly.engine.model.IncludeDescriptor;
-import org.apache.avalon.assembly.engine.model.ClasspathDescriptor;
+import org.apache.avalon.assembly.engine.model.Classpath;
import org.apache.avalon.assembly.locator.Contextualizable;
import org.apache.avalon.assembly.logging.LoggingDescriptor;
import org.apache.avalon.assembly.logging.DefaultLoggingManager;
@@ -145,11 +145,6 @@
/**
* Constructor supplied urls.
*/
- private URL m_base;
-
- /**
- * Constructor supplied urls.
- */
private URL[] m_urls = new URL[0];
/**
@@ -164,7 +159,7 @@
/**
* The system wide context where system refers to the context that
- * will be propergated by this engine to compoents under it
+ * will be propergated by this engine to components under it's
* supervision.
*/
private Locator m_context;
@@ -218,9 +213,9 @@
private LibraryDescriptor m_descriptor;
/**
- * Classpath descriptor.
+ * Classpath directive.
*/
- private ClasspathDescriptor m_classpath;
+ private Classpath m_classpath;
/**
* The set of facilities.
@@ -340,11 +335,6 @@
m_map = (Map) context.get( "urn:assembly:system-map" );
}
- if( context.hasEntry( "urn:assembly:engine.base" ) )
- {
- m_base = (URL) context.get( "urn:assembly:engine.base" );
- }
-
if( context.hasEntry( "urn:assembly:engine.extensions" ) )
{
String scope = "home";
@@ -362,11 +352,11 @@
if( context.hasEntry( "urn:assembly:engine.classpath" ) )
{
- m_classpath = (ClasspathDescriptor)context.get( "urn:assembly:engine.classpath" );
+ m_classpath = (Classpath)context.get( "urn:assembly:engine.classpath" );
}
else
{
- m_classpath = new ClasspathDescriptor();
+ m_classpath = new Classpath( m_home, new ClasspathDescriptor() );
}
if( context.hasEntry( "urn:assembly:home" ) )
@@ -710,53 +700,54 @@
/**
* Creation of a subsidiary engine.
* @param name the name to assign to the manager
- * @param base the URL from which classpath declarations
- * shall be resolved
* @param extensions the declaration of supplimentary extension directories
- * @param classpath a classpath descriptor
+ * @param classpath a classpath directive
* @return the new engine
*/
public EngineClassLoader newInstance(
- String name, URL base, LibraryDescriptor extensions, ClasspathDescriptor classpath )
+ String name, LibraryDescriptor extensions, Classpath classpath )
throws EngineException
{
- return newInstance( name, base, extensions, classpath, new URL[0] );
+ return newInstance( name, extensions, classpath, new URL[0] );
}
/**
* Creation of a subsidiary engine.
* @param name the name to assign to the manager
- * @param base the URL from which classpath declarations
- * shall be resolved
* @param extensions the declaration of supplimentary extension directories
- * @param classpath a classpath descriptor
+ * @param classpath a classpath directive
* @param urls a set of URLs to be added to the engine
* @return the new engine
*/
public EngineClassLoader newInstance(
- String name, URL base, LibraryDescriptor extensions, ClasspathDescriptor classpath, URL[] urls )
+ String name, LibraryDescriptor extensions, Classpath classpath, URL[] urls )
throws EngineException
{
try
{
EngineClassLoader engine = new EngineClassLoader( urls, this );
- DefaultApplianceRepository manager =
- new DefaultApplianceRepository( this, m_manager, name );
engine.enableLogging( getLogger() );
DefaultLocator context = new DefaultLocator();
context.put( "urn:assembly:home", m_home );
context.put( "urn:assembly:system", m_root );
- context.put( "urn:assembly:engine.base", base );
context.put( "urn:assembly:engine.bootstrap", "false" );
+ context.put( "urn:assembly:logging.manager", m_logging );
+ context.put( "urn:assembly:threads.manager", m_pool );
+
if( extensions != null )
{
context.put( "urn:assembly:engine.extensions", extensions );
}
- context.put( "urn:assembly:engine.classpath", classpath );
- context.put( "urn:assembly:logging.manager", m_logging );
- context.put( "urn:assembly:threads.manager", m_pool );
+ if( classpath != null )
+ {
+ context.put( "urn:assembly:engine.classpath", classpath );
+ }
+
+ DefaultApplianceRepository manager =
+ new DefaultApplianceRepository( this, m_manager, name );
context.put( "urn:assembly:appliance.repository", manager );
+
context.makeReadOnly();
engine.contextualize( context );
engine.initialize();
@@ -793,7 +784,7 @@
* @param base the base directory from which relative classpath entries
* will be resolved.
*/
- public void addClasspath( ClasspathDescriptor classpath ) throws MalformedURLException
+ private void addClasspath( Classpath classpath ) throws MalformedURLException
{
if( classpath == null )
{
@@ -816,7 +807,7 @@
try
{
- URL[] urls = ClasspathDescriptor.expand( m_home, classpath );
+ URL[] urls = classpath.expand();
for( int j = 0; j < urls.length; j++ )
{
URL inc = urls[ j ];
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org