You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by jv...@apache.org on 2002/03/24 22:09:07 UTC

cvs commit: jakarta-turbine-maven/src/java/org/apache/maven PackageProjectMap.java MavenUtils.java

jvanzyl     02/03/24 13:09:07

  Modified:    .        build-bootstrap.xml jakarta-turbine-maven.xml
               src/descriptors SliceProject.class SliceProject.java
                        build.xml convert-project.dvsl default.properties
                        fix-project.dvsl
               src/java/org/apache/maven MavenUtils.java
  Added:       src/java/org/apache/maven PackageProjectMap.java
  Log:
  Added executor and accompanying changes to create a package -> project
  map so that a set of class references can be turned into a set of
  project references with the help of bcel which will collect the
  class references from a set of JARs or classfiles.
  
  If you want to make run the dist target you need to have the gump
  descriptors checked out in order to make a set of maven descriptors.
  
  Revision  Changes    Path
  1.48      +28 -2     jakarta-turbine-maven/build-bootstrap.xml
  
  Index: build-bootstrap.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/build-bootstrap.xml,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- build-bootstrap.xml	24 Mar 2002 14:57:26 -0000	1.47
  +++ build-bootstrap.xml	24 Mar 2002 21:09:07 -0000	1.48
  @@ -72,6 +72,10 @@
       <delete dir="${basedir}/maven"/>
       <mkdir dir="${basedir}/maven"/>
   
  +    <echo>
  +      maven.home = ${maven.home}
  +    </echo>
  +
       <taskdef
         name="create-build-system"
         classname="org.apache.maven.BaseProjectTask">
  @@ -85,8 +89,6 @@
         outputFile="bootstrap.report"
         projectDescriptor="project.xml"
       />
  -
  -    <delete dir="${basedir}/bootstrap"/>
       
       <delete dir="${maven.home}"/>
       <mkdir dir="${maven.home}"/>
  @@ -170,6 +172,30 @@
           <include name="maven/**"/>
         </fileset>
       </jar>
  +
  +    <taskdef
  +      name="package-project-map"
  +      classname="org.apache.maven.PackageProjectMap">
  +      <classpath refid="classpath"/>
  +    </taskdef>
  +
  +    <!-- Create the package => project map so that we can
  +         turn set of class references into a set of
  +         project references in order to create an accurate
  +         project descriptor.
  +         
  +         The projects descriptors must exist first so
  +         we'll trigger the conversion here.
  +    -->
  +    
  +    <ant dir="src/descriptors"/>
  +    
  +    <package-project-map
  +      descriptorDir="src/descriptors/project"
  +      map="${maven.home}/package-project.map"
  +    />
  +
  +    <delete dir="${basedir}/bootstrap"/>
   
     </target>
   
  
  
  
  1.10      +0 -1      jakarta-turbine-maven/jakarta-turbine-maven.xml
  
  Index: jakarta-turbine-maven.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/jakarta-turbine-maven.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- jakarta-turbine-maven.xml	24 Mar 2002 16:56:35 -0000	1.9
  +++ jakarta-turbine-maven.xml	24 Mar 2002 21:09:07 -0000	1.10
  @@ -4,7 +4,6 @@
     <url href="http://jakarta.apache.org/turbine/maven/"/>
     <cvs repository=""/>
     
  -  
     <project name="jakarta-turbine-maven">
       
       <!-- Standard Maven target to produce Javadocs, source -->
  
  
  
  1.2       +22 -18    jakarta-turbine-maven/src/descriptors/SliceProject.class
  
  	<<Binary file>>
  
  
  1.2       +12 -1     jakarta-turbine-maven/src/descriptors/SliceProject.java
  
  Index: SliceProject.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/descriptors/SliceProject.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SliceProject.java	11 Mar 2002 23:39:21 -0000	1.1
  +++ SliceProject.java	24 Mar 2002 21:09:07 -0000	1.2
  @@ -21,7 +21,18 @@
       {
           try
           {
  -        File f = new File(new File("p"), file);
  +        File test = new File("p");
  +        String basedir = null;
  +        if (test.exists())
  +        {
  +            basedir = ".";
  +        }
  +        else
  +        {
  +            basedir = "src/descriptors";
  +        }            
  +            
  +        File f = new File(new File(basedir,"p"), file);
           FileWriter fw = new FileWriter(f);
           fw.write(contents);
           fw.close();
  
  
  
  1.4       +59 -70    jakarta-turbine-maven/src/descriptors/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/descriptors/build.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- build.xml	11 Mar 2002 23:39:21 -0000	1.3
  +++ build.xml	24 Mar 2002 21:09:07 -0000	1.4
  @@ -18,22 +18,11 @@
       <classpath refid="classpath"/>                    
     </taskdef>
     
  -  <property name="gump" value="../../../jakarta-alexandria/proposal/gump"/>
  -
  -  <!--
  -  <dvsl 
  -    basedir="${gump}/profile"
  -    destdir="profile/"
  -    extension=".xml" 
  -    style="${basedir}/convert-profile.dvsl"
  -    includes="**/*.xml" 
  -  />
  -
  -  -->
  +  <property name="gump" value="${basedir}/../../../jakarta-alexandria/proposal/gump"/>
   
     <dvsl 
       basedir="${gump}/repository"
  -    destdir="repository/"
  +    destdir="${basedir}/repository/"
       extension=".xml" 
       style="${basedir}/convert-repository.dvsl"
       toolboxfile="${basedir}/toolbox.properties"
  @@ -42,24 +31,24 @@
     
     <dvsl 
       basedir="${gump}/project"
  -    destdir="project/"
  +    destdir="${basedir}/project/"
       extension=".xml" 
       style="${basedir}/convert-project.dvsl"
       includes="**/*.xml"
       toolboxfile="${basedir}/toolbox.properties"
     />
   
  -  <delete dir="p"/>
  -  <mkdir dir="p"/>
  +  <delete dir="${basedir}/p"/>
  +  <mkdir dir="${basedir}/p"/>
   
     <dvsl 
  -    basedir="project"
  -    destdir="junk/"
  +    basedir="${basedir}/project"
  +    destdir="${basedir}/junk/"
       extension=".xml" 
       style="${basedir}/slice-project.dvsl"
       includes="**/*.xml" 
  -    toolboxfile="${basedir}/toolbox.properties"
  -  />
  +    toolboxfile="${basedir}/toolbox.properties">
  +  </dvsl>
   
     <property file="${basedir}/repository/dbxml.xml"/>
     <property file="${basedir}/repository/devworks.xml"/>
  @@ -97,75 +86,75 @@
     <filter token="xml-password" value="${xml-password}"/>
     <filter token="zenplex-password" value="${zenplex-password}"/>
   
  -  <delete dir="p2"/>
  -  <mkdir dir="p2"/>
  +  <delete dir="${basedir}/p2"/>
  +  <mkdir dir="${basedir}/p2"/>
     
  -  <copy todir="p2" filtering="yes">
  -    <fileset dir="p"/>
  +  <copy todir="${basedir}/p2" filtering="yes">
  +    <fileset dir="${basedir}/p"/>
     </copy>
     
  -  <delete dir="p3"/>
  -  <mkdir dir="p3"/>
  +  <delete dir="${basedir}/p3"/>
  +  <mkdir dir="${basedir}/p3"/>
     
     <dvsl 
  -    basedir="p2"
  -    destdir="p3/"
  +    basedir="${basedir}/p2"
  +    destdir="${basedir}/p3/"
       extension=".xml" 
       style="${basedir}/fix-project.dvsl"
       includes="**/*.xml" 
  -    toolboxfile="${basedir}/toolbox.properties"
  -  />
  +    toolboxfile="${basedir}/toolbox.properties">
  +  </dvsl>
   
  -  <delete file="p3/antlr.runtime.xml"/>
  -  <delete file="p3/bootstrap-ant.xml"/>
  -  <delete file="p3/castor-test.xml"/>
  -  <delete file="p3/dist-ant.xml"/>
  -  <delete file="p3/dist-avalon-logkit.xml"/>
  -  <delete file="p3/dist-xalan.xml"/>
  -  <delete file="p3/dist-xerces1.xml"/>
  -  <delete file="p3/dist-xerces.xml"/>
  -  <delete file="p3/fop-buildtools.xml"/>
  -  <delete file="p3/gump.xml"/>
  -  <delete file="p3/jakarta-ant-mutant.xml"/>
  -  <delete file="p3/jakarta-ant-myrmidom-test.xml"/>
  -  <delete file="p3/jakarta-ant-myrmidom.xml"/>
  -  <delete file="p3/jakarta-avalon-dist.xml"/>
  -  <delete file="p3/jakarta-avalon-site.xml"/>
  -  <delete file="p3/jakarta-cactus-ant.xml"/>
  -  <delete file="p3/jakarta-cactus-22.xml"/>
  -  <delete file="p3/jakarta-cactus-23.xml"/>
  -  <delete file="p3/jakarta-regexp-package.xml"/>
  -  <delete file="p3/jakarta-site2.xml"/>
  -  <delete file="p3/jakarta-turbine-repo.xml"/>
  -  <delete file="p3/jakarta-turbine-site.xml"/>
  -  <delete file="p3/jakarta-turbine-tdk-docs.xml"/>
  -  <delete file="p3/jakarta-velocity-test.xml"/>
  -  <delete file="p3/jrefactory-pretty.xml"/>
  -  <delete file="p3/openjmx-release.xml"/>
  -  <delete file="p3/test-ant.xml"/>
  -  <delete file="p3/xalan2jdoc.xml"/>
  -  <delete file="p3/xdoclet-examples.xml"/>
  -  <delete file="p3/xml-batik-rasterizer.xml"/>
  -  <delete file="p3/xml-stylebook.xml"/>
  -  <delete file="p3/xml-xalan2-smoketest-tools.xml"/>
  -  <delete file="p3/xml-xalan2-smoketest.xml"/>
  +  <delete file="${basedir}/p3/antlr.runtime.xml"/>
  +  <delete file="${basedir}/p3/bootstrap-ant.xml"/>
  +  <delete file="${basedir}/p3/castor-test.xml"/>
  +  <delete file="${basedir}/p3/dist-ant.xml"/>
  +  <delete file="${basedir}/p3/dist-avalon-logkit.xml"/>
  +  <delete file="${basedir}/p3/dist-xalan.xml"/>
  +  <delete file="${basedir}/p3/dist-xerces1.xml"/>
  +  <delete file="${basedir}/p3/dist-xerces.xml"/>
  +  <delete file="${basedir}/p3/fop-buildtools.xml"/>
  +  <delete file="${basedir}/p3/gump.xml"/>
  +  <delete file="${basedir}/p3/jakarta-ant-mutant.xml"/>
  +  <delete file="${basedir}/p3/jakarta-ant-myrmidom-test.xml"/>
  +  <delete file="${basedir}/p3/jakarta-ant-myrmidom.xml"/>
  +  <delete file="${basedir}/p3/jakarta-avalon-dist.xml"/>
  +  <delete file="${basedir}/p3/jakarta-avalon-site.xml"/>
  +  <delete file="${basedir}/p3/jakarta-cactus-ant.xml"/>
  +  <delete file="${basedir}/p3/jakarta-cactus-22.xml"/>
  +  <delete file="${basedir}/p3/jakarta-cactus-23.xml"/>
  +  <delete file="${basedir}/p3/jakarta-regexp-package.xml"/>
  +  <delete file="${basedir}/p3/jakarta-site2.xml"/>
  +  <delete file="${basedir}/p3/jakarta-turbine-repo.xml"/>
  +  <delete file="${basedir}/p3/jakarta-turbine-site.xml"/>
  +  <delete file="${basedir}/p3/jakarta-turbine-tdk-docs.xml"/>
  +  <delete file="${basedir}/p3/jakarta-velocity-test.xml"/>
  +  <delete file="${basedir}/p3/jrefactory-pretty.xml"/>
  +  <delete file="${basedir}/p3/openjmx-release.xml"/>
  +  <delete file="${basedir}/p3/test-ant.xml"/>
  +  <delete file="${basedir}/p3/xalan2jdoc.xml"/>
  +  <delete file="${basedir}/p3/xdoclet-examples.xml"/>
  +  <delete file="${basedir}/p3/xml-batik-rasterizer.xml"/>
  +  <delete file="${basedir}/p3/xml-stylebook.xml"/>
  +  <delete file="${basedir}/p3/xml-xalan2-smoketest-tools.xml"/>
  +  <delete file="${basedir}/p3/xml-xalan2-smoketest.xml"/>
   
     <delete>
  -    <fileset dir="project">
  +    <fileset dir="${basedir}/project">
         <include name="*.xml"/>
       </fileset>
     </delete>
     
  -  <copy todir="project">
  -    <fileset dir="p3">
  +  <copy todir="${basedir}/project">
  +    <fileset dir="${basedir}/p3">
         <include name="*.xml"/>
       </fileset>
     </copy>
     
  -  <delete dir="p"/>
  -  <delete dir="p2"/>
  -  <delete dir="p3"/>
  -  <delete dir="junk"/>
  +  <delete dir="${basedir}/p"/>
  +  <delete dir="${basedir}/p2"/>
  +  <delete dir="${basedir}/p3"/>
  +  <delete dir="${basedir}/junk"/>
     
     </target>
     
  
  
  
  1.5       +1 -0      jakarta-turbine-maven/src/descriptors/convert-project.dvsl
  
  Index: convert-project.dvsl
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/descriptors/convert-project.dvsl,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- convert-project.dvsl	11 Mar 2002 23:39:21 -0000	1.4
  +++ convert-project.dvsl	24 Mar 2002 21:09:07 -0000	1.5
  @@ -16,6 +16,7 @@
   #set ($url = $context.node.url.attribute("href"))
   <project>
     <name>$context.node.attribute("name")</name>
  +  <id>$context.node.attribute("name")</id>
     <description>
       #if($description)$description.toString().trim()#else$!parentDescription.toString().trim()#end
     
  
  
  
  1.3       +2 -2      jakarta-turbine-maven/src/descriptors/default.properties
  
  Index: default.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/descriptors/default.properties,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- default.properties	23 Feb 2002 16:47:57 -0000	1.2
  +++ default.properties	24 Mar 2002 21:09:07 -0000	1.3
  @@ -1,5 +1,5 @@
   commons-collections.jar=${lib.repo}/commons-collections.jar
  -dom4j.jar = ${lib.repo}/dom4j-1.1.jar
  +dom4j.jar = ${lib.repo}/dom4j-1.3.jar
   log4j.jar=${lib.repo}/log4j-1.1.3.jar
   velocity.jar=${lib.repo}/velocity-1.3-dev.jar
  -dvsl.jar=${lib.repo}/velocity-dvsl-0.40.jar
  +dvsl.jar=${lib.repo}/velocity-dvsl-0.43.jar
  
  
  
  1.2       +2 -1      jakarta-turbine-maven/src/descriptors/fix-project.dvsl
  
  Index: fix-project.dvsl
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/descriptors/fix-project.dvsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- fix-project.dvsl	11 Mar 2002 23:39:22 -0000	1.1
  +++ fix-project.dvsl	24 Mar 2002 21:09:07 -0000	1.2
  @@ -4,6 +4,7 @@
   #set ($cvsdir = $context.node.cvsdir.toString())
   #set ($cvs = $context.node.cvs)
     <name>$context.node.name</name>
  +  <id>$context.node.name</id>
     <description>$context.node.description</description>
     <package>$context.node.package</package>
     <url>$context.node.url</url>
  @@ -25,7 +26,7 @@
   #set ($cvsdir = $cvsdir)
   #set ($s2 = $toolbox.slicer.replace("$s", "@PATH@", "/$cvsdir"))
   #end
  -<cvs>$s2</cvs>#end
  +<cvs>$!s2</cvs>#end
   
   #match("*")
   $node.copy()
  
  
  
  1.4       +13 -1     jakarta-turbine-maven/src/java/org/apache/maven/MavenUtils.java
  
  Index: MavenUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/MavenUtils.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MavenUtils.java	18 Mar 2002 05:16:55 -0000	1.3
  +++ MavenUtils.java	24 Mar 2002 21:09:07 -0000	1.4
  @@ -70,7 +70,7 @@
    * the project.
    *
    * @author <a href="jason@zenplex.com">Jason van Zyl</a>
  - * @version $Id: MavenUtils.java,v 1.3 2002/03/18 05:16:55 brekke Exp $
  + * @version $Id: MavenUtils.java,v 1.4 2002/03/24 21:09:07 jvanzyl Exp $
    */
   public class MavenUtils
   {
  @@ -92,6 +92,18 @@
               return project;
       }
   
  +    /**
  +     * Create a Project object given a file descriptor.
  +     *
  +     * @throws Exception
  +     */
  +    public static Project getProject(String projectDescriptor)
  +        throws Exception
  +    {
  +            Mapper mapper = new Mapper();
  +            Project project = (Project) mapper.map(projectDescriptor,PROJECT_CLASS);
  +            return project;
  +    }
   
       /**
        * Get a set of files from a specifed directory with a set of includes.
  
  
  
  1.1                  jakarta-turbine-maven/src/java/org/apache/maven/PackageProjectMap.java
  
  Index: PackageProjectMap.java
  ===================================================================
  package org.apache.maven;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import java.io.File;
  import java.io.FileOutputStream;
  
  import java.util.Properties;
  
  import org.apache.maven.MavenUtils;
  import org.apache.maven.executor.AbstractExecutor;
  import org.apache.maven.project.Project;
  
  /**
   * Task for creating the package -> project map so that after
   * determining which classes are used in a project we can map
   * these classes to a set of projects which contain these
   * references.
   *
   * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
   * @version $Id: PackageProjectMap.java,v 1.1 2002/03/24 21:09:07 jvanzyl Exp $
   */
  public class PackageProjectMap
       extends AbstractExecutor
  {
      /**
       * The directory where all the Maven descriptors are stored.
       */
      private File descriptorDir;
  
      /**
       * Where to write the resultant package -> project map.
       */
      private File map;
  
      /**
       * Set the directory where all the Maven descriptors are stored.
       *
       * @param descriptorDir The directory where all the Maven descriptors are
       *      stored.
       */
      public void setDescriptorDir(File descriptorDir)
      {
          this.descriptorDir = descriptorDir;
      }
  
      /**
       * Get the directory where all the Maven descriptors are stored.
       *
       * @return The directory where all the Maven descriptors are stored.
       */
      public File getDescriptorDir()
      {
          return descriptorDir;
      }
  
      /**
       * Set the directory where all the Maven descriptors are stored.
       *
       * @param descriptorDir The directory where all the Maven descriptors are
       *      stored.
       */
      public void setMap(File map)
      {
          this.map = map;
      }
  
      /**
       * Get the directory where all the Maven descriptors are stored.
       *
       * @return The directory where all the Maven descriptors are stored.
       */
      public File getMap()
      {
          return map;
      }
  
      /**
       * Execute the the overall maven opertion.
       *
       * @throws BuildException
       */
      public void execute()
          throws Exception
      {
          if (descriptorDir == null)
          {
              throw new Exception("descriptorDir attribute must be specified!");
          }            
  
          if (map == null)
          {
              throw new Exception("map attribute must be specified!");
          }            
          
          String[] projects = 
              MavenUtils.getFiles(descriptorDir.getAbsolutePath(), "*.xml");
          
          Properties m = new Properties();
          
          for (int i = 0; i < projects.length; i++)
          {
              Project p = MavenUtils.getProject(projects[i]);
              String projectPackage = p.getPackage();
              String projectId = p.getId();
              
              // Some of the projects may not have packages.
              if (projectPackage != null && projectId != null)
              {
                  m.put(projectPackage, projectId);
              }                
          }
          
          FileOutputStream fos = new FileOutputStream(map);
          m.store(fos,"Package -> Project Map");
          fos.close();
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>