From 4d492454dde097210c04b4cca33feb56fa0f9554 Mon Sep 17 00:00:00 2001 From: adammurdoch Date: Mon, 11 Mar 2002 06:02:22 +0000 Subject: [PATCH] Move ClassLoaderManager and DefaultClassLoaderManager into their own packages. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271809 13f79535-47bb-0310-9956-ffa450edef68 --- .../DefaultClassLoaderManager.java | 23 +++------------- .../classloader/Resources.properties | 6 +++++ .../components/deployer/DefaultDeployer.java | 1 + .../components/deployer/Resources.properties | 6 ----- .../components/embeddor/DefaultEmbeddor.java | 26 ++++++++++++------- .../components/embeddor/Resources.properties | 3 ++- .../classloader}/ClassLoaderManager.java | 2 +- .../components/AbstractComponentTest.java | 4 +-- .../components/AbstractComponentTest.java | 4 +-- 9 files changed, 34 insertions(+), 41 deletions(-) rename proposal/myrmidon/src/java/org/apache/myrmidon/components/{deployer => classloader}/DefaultClassLoaderManager.java (88%) create mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/classloader/Resources.properties rename proposal/myrmidon/src/java/org/apache/myrmidon/{components/deployer => interfaces/classloader}/ClassLoaderManager.java (93%) diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultClassLoaderManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/classloader/DefaultClassLoaderManager.java similarity index 88% rename from proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultClassLoaderManager.java rename to proposal/myrmidon/src/java/org/apache/myrmidon/components/classloader/DefaultClassLoaderManager.java index bb53bfcf2..c9307a6b7 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultClassLoaderManager.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/classloader/DefaultClassLoaderManager.java @@ -5,7 +5,7 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.myrmidon.components.deployer; +package org.apache.myrmidon.components.classloader; import java.io.File; import java.net.JarURLConnection; @@ -27,6 +27,7 @@ import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.service.Serviceable; +import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; import org.apache.myrmidon.interfaces.deployer.DeploymentException; import org.apache.myrmidon.interfaces.extensions.ExtensionManager; @@ -160,26 +161,8 @@ public class DefaultClassLoaderManager if( 0 != unsatisfied.size() ) { - final int size = unsatisfied.size(); - for( int i = 0; i < size; i++ ) - { - final Extension extension = (Extension)unsatisfied.get( i ); - final Object[] params = new Object[] - { - extension.getExtensionName(), - extension.getSpecificationVendor(), - extension.getSpecificationVersion(), - extension.getImplementationVendor(), - extension.getImplementationVendorId(), - extension.getImplementationVersion(), - extension.getImplementationURL() - }; - final String message = REZ.format( "missing.extension", params ); - getLogger().warn( message ); - } - final String message = - REZ.getString( "unsatisfied.extensions.error", new Integer( size ) ); + REZ.getString( "unsatisfied.extensions.error", new Integer( unsatisfied.size() ) ); throw new Exception( message ); } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/classloader/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/classloader/Resources.properties new file mode 100644 index 000000000..b425cbd5a --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/classloader/Resources.properties @@ -0,0 +1,6 @@ +create-classloader-for-file.error=Could not create ClassLoader for file {0}. +available-extensions.notice=The list of available extensions for type library includes; {0} +required-extensions.notice=The list of required extensions for type library includes; {0} +unsatisfied.extensions.error=Missing {0} extensions for type library. +no-file.error=Could not find type library "{0}". +file-is-dir.error=Type library "{0}" is a directory. diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java index 4cef3a4bf..43cfa8036 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java @@ -18,6 +18,7 @@ import org.apache.avalon.framework.logger.AbstractLogEnabled; import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.service.Serviceable; +import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; import org.apache.myrmidon.interfaces.converter.ConverterRegistry; import org.apache.myrmidon.interfaces.deployer.ConverterDefinition; import org.apache.myrmidon.interfaces.deployer.Deployer; diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Resources.properties index b8046f7a4..ae50b2dce 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Resources.properties +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Resources.properties @@ -13,8 +13,6 @@ deploy-services.error=Could not register services from "{0}". deploy-converter.error=Could not register converter that converts from {0} to {1}. deploy-type.error=Could not register type {0}/{1}. unknown-role4name.error=Unknown role "{0}". -no-file.error=Could not find type library "{0}". -file-is-dir.error=Type library "{0}" is a directory. typedef.no-classname.error=Must specify the classname parameter. typedef.no-name.error=Must specify name parameter. typedef.no-role.error=Must specify type parameter. @@ -27,7 +25,3 @@ build-type-descriptor.error=Could not build type library descriptor from "{0}". service-descriptor-version.error=Service descriptor version {0} is incompatible with current version {1}. build-service-descriptor.error=Could not build service descriptor from "{0}". -available-extensions.notice=The list of available extensions for type library includes; {0} -required-extensions.notice=The list of required extensions for type library includes; {0} -unsatisfied.extensions.error=Missing {0} extensions for type library. -create-classloader-for-file.error=Could not create ClassLoader for file {0}. diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java index 476969f8b..d011373ad 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java @@ -17,6 +17,7 @@ import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.Resources; import org.apache.avalon.excalibur.io.ExtensionFileFilter; import org.apache.avalon.excalibur.io.FileUtil; +import org.apache.avalon.framework.CascadingException; import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.logger.AbstractLogEnabled; @@ -25,9 +26,9 @@ import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.service.DefaultServiceManager; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.service.Serviceable; -import org.apache.myrmidon.components.deployer.ClassLoaderManager; import org.apache.myrmidon.interfaces.aspect.AspectManager; import org.apache.myrmidon.interfaces.builder.ProjectBuilder; +import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; import org.apache.myrmidon.interfaces.configurer.Configurer; import org.apache.myrmidon.interfaces.converter.ConverterRegistry; import org.apache.myrmidon.interfaces.deployer.Deployer; @@ -93,14 +94,22 @@ public class DefaultEmbeddor final Parameters parameters ) throws Exception { - String projectType = type; - if( null == projectType ) + try { - projectType = FileUtil.getExtension( location ); - } + String projectType = type; + if( null == projectType ) + { + projectType = FileUtil.getExtension( location ); + } - final ProjectBuilder builder = getProjectBuilder( projectType, parameters ); - return builder.build( location ); + final ProjectBuilder builder = getProjectBuilder( projectType, parameters ); + return builder.build( location ); + } + catch( final Exception e ) + { + final String message = REZ.getString( "create-project.error", location ); + throw new CascadingException( message, e ); + } } /** @@ -110,7 +119,6 @@ public class DefaultEmbeddor final Parameters parameters ) throws Exception { - final TypeFactory factory = m_typeManager.getFactory( ProjectBuilder.class ); final ProjectBuilder builder = (ProjectBuilder)factory.create( type ); setupObject( builder, m_workspaceServiceManager, parameters ); @@ -253,7 +261,7 @@ public class DefaultEmbeddor createComponent( RoleManager.class, PREFIX + "role.DefaultRoleManager" ); createComponent( AspectManager.class, PREFIX + "aspect.DefaultAspectManager" ); createComponent( Deployer.class, PREFIX + "deployer.DefaultDeployer" ); - createComponent( ClassLoaderManager.class, PREFIX + "deployer.DefaultClassLoaderManager" ); + createComponent( ClassLoaderManager.class, PREFIX + "classloader.DefaultClassLoaderManager" ); createComponent( Executor.class, PREFIX + "executor.AspectAwareExecutor" ); createComponent( PropertyResolver.class, PREFIX + "workspace.DefaultPropertyResolver" ); diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Resources.properties index c2adbe1a5..ad5d554af 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Resources.properties +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Resources.properties @@ -6,4 +6,5 @@ no-instantiate.error=Error instantiating class for {0} {1}. no-class.error=Could not find the class for {0} ({1}). bad-filename.error=Unable to retrieve filename for file {0}. home-dir.name=Myrmidon home directory -task-lib-dir.name=Task library directory \ No newline at end of file +task-lib-dir.name=Task library directory +create-project.error=Could not load the project definition from {0}. \ No newline at end of file diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/ClassLoaderManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/classloader/ClassLoaderManager.java similarity index 93% rename from proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/ClassLoaderManager.java rename to proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/classloader/ClassLoaderManager.java index 7c398d318..fd5780d55 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/ClassLoaderManager.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/interfaces/classloader/ClassLoaderManager.java @@ -5,7 +5,7 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.myrmidon.components.deployer; +package org.apache.myrmidon.interfaces.classloader; import java.io.File; import org.apache.myrmidon.interfaces.deployer.DeploymentException; diff --git a/proposal/myrmidon/src/test/org/apache/myrmidon/components/AbstractComponentTest.java b/proposal/myrmidon/src/test/org/apache/myrmidon/components/AbstractComponentTest.java index 3a49f0fb6..7bb07c7e7 100644 --- a/proposal/myrmidon/src/test/org/apache/myrmidon/components/AbstractComponentTest.java +++ b/proposal/myrmidon/src/test/org/apache/myrmidon/components/AbstractComponentTest.java @@ -18,16 +18,16 @@ import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.service.Serviceable; import org.apache.myrmidon.AbstractMyrmidonTest; +import org.apache.myrmidon.components.classloader.DefaultClassLoaderManager; import org.apache.myrmidon.components.configurer.DefaultConfigurer; import org.apache.myrmidon.components.converter.DefaultConverterRegistry; import org.apache.myrmidon.components.converter.DefaultMasterConverter; -import org.apache.myrmidon.components.deployer.ClassLoaderManager; -import org.apache.myrmidon.components.deployer.DefaultClassLoaderManager; import org.apache.myrmidon.components.deployer.DefaultDeployer; import org.apache.myrmidon.components.extensions.DefaultExtensionManager; import org.apache.myrmidon.components.role.DefaultRoleManager; import org.apache.myrmidon.components.type.DefaultTypeManager; import org.apache.myrmidon.components.workspace.DefaultPropertyResolver; +import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; import org.apache.myrmidon.interfaces.configurer.Configurer; import org.apache.myrmidon.interfaces.converter.ConverterRegistry; import org.apache.myrmidon.interfaces.deployer.Deployer; diff --git a/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/AbstractComponentTest.java b/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/AbstractComponentTest.java index 3a49f0fb6..7bb07c7e7 100644 --- a/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/AbstractComponentTest.java +++ b/proposal/myrmidon/src/testcases/org/apache/myrmidon/components/AbstractComponentTest.java @@ -18,16 +18,16 @@ import org.apache.avalon.framework.service.ServiceException; import org.apache.avalon.framework.service.ServiceManager; import org.apache.avalon.framework.service.Serviceable; import org.apache.myrmidon.AbstractMyrmidonTest; +import org.apache.myrmidon.components.classloader.DefaultClassLoaderManager; import org.apache.myrmidon.components.configurer.DefaultConfigurer; import org.apache.myrmidon.components.converter.DefaultConverterRegistry; import org.apache.myrmidon.components.converter.DefaultMasterConverter; -import org.apache.myrmidon.components.deployer.ClassLoaderManager; -import org.apache.myrmidon.components.deployer.DefaultClassLoaderManager; import org.apache.myrmidon.components.deployer.DefaultDeployer; import org.apache.myrmidon.components.extensions.DefaultExtensionManager; import org.apache.myrmidon.components.role.DefaultRoleManager; import org.apache.myrmidon.components.type.DefaultTypeManager; import org.apache.myrmidon.components.workspace.DefaultPropertyResolver; +import org.apache.myrmidon.interfaces.classloader.ClassLoaderManager; import org.apache.myrmidon.interfaces.configurer.Configurer; import org.apache.myrmidon.interfaces.converter.ConverterRegistry; import org.apache.myrmidon.interfaces.deployer.Deployer;