diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java index c2c4d7b4e..bfd0efe3b 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java @@ -173,6 +173,26 @@ public class DefaultTaskContext } } + /** + * Create a Child Context. + * This allows separate hierarchly contexts to be easily constructed. + * + * @param name the name of sub-context + * @return the created TaskContext + * @exception TaskException if an error occurs + */ + public TaskContext createSubContext( final String name ) + throws TaskException + { + final DefaultTaskContext context = new DefaultTaskContext( this ); + + context.setProperty( TaskContext.NAME, getName() + "." + name ); + context.setProperty( TaskContext.BASE_DIRECTORY, getBaseDirectory() ); + context.setProperty( TaskContext.JAVA_VERSION, getJavaVersion() ); + + return context; + } + /** * Make sure property is valid if it is one of the "magic" properties. * diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java index 988086138..8ed197e83 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java @@ -103,8 +103,8 @@ public interface TaskContext * @return the created TaskContext * @exception TaskException if an error occurs */ - //TaskContext createSubContext( String name ) - //throws TaskException; + TaskContext createSubContext( String name ) + throws TaskException; /** * Safe wrapper class for Scope enums.