commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jstrac...@apache.org
Subject cvs commit: jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly show_args.jelly
Date Fri, 14 Jun 2002 11:22:33 GMT
jstrachan    2002/06/14 04:22:33

  Modified:    jelly/src/test/org/apache/commons/jelly/maven project.jelly
                        maven.jelly
               jelly/src/java/org/apache/commons/jelly/tags/ant
                        AntTagLibrary.java
               jelly/src/java/org/apache/commons/jelly/tags/werkz
                        ProjectTag.java WerkzTagSupport.java
               jelly/src/test/org/apache/commons/jelly show_args.jelly
  Log:
  Tidied up some more examples, removing the redundant use of <j:expr value=, when just
${foo} will do now.
  
  Added a couple of Ant Project helper methods to the AntTagLibrary, to create Ant projects
in a single place in the codebase.
  
  Also made the Werkz tag library use lazy construction for finding goals, so that a project.jelly
can define pre-conditions/pre/post callbacks, then
  import a maven.jelly file to actually define all the goals and run the build.
  
  The 'demo.maven' target shows this in action, allowing a local project.jelly to just define
the callbacks then invoke the main maven.jelly
  
  Revision  Changes    Path
  1.2       +3 -11     jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/maven/project.jelly
  
  Index: project.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/maven/project.jelly,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.jelly	12 Jun 2002 14:38:57 -0000	1.1
  +++ project.jelly	14 Jun 2002 11:22:33 -0000	1.2
  @@ -3,22 +3,14 @@
   <!-- this file represents an optional local project's build -->
   <werkz:project xmlns:j="jelly:core" xmlns="jelly:ant" xmlns:werkz="jelly:werkz">
   
  -  <!-- now include Maven's build -->
  -  <j:include uri="maven.jelly"/>
  -
     <!-- define some callbacks that will be fired inside the Maven build -->
     <werkz:preGoal name="compile">
    	<echo message="I am a callback: doing something before I compile"/> 	  		
     </werkz:preGoal>
   
  -  <!-- call all the targets made on the command line -->	
  -  <werkz:attain>
  -    <j:forEach var="arg" items="${args}" begin="1">
  -      <werkz:attainGoal name="${arg}"/>
  -    </j:forEach>
  -  </werkz:attain>
  -  	
  -  
  +  <!-- now include Maven's build -->
  +  <j:include uri="maven.jelly"/>
  +
   </werkz:project>
   
   
  
  
  
  1.2       +6 -0      jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/maven/maven.jelly
  
  Index: maven.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/maven/maven.jelly,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- maven.jelly	12 Jun 2002 14:38:57 -0000	1.1
  +++ maven.jelly	14 Jun 2002 11:22:33 -0000	1.2
  @@ -19,6 +19,12 @@
     	<echo message="About to run the tests!"/>
     </werkz:goal>
   
  +  <!-- call all the targets made on the command line -->	
  +  <werkz:attain>
  +    <j:forEach var="arg" items="${args}" begin="1">
  +      <werkz:attainGoal name="${arg}"/>
  +    </j:forEach>
  +  </werkz:attain>
   
   </werkz:project>
   
  
  
  
  1.11      +31 -4     jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/AntTagLibrary.java
  
  Index: AntTagLibrary.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/AntTagLibrary.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- AntTagLibrary.java	14 Jun 2002 10:24:14 -0000	1.10
  +++ AntTagLibrary.java	14 Jun 2002 11:22:33 -0000	1.11
  @@ -139,7 +139,36 @@
       }        
           
       public AntTagLibrary() {
  -        this.project = new Project();
  +        this.project = createProject();
  +    }
  +
  +    public AntTagLibrary(Project project) {
  +        this.project = project;
  +    }
  +
  +
  +    /**
  +     * A helper method which will attempt to find a project in the current context
  +     * or install one if need be.
  +     * 
  +     * #### this method could move to an AntUtils class.
  +     */
  +    public static Project getProject(JellyContext context) {
  +        Project project = (Project) context.findVariable( "org.apache.commons.jelly.ant.Project"
);
  +        if ( project == null ) {
  +            project = createProject();
  +            context.setVariable( "org.apache.commons.jelly.ant.Project", project );
  +        }
  +        return project;
  +    }
  +
  +    /**
  +     * A helper method to create a new project
  +     * 
  +     * #### this method could move to an AntUtils class.
  +     */    
  +    public static Project createProject() {
  +        Project project = new Project();
   
           BuildLogger logger = new NoBannerLogger();
   
  @@ -150,11 +179,9 @@
           project.addBuildListener( logger );
           
           project.init();
  +        return project;
       }
   
  -    public AntTagLibrary(Project project) {
  -        this.project = project;
  -    }
   
       /** Creates a new script to execute the given tag name and attributes */
       public TagScript createTagScript(String name, Attributes attributes) throws Exception
{
  
  
  
  1.9       +4 -4      jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/werkz/ProjectTag.java
  
  Index: ProjectTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/werkz/ProjectTag.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ProjectTag.java	14 Jun 2002 04:04:12 -0000	1.8
  +++ ProjectTag.java	14 Jun 2002 11:22:33 -0000	1.9
  @@ -112,10 +112,10 @@
           // force project to be lazily constructed        
           getProject(); 
   
  -        // AntTagLibrary ant = (AntTagLibrary) context.getTagLibrary( "jelly:ant" );
  -
  -        org.apache.tools.ant.Project antProject =
  -            (org.apache.tools.ant.Project) context.findVariable( "org.apache.commons.jelly.ant.Project"
);
  +        org.apache.tools.ant.Project antProject = AntTagLibrary.getProject( context );
  +        
  +        // allow access to Ant methods via the project class
  +        context.setVariable( "project", antProject );
   
           antProject.getBuildListeners().clear();
   
  
  
  
  1.5       +3 -1      jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/werkz/WerkzTagSupport.java
  
  Index: WerkzTagSupport.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/werkz/WerkzTagSupport.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WerkzTagSupport.java	12 Jun 2002 19:28:08 -0000	1.4
  +++ WerkzTagSupport.java	14 Jun 2002 11:22:33 -0000	1.5
  @@ -94,7 +94,9 @@
           if ( project == null ) {
               throw new JellyException( "Must use this tag inside a <maven:project>
tag" );
           }
  -        Goal goal = project.getGoal(name);
  +        
  +        // #### allow lazy creation of callbacks before the goal is defined...
  +        Goal goal = project.getGoal(name, true);
           if ( goal == null ) {
               throw new JellyException( "No such target name: " + name );
           }
  
  
  
  1.4       +1 -1      jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/show_args.jelly
  
  Index: show_args.jelly
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/show_args.jelly,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- show_args.jelly	4 Jun 2002 18:36:49 -0000	1.3
  +++ show_args.jelly	14 Jun 2002 11:22:33 -0000	1.4
  @@ -6,7 +6,7 @@
   <j:jelly xmlns:j="jelly:core">
   <arguments>
     <j:forEach var="arg" items="${args}" begin="1">
  -      <argument><j:expr value="${arg}"/></argument>
  +      <argument>${arg}"</argument>
     </j:forEach>
   </arguments>
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message