donaldp 2002/11/01 00:23:31
Modified: src/java/org/apache/avalon/phoenix BlockContext.java
src/java/org/apache/avalon/phoenix/components/application
DefaultBlockContext.java
src/java/org/apache/avalon/phoenix/components/classloader
ContextClassLoaderManager.java
DefaultClassLoaderManager.java
src/java/org/apache/avalon/phoenix/components/deployer
DefaultDeployer.java
src/java/org/apache/avalon/phoenix/components/kernel
DefaultApplicationContext.java DefaultKernel.java
Resources.properties SarEntry.java
src/java/org/apache/avalon/phoenix/components/kernel/beanshell
BeanShellKernelProxy.java
src/java/org/apache/avalon/phoenix/interfaces
ApplicationContext.java ClassLoaderManager.java
Kernel.java
src/java/org/apache/avalon/phoenix/metadata SarMetaData.java
src/test/org/apache/avalon/phoenix/components/application/test
MockApplicationContext.java
Added: src/java/org/apache/avalon/phoenix/interfaces
ClassLoaderSet.java
Log:
Add the first cut at allowing blocks to access classloaders trees declared in
environment.xml
Revision Changes Path
1.18 +12 -7
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/BlockContext.java
Index: BlockContext.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/BlockContext.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- BlockContext.java 11 Sep 2002 12:47:26 -0000 1.17
+++ BlockContext.java 1 Nov 2002 08:23:30 -0000 1.18
@@ -75,6 +75,18 @@
Logger getLogger( String name );
/**
+ * This method gives the block access to a named {@link ClassLoader}.
+ * The {@link ClassLoader}s for an application are declared in the
+ * <tt>environment.xml</tt> descriptor. See the Specification for details.
+ *
+ * @param name the name of the classloader
+ * @return the classloader
+ * @throws Exception if no such {@link ClassLoader}
+ */
+ ClassLoader getClassLoader( String name )
+ throws Exception;
+
+ /**
* Retrieve the proxy for this object.
* Each Block is referenced by other Blocks via their Proxy. When Phoenix
* shuts down the Block, it can automatically invalidate the proxy. Thus
@@ -112,13 +124,6 @@
* getProxy( Object other )
*/
//Object getProxy( Object other, Class[] interfaces );
-
- /**
- * This method gives you access to a named ClassLoader. The ClassLoaders
- * for an application are declared in the <tt>environment.xml</tt>
- * descriptor.
- */
- //ClassLoader getClassLoader( String name );
/**
* Retrieve the MBeanServer for this application.
1.20 +6 -5
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/application/DefaultBlockContext.java
Index: DefaultBlockContext.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/application/DefaultBlockContext.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- DefaultBlockContext.java 6 Sep 2002 09:42:35 -0000 1.19
+++ DefaultBlockContext.java 1 Nov 2002 08:23:30 -0000 1.20
@@ -85,13 +85,14 @@
return m_applicationContext.getResourceAsStream( name );
}
- /**
- * Retrieve logger coresponding to named category.
- *
- * @return the logger
- */
public Logger getLogger( final String name )
{
return m_applicationContext.getLogger( getName() ).getChildLogger( name );
+ }
+
+ public ClassLoader getClassLoader( final String name )
+ throws Exception
+ {
+ return m_applicationContext.getClassLoader( name );
}
}
1.11 +8 -16
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/classloader/ContextClassLoaderManager.java
Index: ContextClassLoaderManager.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/classloader/ContextClassLoaderManager.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ContextClassLoaderManager.java 1 Nov 2002 01:15:40 -0000 1.10
+++ ContextClassLoaderManager.java 1 Nov 2002 08:23:30 -0000 1.11
@@ -1,8 +1,10 @@
package org.apache.avalon.phoenix.components.classloader;
import java.io.File;
+import java.util.HashMap;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.phoenix.interfaces.ClassLoaderManager;
+import org.apache.avalon.phoenix.interfaces.ClassLoaderSet;
/**
* Basic ClassLoaderManager that just returns current
@@ -14,23 +16,13 @@
public class ContextClassLoaderManager
implements ClassLoaderManager
{
- /**
- * Return current Context {@link ClassLoader}.
- *
- * @param environment ignored
- * @param source the source of application. (usually the name of the .sar file
- * or else the same as baseDirectory)
- * @param baseDirectory the base directory of application
- * @param workDirectory the work directory of application
- * @return the ContextClassLoader created
- * @throws Exception if an error occurs
- */
- public ClassLoader createClassLoader( final Configuration environment,
- final File source,
- final File baseDirectory,
- final File workDirectory )
+ public ClassLoaderSet createClassLoaderSet( final Configuration environment,
+ final File baseDirectory,
+ final File workDirectory )
throws Exception
{
- return Thread.currentThread().getContextClassLoader();
+ final ClassLoader classLoader =
+ Thread.currentThread().getContextClassLoader();
+ return new ClassLoaderSet( classLoader, new HashMap() );
}
}
1.49 +18 -8
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/classloader/DefaultClassLoaderManager.java
Index: DefaultClassLoaderManager.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/classloader/DefaultClassLoaderManager.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- DefaultClassLoaderManager.java 1 Nov 2002 01:15:40 -0000 1.48
+++ DefaultClassLoaderManager.java 1 Nov 2002 08:23:30 -0000 1.49
@@ -28,6 +28,7 @@
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.phoenix.interfaces.ClassLoaderManager;
+import org.apache.avalon.phoenix.interfaces.ClassLoaderSet;
import org.apache.excalibur.loader.builder.LoaderBuilder;
import org.apache.excalibur.loader.builder.LoaderResolver;
import org.apache.excalibur.loader.metadata.ClassLoaderMetaData;
@@ -35,6 +36,7 @@
import org.apache.excalibur.loader.metadata.FileSetMetaData;
import org.apache.excalibur.loader.metadata.JoinMetaData;
import org.apache.excalibur.loader.verifier.ClassLoaderVerifier;
+import org.apache.excalibur.loader.reader.ClassLoaderSetReader;
import org.apache.excalibur.policy.builder.PolicyBuilder;
import org.apache.excalibur.policy.metadata.PolicyMetaData;
import org.apache.excalibur.policy.reader.PolicyReader;
@@ -83,6 +85,12 @@
private final LoaderBuilder m_builder = new LoaderBuilder();
/**
+ * Utility class to read {@link ClassLoaderSetMetaData} objects
+ * from XML trees.
+ */
+ private final ClassLoaderSetReader m_reader = new ClassLoaderSetReader();
+
+ /**
* The map of predefined ClassLoaders. In the current incarnation this only
* contains the system classloader.
*/
@@ -135,17 +143,14 @@
* {@link ClassLoader}.
*
* @param environment the configuration "environment.xml" for the application
- * @param source the source of application. (usually the name of the .sar file
- * or else the same as baseDirectory)
* @param homeDirectory the base directory of application
* @param workDirectory the work directory of application
* @return the ClassLoader created
* @throws Exception if an error occurs
*/
- public ClassLoader createClassLoader( final Configuration environment,
- final File source,
- final File homeDirectory,
- final File workDirectory )
+ public ClassLoaderSet createClassLoaderSet( final Configuration environment,
+ final File homeDirectory,
+ final File workDirectory )
throws Exception
{
//Configure policy
@@ -164,7 +169,9 @@
setupLogger( resolver );
final Map map =
m_builder.buildClassLoaders( metaData, resolver, m_predefinedLoaders );
- return (ClassLoader)map.get( metaData.getDefault() );
+ final ClassLoader defaultClassLoader =
+ (ClassLoader)map.get( metaData.getDefault() );
+ return new ClassLoaderSet( defaultClassLoader, map );
}
/**
@@ -176,6 +183,7 @@
* @return the {@link ClassLoaderMetaData} object
*/
private ClassLoaderSetMetaData getLoaderMetaData( final Configuration
environment )
+ throws Exception
{
final boolean loaderDefined = isClassLoaderDefined( environment );
if( !loaderDefined )
@@ -184,7 +192,9 @@
}
else
{
- throw new IllegalStateException( "Not implemented yet");
+ final Configuration loaderConfig = environment.getChild( "classloader"
);
+ final Element element = ConfigurationUtil.toElement( loaderConfig );
+ return m_reader.build( element );
}
}
1.61 +17 -15
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/deployer/DefaultDeployer.java
Index: DefaultDeployer.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/deployer/DefaultDeployer.java,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- DefaultDeployer.java 1 Nov 2002 01:15:40 -0000 1.60
+++ DefaultDeployer.java 1 Nov 2002 08:23:30 -0000 1.61
@@ -36,6 +36,7 @@
import org.apache.avalon.phoenix.interfaces.Installer;
import org.apache.avalon.phoenix.interfaces.Kernel;
import org.apache.avalon.phoenix.interfaces.LogManager;
+import org.apache.avalon.phoenix.interfaces.ClassLoaderSet;
import org.apache.avalon.phoenix.metadata.BlockListenerMetaData;
import org.apache.avalon.phoenix.metadata.BlockMetaData;
import org.apache.avalon.phoenix.metadata.SarMetaData;
@@ -77,14 +78,14 @@
public void service( final ServiceManager serviceManager )
throws ServiceException
{
- m_kernel = (Kernel) serviceManager.lookup( Kernel.ROLE );
- m_repository = (ConfigurationRepository) serviceManager.
+ m_kernel = (Kernel)serviceManager.lookup( Kernel.ROLE );
+ m_repository = (ConfigurationRepository)serviceManager.
lookup( ConfigurationRepository.ROLE );
- m_classLoaderManager = (ClassLoaderManager) serviceManager.
+ m_classLoaderManager = (ClassLoaderManager)serviceManager.
lookup( ClassLoaderManager.ROLE );
- m_logManager = (LogManager) serviceManager.lookup( LogManager.ROLE );
- m_validator = (ConfigurationValidator) serviceManager.lookup(
ConfigurationValidator.ROLE );
- m_installer = (Installer) serviceManager.lookup( Installer.ROLE );
+ m_logManager = (LogManager)serviceManager.lookup( LogManager.ROLE );
+ m_validator = (ConfigurationValidator)serviceManager.lookup(
ConfigurationValidator.ROLE );
+ m_installer = (Installer)serviceManager.lookup( Installer.ROLE );
}
public void initialize()
@@ -102,7 +103,7 @@
{
final Set set = m_installations.keySet();
final String[] applications =
- (String[]) set.toArray( new String[ set.size() ] );
+ (String[])set.toArray( new String[ set.size() ] );
for( int i = 0; i < applications.length; i++ )
{
final String name = applications[ i ];
@@ -131,7 +132,7 @@
throws DeploymentException
{
final Installation installation =
- (Installation) m_installations.get( name );
+ (Installation)m_installations.get( name );
if( null == installation )
{
final String message =
@@ -160,7 +161,7 @@
throws DeploymentException
{
final Installation installation =
- (Installation) m_installations.remove( name );
+ (Installation)m_installations.remove( name );
if( null == installation )
{
final String message =
@@ -247,11 +248,11 @@
final File directory = installation.getDirectory();
- final ClassLoader classLoader =
- m_classLoaderManager.createClassLoader( environment,
- installation.getSource(),
- installation.getDirectory(),
-
installation.getWorkDirectory() );
+ final ClassLoaderSet classLoaderSet =
+ m_classLoaderManager.createClassLoaderSet( environment,
+
installation.getDirectory(),
+
installation.getWorkDirectory() );
+ final ClassLoader classLoader = classLoaderSet.getDefaultClassLoader();
//assemble all the blocks for application
final SarMetaData metaData =
m_assembler.assembleSar( name, assembly, directory, classLoader );
@@ -271,7 +272,8 @@
m_kernel.addApplication( metaData,
installation.getWorkDirectory(),
classLoader,
- logger );
+ logger,
+ classLoaderSet.getClassLoaders() );
m_installations.put( metaData.getName(), installation );
1.31 +23 -1
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/DefaultApplicationContext.java
Index: DefaultApplicationContext.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/DefaultApplicationContext.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- DefaultApplicationContext.java 2 Oct 2002 11:25:55 -0000 1.30
+++ DefaultApplicationContext.java 1 Nov 2002 08:23:30 -0000 1.31
@@ -12,6 +12,7 @@
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.HashMap;
+import java.util.Map;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.activity.Initializable;
@@ -71,6 +72,11 @@
private final File m_workDirectory;
/**
+ * The map containing all the named loaders.
+ */
+ private final Map m_loaders;
+
+ /**
* The kernel associate with context
*/
private Kernel m_kernel;
@@ -78,7 +84,8 @@
protected DefaultApplicationContext( final SarMetaData metaData,
final File workDirectory,
final ClassLoader classLoader,
- final Logger hierarchy )
+ final Logger hierarchy,
+ final Map loaders )
{
if( null == metaData )
{
@@ -101,6 +108,7 @@
m_classLoader = classLoader;
m_hierarchy = hierarchy;
m_workDirectory = workDirectory;
+ m_loaders = loaders;
final DefaultThreadContextPolicy policy = new DefaultThreadContextPolicy();
final HashMap map = new HashMap( 1 );
@@ -274,6 +282,20 @@
component );
throw new ConfigurationException( message );
}
+ }
+
+ public ClassLoader getClassLoader( final String name )
+ throws Exception
+ {
+ final ClassLoader classLoader = (ClassLoader)m_loaders.get(name);
+ if( null == classLoader )
+ {
+ final String message =
+ REZ.getString( "applicationcontext.error.noloader",
+ name );
+ throw new Exception( message );
+ }
+ return classLoader;
}
/**
1.82 +7 -3
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/DefaultKernel.java
Index: DefaultKernel.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/DefaultKernel.java,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- DefaultKernel.java 28 Oct 2002 07:13:34 -0000 1.81
+++ DefaultKernel.java 1 Nov 2002 08:23:30 -0000 1.82
@@ -9,6 +9,7 @@
import java.io.File;
import java.util.HashMap;
+import java.util.Map;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.framework.CascadingException;
@@ -240,12 +241,14 @@
public void addApplication( final SarMetaData metaData,
final File workDirectory,
final ClassLoader classLoader,
- final Logger logger )
+ final Logger logger,
+ final Map classloaders )
throws Exception
{
final String name = metaData.getName();
final SarEntry entry =
- new SarEntry( metaData, workDirectory, classLoader, logger );
+ new SarEntry( metaData, workDirectory, classLoader,
+ logger, classloaders );
m_entries.put( name, entry );
try
@@ -270,7 +273,8 @@
new DefaultApplicationContext( metaData,
entry.getWorkDirectory(),
entry.getClassLoader(),
- entry.getLogger() );
+ entry.getLogger(),
+ entry.getClassLoaders() );
ContainerUtil.enableLogging( context, createContextLogger( name ) );
ContainerUtil.service( context, createServiceManager() );
1.8 +2 -1
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/Resources.properties
Index: Resources.properties
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/Resources.properties,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Resources.properties 13 Jul 2002 19:39:11 -0000 1.7
+++ Resources.properties 1 Nov 2002 08:23:30 -0000 1.8
@@ -13,4 +13,5 @@
frame.error.thread.missing=No such thread pool {0}.
frame.error.thread.create=Error creating thread pool {0}.
-applicationcontext.error.invalidconfig=Block "{0}" has invalid configuration
information
\ No newline at end of file
+applicationcontext.error.invalidconfig=Block "{0}" has invalid configuration
information
+applicationcontext.error.noloader=Unable to locate ClassLoader named "{0}".
\ No newline at end of file
1.17 +18 -5
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/SarEntry.java
Index: SarEntry.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/SarEntry.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- SarEntry.java 29 Oct 2002 22:48:36 -0000 1.16
+++ SarEntry.java 1 Nov 2002 08:23:30 -0000 1.17
@@ -8,6 +8,7 @@
package org.apache.avalon.phoenix.components.kernel;
import java.io.File;
+import java.util.Map;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.phoenix.interfaces.Application;
import org.apache.avalon.phoenix.metadata.SarMetaData;
@@ -19,16 +20,18 @@
*/
final class SarEntry
{
- private SarMetaData m_metaData;
- private ClassLoader m_classLoader;
+ private final SarMetaData m_metaData;
+ private final ClassLoader m_classLoader;
+ private final Logger m_logger;
+ private final File m_workDirectory;
+ private final Map m_classLoaders;
private Application m_application;
- private Logger m_logger;
- private File m_workDirectory;
protected SarEntry( final SarMetaData metaData,
final File workDirectory,
final ClassLoader classLoader,
- final Logger logger )
+ final Logger logger,
+ final Map classLoaders )
{
if( null == metaData )
{
@@ -46,11 +49,16 @@
{
throw new NullPointerException( "workDirectory" );
}
+ if( null == classLoaders )
+ {
+ throw new NullPointerException( "classLoaders" );
+ }
m_metaData = metaData;
m_classLoader = classLoader;
m_logger = logger;
m_workDirectory = workDirectory;
+ m_classLoaders = classLoaders;
}
public File getWorkDirectory()
@@ -81,5 +89,10 @@
public ClassLoader getClassLoader()
{
return m_classLoader;
+ }
+
+ public Map getClassLoaders()
+ {
+ return m_classLoaders;
}
}
1.7 +3 -1
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/beanshell/BeanShellKernelProxy.java
Index: BeanShellKernelProxy.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/kernel/beanshell/BeanShellKernelProxy.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- BeanShellKernelProxy.java 28 Oct 2002 07:13:34 -0000 1.6
+++ BeanShellKernelProxy.java 1 Nov 2002 08:23:30 -0000 1.7
@@ -8,6 +8,7 @@
package org.apache.avalon.phoenix.components.kernel.beanshell;
import java.io.File;
+import java.util.Map;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.phoenix.interfaces.Application;
@@ -30,7 +31,8 @@
public void addApplication( final SarMetaData metaData,
final File workDirectory,
final ClassLoader classLoader,
- final Logger logger )
+ final Logger logger,
+ final Map classloaders )
throws Exception
{
throw new UnsupportedOperationException( "This is not supported for
non-kernel visitors" );
1.19 +8 -0
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/ApplicationContext.java
Index: ApplicationContext.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/ApplicationContext.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ApplicationContext.java 2 Oct 2002 11:25:56 -0000 1.18
+++ ApplicationContext.java 1 Nov 2002 08:23:30 -0000 1.19
@@ -61,6 +61,14 @@
ClassLoader getClassLoader();
/**
+ * This method grants access to a named ClassLoader. The ClassLoaders
+ * for an application are declared in the <tt>environment.xml</tt>
+ * descriptor. See the Specification for details.
+ */
+ ClassLoader getClassLoader( String name )
+ throws Exception;
+
+ /**
* Retrieve a resource from the SAR file. The specified
* name is relative the root of the archive. So you could
* use it to retrieve a html page from within sar by loading
1.16 +4 -9
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/ClassLoaderManager.java
Index: ClassLoaderManager.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/ClassLoaderManager.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ClassLoaderManager.java 1 Nov 2002 01:15:40 -0000 1.15
+++ ClassLoaderManager.java 1 Nov 2002 08:23:30 -0000 1.16
@@ -24,21 +24,16 @@
String ROLE = ClassLoaderManager.class.getName();
/**
- * Create a {@link ClassLoader} for a specific application.
+ * Create a {@link ClassLoaderSet} for a specific application.
*
* @param environment the configuration "environment.xml" for the application
- * @param source the source of application. (usually the name of the .sar file
- * or else the same as baseDirectory)
* @param baseDirectory the base directory of application
* @param workDirectory the work directory of application
- * @param classPath the list of URLs in applications deployment
- * @return the ClassLoader created
+ * @return the ClassLoaderSet created
* @throws Exception if an error occurs
*/
- ClassLoader createClassLoader( Configuration environment,
- File source,
+ ClassLoaderSet createClassLoaderSet( Configuration environment,
File baseDirectory,
- File workDirectory
- )
+ File workDirectory )
throws Exception;
}
1.17 +3 -2
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/Kernel.java
Index: Kernel.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/Kernel.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- Kernel.java 28 Oct 2002 07:13:34 -0000 1.16
+++ Kernel.java 1 Nov 2002 08:23:31 -0000 1.17
@@ -8,7 +8,7 @@
package org.apache.avalon.phoenix.interfaces;
import java.io.File;
-import org.apache.avalon.framework.configuration.Configuration;
+import java.util.Map;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.phoenix.metadata.SarMetaData;
@@ -25,7 +25,8 @@
void addApplication( SarMetaData metaData,
File workDirectory,
ClassLoader classLoader,
- Logger logger )
+ Logger logger,
+ Map classloaders )
throws Exception;
/**
1.1
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/interfaces/ClassLoaderSet.java
Index: ClassLoaderSet.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.avalon.phoenix.interfaces;
import java.util.Map;
/**
* A dodgy class to hold all apps classloaders.
*
* @author <a href="mailto:peter at apache.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2002/11/01 08:23:31 $
* @todo Remove me when kernel is reworked!
*/
public final class ClassLoaderSet
{
private final ClassLoader m_defaultClassLoader;
private final Map m_classLoaders;
public ClassLoaderSet( final ClassLoader defaultClassLoader,
final Map classLoaders )
{
if( null == defaultClassLoader )
{
throw new NullPointerException( "defaultClassLoader" );
}
if( null == classLoaders )
{
throw new NullPointerException( "classLoaders" );
}
m_defaultClassLoader = defaultClassLoader;
m_classLoaders = classLoaders;
}
public ClassLoader getDefaultClassLoader()
{
return m_defaultClassLoader;
}
public Map getClassLoaders()
{
return m_classLoaders;
}
}
1.10 +0 -3
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/metadata/SarMetaData.java
Index: SarMetaData.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/metadata/SarMetaData.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SarMetaData.java 6 Aug 2002 11:57:41 -0000 1.9
+++ SarMetaData.java 1 Nov 2002 08:23:31 -0000 1.10
@@ -17,11 +17,8 @@
public class SarMetaData
{
private String m_name;
-
private File m_homeDirectory;
-
private BlockMetaData[] m_blocks;
-
private BlockListenerMetaData[] m_listeners;
public SarMetaData( final String name,
1.3 +7 -1
jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/application/test/MockApplicationContext.java
Index: MockApplicationContext.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/application/test/MockApplicationContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MockApplicationContext.java 2 Oct 2002 11:25:56 -0000 1.2
+++ MockApplicationContext.java 1 Nov 2002 08:23:31 -0000 1.3
@@ -79,6 +79,12 @@
throw new ConfigurationException( "I can't do that dave!" );
}
+ public ClassLoader getClassLoader( String name )
+ throws Exception
+ {
+ throw new Exception( "I can't do that dave!" );
+ }
+
public Logger getLogger( String name )
{
return m_logger;
--
To unsubscribe, e-mail: <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>