From 157d8f04d2c676ac93a8cda891f804bddf6f7836 Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Tue, 29 May 2001 15:24:18 +0000 Subject: [PATCH] Update names of properties. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269069 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/myrmidon/Constants.java | 6 +- .../src/java/org/apache/myrmidon/Main.java | 164 +++++++----------- .../components/embeddor/MyrmidonEmbeddor.java | 60 +++---- .../org/apache/myrmidon/launcher/Main.java | 6 +- 4 files changed, 96 insertions(+), 140 deletions(-) diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java b/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java index ee9da69bc..c34a06969 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java @@ -15,6 +15,8 @@ package org.apache.myrmidon; interface Constants { //Constants to indicate the build of Ant/Myrmidon - String BUILD_DATE = "@@DATE@@"; - String BUILD_VERSION = "@@VERSION@@"; + String BUILD_DATE = "@@DATE@@"; + String BUILD_VERSION = "@@VERSION@@"; + + String BUILD_DESCRIPTION = "Myrmidon " + BUILD_VERSION + " compiled on " + BUILD_DATE; } diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/Main.java b/proposal/myrmidon/src/java/org/apache/myrmidon/Main.java index 2276f6ce7..58d3d220c 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/Main.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/Main.java @@ -46,7 +46,7 @@ import org.apache.myrmidon.listeners.ProjectListener; /** * The class to kick the tires and light the fires. - * Starts ant, loads ProjectBuilder, builds project then uses ProjectManager + * Starts myrmidon, loads ProjectBuilder, builds project then uses ProjectManager * to run project. * * @author Peter Donald @@ -54,19 +54,6 @@ import org.apache.myrmidon.listeners.ProjectListener; public class Main extends AbstractLoggable { - //Constants to indicate the build of Ant/Myrmidon - public final static String VERSION = - "Ant " + Constants.BUILD_VERSION + " compiled on " + Constants.BUILD_DATE; - - //default log level - protected final static String DEFAULT_LOGLEVEL = "WARN"; - - //Some defaults for file locations/names - protected final static String DEFAULT_FILENAME = "build.ant"; - - protected final static String DEFAULT_LISTENER = - "org.apache.myrmidon.listeners.DefaultProjectListener"; - //defines for the Command Line options private static final int HELP_OPT = 'h'; private static final int QUIET_OPT = 'q'; @@ -95,10 +82,10 @@ public class Main }; private ProjectListener m_listener; - private File m_homeDir; + private Parameters m_parameters = new Parameters(); /** - * Main entry point called to run standard Ant. + * Main entry point called to run standard Myrmidon. * * @param args the args */ @@ -108,11 +95,6 @@ public class Main main.setLogger( Hierarchy.getDefaultHierarchy().getLoggerFor( "default" ) ); try { main.execute( args ); } - catch( final TaskException ae ) - { - main.getLogger().error( "Error: " + ae.getMessage() ); - main.getLogger().debug( "Exception..." + ExceptionUtil.printStackTrace( ae ) ); - } catch( final Throwable throwable ) { main.getLogger().error( "Error: " + throwable ); @@ -198,10 +180,10 @@ public class Main INCREMENTAL_OPT, "Run in incremental mode" ); options[9] = - new CLOptionDescriptor( "ant-home", + new CLOptionDescriptor( "myrmidon-home", CLOptionDescriptor.ARGUMENT_REQUIRED, HOME_DIR_OPT, - "Specify ant home directory" ); + "Specify myrmidon home directory" ); options[10] = new CLOptionDescriptor( "define", CLOptionDescriptor.ARGUMENTS_REQUIRED_2, @@ -226,13 +208,15 @@ public class Main final List clOptions = parser.getArguments(); final int size = clOptions.size(); final ArrayList targets = new ArrayList(); - String filename = null; - String listenerName = null; - String logLevel = null; - String homeDir = null; - String taskLibDir = null; - boolean incremental = false; - HashMap defines = new HashMap(); + final HashMap defines = new HashMap(); + + m_parameters.setParameter( "filename", "build.ant" ); + m_parameters.setParameter( "log.level", "WARN" ); + m_parameters.setParameter( "listener", "org.apache.myrmidon.listeners.DefaultProjectListener" ); + m_parameters.setParameter( "incremental", "false" ); + + //System property set up by launcher + m_parameters.setParameter( "myrmidon.home", System.getProperty( "myrmidon.home" ) ); for( int i = 0; i < size; i++ ) { @@ -240,48 +224,45 @@ public class Main switch( option.getId() ) { - case 0: targets.add( option.getArgument() ); break; case HELP_OPT: usage( options ); return; - case VERSION_OPT: System.out.println( VERSION ); return; - case FILE_OPT: filename = option.getArgument(); break; - case HOME_DIR_OPT: homeDir = option.getArgument(); break; - case TASKLIB_DIR_OPT: taskLibDir = option.getArgument(); break; - case VERBOSE_OPT: logLevel = "INFO"; break; - case QUIET_OPT: logLevel = "ERROR"; break; - case LOG_LEVEL_OPT: logLevel = option.getArgument(); break; - case LISTENER_OPT: listenerName = option.getArgument(); break; - case INCREMENTAL_OPT: incremental = true; break; + case VERSION_OPT: System.out.println( Constants.BUILD_DESCRIPTION ); return; + + case HOME_DIR_OPT: m_parameters.setParameter( "myrmidon.home", option.getArgument() ); break; + case TASKLIB_DIR_OPT: + m_parameters.setParameter( "myrmidon.lib.path", option.getArgument() ); + break; + + case LOG_LEVEL_OPT: m_parameters.setParameter( "log.level", option.getArgument() ); break; + case VERBOSE_OPT: m_parameters.setParameter( "log.level", "INFO" ); break; + case QUIET_OPT: m_parameters.setParameter( "log.level", "ERROR" ); break; + + case INCREMENTAL_OPT: m_parameters.setParameter( "incremental", "true" ); break; + + case FILE_OPT: m_parameters.setParameter( "filename", option.getArgument() ); break; + case LISTENER_OPT: m_parameters.setParameter( "listener", option.getArgument() ); break; case DEFINE_OPT: defines.put( option.getArgument( 0 ), option.getArgument( 1 ) ); break; + + case 0: targets.add( option.getArgument() ); break; } } - if( null == logLevel ) logLevel = DEFAULT_LOGLEVEL; - if( null == listenerName ) listenerName = DEFAULT_LISTENER; - if( null == filename ) filename = DEFAULT_FILENAME; - //handle logging... + final String logLevel = m_parameters.getParameter( "log.level", null ); setLogger( createLogger( logLevel ) ); - //if ant home not set then use system property ant.home - //that was set up by launcher. - if( null == homeDir ) homeDir = System.getProperty( "ant.home" ); - - final Parameters parameters = new Parameters(); - parameters.setParameter( "ant.home", homeDir ); - - if( null != taskLibDir ) parameters.setParameter( "ant.path.task-lib", taskLibDir ); - - m_homeDir = (new File( homeDir )).getAbsoluteFile(); - if( !m_homeDir.isDirectory() ) + final String home = m_parameters.getParameter( "myrmidon.home", null ); + final File homeDir = (new File( home )).getAbsoluteFile(); + if( !homeDir.isDirectory() ) { - throw new TaskException( "ant-home (" + m_homeDir + ") is not a directory" ); + throw new TaskException( "myrmidon-home (" + homeDir + ") is not a directory" ); } - final File libDir = new File( m_homeDir, "lib" ); + final File libDir = new File( homeDir, "lib" ); + final String filename = m_parameters.getParameter( "filename", null ); final File buildFile = (new File( filename )).getCanonicalFile(); if( !buildFile.isFile() ) { @@ -295,17 +276,23 @@ public class Main Thread.currentThread().setContextClassLoader( classLoader ); //handle listener.. + final String listenerName = m_parameters.getParameter( "listener", null ); final ProjectListener listener = createListener( listenerName ); + final LogTarget target = new LogTargetToListenerAdapter( listener ); + getLogger().setLogTargets( new LogTarget[] { target } ); + + + getLogger().warn( "Ant Build File: " + buildFile ); - getLogger().info( "Ant Home Directory: " + m_homeDir ); + getLogger().info( "Ant Home Directory: " + homeDir ); //getLogger().info( "Ant Bin Directory: " + m_binDir ); //getLogger().debug( "Ant Lib Directory: " + m_libDir ); //getLogger().debug( "Ant Task Lib Directory: " + m_taskLibDir ); final Embeddor embeddor = new MyrmidonEmbeddor(); setupLogger( embeddor ); - embeddor.parameterize( parameters ); + embeddor.parameterize( m_parameters ); embeddor.initialize(); embeddor.start(); @@ -320,15 +307,21 @@ public class Main BufferedReader reader = null; //loop over build if we are in incremental mode.. + final boolean incremental = m_parameters.getParameterAsBoolean( "incremental", false ); while( true ) { //actually do the build ... final TaskContext context = new DefaultTaskContext(); - setupContext( context, defines ); + + //Add CLI defines + addToContext( context, defines ); + + //Add system properties second so that they overide user-defined properties + addToContext( context, System.getProperties() ); context.setProperty( TaskContext.BASE_DIRECTORY, project.getBaseDirectory() ); context.setProperty( Project.PROJECT_FILE, buildFile ); - //context.setProperty( Project.PROJECT, projectName ); + //context.setProperty( Project.PROJECT, project.getName() ); doBuild( manager, project, context, targets ); @@ -405,8 +398,7 @@ public class Main throw new TaskException( "Unknown log level - " + logLevel ); } - final Logger logger = - Hierarchy.getDefaultHierarchy().getLoggerFor( "ant" ); + final Logger logger = Hierarchy.getDefaultHierarchy().getLoggerFor( "myrmidon" ); logger.setPriority( priority ); @@ -416,26 +408,18 @@ public class Main /** * Setup project listener. * - * @param listenerName the name of project listener + * @param listener the classname of project listener */ - protected ProjectListener createListener( final String listenerName ) + protected ProjectListener createListener( final String listener ) throws TaskException { - ProjectListener result = null; - - try { result = (ProjectListener)Class.forName( listenerName ).newInstance(); } + try { return (ProjectListener)Class.forName( listener ).newInstance(); } catch( final Throwable t ) { - throw new TaskException( "Error creating the listener " + listenerName + - " due to " + ExceptionUtil.printStackTrace( t, 5, true ), - t ); + throw new TaskException( "Error creating the listener " + listener + + " due to " + ExceptionUtil.printStackTrace( t, 5, true ), + t ); } - - final LogTarget target = new LogTargetToListenerAdapter( result ); - - getLogger().setLogTargets( new LogTarget[] { target } ); - - return result; } /** @@ -478,32 +462,6 @@ public class Main return classLoader; } - /** - * Setup the projects context so all the "default" properties are defined. - * This also takes a hashmap that is added to context. Usually these are the - * ones defined on command line. - * - * @param project the project - * @param defines the defines - * @exception TaskException if an error occurs - */ - protected void setupContext( final TaskContext context, final HashMap defines ) - throws TaskException - { - //put these values into defines so that they overide - //user-defined proeprties - //defines.put( AntContextResources.HOME_DIR, m_homeDir ); - //defines.put( AntContextResources.BIN_DIR, m_binDir ); - //defines.put( AntContextResources.LIB_DIR, m_libDir ); - //defines.put( AntContextResources.TASKLIB_DIR, m_taskLibDir ); - //defines.put( TaskletContext.JAVA_VERSION, getJavaVersion() ); - - addToContext( context, defines ); - - //Add system properties second so that they overide user-defined properties - addToContext( context, System.getProperties() ); - } - /** * Helper method to add values to a context * diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java index cada19cda..a6c53105f 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/MyrmidonEmbeddor.java @@ -30,7 +30,8 @@ import org.apache.myrmidon.components.manager.ProjectManager; import org.apache.myrmidon.components.deployer.TskDeployer; /** - * Default implementation of Ant runtime. + * Default implementation of Embeddor. + * Instantiate this to embed inside other applications. * * @author Peter Donald */ @@ -41,7 +42,7 @@ public class MyrmidonEmbeddor private ConverterEngine m_converterEngine; private DataTypeEngine m_dataTypeEngine; private Executor m_executor; - private ProjectManager m_projectEngine; + private ProjectManager m_projectManager; private ProjectBuilder m_builder; private TskDeployer m_deployer; @@ -88,7 +89,7 @@ public class MyrmidonEmbeddor */ public ProjectManager getProjectManager() { - return m_projectEngine; + return m_projectManager; } /** @@ -136,7 +137,7 @@ public class MyrmidonEmbeddor m_converterEngine = null; m_dataTypeEngine = null; m_executor = null; - m_projectEngine = null; + m_projectManager = null; m_builder = null; m_deployer = null; m_configurer = null; @@ -161,24 +162,23 @@ public class MyrmidonEmbeddor final Parameters defaults = new Parameters(); //create all the default properties for files/directories - defaults.setParameter( "ant.path.bin", "bin" ); - defaults.setParameter( "ant.path.lib", "lib" ); - defaults.setParameter( "ant.path.task-lib", "lib" ); + defaults.setParameter( "myrmidon.bin.path", "bin" ); + defaults.setParameter( "myrmidon.lib.path", "lib" ); //create all the default properties for components - defaults.setParameter( "ant.comp.converter", + defaults.setParameter( "myrmidon.comp.converter", "org.apache.ant.convert.engine.DefaultConverterEngine" ); - defaults.setParameter( "ant.comp.datatype", + defaults.setParameter( "myrmidon.comp.datatype", "org.apache.ant.tasklet.engine.DefaultDataTypeEngine" ); - defaults.setParameter( "ant.comp.task", + defaults.setParameter( "myrmidon.comp.task", "org.apache.myrmidon.components.executor.DefaultExecutor" ); - defaults.setParameter( "ant.comp.project", + defaults.setParameter( "myrmidon.comp.project", "org.apache.myrmidon.components.manager.DefaultProjectManager" ); - defaults.setParameter( "ant.comp.builder", + defaults.setParameter( "myrmidon.comp.builder", "org.apache.myrmidon.components.builder.DefaultProjectBuilder" ); - defaults.setParameter( "ant.comp.deployer", + defaults.setParameter( "myrmidon.comp.deployer", "org.apache.myrmidon.components.deployer.DefaultTskDeployer" ); - defaults.setParameter( "ant.comp.configurer", + defaults.setParameter( "myrmidon.comp.configurer", "org.apache.myrmidon.components.configurer.DefaultConfigurer" ); return defaults; @@ -200,7 +200,7 @@ public class MyrmidonEmbeddor componentManager.put( "org.apache.avalon.framework.camelot.Factory", m_factory ); //Following components required when Myrmidon is used as build tool - componentManager.put( "org.apache.myrmidon.components.manager.ProjectManager", m_projectEngine ); + componentManager.put( "org.apache.myrmidon.components.manager.ProjectManager", m_projectManager ); componentManager.put( "org.apache.myrmidon.components.builder.ProjectBuilder", m_builder ); //Following components required when Myrmidon allows user deployment of tasks etal. @@ -223,25 +223,25 @@ public class MyrmidonEmbeddor { String component = null; - component = getParameter( "ant.comp.converter" ); + component = getParameter( "myrmidon.comp.converter" ); m_converterEngine = (ConverterEngine)createComponent( component, ConverterEngine.class ); - component = getParameter( "ant.comp.datatype" ); + component = getParameter( "myrmidon.comp.datatype" ); m_dataTypeEngine = (DataTypeEngine)createComponent( component, DataTypeEngine.class ); - component = getParameter( "ant.comp.task" ); + component = getParameter( "myrmidon.comp.task" ); m_executor = (Executor)createComponent( component, Executor.class ); - component = getParameter( "ant.comp.project" ); - m_projectEngine = (ProjectManager)createComponent( component, ProjectManager.class ); + component = getParameter( "myrmidon.comp.project" ); + m_projectManager = (ProjectManager)createComponent( component, ProjectManager.class ); - component = getParameter( "ant.comp.builder" ); + component = getParameter( "myrmidon.comp.builder" ); m_builder =(ProjectBuilder)createComponent( component, ProjectBuilder.class ); - component = getParameter( "ant.comp.deployer" ); + component = getParameter( "myrmidon.comp.deployer" ); m_deployer = (TskDeployer)createComponent( component, TskDeployer.class ); - component = getParameter( "ant.comp.configurer" ); + component = getParameter( "myrmidon.comp.configurer" ); m_configurer = (Configurer)createComponent( component, Configurer.class ); } @@ -257,7 +257,7 @@ public class MyrmidonEmbeddor setupComponent( m_converterEngine ); setupComponent( m_dataTypeEngine ); setupComponent( m_executor ); - setupComponent( m_projectEngine ); + setupComponent( m_projectManager ); setupComponent( m_builder ); setupComponent( m_deployer ); setupComponent( m_configurer ); @@ -293,17 +293,14 @@ public class MyrmidonEmbeddor { String filepath = null; - filepath = getParameter( "ant.home" ); + filepath = getParameter( "myrmidon.home" ); m_homeDir = (new File( filepath )).getAbsoluteFile(); - checkDirectory( m_homeDir, "ant-home" ); + checkDirectory( m_homeDir, "home" ); - filepath = getParameter( "ant.path.bin" ); + filepath = getParameter( "myrmidon.bin.path" ); m_binDir = resolveDirectory( filepath, "bin-dir" ); - filepath = getParameter( "ant.path.lib" ); - m_libDir = resolveDirectory( filepath, "lib-dir" ); - - filepath = getParameter( "ant.path.task-lib" ); + filepath = getParameter( "myrmidon.lib.path" ); m_taskLibDir = resolveDirectory( filepath, "task-lib-dir" ); } @@ -363,7 +360,6 @@ public class MyrmidonEmbeddor /** * Helper method to retrieve current JVM version. - * Basically stolen from original Ant sources. * * @return the current JVM version */ diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java b/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java index 3261627a0..72b895dda 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java @@ -33,9 +33,9 @@ public final class Main try { //actually try to discover the install directory based on where - // the ant.jar is + // the myrmidon.jar is final File installDirectory = findInstallDir(); - System.setProperty( "ant.home", installDirectory.toString() ); + System.setProperty( "myrmidon.home", installDirectory.toString() ); //setup classloader appropriately for myrmidon jar final File libDir = new File( installDirectory, "lib" ); @@ -90,7 +90,7 @@ public final class Main } /** - * Finds the ant.jar file in the classpath. + * Finds the myrmidon.jar file in the classpath. */ private final static File findInstallDir() throws Exception