From c748e33dc59acb6c057543af70964487dedf97c3 Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Wed, 29 Aug 2001 15:34:58 +0000 Subject: [PATCH] i18n-ized remaining components. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269642 13f79535-47bb-0310-9956-ffa450edef68 --- .../components/embeddor/DefaultEmbeddor.java | 50 ++++++---- .../components/embeddor/Resources.properties | 7 ++ .../executor/AspectAwareExecutor.java | 89 ++++++++++-------- .../components/executor/DefaultExecutor.java | 94 +++++++++++++------ .../components/executor/Resources.properties | 19 ++++ .../components/model/DefaultProject.java | 13 ++- .../components/model/Resources.properties | 2 + .../components/role/DefaultRoleManager.java | 13 ++- .../components/role/Resources.properties | 2 + .../components/type/DefaultTypeFactory.java | 12 ++- .../components/type/DefaultTypeManager.java | 9 +- .../type/MultiSourceTypeFactory.java | 18 ++-- .../components/type/Resources.properties | 5 + .../workspace/DefaultWorkspace.java | 53 +++++++---- .../components/workspace/Resources.properties | 11 +++ 15 files changed, 269 insertions(+), 128 deletions(-) create mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Resources.properties create mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Resources.properties create mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Resources.properties create mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/role/Resources.properties create mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/type/Resources.properties create mode 100644 proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Resources.properties 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 654ec049e..5da0f1907 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 @@ -10,6 +10,8 @@ package org.apache.myrmidon.components.embeddor; import java.io.File; import java.io.FilenameFilter; import java.util.Map; +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.activity.Initializable; @@ -28,11 +30,11 @@ import org.apache.myrmidon.components.converter.MasterConverter; import org.apache.myrmidon.components.deployer.Deployer; import org.apache.myrmidon.components.deployer.DeploymentException; import org.apache.myrmidon.components.executor.Executor; -import org.apache.myrmidon.components.workspace.Workspace; import org.apache.myrmidon.components.model.Project; import org.apache.myrmidon.components.role.RoleManager; import org.apache.myrmidon.components.type.TypeFactory; import org.apache.myrmidon.components.type.TypeManager; +import org.apache.myrmidon.components.workspace.Workspace; /** * Default implementation of Embeddor. @@ -44,6 +46,9 @@ public class DefaultEmbeddor extends AbstractLoggable implements Embeddor { + private static final Resources REZ = + ResourceManager.getPackageResources( DefaultEmbeddor.class ); + private Deployer m_deployer; private RoleManager m_roleManager; @@ -75,8 +80,8 @@ public class DefaultEmbeddor m_parameters = parameters; } - public Project createProject( final String location, - String type, + public Project createProject( final String location, + String type, final Parameters parameters ) throws Exception { @@ -94,7 +99,7 @@ public class DefaultEmbeddor return FileUtil.getExtension( location ); } - private ProjectBuilder getProjectBuilder( final String type, + private ProjectBuilder getProjectBuilder( final String type, final Parameters parameters ) throws Exception { @@ -112,12 +117,12 @@ public class DefaultEmbeddor if( builder instanceof Parameterizable ) { ((Parameterizable)builder).parameterize( parameters ); - } + } if( builder instanceof Initializable ) { ((Initializable)builder).initialize(); - } + } return builder; } @@ -126,7 +131,7 @@ public class DefaultEmbeddor throws Exception { final String component = getParameter( Workspace.ROLE ); - final Workspace workspace = + final Workspace workspace = (Workspace)createComponent( component, Workspace.class ); setupLogger( workspace ); @@ -140,12 +145,12 @@ public class DefaultEmbeddor if( workspace instanceof Parameterizable ) { ((Parameterizable)workspace).parameterize( parameters ); - } + } if( workspace instanceof Initializable ) { ((Initializable)workspace).initialize(); - } + } return workspace; } @@ -416,11 +421,13 @@ public class DefaultEmbeddor { if( !file.exists() ) { - throw new Exception( name + " (" + file + ") does not exist" ); + final String message = REZ.getString( "file-no-exist.error", name, file ); + throw new Exception( message ); } else if( !file.isDirectory() ) { - throw new Exception( name + " (" + file + ") is not a directory" ); + final String message = REZ.getString( "file-not-dir.error", name, file ); + throw new Exception( message ); } } @@ -464,28 +471,31 @@ public class DefaultEmbeddor if( !clazz.isInstance( object ) ) { - throw new Exception( "Object " + component + " is not an instance of " + - clazz ); + final String message = REZ.getString( "bad-type.error", component, clazz.getName() ); + throw new Exception( message ); } return object; } catch( final IllegalAccessException iae ) { - throw new Exception( "Non-public constructor for " + clazz + " " + component ); + final String message = REZ.getString( "bad-ctor.error", clazz.getName(), component ); + throw new Exception( message ); } catch( final InstantiationException ie ) { - throw new Exception( "Error instantiating class for " + clazz + " " + component ); + final String message = + REZ.getString( "no-instantiate.error", clazz.getName(), component ); + throw new Exception( message ); } catch( final ClassNotFoundException cnfe ) { - throw new Exception( "Could not find the class for " + clazz + - " (" + component + ")" ); + final String message = + REZ.getString( "no-class.error", clazz.getName(), component ); + throw new Exception( message ); } } - private void deployFromDirectory( final Deployer deployer, final File directory, final FilenameFilter filter ) @@ -522,8 +532,8 @@ public class DefaultEmbeddor } catch( final Exception e ) { - throw new DeploymentException( "Unable to retrieve filename for file " + - files[ i ], e ); + final String message = REZ.getString( "bad-filename.error", files[ i ] ); + throw new DeploymentException( message, e ); } } } 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 new file mode 100644 index 000000000..48f5b2fc2 --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Resources.properties @@ -0,0 +1,7 @@ +file-no-exist.error={0} ({1}) does not exist. +file-not-dir.error={0} ({1}) is not a directory. +bad-type.error=Object {0} is not an instance of {1}. +bad-ctor.error=Non-public constructor for {0} {1}. +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}. \ No newline at end of file diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/AspectAwareExecutor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/AspectAwareExecutor.java index 965dde3dc..db548b846 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/AspectAwareExecutor.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/AspectAwareExecutor.java @@ -7,13 +7,15 @@ */ package org.apache.myrmidon.components.executor; -import java.util.HashMap; import java.util.ArrayList; +import java.util.HashMap; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; import org.apache.avalon.framework.component.ComponentException; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.configuration.Configuration; -import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.configuration.DefaultConfiguration; +import org.apache.avalon.framework.parameters.Parameters; import org.apache.log.Logger; import org.apache.myrmidon.api.Task; import org.apache.myrmidon.api.TaskContext; @@ -24,6 +26,9 @@ import org.apache.myrmidon.components.aspect.AspectManager; public class AspectAwareExecutor extends DefaultExecutor { + private static final Resources REZ = + ResourceManager.getPackageResources( AspectAwareExecutor.class ); + private final static Parameters EMPTY_PARAMETERS; private final static Configuration[] EMPTY_ELEMENTS = new Configuration[ 0 ]; @@ -71,33 +76,33 @@ public class AspectAwareExecutor taskModel = getAspectManager().preCreate( taskModel ); taskModel = prepareAspects( taskModel ); - getLogger().debug( "Pre-Create" ); + debug( "creating.notice" ); final Task task = createTask( taskModel.getName(), frame ); getAspectManager().postCreate( task ); - getLogger().debug( "Pre-Loggable" ); + debug( "logger.notice" ); final Logger logger = frame.getLogger(); getAspectManager().preLoggable( logger ); doLoggable( task, taskModel, logger ); - getLogger().debug( "Contextualizing" ); + debug( "contextualizing.notice" ); doContextualize( task, taskModel, frame.getContext() ); - getLogger().debug( "Composing" ); + debug( "composing.notice" ); doCompose( task, taskModel, frame.getComponentManager() ); - getLogger().debug( "Configuring" ); + debug( "configuring.notice" ); getAspectManager().preConfigure( taskModel ); doConfigure( task, taskModel, frame.getContext() ); - getLogger().debug( "Initializing" ); + debug( "initializing.notice" ); doInitialize( task, taskModel ); - getLogger().debug( "Executing" ); + debug( "executing.notice" ); getAspectManager().preExecute(); doExecute( taskModel, task ); - getLogger().debug( "Disposing" ); + debug( "disposing.notice" ); getAspectManager().preDestroy(); doDispose( task, taskModel ); } @@ -114,7 +119,7 @@ public class AspectAwareExecutor private final Configuration prepareAspects( final Configuration taskModel ) throws TaskException { - final DefaultConfiguration newTaskModel = + final DefaultConfiguration newTaskModel = new DefaultConfiguration( taskModel.getName(), taskModel.getLocation() ); final HashMap parameterMap = new HashMap(); final HashMap elementMap = new HashMap(); @@ -128,12 +133,12 @@ public class AspectAwareExecutor return newTaskModel; } - private final void dispatchAspectsSettings( final HashMap parameterMap, + private final void dispatchAspectsSettings( final HashMap parameterMap, final HashMap elementMap ) throws TaskException { final String[] names = getAspectManager().getNames(); - + for( int i = 0; i < names.length; i++ ) { final ArrayList elementList = (ArrayList)elementMap.remove( names[ i ] ); @@ -147,18 +152,18 @@ public class AspectAwareExecutor { elements = (Configuration[])elementList.toArray( EMPTY_ELEMENTS ); } - + dispatch( names[ i ], parameters, elements ); } } - private final void checkForUnusedSettings( final HashMap parameterMap, + private final void checkForUnusedSettings( final HashMap parameterMap, final HashMap elementMap ) throws TaskException { if( 0 != parameterMap.size() ) { - final String[] namespaces = + final String[] namespaces = (String[])parameterMap.keySet().toArray( new String[ 0 ] ); for( int i = 0; i < namespaces.length; i++ ) @@ -166,48 +171,51 @@ public class AspectAwareExecutor final String namespace = namespaces[ i ]; final Parameters parameters = (Parameters)parameterMap.get( namespace ); final ArrayList elementList = (ArrayList)elementMap.remove( namespace ); - + Configuration[] elements = null; - + if( null == elementList ) elements = EMPTY_ELEMENTS; else { elements = (Configuration[])elementList.toArray( EMPTY_ELEMENTS ); } - + unusedSetting( namespace, parameters, elements ); } } if( 0 != elementMap.size() ) { - final String[] namespaces = + final String[] namespaces = (String[])elementMap.keySet().toArray( new String[ 0 ] ); - + for( int i = 0; i < namespaces.length; i++ ) { final String namespace = namespaces[ i ]; final ArrayList elementList = (ArrayList)elementMap.remove( namespace ); - final Configuration[] elements = + final Configuration[] elements = (Configuration[])elementList.toArray( EMPTY_ELEMENTS ); - + unusedSetting( namespace, EMPTY_PARAMETERS, elements ); } } } - private void unusedSetting( final String namespace, - final Parameters parameters, + private void unusedSetting( final String namespace, + final Parameters parameters, final Configuration[] elements ) throws TaskException { - throw new TaskException( "Unused aspect settings for namespace " + namespace + - " (parameterCount=" + parameters.getNames().length + - " elementCount=" + elements.length + ")" ); + final String message = + REZ.getString( "unused-settings.error", + namespace, + Integer.toString( parameters.getNames().length ), + Integer.toString( elements.length ) ); + throw new TaskException( message ); } - private void dispatch( final String namespace, - final Parameters parameters, + private void dispatch( final String namespace, + final Parameters parameters, final Configuration[] elements ) throws TaskException { @@ -215,13 +223,16 @@ public class AspectAwareExecutor if( getLogger().isDebugEnabled() ) { - getLogger().debug( "Dispatching Aspect Settings to: " + namespace + - " parameterCount=" + parameters.getNames().length + - " elementCount=" + elements.length ); + final String message = + REZ.getString( "dispatch-settings.notice", + namespace, + Integer.toString( parameters.getNames().length ), + Integer.toString( elements.length ) ); + getLogger().debug( message ); } } - private final void processElements( final Configuration taskModel, + private final void processElements( final Configuration taskModel, final DefaultConfiguration newTaskModel, final HashMap map ) { @@ -230,8 +241,8 @@ public class AspectAwareExecutor { final String name = elements[ i ].getName(); final int index = name.indexOf( ':' ); - - if( -1 == index ) + + if( -1 == index ) { newTaskModel.addChild( elements[ i ] ); } @@ -245,7 +256,7 @@ public class AspectAwareExecutor } } - private final void processAttributes( final Configuration taskModel, + private final void processAttributes( final Configuration taskModel, final DefaultConfiguration newTaskModel, final HashMap map ) { @@ -256,8 +267,8 @@ public class AspectAwareExecutor final String value = taskModel.getAttribute( name, null ); final int index = name.indexOf( ':' ); - - if( -1 == index ) + + if( -1 == index ) { newTaskModel.setAttribute( name, value ); } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutor.java index 2e22a30dd..1ebc4cb44 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutor.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutor.java @@ -7,6 +7,8 @@ */ package org.apache.myrmidon.components.executor; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.component.Component; @@ -34,6 +36,9 @@ public class DefaultExecutor extends AbstractLoggable implements Executor, Composable { + private static final Resources REZ = + ResourceManager.getPackageResources( DefaultExecutor.class ); + private Configurer m_configurer; /** @@ -51,30 +56,40 @@ public class DefaultExecutor public void execute( final Configuration taskModel, final ExecutionFrame frame ) throws TaskException { - getLogger().debug( "Creating" ); + debug( "creating.notice" ); final Task task = createTask( taskModel.getName(), frame ); + + debug( "logger.notice" ); doLoggable( task, taskModel, frame.getLogger() ); - getLogger().debug( "Contextualizing" ); + debug( "contextualizing.notice" ); doContextualize( task, taskModel, frame.getContext() ); - getLogger().debug( "Composing" ); + debug( "composing.notice" ); doCompose( task, taskModel, frame.getComponentManager() ); - getLogger().debug( "Configuring" ); + debug( "configuring.notice" ); doConfigure( task, taskModel, frame.getContext() ); - getLogger().debug( "Initializing" ); + debug( "initializing.notice" ); doInitialize( task, taskModel ); - getLogger().debug( "Running" ); - + debug( "executing.notice" ); task.execute(); - getLogger().debug( "Disposing" ); + debug( "disposing.notice" ); doDispose( task, taskModel ); } + protected final void debug( final String key ) + { + if( getLogger().isDebugEnabled() ) + { + final String message = REZ.getString( key ); + getLogger().debug( message ); + } + } + protected final Task createTask( final String name, final ExecutionFrame frame ) throws TaskException { @@ -85,7 +100,8 @@ public class DefaultExecutor } catch( final TypeException te ) { - throw new TaskException( "Unable to create task " + name, te ); + final String message = REZ.getString( "no-create.error", name ); + throw new TaskException( message, te ); } } @@ -97,13 +113,16 @@ public class DefaultExecutor try { m_configurer.configure( task, taskModel, context ); } catch( final Throwable throwable ) { - throw new TaskException( "Error configuring task " + taskModel.getName() + " at " + - taskModel.getLocation() + "(Reason: " + - throwable.getMessage() + ")", throwable ); + final String message = + REZ.getString( "config.error", + taskModel.getName(), + taskModel.getLocation(), + throwable.getMessage() ); + throw new TaskException( message, throwable ); } } - protected final void doCompose( final Task task, + protected final void doCompose( final Task task, final Configuration taskModel, final ComponentManager componentManager ) throws TaskException @@ -113,9 +132,12 @@ public class DefaultExecutor try { ((Composable)task).compose( componentManager ); } catch( final Throwable throwable ) { - throw new TaskException( "Error composing task " + taskModel.getName() + " at " + - taskModel.getLocation() + "(Reason: " + - throwable.getMessage() + ")", throwable ); + final String message = + REZ.getString( "compose.error", + taskModel.getName(), + taskModel.getLocation(), + throwable.getMessage() ); + throw new TaskException( message, throwable ); } } } @@ -134,9 +156,12 @@ public class DefaultExecutor } catch( final Throwable throwable ) { - throw new TaskException( "Error contextualizing task " + taskModel.getName() + " at " + - taskModel.getLocation() + "(Reason: " + - throwable.getMessage() + ")", throwable ); + final String message = + REZ.getString( "compose.error", + taskModel.getName(), + taskModel.getLocation(), + throwable.getMessage() ); + throw new TaskException( message, throwable ); } } @@ -148,15 +173,18 @@ public class DefaultExecutor try { ((Disposable)task).dispose(); } catch( final Throwable throwable ) { - throw new TaskException( "Error disposing task " + taskModel.getName() + " at " + - taskModel.getLocation() + "(Reason: " + - throwable.getMessage() + ")", throwable ); + final String message = + REZ.getString( "dispose.error", + taskModel.getName(), + taskModel.getLocation(), + throwable.getMessage() ); + throw new TaskException( message, throwable ); } } } - protected final void doLoggable( final Task task, - final Configuration taskModel, + protected final void doLoggable( final Task task, + final Configuration taskModel, final Logger logger ) throws TaskException { @@ -165,9 +193,12 @@ public class DefaultExecutor try { ((Loggable)task).setLogger( logger ); } catch( final Throwable throwable ) { - throw new TaskException( "Error setting logger for task " + taskModel.getName() + - " at " + taskModel.getLocation() + "(Reason: " + - throwable.getMessage() + ")", throwable ); + final String message = + REZ.getString( "logger.error", + taskModel.getName(), + taskModel.getLocation(), + throwable.getMessage() ); + throw new TaskException( message, throwable ); } } } @@ -180,9 +211,12 @@ public class DefaultExecutor try { ((Initializable)task).initialize(); } catch( final Throwable throwable ) { - throw new TaskException( "Error initializing task " + taskModel.getName() + " at " + - taskModel.getLocation() + "(Reason: " + - throwable.getMessage() + ")", throwable ); + final String message = + REZ.getString( "init.error", + taskModel.getName(), + taskModel.getLocation(), + throwable.getMessage() ); + throw new TaskException( message, throwable ); } } } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Resources.properties new file mode 100644 index 000000000..7d5942651 --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Resources.properties @@ -0,0 +1,19 @@ +creating.notice=Creating. +logger.notice=Setting Logger. +contextualizing.notice=Contextualizing. +composing.notice=Composing. +configuring.notice=Configuring. +initializing.notice=Initializing. +executing.notice=Executing. +disposing.notice=Disposing. + +no-create.error=Unable to create task {0}. +config.error=Error configuring task {0} at {1} (Reason: {2}). +compose.error=Error composing task {0} at {1} (Reason: {2}). +context.error=Error contextualizing task {0} at {1} (Reason: {2}). +dispose.error=Error disposing task {0} at {1} (Reason: {2}). +init.error=Error initializing task {0} at {1} (Reason: {2}). +logger.error=Error setting logger for task {0} at {1} (Reason: {2}). + +unused-settings.error=Unused aspect settings for namespace {0} (parameterCount={1} elementCount={2}). +dispatch-settings.notice=Dispatching Aspect Settings to namespace {0} (parameterCount={1} elementCount={2}). \ No newline at end of file diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/DefaultProject.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/DefaultProject.java index 83ec132e5..312bec537 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/DefaultProject.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/DefaultProject.java @@ -11,6 +11,8 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; /** * Default project implementation. @@ -20,6 +22,9 @@ import java.util.HashMap; public class DefaultProject implements Project { + private static final Resources REZ = + ResourceManager.getPackageResources( DefaultProject.class ); + ///The imports private final ArrayList m_imports = new ArrayList(); @@ -167,8 +172,8 @@ public class DefaultProject { if( null != m_targets.get( name ) ) { - throw new IllegalArgumentException( "Can not have two targets in a " + - "file with the name " + name ); + final String message = REZ.getString( "duplicate-target.error", name ); + throw new IllegalArgumentException( message ); } else { @@ -187,8 +192,8 @@ public class DefaultProject { if( null != m_projects.get( name ) ) { - throw new IllegalArgumentException( "Can not have two projects referenced in a " + - "file with the name " + name ); + final String message = REZ.getString( "duplicate-project.error", name ); + throw new IllegalArgumentException( message ); } else { diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Resources.properties new file mode 100644 index 000000000..7f437b0e6 --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Resources.properties @@ -0,0 +1,2 @@ +duplicate-project.error=Can not have two projects referenced in a file with the name {0}. +duplicate-target.error=Can not have two targets in a file with the name {0}. diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/DefaultRoleManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/DefaultRoleManager.java index ff0c391c1..6eb1b218a 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/DefaultRoleManager.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/DefaultRoleManager.java @@ -12,6 +12,8 @@ import java.util.Enumeration; import java.util.HashMap; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; @@ -28,6 +30,9 @@ import org.xml.sax.XMLReader; public class DefaultRoleManager implements RoleManager, Initializable { + private static final Resources REZ = + ResourceManager.getPackageResources( DefaultRoleManager.class ); + private final static String ROLE_DESCRIPTOR = "META-INF/ant-roles.xml"; /** Parent RoleManager for nested resolution */ @@ -152,15 +157,15 @@ public class DefaultRoleManager final String oldRole = (String)m_names.get( name ); if( null != oldRole && oldRole.equals( role ) ) { - throw new IllegalArgumentException( "Name already mapped to another role (" + - oldRole + ")" ); + final String message = REZ.getString( "duplicate-name.error", oldRole ); + throw new IllegalArgumentException( message ); } final String oldName = (String)m_roles.get( role ); if( null != oldName && oldName.equals( name ) ) { - throw new IllegalArgumentException( "Role already mapped to another name (" + - oldName + ")" ); + final String message = REZ.getString( "duplicate-role.error", oldName ); + throw new IllegalArgumentException( message ); } m_names.put( name, role ); diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/Resources.properties new file mode 100644 index 000000000..6a857eeae --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/Resources.properties @@ -0,0 +1,2 @@ +duplicate-name.error=Name already mapped to another role ({0}). +duplicate-role.error=Role already mapped to another name ({0}). diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeFactory.java index 5293c8a2d..f6e4c91bf 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeFactory.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeFactory.java @@ -10,6 +10,8 @@ package org.apache.myrmidon.components.type; import java.net.URL; import java.util.HashMap; import java.net.URLClassLoader; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; /** * Create a type instance based on name. @@ -20,6 +22,9 @@ import java.net.URLClassLoader; public class DefaultTypeFactory implements TypeFactory { + private static final Resources REZ = + ResourceManager.getPackageResources( DefaultTypeFactory.class ); + ///A Map of shortnames to classnames private final HashMap m_classNames = new HashMap(); @@ -77,7 +82,8 @@ public class DefaultTypeFactory } catch( final Exception e ) { - throw new TypeException( "Unable to instantiate '" + name + "'", e ); + final String message = REZ.getString( "no-instantiate.error", name ); + throw new TypeException( message, e ); } } @@ -88,8 +94,8 @@ public class DefaultTypeFactory if( null == className ) { - throw new TypeException( "Malconfigured factory, no clasname for '" + - name + "'" ); + final String message = REZ.getString( "no-mapping.error", name ); + throw new TypeException( message ); } return className; diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeManager.java index 37a30f954..e078259e6 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeManager.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeManager.java @@ -8,6 +8,8 @@ package org.apache.myrmidon.components.type; import java.util.HashMap; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; /** * The interface that is used to manage types. @@ -17,6 +19,9 @@ import java.util.HashMap; public class DefaultTypeManager implements TypeManager { + private static final Resources REZ = + ResourceManager.getPackageResources( DefaultTypeManager.class ); + ///Parent type manager to inherit values from. private final DefaultTypeManager m_parent; @@ -92,8 +97,8 @@ public class DefaultTypeManager } catch( final Exception e ) { - throw new TypeException( "Role '" + role + "' does not specify " + - "accessible work interface" ); + final String message = REZ.getString( "no-work-interface.error", role ); + throw new TypeException( message ); } } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/MultiSourceTypeFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/MultiSourceTypeFactory.java index 887c1279f..4422c90d8 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/MultiSourceTypeFactory.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/MultiSourceTypeFactory.java @@ -8,6 +8,8 @@ package org.apache.myrmidon.components.type; import java.util.HashMap; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; /** * This factory acts as a proxy to set of object factorys. @@ -15,8 +17,11 @@ import java.util.HashMap; * @author Peter Donald */ public class MultiSourceTypeFactory - implements TypeFactory + implements TypeFactory { + private static final Resources REZ = + ResourceManager.getPackageResources( MultiSourceTypeFactory.class ); + ///Parent Selector private final MultiSourceTypeFactory m_parent; @@ -58,14 +63,15 @@ public class MultiSourceTypeFactory { TypeFactory factory = getTypeFactory( name ); - if( null == factory && null != m_parent ) + if( null == factory && null != m_parent ) { factory = m_parent.getTypeFactory( name ); } - if( null == factory ) + if( null == factory ) { - throw new TypeException( "Failed to locate factory for '" + name + "'" ); + final String message = REZ.getString( "no-factory.error", name ); + throw new TypeException( message ); } else { @@ -73,8 +79,8 @@ public class MultiSourceTypeFactory if( !m_type.isInstance( object ) ) { - throw new TypeException( "Object '" + name + "' is not of " + - "correct Type (" + m_type.getName() + ")" ); + final String message = REZ.getString( "no-factory.error", name, m_type.getName() ); + throw new TypeException( message ); } return object; diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/Resources.properties new file mode 100644 index 000000000..5a7691f9e --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/Resources.properties @@ -0,0 +1,5 @@ +no-instantiate.error=Unable to instantiate ({0}). +no-mapping.error=Malconfigured factory, no clasname for ({0}). +no-factory.error=Failed to locate factory for {0}. +bad-type.error=Object {0} is not of correct Type ({1}). +no-work-interface.error=Role {0} does not specify accessible work interface. \ No newline at end of file diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java index 0445901f7..7343e2d95 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java @@ -12,21 +12,22 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import org.apache.avalon.excalibur.i18n.ResourceManager; +import org.apache.avalon.excalibur.i18n.Resources; import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.framework.activity.Initializable; -import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.component.ComponentException; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.Composable; import org.apache.avalon.framework.component.DefaultComponentManager; import org.apache.avalon.framework.configuration.Configuration; +import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.avalon.framework.parameters.ParameterException; import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.parameters.Parameters; import org.apache.log.Hierarchy; import org.apache.log.Logger; -import org.apache.log.LogTarget; import org.apache.myrmidon.api.DefaultTaskContext; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; @@ -52,6 +53,9 @@ public class DefaultWorkspace extends AbstractLoggable implements Workspace, Composable, Parameterizable, Initializable { + private static final Resources REZ = + ResourceManager.getPackageResources( DefaultWorkspace.class ); + private Executor m_executor; private ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport(); private ComponentManager m_componentManager; @@ -109,7 +113,7 @@ public class DefaultWorkspace m_hierarchy = new Hierarchy(); - final LogTarget target = new LogTargetToListenerAdapter( m_listenerSupport ); + final LogTargetToListenerAdapter target = new LogTargetToListenerAdapter( m_listenerSupport ); m_hierarchy.setDefaultLogTarget( target ); } @@ -158,21 +162,22 @@ public class DefaultWorkspace throws TaskException { //TODO: In future this will be expanded to allow - //users to specify search path or automagically - //add entries to lib path (like user specific or + //users to specify search path or automagically + //add entries to lib path (like user specific or //workspace specific) final String name = libraryName.replace( '/', File.separatorChar ) + ".atl"; final String home = System.getProperty( "myrmidon.home" ); final File homeDir = new File( home + File.separatorChar + "ext" ); - + final File library = new File( homeDir, name ); if( library.exists() ) { if( !library.canRead() ) { - throw new TaskException( "Unable to read library at " + library ); + final String message = REZ.getString( "no-read.error", library ); + throw new TaskException( message ); } else { @@ -180,7 +185,8 @@ public class DefaultWorkspace } } - throw new TaskException( "Unable to locate Type Library " + libraryName ); + final String message = REZ.getString( "no-library.error", libraryName ); + throw new TaskException( message ); } private void deployTypeLib( final Deployer deployer, final Project project ) @@ -206,8 +212,8 @@ public class DefaultWorkspace } catch( final DeploymentException de ) { - throw new TaskException( "Error deploying type library " + - typeLib + " at " + file, de ); + final String message = REZ.getString( "no-deploy.error", typeLib, file ); + throw new TaskException( message, de ); } } } @@ -235,7 +241,8 @@ public class DefaultWorkspace try { deployer.compose( componentManager ); } catch( final ComponentException ce ) { - throw new TaskException( "Error configuring deployer", ce ); + final String message = REZ.getString( "bad-deployer-config.error" ); + throw new TaskException( message, ce ); } //HACK: Didn't call initialize because Deployer contained in Embeddor @@ -272,7 +279,8 @@ public class DefaultWorkspace } catch( final Exception e ) { - throw new TaskException( "Error setting up ExecutionFrame", e ); + final String message = REZ.getString( "bad-frame.error" ); + throw new TaskException( message, e ); } return frame; @@ -301,7 +309,8 @@ public class DefaultWorkspace if( null == other ) { //TODO: Fix this so location information included in description - throw new TaskException( "Project '" + name + "' not found." ); + final String message = REZ.getString( "no-project.error", name ); + throw new TaskException( message ); } return other; @@ -338,7 +347,8 @@ public class DefaultWorkspace final Target target = project.getTarget( targetName ); if( null == target ) { - throw new TaskException( "Unable to find target " + targetName ); + final String message = REZ.getString( "no-target.error", targetName ); + throw new TaskException( message ); } //add target to list of targets executed @@ -385,19 +395,20 @@ public class DefaultWorkspace { if( false == condition.evaluate( frame.getContext() ) ) { - getLogger().debug( "Skipping target " + name + - " as it does not satisfy condition" ); + final String message = REZ.getString( "skip-target.notice", name ); + getLogger().debug( message ); return; } } catch( final ContextException ce ) { - throw new TaskException( "Error evaluating Condition for target " + - name, ce ); + final String message = REZ.getString( "condition-eval.error", name ); + throw new TaskException( message, ce ); } } - getLogger().debug( "Executing target " + name ); + final String message = REZ.getString( "exec-target.notice", name ); + getLogger().debug( message ); //frame.getContext().setProperty( Project.TARGET, target ); @@ -420,7 +431,9 @@ public class DefaultWorkspace throws TaskException { final String name = task.getName(); - getLogger().debug( "Executing task " + name ); + + final String message = REZ.getString( "exec-task.notice", name ); + getLogger().debug( message ); //is setting name even necessary ??? frame.getContext().setProperty( TaskContext.NAME, name ); diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Resources.properties b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Resources.properties new file mode 100644 index 000000000..15f3f1da9 --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Resources.properties @@ -0,0 +1,11 @@ +no-read.error=Unable to read library at {0}. +no-library.error=Unable to locate Type Library {0}. +no-deploy.error=Error deploying type library {0} at {1}. +bad-deployer-config.error=Error configuring deployer. +bad-frame.error=Error setting up ExecutionFrame. +no-project.error=Project {0} not found. +no-target.error=Target {0} not found. +skip-target.notice=Skipping target {0} as it does not satisfy condition. +condition-eval.error=Error evaluating Condition for target {0}. +exec-target.notice=Executing target {0}. +exec-task.notice=Executing task {0}. \ No newline at end of file