* No project name * tasklet->task git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269051 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -102,7 +102,7 @@ Legal: | |||||
| <jar jarfile="${build.lib}/ant.jar" | <jar jarfile="${build.lib}/ant.jar" | ||||
| basedir="${build.classes}" | basedir="${build.classes}" | ||||
| manifest="${manifest.dir}/ant-manifest.mf"> | manifest="${manifest.dir}/ant-manifest.mf"> | ||||
| <include name="org/apache/ant/launcher/*" /> | |||||
| <include name="org/apache/myrmidon/launcher/*" /> | |||||
| </jar> | </jar> | ||||
| <jar jarfile="${build.lib}/myrmidon.jar" | <jar jarfile="${build.lib}/myrmidon.jar" | ||||
| @@ -21,8 +21,7 @@ import java.util.Iterator; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.Properties; | import java.util.Properties; | ||||
| import org.apache.ant.launcher.AntClassLoader; | |||||
| import org.apache.ant.launcher.AntLoader; | |||||
| import org.apache.myrmidon.launcher.LauncherClassLoader; | |||||
| import org.apache.ant.project.LogTargetToListenerAdapter; | import org.apache.ant.project.LogTargetToListenerAdapter; | ||||
| import org.apache.ant.project.Project; | import org.apache.ant.project.Project; | ||||
| import org.apache.ant.project.ProjectBuilder; | import org.apache.ant.project.ProjectBuilder; | ||||
| @@ -297,6 +296,7 @@ public class Main | |||||
| //setup classloader so that it will correctly load | //setup classloader so that it will correctly load | ||||
| //the Project/ProjectBuilder/ProjectEngine and all dependencies | //the Project/ProjectBuilder/ProjectEngine and all dependencies | ||||
| //FIXEME: Use separate classloader instead of injecting | |||||
| final ClassLoader classLoader = createClassLoader( libDir ); | final ClassLoader classLoader = createClassLoader( libDir ); | ||||
| Thread.currentThread().setContextClassLoader( classLoader ); | Thread.currentThread().setContextClassLoader( classLoader ); | ||||
| @@ -451,14 +451,14 @@ public class Main | |||||
| { | { | ||||
| final ClassLoader candidate = getClass().getClassLoader(); | final ClassLoader candidate = getClass().getClassLoader(); | ||||
| if( !(candidate instanceof AntClassLoader) ) | |||||
| if( !(candidate instanceof LauncherClassLoader) ) | |||||
| { | { | ||||
| getLogger().warn( "Warning: Unable to add entries from " + | getLogger().warn( "Warning: Unable to add entries from " + | ||||
| "lib-path to classloader" ); | "lib-path to classloader" ); | ||||
| return candidate; | return candidate; | ||||
| } | } | ||||
| final AntClassLoader classLoader = (AntClassLoader)candidate; | |||||
| final LauncherClassLoader classLoader = (LauncherClassLoader)candidate; | |||||
| final ExtensionFileFilter filter = | final ExtensionFileFilter filter = | ||||
| new ExtensionFileFilter( new String[] { ".jar", ".zip" } ); | new ExtensionFileFilter( new String[] { ".jar", ".zip" } ); | ||||
| @@ -502,7 +502,6 @@ public class Main | |||||
| //defines.put( AntContextResources.TASKLIB_DIR, m_taskLibDir ); | //defines.put( AntContextResources.TASKLIB_DIR, m_taskLibDir ); | ||||
| //defines.put( TaskletContext.JAVA_VERSION, getJavaVersion() ); | //defines.put( TaskletContext.JAVA_VERSION, getJavaVersion() ); | ||||
| //final TaskContext context = project.getContext(); | |||||
| addToContext( context, defines ); | addToContext( context, defines ); | ||||
| //Add system properties second so that they overide user-defined properties | //Add system properties second so that they overide user-defined properties | ||||
| @@ -35,7 +35,7 @@ public class DefaultProjectEngine | |||||
| extends AbstractLoggable | extends AbstractLoggable | ||||
| implements ProjectEngine, Composable | implements ProjectEngine, Composable | ||||
| { | { | ||||
| protected TaskletEngine m_taskletEngine; | |||||
| protected TaskletEngine m_taskEngine; | |||||
| protected ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport(); | protected ProjectListenerSupport m_listenerSupport = new ProjectListenerSupport(); | ||||
| protected DefaultComponentManager m_componentManager; | protected DefaultComponentManager m_componentManager; | ||||
| @@ -69,7 +69,7 @@ public class DefaultProjectEngine | |||||
| throws ComponentException | throws ComponentException | ||||
| { | { | ||||
| m_componentManager = (DefaultComponentManager)componentManager; | m_componentManager = (DefaultComponentManager)componentManager; | ||||
| m_taskletEngine = (TaskletEngine)componentManager. | |||||
| m_taskEngine = (TaskletEngine)componentManager. | |||||
| lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); | lookup( "org.apache.ant.tasklet.engine.TaskletEngine" ); | ||||
| } | } | ||||
| @@ -87,13 +87,7 @@ public class DefaultProjectEngine | |||||
| //HACK: should do this a better way !!!!!! | //HACK: should do this a better way !!!!!! | ||||
| m_componentManager.put( "org.apache.ant.project.Project", project ); | m_componentManager.put( "org.apache.ant.project.Project", project ); | ||||
| //final TaskContext context = project.getContext(); | |||||
| final String projectName = (String)context.getProperty( Project.PROJECT ); | |||||
| m_listenerSupport.projectStarted( projectName ); | |||||
| //context = new DefaultTaskletContext( context ); | |||||
| m_listenerSupport.projectStarted(); | |||||
| executeTargetWork( "<init>", project.getImplicitTarget(), context ); | executeTargetWork( "<init>", project.getImplicitTarget(), context ); | ||||
| @@ -236,7 +230,6 @@ public class DefaultProjectEngine | |||||
| getLogger().debug( "Executing task " + name ); | getLogger().debug( "Executing task " + name ); | ||||
| //Set up context for task... | //Set up context for task... | ||||
| //is Only necessary if we are multi-threaded | //is Only necessary if we are multi-threaded | ||||
| //final TaskletContext targetContext = new DefaultTaskletContext( context ); | //final TaskletContext targetContext = new DefaultTaskletContext( context ); | ||||
| @@ -244,12 +237,12 @@ public class DefaultProjectEngine | |||||
| context.setProperty( TaskContext.NAME, name ); | context.setProperty( TaskContext.NAME, name ); | ||||
| //notify listeners | //notify listeners | ||||
| m_listenerSupport.taskletStarted( name ); | |||||
| m_listenerSupport.taskStarted( name ); | |||||
| //run task | //run task | ||||
| m_taskletEngine.execute( task, context ); | |||||
| m_taskEngine.execute( task, context ); | |||||
| //notify listeners task has ended | //notify listeners task has ended | ||||
| m_listenerSupport.taskletFinished(); | |||||
| m_listenerSupport.taskFinished(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -17,16 +17,13 @@ import org.apache.avalon.framework.ExceptionUtil; | |||||
| public class DefaultProjectListener | public class DefaultProjectListener | ||||
| implements ProjectListener | implements ProjectListener | ||||
| { | { | ||||
| protected String m_prefix; | |||||
| private String m_prefix; | |||||
| /** | /** | ||||
| * Notify listener of projectStarted event. | * Notify listener of projectStarted event. | ||||
| * | |||||
| * @param projectName the projectName | |||||
| */ | */ | ||||
| public void projectStarted( final String projectName ) | |||||
| public void projectStarted() | |||||
| { | { | ||||
| output( "Starting project " + projectName + "\n" ); | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -54,21 +51,21 @@ public class DefaultProjectListener | |||||
| } | } | ||||
| /** | /** | ||||
| * Notify listener of taskletStarted event. | |||||
| * Notify listener of taskStarted event. | |||||
| * | * | ||||
| * @param taskletName the name of tasklet | |||||
| * @param taskName the name of task | |||||
| */ | */ | ||||
| public void taskletStarted( final String taskletName ) | |||||
| public void taskStarted( final String taskName ) | |||||
| { | { | ||||
| m_prefix = taskletName; | |||||
| setPrefix( taskName ); | |||||
| } | } | ||||
| /** | /** | ||||
| * Notify listener of taskletFinished event. | |||||
| * Notify listener of taskFinished event. | |||||
| */ | */ | ||||
| public void taskletFinished() | |||||
| public void taskFinished() | |||||
| { | { | ||||
| m_prefix = null; | |||||
| setPrefix( null ); | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -100,7 +97,17 @@ public class DefaultProjectListener | |||||
| */ | */ | ||||
| protected void output( final String data ) | protected void output( final String data ) | ||||
| { | { | ||||
| if( null != m_prefix ) System.out.println( "\t[" + m_prefix + "] " + data ); | |||||
| if( null != getPrefix() ) System.out.println( "\t[" + getPrefix() + "] " + data ); | |||||
| else System.out.println( data ); | else System.out.println( data ); | ||||
| } | } | ||||
| protected final String getPrefix() | |||||
| { | |||||
| return m_prefix; | |||||
| } | |||||
| protected final void setPrefix( final String prefix ) | |||||
| { | |||||
| m_prefix = prefix; | |||||
| } | |||||
| } | } | ||||
| @@ -18,7 +18,7 @@ import org.apache.log.LogTarget; | |||||
| public class LogTargetToListenerAdapter | public class LogTargetToListenerAdapter | ||||
| implements LogTarget | implements LogTarget | ||||
| { | { | ||||
| protected final ProjectListener m_listener; | |||||
| private final ProjectListener m_listener; | |||||
| /** | /** | ||||
| * Constructor taking listener to convert to. | * Constructor taking listener to convert to. | ||||
| @@ -31,5 +31,3 @@ public interface ProjectBuilder | |||||
| Project build( File source ) | Project build( File source ) | ||||
| throws IOException, AntException; | throws IOException, AntException; | ||||
| } | } | ||||
| @@ -17,10 +17,8 @@ public interface ProjectListener | |||||
| { | { | ||||
| /** | /** | ||||
| * Notify listener of projectStarted event. | * Notify listener of projectStarted event. | ||||
| * | |||||
| * @param projectName the projectName | |||||
| */ | */ | ||||
| void projectStarted( String projectName ); | |||||
| void projectStarted(); | |||||
| /** | /** | ||||
| * Notify listener of projectFinished event. | * Notify listener of projectFinished event. | ||||
| @@ -40,16 +38,16 @@ public interface ProjectListener | |||||
| void targetFinished(); | void targetFinished(); | ||||
| /** | /** | ||||
| * Notify listener of taskletStarted event. | |||||
| * Notify listener of taskStarted event. | |||||
| * | * | ||||
| * @param taskletName the name of tasklet | |||||
| * @param taskName the name of task | |||||
| */ | */ | ||||
| void taskletStarted( String taskletName ); | |||||
| void taskStarted( String taskName ); | |||||
| /** | /** | ||||
| * Notify listener of taskletFinished event. | |||||
| * Notify listener of taskFinished event. | |||||
| */ | */ | ||||
| void taskletFinished(); | |||||
| void taskFinished(); | |||||
| /** | /** | ||||
| * Notify listener of log message event. | * Notify listener of log message event. | ||||
| @@ -15,7 +15,7 @@ package org.apache.ant.project; | |||||
| public class ProjectListenerSupport | public class ProjectListenerSupport | ||||
| implements ProjectListener | implements ProjectListener | ||||
| { | { | ||||
| protected ProjectListener[] m_listeners = new ProjectListener[ 0 ]; | |||||
| private ProjectListener[] m_listeners = new ProjectListener[ 0 ]; | |||||
| /** | /** | ||||
| * Add an extra project listener that wants to receive notification of listener events. | * Add an extra project listener that wants to receive notification of listener events. | ||||
| @@ -61,14 +61,12 @@ public class ProjectListenerSupport | |||||
| /** | /** | ||||
| * Fire a projectStarted event. | * Fire a projectStarted event. | ||||
| * | |||||
| * @param projectName the projectName | |||||
| */ | */ | ||||
| public void projectStarted( final String projectName ) | |||||
| public void projectStarted() | |||||
| { | { | ||||
| for( int i = 0; i < m_listeners.length; i++ ) | for( int i = 0; i < m_listeners.length; i++ ) | ||||
| { | { | ||||
| m_listeners[ i ].projectStarted( projectName ); | |||||
| m_listeners[ i ].projectStarted(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -112,22 +110,22 @@ public class ProjectListenerSupport | |||||
| * | * | ||||
| * @param targetName the name of target | * @param targetName the name of target | ||||
| */ | */ | ||||
| public void taskletStarted( String taskletName ) | |||||
| public void taskStarted( String taskName ) | |||||
| { | { | ||||
| for( int i = 0; i < m_listeners.length; i++ ) | for( int i = 0; i < m_listeners.length; i++ ) | ||||
| { | { | ||||
| m_listeners[ i ].taskletStarted( taskletName ); | |||||
| m_listeners[ i ].taskStarted( taskName ); | |||||
| } | } | ||||
| } | } | ||||
| /** | /** | ||||
| * Fire a taskletFinished event. | |||||
| * Fire a taskFinished event. | |||||
| */ | */ | ||||
| public void taskletFinished() | |||||
| public void taskFinished() | |||||
| { | { | ||||
| for( int i = 0; i < m_listeners.length; i++ ) | for( int i = 0; i < m_listeners.length; i++ ) | ||||
| { | { | ||||
| m_listeners[ i ].taskletFinished(); | |||||
| m_listeners[ i ].taskFinished(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -5,7 +5,7 @@ | |||||
| * version 1.1, a copy of which has been included with this distribution in | * version 1.1, a copy of which has been included with this distribution in | ||||
| * the LICENSE file. | * the LICENSE file. | ||||
| */ | */ | ||||
| package org.apache.ant.launcher; | |||||
| package org.apache.myrmidon.launcher; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.lang.reflect.Method; | import java.lang.reflect.Method; | ||||
| @@ -14,11 +14,12 @@ import java.net.URLClassLoader; | |||||
| import java.util.StringTokenizer; | import java.util.StringTokenizer; | ||||
| /** | /** | ||||
| * Basic classloader that allows modification at runtime. | |||||
| * Basic classloader that allows addition of URLs at runtime. | |||||
| * Used from Main.class to inject Classes into ClassLoader. | |||||
| * | * | ||||
| * @author <a href="mailto:donaldp@apache.org">Peter Donald</a> | * @author <a href="mailto:donaldp@apache.org">Peter Donald</a> | ||||
| */ | */ | ||||
| public final class AntClassLoader | |||||
| public final class LauncherClassLoader | |||||
| extends URLClassLoader | extends URLClassLoader | ||||
| { | { | ||||
| /** | /** | ||||
| @@ -26,7 +27,7 @@ public final class AntClassLoader | |||||
| * | * | ||||
| * @param urls the Starting URLS | * @param urls the Starting URLS | ||||
| */ | */ | ||||
| public AntClassLoader( final URL[] urls ) | |||||
| public LauncherClassLoader( final URL[] urls ) | |||||
| { | { | ||||
| super( urls ); | super( urls ); | ||||
| } | } | ||||
| @@ -40,17 +41,19 @@ public final class AntClassLoader | |||||
| { | { | ||||
| super.addURL( url ); | super.addURL( url ); | ||||
| } | } | ||||
| /** | /** | ||||
| * Add an array of URLs to classloader | * Add an array of URLs to classloader | ||||
| * | * | ||||
| * @param url the url | * @param url the url | ||||
| */ | */ | ||||
| public void addURLs( final URL[] urls ) | |||||
| /* | |||||
| void addURLs( final URL[] urls ) | |||||
| { | { | ||||
| for( int i = 0; i < urls.length; i++ ) | for( int i = 0; i < urls.length; i++ ) | ||||
| { | { | ||||
| addURL( urls[ i ] ); | addURL( urls[ i ] ); | ||||
| } | } | ||||
| } | } | ||||
| */ | |||||
| } | } | ||||
| @@ -5,24 +5,21 @@ | |||||
| * version 1.1, a copy of which has been included with this distribution in | * version 1.1, a copy of which has been included with this distribution in | ||||
| * the LICENSE file. | * the LICENSE file. | ||||
| */ | */ | ||||
| package org.apache.ant.launcher; | |||||
| package org.apache.myrmidon.launcher; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.lang.reflect.InvocationTargetException; | import java.lang.reflect.InvocationTargetException; | ||||
| import java.lang.reflect.Method; | import java.lang.reflect.Method; | ||||
| import java.net.URL; | import java.net.URL; | ||||
| import java.net.URLClassLoader; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.StringTokenizer; | import java.util.StringTokenizer; | ||||
| /** | /** | ||||
| * Basic Loader that is responsible for all the hackery to get classloader to work. | * Basic Loader that is responsible for all the hackery to get classloader to work. | ||||
| * Other classes can call AntLoader.getLoader() and add to their own classloader. | |||||
| * | * | ||||
| * @author <a href="mailto:donaldp@apache.org">Peter Donald</a> | * @author <a href="mailto:donaldp@apache.org">Peter Donald</a> | ||||
| * @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a> | |||||
| */ | */ | ||||
| public final class AntLoader | |||||
| public final class Main | |||||
| { | { | ||||
| /** | /** | ||||
| * Magic entry point. | * Magic entry point. | ||||
| @@ -44,7 +41,7 @@ public final class AntLoader | |||||
| final File libDir = new File( installDirectory, "lib" ); | final File libDir = new File( installDirectory, "lib" ); | ||||
| final URL[] urls = buildURLList( libDir ); | final URL[] urls = buildURLList( libDir ); | ||||
| final AntClassLoader classLoader = new AntClassLoader( urls ); | |||||
| final LauncherClassLoader classLoader = new LauncherClassLoader( urls ); | |||||
| //load class and retrieve appropriate main method. | //load class and retrieve appropriate main method. | ||||
| final Class clazz = classLoader.loadClass( "org.apache.ant.Main" ); | final Class clazz = classLoader.loadClass( "org.apache.ant.Main" ); | ||||
| @@ -1,3 +1,3 @@ | |||||
| Manifest-Version: 1.0 | Manifest-Version: 1.0 | ||||
| Main-Class: org.apache.ant.launcher.AntLoader | |||||
| Main-Class: org.apache.myrmidon.launcher.Main | |||||
| Created-By: Apache Ant Project | Created-By: Apache Ant Project | ||||