From e2e5aeee3a875756d0cc4ff3128fbc42d91b3edc Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Thu, 14 Jun 2001 12:08:54 +0000 Subject: [PATCH] Make cross project DAGS work. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269170 13f79535-47bb-0310-9956-ffa450edef68 --- .../manager/DefaultProjectManager.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java index d02ea6805..96c24402b 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/components/manager/DefaultProjectManager.java @@ -201,6 +201,20 @@ public class DefaultProjectManager return entry; } + private Project getProject( final String name, final Project project ) + throws TaskException + { + final Project other = project.getProject( name ); + + if( null == other ) + { + //TODO: Fix this so location information included in description + throw new TaskException( "Project '" + name + "' not found." ); + } + + return other; + } + /** * Helper method to execute a target. * @@ -215,6 +229,20 @@ public class DefaultProjectManager final ProjectEntry entry ) throws TaskException { + final int index = targetName.indexOf( "->" ); + if( -1 != index ) + { + final String name = targetName.substring( 0, index ); + final String otherTargetName = targetName.substring( index + 2 ); + + final Project otherProject = getProject( name, project ); + final ProjectEntry otherEntry = getProjectEntry( otherProject ); + + //Execute target in referenced project + execute( otherProject, otherTargetName, otherEntry ); + return; + } + final Target target = project.getTarget( targetName ); if( null == target ) {