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>