gianugo 2003/02/24 10:41:58
Modified: . contributor.xml Added: tools/eclipse classpath-tmpl.xml make-classpath.xsl project Log: Another goodie boorowed from Cocoon. Run "ant -f contributor.xml eclipse-project" (don't bother trying the included ant: it's missing the required xslt task), open Eclipse->New Project->Java->browse to the xml-xindice directory->Next and enjoy your automatically created Eclipse project! Revision Changes Path 1.7 +80 -2 xml-xindice/contributor.xml Index: contributor.xml =================================================================== RCS file: /home/cvs/xml-xindice/contributor.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- contributor.xml 15 Feb 2003 23:00:31 -0000 1.6 +++ contributor.xml 24 Feb 2003 18:41:57 -0000 1.7 @@ -30,6 +30,8 @@ <property name="root.dir" value="java"/> <property name="jar.dir" value="${root.dir}/lib"/> <property name="src.dir" value="${root.dir}/src"/> + <property name="scratchpad.src.dir" value="${root.dir}/scratchpad/src"/> + <property name="scratchpad.jar.dir" value="${root.dir}/scratchpad/lib"/> <property name="test.src.dir" value="${root.dir}/tests/src"/> <property name="examples.dir" value="${root.dir}/examples"/> <property name="bin.dir" value="bin"/> @@ -38,6 +40,7 @@ <!-- destination directories --> <property name="build.dir" value="build"/> + <property name="build.temp" value="${build.dir}/temp"/> <property name="src.build.dir" value="${build.dir}/classes"/> <property name="test.build.dir" value="${build.dir}/classes-tests"/> <property name="examples.build.dir" value="${build.dir}/classes-examples"/> @@ -250,4 +253,79 @@ </pmd> </target> -</project> \ No newline at end of file + <!-- Build the Eclipse projects files --> + <target name="eclipse-project" description="Generate the Eclipse project files"> + <property name="eclipse" value="tools/eclipse"/> + + <!-- prepare the various paths that will form the project --> + <path id="srcs"> + <!-- main source dir --> + <pathelement path="${src.dir}"/> + <!-- scratchpad source dir --> + <pathelement path="${scratchpad.src.dir}"/> + <!-- unit tests dir --> + <pathelement path="${test.src.dir}"/> + <!-- examples (guide) dir --> + <pathelement path="${examples.dir}/guide/src"/> + <!-- examples (Addressbook) dir --> + <pathelement path="${examples.dir}/Addressbook/src/java"/> + </path> + + <path id="libs"> + <!-- main libs --> + <fileset dir="${jar.dir}"> + <include name="*.jar"/> + </fileset> + <!-- scratchpad libs --> + <fileset dir="${scratchpad.jar.dir}"> + <include name="*.jar"/> + </fileset> + </path> + + <!-- convert paths to properties --> + <property name="srcs" refid="srcs"/> + <property name="libs" refid="libs"/> + + <!-- expand properties in the template file --> + <copy file="${eclipse}/classpath-tmpl.xml" + tofile="${build.temp}/classpath-temp.xml" + filtering="yes" + overwrite="yes"> + <filterset> + <filter token="SRC_DIRS" value="${srcs}"/> + <filter token="LIBS" value="${libs}"/> + </filterset> + </copy> + + <!-- split the path in 'item' XML elements --> + <replace file="${build.temp}/classpath-temp.xml" + token="${path.separator}" value="</item>
 <item>"/> + <!-- relativize file names by removing the current directory --> + <replace file="${build.temp}/classpath-temp.xml" + token="${user}${file.separator}" value=""/> + <!-- and in case that fails, remove the base directory --> + <replace file="${build.temp}/classpath-temp.xml" + token="${basedir}${file.separator}" value=""/> + + <!-- replace platform-dependent path separator by '/' --> + <replace file="${build.temp}/classpath-temp.xml" + token="${file.separator}" value="/"/> + + <!-- now build the .classpath file --> + <xslt in="${build.temp}/classpath-temp.xml" out="${basedir}/.classpath" + processor="trax" + style="${eclipse}/make-classpath.xsl"/> + + <!-- copy the project file (expand version) --> + <copy file="${eclipse}/project" + tofile="${basedir}/.project" + overwrite="yes"> + <filterset> + <filter token="VERSION" value="${project.version}"/> + </filterset> + </copy> + + <delete file="${build.temp}/classpath-temp.xml"/> + </target> + +</project> 1.1 xml-xindice/tools/eclipse/classpath-tmpl.xml Index: classpath-tmpl.xml =================================================================== <?xml version="1.0"?> <data> <src-dirs><item>@SRC_DIRS@</item></src-dirs> <libs><item>@LIBS@</item></libs> </data> 1.1 xml-xindice/tools/eclipse/make-classpath.xsl Index: make-classpath.xsl =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!-- Build the Eclipse .classpath file from a list of path items (see "eclipse-project" target in build.xml) @author Sylvain Wallez @version CVS $Id: make-classpath.xsl,v 1.1 2003/02/24 18:41:57 gianugo Exp $ --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes" method="xml"/> <xsl:strip-space elements="*"/> <xsl:template match="/data"> <classpath> <!-- 1. source dirs --> <xsl:for-each select="src-dirs/item"> <classpathentry kind="src" path="{.}"/> </xsl:for-each> <!-- 2. libraries --> <xsl:for-each select="libs/item"> <classpathentry kind="lib" path="{.}"/> </xsl:for-each> <!-- 3. mock classes --> <xsl:for-each select="mock-dirs/item"> <classpathentry kind="src" path="{.}"/> </xsl:for-each> <!-- 4. JRE runtime --> <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/> <!-- output directory. Build in a separate dir since Eclipse is confused by classes compiled externally by Sun's Javac --> <classpathentry kind="output" path="build/eclipse/classes"/> </classpath> </xsl:template> </xsl:stylesheet> 1.1 xml-xindice/tools/eclipse/project Index: project =================================================================== <?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>Xindice @VERSION@</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> </natures> </projectDescription>