You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by an...@apache.org on 2004/11/23 20:52:41 UTC
svn commit: r106334 - /cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/blocks-classpath.xsl /cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl /cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml
Author: antonio
Date: Tue Nov 23 11:52:40 2004
New Revision: 106334
Added:
cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/blocks-classpath.xsl
Modified:
cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl
cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml
Log:
Add eclipse-customized-project (use [local.]blocks.properties)
Added: cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/blocks-classpath.xsl
Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/blocks-classpath.xsl?view=auto&rev=106334
==============================================================================
--- (empty file)
+++ cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/blocks-classpath.xsl Tue Nov 23 11:52:40 2004
@@ -0,0 +1,234 @@
+<?xml version="1.0"?>
+
+<!--
+ Copyright 1999-2004 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="xml" indent="yes"/>
+
+ <xsl:template match="/">
+ <project default="generate-customized-eclipse-project" basedir="." name="blocks-eclipse">
+ <description>Autogenerated Ant build file that builds customized eclipse project for selected blocks.</description>
+ <xsl:apply-templates select="module"/>
+ </project>
+ </xsl:template>
+
+ <xsl:template match="module">
+ <xsl:variable name="cocoon-blocks" select="project[starts-with(@name, 'cocoon-block-')]"/>
+
+ <!-- Define wich blocks will be included -->
+ <target name="init">
+ <xsl:for-each select="$cocoon-blocks">
+ <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/>
+ <condition property="include.block.{$block-name}">
+ <not>
+ <istrue value="${{exclude.block.{$block-name}}}"/>
+ </not>
+ </condition>
+ <condition property="internal.exclude.block.{$block-name}">
+ <isfalse value="${{include.block.{$block-name}}}"/>
+ </condition>
+ </xsl:for-each>
+
+ <!-- prepare the various paths that will form the project -->
+ <path id="srcs">
+ <!-- main source dir -->
+ <pathelement path="${{src}}/java"/>
+ <!-- samples source dir -->
+ <!-- FIXME: Load based on local.build.properties -->
+ <pathelement path="${{src}}/samples"/>
+ <!-- deprecated source dir -->
+ <!-- FIXME: Load based on local.build.properties -->
+ <pathelement path="${{src}}/deprecated/java"/>
+ <!-- test source dir -->
+ <pathelement path="${{src}}/test"/>
+ </path>
+ <!--core mocks -->
+ <path id="mockss">
+ <dirset dir="${{src}}">
+ <include name="mocks"/>
+ </dirset>
+ </path>
+
+ <path id="libs">
+ <!-- main libs -->
+ <fileset dir="${{lib}}">
+ <include name="core/*.jar"/>
+ <include name="local/*.jar"/>
+ <include name="endorsed/*.jar"/>
+ </fileset>
+ <!-- tools libs -->
+ <fileset dir="${{tools}}/lib">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+
+ <!-- convert paths to properties -->
+ <property name="srcs" refid="srcs"/>
+ <property name="mockss" refid="mockss"/>
+ <property name="libs" refid="libs"/>
+
+ <!-- start to expand properties in the template file -->
+ <copy file="${{tools}}/ide/eclipse/classpath-tmpl.xml"
+ tofile="${{build.temp}}/classpath-temp.xml"
+ filtering="yes"
+ overwrite="yes">
+ <filterset>
+ <filter token="SRC_DIRS" value="${{srcs}}:@eclipse-src@"/>
+ <filter token="LIBS" value="${{libs}}:@eclipse-libs@"/>
+ <filter token="MOCKS_DIRS" value="${{mockss}}:@eclipse-mocks@"/>
+ <filter token="OUTPUT_DIR" value="${{ide.eclipse.outputdir}}"/>
+ </filterset>
+ </copy>
+ </target>
+
+ <target name="generate-customized-eclipse-project">
+ <xsl:attribute name="depends">
+ <xsl:text>init</xsl:text>
+ <xsl:for-each select="$cocoon-blocks">
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="concat(@name, '-eclipseclasspath')"/>
+ </xsl:for-each>
+ </xsl:attribute>
+
+ <!-- clean up src, libs and mocks -->
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token=":@eclipse-src@" value=""/>
+
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token=":@eclipse-libs@" value=""/>
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token="@eclipse-libs@" value=""/>
+
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token=":@eclipse-mocks@" value=""/>
+
+ <!-- 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 -->
+ <echo>Generate classpath</echo>
+ <xslt in="${{build.temp}}/classpath-temp.xml" out="${{basedir}}/.classpath"
+ style="${{tools}}/ide/eclipse/make-classpath.xsl">
+ <param name="exportlib" expression="${{ide.eclipse.export.libs}}"/>
+ </xslt>
+
+ <!-- copy the project file (expand version) -->
+ <copy file="${{tools}}/ide/eclipse/project"
+ tofile="${{basedir}}/.project"
+ overwrite="yes">
+ <filterset>
+ <filter token="VERSION" value="${{version}}"/>
+ </filterset>
+ </copy>
+ </target>
+
+ <xsl:apply-templates select="$cocoon-blocks"/>
+ </xsl:template>
+
+ <!-- For each project in gump.xml -->
+ <xsl:template match="project">
+ <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/>
+ <xsl:variable name="cocoon-block-dependencies" select="depend[starts-with(@project,'cocoon-block-')]"/>
+
+ <target name="{@name}-eclipseclasspath" unless="internal.exclude.block.{$block-name}">
+ <!-- block src and test directory -->
+ <if>
+ <available file="${{blocks}}/{$block-name}/java" type="dir"/>
+ <then>
+ <path id="src-{$block-name}">
+ <dirset dir="${{blocks}}/{$block-name}">
+ <include name="java"/>
+ <include name="test"/>
+ </dirset>
+ </path>
+ <property name="src-{$block-name}" refid="src-{$block-name}"/>
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token="@eclipse-src@" value="${{src-{$block-name}}}:@eclipse-src@"/>
+ </then>
+ </if>
+ <!-- block mocks directory -->
+ <if>
+ <available file="${{blocks}}/{$block-name}/mocks" type="dir"/>
+ <then>
+ <path id="mocks-{$block-name}">
+ <dirset dir="${{blocks}}/{$block-name}">
+ <include name="**/mocks"/>
+ </dirset>
+ </path>
+ <property name="mocks-{$block-name}" refid="mocks-{$block-name}"/>
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token="@eclipse-mocks@" value="${{mocks-{$block-name}}}:@eclipse-mocks@"/>
+ </then>
+ </if>
+
+ <!-- block lib directory (deprecated) -->
+ <if>
+ <available file="${{blocks}}/{$block-name}/lib" type="dir"/>
+ <then>
+ <path id="lib-{$block-name}">
+ <fileset dir="${{blocks}}/{$block-name}">
+ <include name="**/*.jar"/>
+ </fileset>
+ </path>
+ <property name="lib-{$block-name}" refid="lib-{$block-name}"/>
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token="@eclipse-libs@" value="${{lib-{$block-name}}}:@eclipse-libs@"/>
+ </then>
+ </if>
+ <!-- Add optional libraries used by this block -->
+ <xsl:if test="library[not(@bundle='false')]">
+ <xsl:for-each select="library[not(@bundle='false')]">
+ <if>
+ <not>
+ <istrue value="${{eclipse-optional-lib-{@name}}}"/>
+ </not>
+ <then>
+ <property name="eclipse-optional-lib-{@name}" value="true"/>
+ <path id="eclipse-optional-lib-{$block-name}-{@name}">
+ <fileset dir="${{lib.optional}}">
+ <include name="{@name}*.jar"/>
+ </fileset>
+ </path>
+ <property name="eclipse-optional-lib-{$block-name}-{@name}" refid="eclipse-optional-lib-{$block-name}-{@name}"/>
+ <!-- The new lib cannot be empty -->
+ <if>
+ <not>
+ <equals arg1="${{eclipse-optional-lib-{$block-name}-{@name}}}" arg2=""/>
+ </not>
+ <then>
+ <replace file="${{build.temp}}/classpath-temp.xml"
+ token="@eclipse-libs@" value="${{eclipse-optional-lib-{$block-name}-{@name}}}:@eclipse-libs@"/>
+ </then>
+ </if>
+ </then>
+ </if>
+ </xsl:for-each>
+ </xsl:if>
+ </target>
+ </xsl:template>
+</xsl:stylesheet>
Modified: cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl
Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl?view=diff&rev=106334&p1=cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl&r1=106333&p2=cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl&r2=106334
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl (original)
+++ cocoon/branches/BRANCH_2_1_X/tools/ide/eclipse/make-classpath.xsl Tue Nov 23 11:52:40 2004
@@ -17,16 +17,16 @@
<!--
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.3 2004/03/08 06:07:15 antonio Exp $
+ @version CVS $Id$
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml"/>
<xsl:param name="exportlib"/>
-
+
<xsl:strip-space elements="*"/>
<xsl:template match="/data">
@@ -38,7 +38,7 @@
<xsl:sort select="."/>
<classpathentry kind="src" path="{.}"/>
</xsl:for-each>
-
+
<!-- 2. libraries -->
<xsl:for-each select="libs/item">
<!-- alphabetical sorting, only file name -->
@@ -50,12 +50,15 @@
<xsl:sort select="concat(substring-after(substring-after(substring-after(substring-after(., '/'), '/'), '/'), '/'),
substring-after(substring-after(substring-after(., '/'), '/'), '/'),
substring-after(substring-after(., '/'), '/'))"/>
- <classpathentry exported="{$exportlib}" kind="lib" path="{.}"/>
+ <!-- Remove duplicated library entries (diferent blocks can refer the same lib -->
+ <xsl:if test="not(node()) or not(preceding-sibling::node()[.=string(current())])">
+ <classpathentry exported="{$exportlib}" kind="lib" path="{.}"/>
+ </xsl:if>
</xsl:for-each>
<!-- 3. JRE runtime -->
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-
+
<!-- 4. output directory
Build in a separate dir since Eclipse is confused
by classes compiled externally by Sun's Javac -->
Modified: cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml
Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml?view=diff&rev=106334&p1=cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml&r1=106333&p2=cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml&r2=106334
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/tools/targets/ide-build.xml Tue Nov 23 11:52:40 2004
@@ -15,11 +15,24 @@
limitations under the License.
-->
<project name="ide">
-
+
<description>
IDE targets
</description>
+ <!-- Build the Eclipse customized project's files -->
+ <target name="eclipse-customized-project" depends="prepare" description="Generate the Eclipse customized project files (using local.block.properties)">
+ <echo message="Building Eclipse Customized Project Files"/>
+ <xslt in="${gump.descriptor}"
+ out="${build.temp}/blocks-eclipse.xml"
+ style="${tools}/ide/eclipse/blocks-classpath.xsl"/>
+
+ <ant antfile="${build.temp}/blocks-eclipse.xml"
+ inheritAll="true"
+ inheritRefs="false"
+ target="generate-customized-eclipse-project"/>
+ </target>
+
<!-- Generate the Emacs JDE project file -->
<target name="emacs-project" depends="prepare" description="Generate the Emacs project files">
<path id="jar.files">
@@ -71,7 +84,7 @@
<!-- main libs -->
<fileset dir="${lib}">
<include name="core/*.jar"/>
- <!-- Currently, we have no JVM dependent libraries
+ <!-- Currently, we have no JVM dependent libraries
<include name="core/jvm${target.vm}/*.jar"/>
-->
<include name="optional/*.jar"/>
@@ -85,7 +98,7 @@
<!-- tools libs -->
<fileset dir="${tools}/lib">
<include name="*.jar"/>
- </fileset>
+ </fileset>
</path>
<!-- convert paths to properties -->
@@ -122,7 +135,6 @@
<!-- now build the .classpath file -->
<xslt in="${build.temp}/classpath-temp.xml" out="${basedir}/.classpath"
- processor="trax"
style="${tools}/ide/eclipse/make-classpath.xsl">
<param name="exportlib" expression="${ide.eclipse.export.libs}"/>
</xslt>
@@ -146,7 +158,7 @@
tofile="${build.webapp}/WEB-INF/classes/org/apache/cocoon/cocoon.roles"
overwrite="yes"/>
</target>
-
+
<target name="eclipse-webapp-delete-jars" depends="prepare">
<!-- delete all jars and class files, they are already included in the project -->
<delete>