You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2004/04/18 13:13:19 UTC

cvs commit: avalon maven.xml

mcconnell    2004/04/18 04:13:19

  Added:       .        maven.xml
  Log:
  Move merlin's maven.xml to top level so we get the filtering stuff across acomposition and activation.  This file will be revisited shortly (i.a. Niclas - don't touch!) ;-)
  
  Revision  Changes    Path
  1.1                  avalon/maven.xml
  
  Index: maven.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE project [
    <!ENTITY % index SYSTEM "file:index.ent"> %index;
  ]>
  <project default="avalon:install" xmlns:maven="jelly:maven" xmlns:j="jelly:core" xmlns:util="jelly:util" xmlns:ant="jelly:ant">
  
    <!--
    ==============================================================================
    switches 
    ==============================================================================
    -->
  
    <ant:property name="merlin.snapshot" value="true"/>
  
    <!--
    ==============================================================================
    dependent properties 
    ==============================================================================
    -->
  
    <ant:property name="avalon.util.plugin.version" 
        value="&avalon-util-plugin-version;"/>
    <ant:property name="merlin.cli.version" 
        value="&merlin-cli-version;"/>
    <ant:property name="merlin.plugin.version" 
        value="&merlin-plugin-version;"/>
    <ant:property name="merlin.impl.version" 
        value="&merlin-impl-version;"/>
    <ant:property name="meta.plugin.version" 
        value="&avalon-meta-plugin-version;"/>
    <ant:property name="repository.cli.version" 
        value="&avalon-repository-cli-version;"/>
  
    <!--
    ==============================================================================
    derived properties 
    ==============================================================================
    -->
  
    <ant:property name="avalon.plugin.jar" 
       value="avalon-util-plugin-${avalon.util.plugin.version}.jar"/>
    <ant:property name="meta.plugin.jar" 
       value="avalon-meta-plugin-${meta.plugin.version}.jar"/>
    <ant:property name="merlin.cli.jar" 
       value="merlin-cli-${merlin.cli.version}.jar"/>
    <ant:property name="merlin.plugin.jar" 
       value="merlin-plugin-${merlin.plugin.version}.jar"/>
  
    <!--
    ==============================================================================
    structural properties 
    ==============================================================================
    -->
  
    <ant:property file="project.properties"/>
    <ant:property name="merlin.build.inst" value="merlin"/>
    <ant:property name="merlin.build.inst.dir" 
      value="${maven.build.dir}/${merlin.build.inst}"/>
    <ant:property name="maven.jar.manifest.extensions.add" value="false"/>
    <ant:property name="maven.checkstyle.format" value="avalon"/>
    <ant:property name="pom.organization.identifier" value="ASF"/>
    <ant:property name="pom.specificationVersion" value="&merlin-spec;"/>
    <ant:property name="maven.license.licenseFile" value="${basedir}/LICENSE.txt"/>
    <maven:snapshot project="${pom}"/>
  
    <!--
    ==============================================================================
    resolve merlin home environment variables 
    ==============================================================================
    -->
  
    <ant:property environment="env"/>
    <ant:property name="merlinEnvironment" value="${env.MERLIN_HOME}"/>
    <j:if test="${merlinEnvironment != ''}">
      <ant:property name="merlin.home" value="${merlinEnvironment}"/>
    </j:if>
    <ant:property name="merlin.home" value="${user.home}/.merlin"/>
  
    <!--
    ==============================================================================
    build the merlin distribution 
    ==============================================================================
    -->
  
    <goal name="avalon:dist">
      <attainGoal name="avalon:install"/>
      <attainGoal name="avalon:site"/>
      <!-- <attainGoal name="avalon:tutorials"/> -->
      <attainGoal name="avalon:package"/>
    </goal>
  
    <preGoal name="java:jar-resources">
      <ant:filter token="AVALON-LOGGING-LOGKIT-SPEC" 
          value="&avalon-logging-logkit-artifact-spec;"/>
      <ant:filter token="MERLIN_IMPLEMENTATION" 
          value="artifact:merlin/merlin-impl#${merlin.impl.version}"/>
      <ant:filter token="LOGGING_IMPLEMENTATION" 
          value="&avalon-logging-logkit-artifact;"/>
      <ant:filter token="STANDARD_RUNTIME" 
          value="&avalon-activation-artifact;"/>
    </preGoal>
  
    <!--
    ==============================================================================
    build the merlin system 
    ==============================================================================
    -->
  
    <goal name="avalon:build" description="Build Merlin."
      prereqs="avalon:build-main,avalon:build-kernel,avalon:build-plugin,avalon:build-externals"/>
  
    <goal name="avalon:build-main" description="Build Merlin.">
      <maven:reactor basedir="${basedir}"
        includes="extension/**/project.xml,composition/**/project.xml,activation/**/project.xml,kernel/api/project.xml,kernel/impl/project.xml"
        banner="Installing:"
        goals="jar:install"
        ignoreFailures="false" 
        postProcessing="true" />
      <j:forEach var="child" items="${reactorProjects}">
        <j:set var="dir" 
            value="${maven.build.dir}/merlin/system"/>
        <j:set var="path" 
            value="${dir}/${child.groupId}/jars/${child.artifactId}-${child.currentVersion}.jar"/>
        <ant:copy todir="${dir}/${child.groupId}/jars" 
               preserveLastModified="true">
          <ant:fileset dir="${child.file.parentFile}/target">
            <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar"/>
            <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar.meta"/>
          </ant:fileset>
        </ant:copy>
        <checksum file="${path}" fileext=".md5" />
        <j:if test="${maven_gpg_exe != null}">
          <ant:exec executable="${maven_gpg_exe}">
            <ant:arg value="-a"/>
            <ant:arg value="--yes"/>
            <ant:arg value="-b"/>
            <ant:arg value="${path}"/>
          </ant:exec>
        </j:if>
        <j:set var="deps" value="${child.dependencies}"/>
        <j:forEach var="dep" items="${deps}">
          <ant:copy todir="${maven.build.dir}/merlin/system"
              preserveLastModified="true">
            <ant:fileset dir="${maven.repo.local}">
              <ant:include name="${dep.getArtifactDirectory()}/${dep.getType()}s/${dep.getArtifact()}"/>
            </ant:fileset>
          </ant:copy>
        </j:forEach>
      </j:forEach>
    </goal>
  
    <goal name="avalon:build-kernel">
      <maven:reactor basedir="${basedir}"
        includes="kernel/unit/project.xml,kernel/cli/project.xml"
        goals="jar:install"
        banner="Installing:"
        ignoreFailures="false" 
        postProcessing="true" />
      <j:forEach var="child" items="${reactorProjects}">
        <j:set var="dir" 
            value="${maven.build.dir}/merlin/system"/>
        <j:set var="path" 
            value="${dir}/${child.groupId}/jars/${child.artifactId}-${child.currentVersion}.jar"/>
        <ant:copy todir="${dir}/${child.groupId}/jars" 
               preserveLastModified="true">
          <ant:fileset dir="${child.file.parentFile}/target">
            <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar"/>
            <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar.meta"/>
          </ant:fileset>
        </ant:copy>
        <checksum file="${path}" fileext=".md5" />
        <j:if test="${maven_gpg_exe != null}">
          <ant:exec executable="${maven_gpg_exe}">
            <ant:arg value="-a"/>
            <ant:arg value="--yes"/>
            <ant:arg value="-b"/>
            <ant:arg value="${path}"/>
          </ant:exec>
        </j:if>
        <!-- FIXME update the cli scripts to reference cli under the merlin.system repo -->
        <j:if test="${child.artifactId == 'merlin-cli'}">
          <ant:copy todir="${maven.build.dir}/merlin/bin/lib" 
               preserveLastModified="true">
            <ant:fileset dir="${child.file.parentFile}/target">
              <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar"/>
            </ant:fileset>
          </ant:copy>
        </j:if>
      </j:forEach>
    </goal>
  
    <goal name="avalon:build-plugin">
      <maven:reactor basedir="${basedir}"
        includes="kernel/plugin/project.xml"
        goals="plugin:install"
        banner="Installing:"
        ignoreFailures="false" 
        postProcessing="true" />
      <j:forEach var="child" items="${reactorProjects}">
        <j:set var="dir" 
            value="${maven.build.dir}/merlin/system"/>
        <j:set var="path" 
            value="${dir}/${child.groupId}/jars/${child.artifactId}-${child.currentVersion}.jar"/>
        <ant:copy todir="${dir}/${child.groupId}/jars" 
               preserveLastModified="true">
          <ant:fileset dir="${child.file.parentFile}/target">
            <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar"/>
            <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar.meta"/>
          </ant:fileset>
        </ant:copy>
        <checksum file="${path}" fileext=".md5" />
        <j:if test="${maven_gpg_exe != null}">
          <ant:exec executable="${maven_gpg_exe}">
            <ant:arg value="-a"/>
            <ant:arg value="--yes"/>
            <ant:arg value="-b"/>
            <ant:arg value="${path}"/>
          </ant:exec>
        </j:if>
        <ant:copy todir="${maven.build.dir}/merlin/plugins/" 
               preserveLastModified="true">
          <ant:fileset dir="${child.file.parentFile}/target">
              <ant:include 
                name="${child.artifactId}-${child.currentVersion}.jar"/>
          </ant:fileset>
        </ant:copy>
      </j:forEach>
      <ant:copy file="${maven.plugin.dir}/${meta.plugin.jar}" 
         toDir="${maven.build.dir}/merlin/plugins"/>
      <ant:copy file="${maven.plugin.dir}/${avalon.plugin.jar}" 
         toDir="${maven.build.dir}/merlin/plugins"/>
    </goal>
  
    <goal name="avalon:build-externals" description="Build Externals.">
      <maven:reactor basedir="${basedir}"
        includes="external.xml"
        banner="Installing:"
        ignoreFailures="false" 
        postProcessing="true" />
  
      <j:forEach var="child" items="${reactorProjects}">
        <echo>${child}</echo>
        <j:set var="deps" value="${child.dependencies}"/>
          <j:forEach var="dep" items="${deps}">
            <echo>${maven.repo.local}/${dep.getArtifactDirectory()}/${dep.getType()}s/${dep.getArtifact()}</echo>
            <ant:copy todir="${maven.build.dir}/merlin/system"
                preserveLastModified="true">
              <ant:fileset dir="${maven.repo.local}">
                <ant:include name="${dep.getArtifactDirectory()}/${dep.getType()}s/${dep.getArtifact()}"/>
                <ant:include name="${dep.getArtifactDirectory()}/${dep.getType()}s/${dep.getArtifact()}.meta"/>
              </ant:fileset>
            </ant:copy>
          </j:forEach>
      </j:forEach>
    </goal>
  
    <!--
    ==============================================================================
    build the merlin installation 
    ==============================================================================
    -->
  
    <goal name="avalon:install" 
      description="Build the Merlin distribution." prereqs="avalon:build,avalon:xinstall"/>
  
    <goal name="avalon:xinstall">
      <!-- add supporting resources -->
      <ant:copy toDir="${merlin.build.inst.dir}">
        <fileset dir="${basedir}">
          <include name="INSTALL.TXT"/>
        </fileset>
        <filterset>
          <filter token="MERLIN_PLUGIN_JAR" value="${merlin.plugin.jar}"/>
          <filter token="META_PLUGIN_JAR" value="${meta.plugin.jar}"/>
          <filter token="VERSION" value="${pom.currentVersion}"/>
        </filterset>
      </ant:copy>
      <ant:copy toDir="${merlin.build.inst.dir}">
        <fileset dir="${basedir}/platform/src">
          <include name="bin/**/*"/>
          <exclude name="bin/**/*.jar"/>
          <exclude name="bin/**/*.exe"/>
          <exclude name="bin/**/*.dll"/>
        </fileset>
        <fileset dir="${basedir}/kernel/cli/src">
          <include name="bin/**/*"/>
          <exclude name="bin/**/*.jar"/>
          <exclude name="bin/**/*.exe"/>
          <exclude name="bin/**/*.dll"/>
        </fileset>
        <fileset dir="${basedir}">
          <include name="README.TXT"/>
        </fileset>
        <filterset>
          <filter token="VERSION" value="${pom.currentVersion}"/>
          <filter token="MERLIN_CLI_JAR" value="${merlin.cli.jar}"/>
          <filter token="MERLIN_CLI_VERSION" value="${merlin.cli.version}"/>
          <filter token="AVALON_CLI_VERSION" value="${repository.cli.version}"/>
        </filterset>
      </ant:copy>
      <ant:copy toDir="${merlin.build.inst.dir}">
        <fileset dir="${basedir}/platform/src">
          <include name="bin/**/*.jar"/>
          <include name="bin/**/*.exe"/>
          <include name="bin/**/*.dll"/>
          <include name="config/**/*"/>
        </fileset>
        <fileset dir="${basedir}">
          <include name="LICENSE.txt"/>
        </fileset>
      </ant:copy>
      <ant:fixcrlf eol="crlf" srcdir="${merlin.build.inst.dir}/bin">
         <include name="README.TXT"/>
      </ant:fixcrlf>
      <ant:fixcrlf eol="crlf" srcdir="${merlin.build.dir}">
         <include name="INSTALL.TXT"/>
      </ant:fixcrlf>
      <ant:fixcrlf eol="crlf" srcdir="${merlin.build.inst.dir}/bin">
        <include name="merlin.bat"/>
        <include name="merlinx.bat"/>
        <include name="README.TXT"/>
        <include name="LICENSE.TXT"/>
      </ant:fixcrlf>
      <ant:fixcrlf eol="crlf" srcdir="${merlin.build.inst.dir}/bin/nt">
        <include name="InstallService-NT.bat"/>
        <include name="UninstallService-NT.bat"/>
        <include name="TANUKISOFTWARE_LICENSE.txt"/>
        <include name="wrapper.conf"/>
      </ant:fixcrlf>
      <ant:fixcrlf eol="lf" srcdir="${merlin.build.inst.dir}/bin">
        <include name="*.sh"/>
      </ant:fixcrlf>
      <ant:chmod file="${merlin.build.inst.dir}/bin/merlin" perm="ugo+rx"/>
      <ant:chmod file="${merlin.build.inst.dir}/bin/merlinx" perm="ugo+rx"/>
      <ant:chmod file="${merlin.build.inst.dir}/bin/internal-cygwin.sh" perm="ugo+rx"/>
      <ant:chmod file="${merlin.build.inst.dir}/bin/internal-unix.sh" perm="ugo+rx"/>
      <ant:chmod file="${merlin.build.inst.dir}/bin/merlin.sh" perm="ugo+rx"/>
      <ant:chmod file="${merlin.build.inst.dir}/bin/merlinx.sh" perm="ugo+rx"/>
      <ant:chmod file="${merlin.build.inst.dir}/bin/merlin-server.sh" perm="ugo+rx"/>
    </goal>
  
    <!--
    ==============================================================================
    prepare the merlin installation package
    ==============================================================================
    -->
  
    <goal name="avalon:package">
  
      <ant:delete>
        <fileset dir="${maven.build.dir}">
          <include name="*.zip"/>
          <include name="*.tar"/>
          <include name="*.tar.gz"/>
          <include name="*.md5"/>
          <include name="*.asc"/>
        </fileset>
      </ant:delete>
  
      <j:choose>
        <j:when test="${merlin.snapshot}">
          <maven:snapshot project="${pom}"/>
          <j:set var="timestamp" value="${snapshotSignature.substring(7,15)}"/>
          <j:set var="package.name" value="${maven.final.name}-dist-${timestamp}"/>
          <j:set var="tutorial.name" value="${maven.final.name}-tutorial-${timestamp}"/>
          <echo>Snapshot Packaging: ${timestamp}</echo>
        </j:when>
        <j:otherwise>
          <j:set var="package.name" value="${maven.final.name}-dist"/>
          <j:set var="tutorial.name" value="${maven.final.name}-tutorial"/>
          <echo>Release Packaging: ${pom.currentVersion}</echo>
        </j:otherwise>
      </j:choose>
  
      <ant:echo>Building zip distribution: ${package.name}</ant:echo>
      <ant:zip zipfile="${maven.build.dir}/${package.name}.zip">
        <zipfileset dir="${merlin.build.inst.dir}" prefix="merlin"/>
        <fileset dir="${basedir}">
          <include name="INSTALL.TXT"/>
        </fileset>
        <fileset dir="${maven.build.dir}">
          <include name="docs/**"/>
        </fileset>
      </ant:zip>
      <checksum file="${maven.build.dir}/${package.name}.zip" fileext=".md5" />
      <j:if test="${maven_gpg_exe != null}">
        <ant:exec executable="${maven_gpg_exe}">
          <ant:arg value="-a"/>
          <ant:arg value="-b"/>
          <ant:arg value="${maven.build.dir}/${package.name}.zip"/>
        </ant:exec>
      </j:if>
  
      <ant:echo>Building tar distribution: ${package.name}</ant:echo>
      <ant:tar longfile="gnu" tarfile="${maven.build.dir}/${package.name}.tar">
        <tarfileset dir="${merlin.build.inst.dir}" prefix="merlin"/>
        <fileset dir="${basedir}">
          <include name="INSTALL.TXT"/>
        </fileset>
        <fileset dir="${maven.build.dir}">
          <include name="docs/**"/>
        </fileset>
      </ant:tar>
      <ant:gzip 
        zipfile="${maven.build.dir}/${package.name}.tar.gz"
        src="${maven.build.dir}/${package.name}.tar"/>
      <ant:delete file="${maven.build.dir}/${package.name}.tar"/>
      <checksum file="${maven.build.dir}/${package.name}.tar.gz" fileext=".md5" />
      <j:if test="${maven_gpg_exe != null}">
        <ant:exec executable="${maven_gpg_exe}">
          <ant:arg value="-a"/>
          <ant:arg value="-b"/>
          <ant:arg value="${maven.build.dir}/${package.name}.tar.gz"/>
        </ant:exec>
      </j:if>
  
      <!--
      <ant:echo>Building tutorial kit: ${tutorial.name}</ant:echo>
      <ant:zip zipfile="${maven.build.dir}/${tutorial.name}.zip">
        <zipfileset dir="${basedir}/target/tutorials" prefix="tutorial"/>
      </ant:zip>
      <checksum file="${maven.build.dir}/${tutorial.name}.zip" fileext=".md5" />
      <j:if test="${maven_gpg_exe != null}">
        <ant:exec executable="${maven_gpg_exe}">
          <ant:arg value="-a"/>
          <ant:arg value="-b"/>
          <ant:arg value="${maven.build.dir}/${tutorial.name}.zip"/>
        </ant:exec>
      </j:if>
  
      <ant:tar longfile="gnu" tarfile="${maven.build.dir}/${tutorial.name}.tar">
        <tarfileset dir="${basedir}/target/tutorials" prefix="tutorial"/>
      </ant:tar>
      <ant:gzip 
        zipfile="${maven.build.dir}/${tutorial.name}.tar.gz"
        src="${maven.build.dir}/${tutorial.name}.tar"/>
      <ant:delete file="${maven.build.dir}/${tutorial.name}.tar"/>
      <checksum file="${maven.build.dir}/${tutorial.name}.tar.gz" fileext=".md5" />
      <j:if test="${maven_gpg_exe != null}">
        <ant:exec executable="${maven_gpg_exe}">
          <ant:arg value="-a"/>
          <ant:arg value="-b"/>
          <ant:arg value="${maven.build.dir}/${tutorial.name}.tar.gz"/>
        </ant:exec>
      </j:if>
      -->
  
    </goal>
  
    <!--
    ==============================================================================
    Generation of the documentation for project 
    ==============================================================================
    -->
  
    <goal name="avalon:site" 
        description="Build the Merlin site" 
        prereqs="xavalon:css-copy,license,xjavadoc,site"/>
  
    <goal name="xavalon:css-copy">
      <ant:mkdir dir="${merlin.build.inst.dir}/docs/style"/>
      <ant:copy toDir="${merlin.build.inst.dir}/docs/style">
        <fileset dir="${basedir}/platform/etc">
          <include name="maven.css"/>
          <include name="tigris.css"/>
        </fileset>
      </ant:copy>
    </goal>
  
    <!--
    ==============================================================================
    build the consolidated javadoc
    ==============================================================================
    -->
  
    <goal name="xjavadoc">
  
      <maven:reactor basedir="${basedir}"
        includes="activation/**/project.xml,composition/**/project.xml,kernel/**/project.xml"
        excludes="**/target/**,**/test/project.xml"
        banner="Site Prep:"
        ignoreFailures="false"
        postProcessing="true" />
  
      <ant:path id="template.classpath">
        <j:forEach var="child" items="${reactorProjects}">
          <j:set var="deps" value="${child.dependencies}"/>
          <j:forEach var="dep" items="${deps}">
            <ant:pathelement 
              path="${maven.repo.local}/${dep.getArtifactDirectory()}/jars/${dep.getArtifact()}"/>
          </j:forEach>
        </j:forEach>
      </ant:path>
  
      <ant:mkdir dir="${merlin.build.inst.dir}/docs/api" />
      <ant:property name="copyright"
        value="Copyright &amp;copy; ${year} ${pom.organization.name}. All Rights Reserved." />
      <ant:property name="title" value="${pom.name} ${pom.currentVersion} API"/>
  
      <ant:javadoc destdir="${merlin.build.inst.dir}/docs/api" 
  	doctitle="&lt;h1&gt;${title}&lt;/h1&gt;" 
        noindex="false" author="true" use="true"
  	windowtitle="${title}" 
        bottom="${copyright}"
        additionalparam="-breakiterator -J-Xmx128m "
        packagenames="*,org.*">
  
          <classpath>
            <path refid="template.classpath"/>
  	  </classpath>
  
          <j:forEach var="child" items="${reactorProjects}">
            <sourcepath path="${child.file.parentFile}/src/java"/>
          </j:forEach>
  
          <j:forEach var="packageGroup" items="${pom.packageGroups}">
            <group title="${packageGroup.title}" packages="${packageGroup.packages}"/>
          </j:forEach>
  
  	  <link href="${sun.j2se.link}" />
  	  <link href="${avalon.framework.link}" />
  	  <link href="${avalon.meta.link}" />
  	  <link href="${avalon.repository.link}" />
  	  <link href="${avalon.util.link}" />
  	  <link href="${avalon.logkit.link}" />
  	  <link href="${avalon.logging.link}" />
  	  <!--<link href="${avalon.lifecycle.link}" />-->
  	  <link href="${excalibur.configuration.link}" />
  
          <util:tokenize 
            var="listOfTags" 
            delim=" ">${maven.javadoc.customtags}</util:tokenize>
          <j:forEach var="someTag" items="${listOfTags}">
            <j:set var="nameVar" value="${someTag}.name"/>
            <j:set var="name" value="${context.findVariable(nameVar)}"/>
            <j:set var="descriptionVar" value="${someTag}.description"/>
            <j:set var="description" value="${context.findVariable(descriptionVar)}"/>
            <j:set var="enabledVar" value="${someTag}.enabled"/>
            <j:set var="enabled" value="${context.findVariable(enabledVar)}"/>
            <j:set var="scopeVar" value="${someTag}.scope"/>
            <j:set var="scope" value="${context.findVariable(scopeVar)}"/>
            <ant:tag name="${name}" description="${description}"
                 enabled="${enabled}" scope="${scope}"/>
          </j:forEach>
  
      </ant:javadoc>
    </goal>
  
    <!--
    ==============================================================================
    veriify the the tutorials are buildable and generate a clean build defintion
    (note: the xgen target is defined in the platform/tutorials/maven.xml file)
    ==============================================================================
    -->
    <!--
    <goal name="avalon:tutorials" prereqs="avalon:validate">
      <ant:copy todir="${basedir}/target/tutorials">
        <fileset dir="${basedir}/platform/tutorials">
          <include name="**/README.TXT"/>
          <include name="master.xml"/>
          <include name="**/maven.xml"/>
          <exclude name="maven.xml"/>
        </fileset>
      </ant:copy>
      <ant:copy toFile="${basedir}/target/tutorials/maven.xml"
         file="${basedir}/platform/tutorials/maven-template.xml"/>
    </goal>
    -->
  
    <goal name="avalon:validate" 
         description="Generate a clean tutorial package." >
      <maven:reactor
        basedir="${basedir}"
        includes="platform/tutorials/**/project.xml"
        excludes="**/target/**,**/mixed/**,**/jmx/**,**/security/**"
        goals="xgen" 
        banner="Generation:"
        ignoreFailures="false" 
        postProcessing="true" />
  
      <!-- 
      copy the generated target/package directory to the 
      local target/tutorials directory 
      -->
  
      <j:set var="tutorialsDir" value="${basedir}/platform/tutorials"/>
      <j:set var="tutorialsLen" value="${tutorialsDir.length()}"/>
      <j:forEach var="child" items="${reactorProjects}">
        <j:set var="pkgPath" value="${child.file.parentFile.path}"/>
        <j:set var="pkgLen" value="${pkgPath.length()}"/>
        <j:set var="packageName" value="${pkgPath.substring( tutorialsLen )}"/>
        <ant:copy toDir="${basedir}/target/tutorials${packageName}">
          <fileset dir="${child.file.parentFile}/target/package"/>
        </ant:copy>
      </j:forEach>
  
    </goal>
  
    <!--
    ==============================================================================
    update the runtime installation 
    ==============================================================================
    -->
  
    <goal name="avalon:update">
      <attainGoal name="avalon:install"/>
      <attainGoal name="avalon:replicate"/>
    </goal>
  
    <!--
    ==============================================================================
    update a local merlin installation 
    ==============================================================================
    -->
  
    <goal name="avalon:replicate">
  <echo>1</echo>
      <mkdir dir="${merlin.home}"/>
      <copy toDir="${merlin.home}">
        <fileset dir="${merlin.build.inst.dir}"/>
      </copy>
    </goal>
  
    <!--
    ==============================================================================
    utility to clean the subprojects and local target
    ==============================================================================
    -->
  
    <goal name="avalon:clean" prereqs="clean">
      <maven:reactor
        basedir="${basedir}"
        includes="**/project.xml"
        excludes="project.xml,**/target/**"
        goals="clean:clean"
        banner="Cleaning subproject:"
        ignoreFailures="true"/>
    </goal>
  
  </project>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org