http://git-wip-us.apache.org/repos/asf/oodt/blob/2fc7bced/tools/pdi_plugin/build-res/subfloor.xml ---------------------------------------------------------------------- diff --git a/tools/pdi_plugin/build-res/subfloor.xml b/tools/pdi_plugin/build-res/subfloor.xml deleted file mode 100644 index fa76887..0000000 --- a/tools/pdi_plugin/build-res/subfloor.xml +++ /dev/null @@ -1,2026 +0,0 @@ -<!--=========================================================================== -Copyright (c) 2008-2009, Pentaho Engineering Team -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * 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. - * Neither the name of the Pentaho Corporation nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY Pentaho Engineering Team ''AS IS'' AND ANY -EXPRESS 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 <copyright holder> 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. -============================================================================--> -<!--=========================================================================== - == SUBFLOOR == - - $Date: Wed Nov 6 16:13:57 UTC 2013 $ - Project Home: https://github.com/pentaho/subfloor/ - - This file contains the default implementation of the ant tasks to - perform a build. This file should be included by the build.xml file - for your particular project. That build file should redefine any task - that is defined in subfloor.xml IF AND ONLY IF the function of the - task needs to be customized. - - FORMATTING: - ALIGNMENT: indent=2 spaces and wrap lines longer than 120 chars - NAMING: targets intended for execution by a user are named single-word - or hyphenated. Internal targets use '.' notation. - - TO GET STARTED with your project, you will need this file in - your project's root directory along with three additional files: - 1. build.xml - 2. build.properties - 3. ivy_settings.xml - 4. ivy.xml - - Below are some templates: - - === build.xml - <project name="MyProject" basedir="." default="jar" xmlns:ivy="antlib:org.apache.ivy.ant" > - <description> - This build file is used to create the MyProject project and works with the subfloor.xml file. - </description> - - <import file="subfloor.xml"/> - </project> - - === build.properties - project.revision=1.0-SNAPSHOT #the version of your project. This will appear in jar META-INF, dist artifact filenames and IVY revision metadata. - ivy.artifact.id=my-project #IVY metadata describing the name of the artifact - impl.title=My Project #English language version of your project name - -============================================================================--> - - -<project name="subfloor" basedir="." default="default" xmlns:ivy="antlib:org.apache.ivy.ant"> - <description> -------------------------------------------------------------------------------- - subfloor.xml provides tasks needed to perform a project build. - It is typically not used directly but imported by each project's build.xml - file. The build.xml file can override tasks when customization is required. - -MAIN TARGETS -============ - * clean / clean-all : - remove all artifacts of the build, clean-all adds the removal - of any library or jar dependencies downloaded as part of the build - - * resolve : - download/refresh library or jar dependencies needed for the build (uses Apache IVY) - - * compile : - run javac on the project's source - - * jar : - creates a jar file - - * dist : - creates all project distributables - - * test : - runs JUnit tests from your project's test source - -SPECIAL TARGETS -============ - * publish-local : - builds a jar for your project and registers it with the local artifact repository isolated - to your machine at $HOME/.ivy2/local. Further executions of the the resolve target by this - or other projects will find your published jar. - - * ivy-clean* : - this family of targets helps reset your IVY environment in the event that you are having - difficulty resolving dependencies - -TYPICAL TARGET SEQUENCE -============ - * clean-all resolve dist : - a good start to build all project distributables from scratch. Note that jar dependencies - will not be downloaded unless you explicitly run the resolve target. We made the resolution - and retrieval completely discretionary since there are many situations in which - you will not want to get or refresh dependencies, e.g. if you are offline with no Internet - access. In such case, you could just run "dist" if the set of jars you already have are - sufficient. - - </description> - - <!-- Load the properties files in the proper order --> - <property file="override.properties" - description="Properties customized for your development environment belong in this file. This file will never be checked into the SCM." /> - <property file="build.properties" - description="Properties customized for your particular project belong in this file." /> - - <!-- ================================================================================= - Property Defaults - Any of these properties can be overridden in either build.properties or override.properties - =================================================================================--> - - <!-- Project meta properties --> - <property name="impl.vendor" value="Pentaho Corporation" description="Jar file metadata describing the jar's vendor" /> - <property name="impl.productID" - value="" - description="Jar file metadata indicating the product ID (this is not the revision)" /> - - <!-- Compile properties --> - <property name="src.dir" value="${basedir}/src" description="Project source code directory" /> - <property name="bin.dir" value="${basedir}/bin" description="Base directory for all non-dist build output" /> - <property name="classes.dir" - value="${bin.dir}/classes" - description="Classes compiled from project source code are placed here" /> - <property name="lib.dir" - value="${basedir}/lib" - description="Directory that hosts Jar files required to compile project source. (IVY will populate this directory with required jars)" /> - <property name="devlib.dir" - value="${basedir}/dev-lib" - description="Directory for developer to place development Jar files (not affected by clean targets)" /> - - <!-- Compiler properties (passed directly to javac ant target) --> - <property name="javac.debug" - value="true" - description="Indicates whether source should be compiled with debug information (passed to javac ant task)." /> - <property name="javac.deprecation" - value="true" - description="Indicates whether source should be compiled with deprecation information" /> - <property name="javac.source" value="6" description="Provide source compatibility with specified release" /> - <property name="javac.target" value="6" description="Generate class files for specific VM version" /> - <property name="javac.maxmemory" value="256M" description="Max memory alloted to java compile" /> - <property name="javac.xlint" value="-Xlint:all" /> - - <!-- Third party Ant tasks and tools properties --> - <property name="subfloor.resources.dir" - value="${user.home}/.subfloor" - description="Base dir for runtime jars that are required exclusively by the build process" /> - <property name="subfloor.tmp.dir" - value="${subfloor.resources.dir}/tmp" - description="Temporary space where files are prepared for installation" /> - <property name="antcontrib.build.cache.dir" - value="${subfloor.resources.dir}/ant-contrib" - description="Directory where the Ant-Contrib jar (and dependencies) is placed after it is auto-downloaded by the build" /> - <property name="svnant.use-javahl" - value="false" - description="Prefer JNI JavaHL binding over the command line client for native svn support" /> - <property name="svnant.use-svnkit" - value="true" - description="Prefer SVNKit binding over the command line client for native svn support (defaults to true)" /> - <property name="ivy.url" - value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar" - description="The URL to the current release of Apache IVY" /> - - <!-- Enunciate properties --> - <property name="enunciate.home" value="${basedir}/enunciate" /> - <property name="enunciate.bin.dir" value="${bin.dir}/enunciate" /> - - - <!-- Test properties --> - <property name="junit.base.dir" value="${basedir}" description="Directory in which the junit test VM will be invoked" /> - <property name="testsrc.dir" value="${basedir}/test-src" description="Directory that hosts the test source files" /> - <property name="testlib.dir" - value="${basedir}/test-lib" - description="Directory for jar files needed during unit testing" /> - <property name="testbin.dir" - value="${bin.dir}/test" - description="Base directory for all compiler generated test output" /> - <property name="testclasses.dir" - value="${testbin.dir}/classes" - description="Classes compiled from project test code are placed here" /> - <property name="testreports.dir" - value="${bin.dir}/reports/test" - description="Base directory that holds all unit test report files" /> - <property name="testreports.xml.dir" - value="${testreports.dir}/xml" - description="Unit test xml reports are placed here" /> - <property name="testreports.html.dir" - value="${testreports.dir}/html" - description="Unit test html reports are placed here" /> - <property name="junit.haltonfailure" value="no" description="Fail the build if a test fails" /> - <property name="junit.haltonerror" value="no" description="Fail the build if a error occurs" /> - <property name="junit.maxmemory" value="256M" description="Heap size when Junit is run in fork mode" /> - <property name="junit.forkmode" - value="perTest" - description="Defines whether JUnit forks a new JVM for each test. Use 'once' for faster test runs, and 'perTest' for complete tests."/> - <property name="headless.unittest" value="true" description="Runs the unit tests in headless mode" /> - - <!-- Code Coverage properties --> - <property name="instrumented.classes.dir" - value="${testbin.dir}/instrumented-classes" - description="Directory where instrumented project classes are placed for use by code coverage utility" /> - <property name="cobertura.version" - value="1.9.4.1" - description="The version of cobertura to use for code coverage" /> - <property name="cobertura.data.dir" - value="${testbin.dir}/cobertura-bin" - description="Temporary data directory used by Cobertura" /> - <property name="coberturareports.dir" - value="${bin.dir}/reports/cobertura" - description="Base directory for all generated Cobertura code coverage reports" /> - <property name="coberturareports.xml.dir" - value="${coberturareports.dir}/xml" - description="Cobertura xml reports are placed here" /> - <property name="coberturareports.html.dir" - value="${coberturareports.dir}/html" - description="Cobertura html reports are placed here" /> - - <!-- Javadoc properties --> - <property name="javadoc.dir" - value="${bin.dir}/javadoc" - description="Directory where generated javadoc will be placed" /> - <property name="javadoc.packagenames" - value="org.mypackagename.*" - description="This property is passed to the packagenames property of the javadoc ant task. You should customize this for your project." /> - <property name="javadoc.zip.filename" value="${ivy.artifact.id}-${project.revision}-javadoc.zip" /> - <property name="javadoc.tar.filename" value="${ivy.artifact.id}-${project.revision}-javadoc.tar.gz" /> - - <!-- Distribution and Assembly properties --> - <property name="dist.dir" - value="${basedir}/dist" - description="Base directory for all project artifacts (jar, zip, tar.gz, etc...)" /> - <property name="license.dir" - value="${basedir}" - description="Base directory where this project's license files reside" /> - <property name="res.dir" - value="${basedir}/res" - description="Directory that holds resources not included in the source tree" /> - <property name="source.zip.filename" value="${ivy.artifact.id}-${project.revision}-sources.zip" /> - <property name="source.tar.filename" value="${ivy.artifact.id}-${project.revision}-sources.tar.gz" /> - <property name="source.publish" value="true" /> - - <!-- Ivy properties --> - <property name="ivy.settingsurl" - value="file:${basedir}/ivysettings.xml" - description="URL to the (common) ivysettings.xml. This file is required by the build to configure IVY. Note you must escape the ':' if this property exists in a .properties file" /> - <property name="ivyfile" - value="ivy.xml" - description="The name of the IVY xml file defining your project's dependencies" /> - <property name="ivy.artifact.group" - value="mycompanyname" - description="IVY metadata describing the originating company or organization" /> - <property name="ivy.artifact.pomfile" - value="${dist.dir}/pom.xml" - description="The path to the Maven pom file to deploy with the artifact" /> - <property name="ivy.artifact.ivyfilename" - value="ivy.xml" - description="The name of the IVY xml file to deploy with the artifact" /> - <property name="ivy.artifact.ivypathname" - value="${dist.dir}/ivy.xml" - description="The full path to the IVY xml file to deploy with the artifact" /> - <property name="ivy.reports.dir" - value="${bin.dir}/reports/ivy" - description="Base directory that holds all IVY dependency report files" /> - <property name="ivy.configs" value="*" description="Set of configs used for IVY reporting and checking operations" /> - <property name="ivy.use.symlinks" value="true" description="Flag indicating if Ivy should create symlinks when retrieving artifacts."/> - - <!-- Tattletale properties --> - <property name="tattletale.url" - value="http://repo.pentaho.org/artifactory/repo/jboss/tattletale/1.1.2.Final/tattletale-1.1.2.Final.zip" - description="The URL from which to download tattletale" /> - <property name="tattletale.classname" - value="org.jboss.tattletale.ant.ReportTask" - description="The name of the class which will run the tattletale reports" /> - <property name="tattletale.reports.dir" - value="${bin.dir}/reports/tattletale" - description="Base directory that holds the output of the tattletale reports" /> - <property name="tattletale.configfile" - value="" - description="The configuration file for the tattletale report" /> - - <!-- Sonar properties --> - <property name="sonar.url" - value="http://repo1.maven.org/maven2/org/codehaus/sonar-plugins/sonar-ant-task/1.2/sonar-ant-task-1.2.jar"/> - <property name="sonar.classname" - value="org.sonar.ant.SonarTask"/> - - <!-- Load the manifest file (if any) as a properties file --> - <property name="dist.manifest.file" - value="${dist.dir}/MANIFEST.MF" - description="The manifest file that will be generated as part of the build" /> - <property name="manifest.file" - value="${res.dir}/META-INF/MANIFEST.MF" - description="The location of the MANIFEST.MF file for this application." /> - <property file="${manifest.file}" - description="Loads the manifest information from the manifest file as a properties file." /> - - <!-- Set the project revision number to the value in the manifest file (if it has not - been specified in the properties file --> - <property name="project.revision" - value="${Implementation-Version}" - description="Sets the version number of the project based on the Implementation-Version found in the manifest file (if one is supplied and nothing is specified in the build.properties)" /> - <fail message="A project revision number has not been determined!"> - <condition> - <matches string="${project.revision}" pattern="\$\{.*\}" /> - </condition> - </fail> - - <!-- Set the project title to the value in the manifest file (if it has not - been specified in the properties file --> - <property name="impl.title" - value="${Implementation-Title}" - description="Sets the title of the project based on the Implementation-Title found in the manifest file (if one is supplied and nothing is specified in the build.properties)" /> - <fail message="A project title has not been determined!"> - <condition> - <matches string="${impl.title}" pattern="\$\{.*\}" /> - </condition> - </fail> - - <!-- Build Mode properties --> - <property name="release" value="false" description="Set this to true if you want to generate a release artifact" /> - - <!-- Ivy should only use symlinks if we're not in release mode --> - <condition property="ivy.use.symlinks.internal"> - <and> - <isfalse value="${release}"/> - <istrue value="${ivy.use.symlinks}"/> - </and> - </condition> - - <!-- Set the os property --> - <condition property="isLinux"> - <os family="unix" /> - </condition> - <condition property="isWindows"> - <os family="windows" /> - </condition> - <condition property="isMac"> - <os family="mac" /> - </condition> - - <condition property="os.classifier" value="win"> - <os family="windows" /> - </condition> - <condition property="os.classifier" value="mac"> - <os family="mac" /> - </condition> - <condition property="os.classifier" value="linux"> - <os family="unix" /> - </condition> - <property name="os.classifier" value="unsupported" /> - - <!-- Setup the compile classpath --> - <path id="classpath"> - <fileset dir="${devlib.dir}"> - <include name="**/*.jar" /> - </fileset> - <fileset dir="${lib.dir}"> - <include name="**/*.jar" /> - </fileset> - </path> - - <!-- Setup the classpath used for testing --> - <path id="test.classpath"> - <pathelement path="${testclasses.dir}" /> - <pathelement path="${classes.dir}" /> - <fileset dir="${devlib.dir}"> - <include name="**/*.jar" /> - </fileset> - <fileset dir="${testlib.dir}"> - <include name="**/*.jar" /> - </fileset> - <fileset dir="${lib.dir}"> - <include name="**/*.jar" /> - </fileset> - </path> - - - <!--======================================================================= - default - - The target that is run if no target is given - ====================================================================--> - <target name="default" depends="build" /> - - - <!--======================================================================= - build - - Runs a typical build process to create the project locally - ====================================================================--> - <target name="build" depends="clean-all,resolve,cobertura,dist-source,dist" /> - - - <!--======================================================================= - build-testless - - Runs a typical build process to create the project locally (no testing) - ====================================================================--> - <target name="build-testless" depends="clean-all,resolve,dist-source,dist" /> - - - <!--======================================================================= - continuous - - Runs a typical continuous integration build including project dist, - test, and coverage artifacts - ====================================================================--> - <target name="continuous" depends="build,publish" /> - - - <!--======================================================================= - continuous-testless - - Runs a typical continuous integration build including project dist, - and coverage artifacts - ====================================================================--> - <target name="continuous-testless" depends="build-testless,publish" /> - - - <!--======================================================================= - install-antcontrib - - (Fetches and) installs ant-contrib tasks. - ====================================================================--> - <target name="install-antcontrib" depends="antcontrib.download-check"> - <taskdef resource="net/sf/antcontrib/antlib.xml"> - <classpath> - <fileset dir="${antcontrib.build.cache.dir}"> - <include name="*.jar" /> - </fileset> - </classpath> - </taskdef> - </target> - - - <!--======================================================================= - antcontrib.download-check - - Fetches ant-contrib from sourceforge if it is not already present - ====================================================================--> - <target name="antcontrib.download-check"> - <condition property="antcontrib.available"> - <and> - <available file="${antcontrib.build.cache.dir}" /> - <available classname="net.sf.antcontrib.logic.IfTask"> - <classpath> - <fileset dir="${antcontrib.build.cache.dir}"> - <include name="*.jar" /> - </fileset> - </classpath> - </available> - </and> - </condition> - <antcall target="antcontrib.download" /> - </target> - - - <!--======================================================================= - antcontrib.download - - Fetches ant-contrib from sourceforge - ====================================================================--> - <target name="antcontrib.download" unless="antcontrib.available"> - <mkdir dir="${subfloor.tmp.dir}" /> - <get src="http://downloads.sourceforge.net/ant-contrib/ant-contrib-1.0b3-bin.zip" - dest="${subfloor.tmp.dir}/antcontrib.zip" - usetimestamp="true" /> - <unzip src="${subfloor.tmp.dir}/antcontrib.zip" dest="${subfloor.tmp.dir}"> - <patternset> - <include name="**/*.jar" /> - </patternset> - </unzip> - <copy todir="${antcontrib.build.cache.dir}"> - <fileset dir="${subfloor.tmp.dir}/ant-contrib"> - <include name="**/*.jar" /> - </fileset> - </copy> - </target> - - - <!--======================================================================= - init - - Ensures that all the required directories exist before processing - a build. - ====================================================================--> - <target name="init"> - <mkdir dir="${classes.dir}" /> - <mkdir dir="${dist.dir}" /> - <mkdir dir="${lib.dir}" /> - <mkdir dir="${devlib.dir}" /> - <mkdir dir="${testlib.dir}" /> - </target> - - - <!--======================================================================= - install-svnant - - (Fetches and) installs the SVN ANT for use by this ant script - ====================================================================--> - <target name="install-svnant" depends="install-ivy"> - <if> - <istrue value="${svnant.isinstalled}" /> - <then> - <echo message="Skipping SVN ANT install. SVN ANT has already been configured by the build" /> - </then> - <else> - <taskdef-with-ivy organisation="tigris" - module="svnant" - revision="1.3.0" - resource="org/tigris/subversion/svnant/svnantlib.xml" - classname="org.tigris.subversion.svnant.SvnTask" /> - <property name="svnant.isinstalled" value="true" /> - </else> - </if> - </target> - - - <!--======================================================================= - test-svnant - - Tests SVN by printing out the repository - ====================================================================--> - <target name="test-svnant" depends="install-svnant"> - <svn javahl="${svnant.use-javahl}" svnkit="${svnant.use-svnkit}"> - <wcVersion path="." /> - </svn> - <echo message="Subversion repository url: ${repository.url}" /> - </target> - - - <!--======================================================================= - svn-revision - - Prints and sets the SVN revision for the repository at the current dir (if svn.revision is not set) - ====================================================================--> - <target name="svn-revision" depends="install-svnant"> - - <svn javahl="${svnant.use-javahl}" svnkit="${svnant.use-svnkit}"> - <status path="." revisionProperty="svn.revision" /> - </svn> - <echo message="Subversion repository revision: ${svn.revision}" /> - </target> - - - <!--======================================================================= - set-build.id - - Sets a property build.id to the either "development" or the svn revision - if in release mode - ====================================================================--> - <target name="set-build.id" unless="build.id" depends="install-antcontrib"> - <if> - <istrue value="${release}" /> - <then> - <antcallback target="svn-revision" return="svn.revision" /> - <property name="build.id" value="${svn.revision}" /> - </then> - <else> - <property name="build.id" value="development" /> - </else> - </if> - </target> - - <!--================================================================================= - version-properties: common Ant driven version file generation. Projects that produce - a package or packages should run this target. Projects that produce - jars only should NOT. - ===================================================================================--> - <target name="version-properties" depends="set-build.id"> - <tstamp> - <format property="build.time" pattern="yyyy/MM/dd hh:mm aa" /> - </tstamp> - <propertyfile file="version.properties" comment="Release Build version info"> - <entry key="release.major.number" value="${release.major.number}" /> - <entry key="release.minor.number" value="${release.minor.number}" /> - <entry key="release.milestone.number" value="${release.milestone.number}" /> - <entry key="release.candidate.token" value="${release.candidate.token}" /> - <entry key="impl.vendor" value="${impl.vendor}" /> - <entry key="impl.version" - value="${release.major.number}.${release.minor.number}.${release.milestone.number}.${build.id}" /> - <entry key="impl.title" value="${impl.title}" /> - <entry key="buildDate" value="${build.time}" /> - <entry key="svn.revision" value="${build.id}" /> - <entry key="release.build.number" default="0" type="int" operation="+" value="1" pattern="0000" /> - </propertyfile> - <property file="${basedir}/version.properties" /> - </target> - - - <!--======================================================================= - install-ivy - - Fetches and installs IVY ant tasks if not already installed - ====================================================================--> - <target name="install-ivy" depends="install-antcontrib"> - <if> - <istrue value="${ivy.isinstalled}" /> - <then> - <echo message="Skipping IVY install. IVY has already been configured by the build" /> - </then> - <else> - <download-antlib name="ivy" url="${ivy.url}" classname="org.apache.ivy.ant.IvyTask" extension="jar" /> - <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"> - <classpath> - <fileset dir="${subfloor.resources.dir}/ivy"> - <include name="*.jar" /> - </fileset> - </classpath> - </taskdef> - <ivy:settings url="${ivy.settingsurl}" /> - <property name="ivy.isinstalled" value="true" /> - </else> - </if> - </target> - - - <!--======================================================================= - ivy.check-releasable - - Verifies that there are no SNAPSHOT dependencies defined in the ivy xml. - If there are SNAPSHOTS, fail the release build. - ====================================================================--> - <target name="ivy.check-releasable" depends="install-ivy, install-antcontrib"> - <if> - <istrue value="${release}" /> - <then> - <sequential> - <ivy:artifactproperty conf="${ivy.configs}" name="dep.[module]/[artifact]-[revision]" value="[revision]" /> - - <propertyselector property="violators" match="dep\..*SNAPSHOT.*" select="\0" casesensitive="false" /> - - <fail if="violators" - message="Release not possible, you have dependencies on non-released artifacts: ${violators}" /> - </sequential> - </then> - </if> - </target> - - - <!--======================================================================= - resolve - - Using ivy and the dependencies for the project (defined in the ivy.xml - file), this task will retrieve the needed files and place them into - the defined directories. - ====================================================================--> - <target name="resolve" - depends="resolve-default, resolve-test, ivy.check-releasable" - description="Retrieves all the dependent libraries" /> - - <target name="resolve-init" unless="resolve-init.skip" depends="install-ivy"> - <!-- If this is the 1st time through resolve-init, then we need to clean up the jars ---> - <antcall target="clean-jars" /> - <property name="resolve-init.skip" value="" /> - </target> - - <target name="resolve-default" depends="resolve-default.default,resolve-default.composite"/> - - <!-- - This target resolves the default IVY configuration as a composite of child configurations. - You should set ivy.default.sub-configs in your build.properties only if you want your default - configuration to be treated as a composite of two or more child configurations. - To turn this on, set ivy.default.sub-configs property in your build.properties, e.g. - ivy.default.sub-configs=external,internal - Note: the parent config "default" proper will not be resolved - --> - <target name="resolve-default.composite" depends="install-antcontrib,resolve-init" if="ivy.default.sub-configs"> - <for list="${ivy.default.sub-configs}" param="conf"> - <sequential> - <ivy:resolve file="${ivyfile}" conf="default_@{conf}" /> - <ivy:retrieve conf="default_@{conf}" pattern="${lib.dir}/@{conf}/[module]-[revision](-[classifier]).[ext]" symlink="${ivy.use.symlinks.internal}" /> - </sequential> - </for> - </target> - - <target name="resolve-default.default" depends="resolve-init" unless="ivy.default.sub-configs"> - <ivy:resolve file="${ivyfile}" conf="default" /> - <ivy:retrieve conf="default" pattern="${lib.dir}/[module]-[revision](-[classifier]).[ext]" symlink="${ivy.use.symlinks.internal}" /> - </target> - - <target name="resolve-test" depends="resolve-init"> - <ivy:resolve file="${ivyfile}" conf="test" /> - <ivy:retrieve conf="test" pattern="${testlib.dir}/[module]-[revision](-[classifier]).[ext]" symlink="${ivy.use.symlinks.internal}" /> - </target> - - <target name="resolve-enunciate" depends="resolve-init"> - <ivy:resolve file="${ivyfile}" conf="enunciate" /> - <ivy:retrieve conf="enunciate" pattern="${basedir}/enunciate/lib/[module]-[revision](-[classifier]).[ext]" /> - </target> - - <target name="resolve-codegen" depends="resolve-init"> - <ivy:resolve file="${ivyfile}" conf="codegen" /> - <ivy:retrieve conf="codegen" pattern="${lib.dir}/[module]-[revision](-[classifier]).[ext]" symlink="${ivy.use.symlinks.internal}" /> - </target> - - <target name="resolve-runtime" depends="resolve-init"> - <ivy:resolve file="${ivyfile}" conf="runtime" /> - <ivy:retrieve conf="runtime" pattern="${lib.dir}/[module]-[revision](-[classifier]).[ext]" symlink="${ivy.use.symlinks.internal}" /> - </target> - - - <!--======================================================================= - ivy-clean-cache - - Cleans the IVY cache. You are erasing IVY's memory. Run this if you - want to force IVY to go fetch all your project dependencies from scratch. - WARNING: this will affect all IVY projects, not just the current workspace - ====================================================================--> - <target name="ivy-clean-cache" depends="install-ivy"> - <ivy:cleancache /> - </target> - - - <!--======================================================================= - ivy-clean-local - - Completely cleans your local repository of any files published locally - by way of publish-local. - WARNING: this is a global action and will affect other IVY projects - currently referencing a locally published dependency - ====================================================================--> - <target name="ivy-clean-local" depends="install-ivy"> - <delete dir="${ivy.local.default.root}/" /> - </target> - - - <!--======================================================================= - ivy-clean-by-name - - Cleans your IVY cache and local repository of specific files. - WARNING: this is a global action and will affect other IVY projects - currently referencing a locally published dependency - ====================================================================--> - <target name="ivy-clean-pentaho" depends="install-ivy"> - <mkdir dir="${ivy.local.default.root}" /> - <!-- just in case it doesn't exist --> - <for param="dir"> - <path> - <dirset dir="${ivy.local.default.root}" includes="*${ivy.clean.pattern}*" /> - <dirset dir="${ivy.default.ivy.user.dir}/cache" includes="*${ivy.clean.pattern}*" /> - </path> - <sequential> - <delete dir="@{dir}" includeemptydirs="true" /> - </sequential> - </for> - <for param="file"> - <path> - <fileset dir="${ivy.local.default.root}" includes="*${ivy.clean.pattern}*" /> - <fileset dir="${ivy.default.ivy.user.dir}/cache" includes="*${ivy.clean.pattern}*" /> - </path> - <sequential> - <delete file="@{file}" /> - </sequential> - </for> - </target> - - - <!--======================================================================= - ivy-report - - Generates an IVY dependency report for this project. - ====================================================================--> - <target name="ivy-report" depends="install-ivy"> - <ivy:resolve file="${ivyfile}" conf="${ivy.configs}" /> - <ivy:report xml="true" todir="${ivy.reports.dir}" /> - </target> - - - <!--======================================================================= - publish-local-nojar - - Publishes the jar file for this project to the user's local repository - for download by other projects currently being executed on the user's - system. - ====================================================================--> - <target name="publish-local-nojar" depends="install-ivy,publish-local-nojar.internal"> - <if> - <equals arg1="${tests.publish}" arg2="true" /> - <then> - <antcall target="publish-local-nojar.internal"> - <param name="ivy.artifact.id" value="${ivy.artifact.id}-test"/> - </antcall> - </then> - </if> - <antcall target="publish-local-nojar.post"/> - </target> - - <!--======================================================================= - publish-local-nojar.post this target is invoked after the normal set of publish-local-nojar - is completed, override this to perform additional publishing in extensions of subfloor, etc - ====================================================================--> - <target name="publish-local-nojar.post"> - </target> - - <target name="publish-local-nojar.internal" depends="install-ivy"> - <ivy:resolve file="${ivy.artifact.ivyfilename}" /> - <ivy:publish resolver="local" pubrevision="${project.revision}" overwrite="true" forcedeliver="true" warnonmissing="yes" haltonmissing="no"> - <artifacts pattern="${dist.dir}/[artifact]-[revision](-[classifier]).[ext]" /> - </ivy:publish> - </target> - - <!--======================================================================= - publish-local - - Builds and publishes the jar file for this project to the user's - local repository for download by other projects currently being - executed on the user's system. - ====================================================================--> - <target name="publish-local" - depends="dist, dist-source, publish-local-nojar" - description="Builds and publishes the jar file to the local repository" /> - - - <!--======================================================================= - publish - - Creates and publishes the jar file for this project to a Maven2 - repository. - ====================================================================--> - <target name="publish" depends="dist, dist-source, publish-nojar"> - </target> - - - <!--======================================================================= - publish-nojar - - Publishes the jar file for this project to a Maven2 repository. - ====================================================================--> - <target name="publish-nojar" depends="install-antcontrib,create-pom,ivy.deliver,publish-nojar.internal"> - <if> - <equals arg1="${tests.publish}" arg2="true" /> - <then> - <antcall target="publish-nojar.internal"> - <param name="ivy.artifact.id" value="${ivy.artifact.id}-test"/> - </antcall> - </then> - </if> - </target> - - <target name="publish-nojar.internal" depends="install-antcontrib,create-pom,ivy.deliver"> - <antcall target="maven-publish-dependencies"> - <param name="publish.groupId" value="${ivy.artifact.group}" /> - <param name="publish.artifactId" value="${ivy.artifact.id}" /> - <param name="publish.version" value="${project.revision}" /> - <param name="publish.file" value="${ivy.artifact.ivypathname}" /> - </antcall> - - <if> - <equals arg1="${source.publish}" arg2="true" /> - <then> - <antcall target="maven-publish-sources"> - <param name="publish.groupId" value="${ivy.artifact.group}" /> - <param name="publish.artifactId" value="${ivy.artifact.id}" /> - <param name="publish.version" value="${project.revision}" /> - <param name="publish.file" value="${dist.dir}/${ivy.artifact.id}-${project.revision}-sources.jar" /> - </antcall> - </then> - </if> - - <antcall target="maven-publish-artifact"> - <param name="publish.pomFile" value="${ivy.artifact.pomfile}" /> - <param name="publish.file" value="${dist.dir}/${ivy.artifact.id}-${project.revision}.jar" /> - </antcall> - - <antcall target="maven-publish.post"/> - - </target> - - <!-- Override this if anything is needed to be done after the standard parts of publish are completed --> - <!-- Such as: publishing non-standard/extended artifacts, etc --> - <target name="maven-publish.post"/> - - <!--======================================================================= - ivy.deliver - - Creates a publishable version of the ivy dependencies file, ivy.xml - ====================================================================--> - <target name="ivy.deliver" depends="resolve"> - <ivy:deliver conf="*(public)" deliverpattern="${dist.dir}/ivy.xml" /> - </target> - - - <!--======================================================================= - maven-publish-dependencies - - A function that deploys an ivy.xml file to a maven repository - ====================================================================--> - <target name="maven-publish-dependencies" depends="install-antcontrib"> - <sequential> - <fail message="No file found at: ${publish.file}"> - <condition> - <not> - <available file="${publish.file}" /> - </not> - </condition> - </fail> - <echo message="Publishing ${publish.file} to ${ivy.repository.publish}..." /> - <if> - <isset property="isWindows" /> - <then> - <exec executable="cmd" failonerror="true"> - <arg value="/c" /> - <arg value="mvn.bat" /> - <arg value="deploy:deploy-file" /> - <arg value="-DrepositoryId=${ivy.repository.id}" /> - <arg value="-Durl=${ivy.repository.publish}" /> - <arg value="-DgroupId=${publish.groupId}" /> - <arg value="-DartifactId=${publish.artifactId}" /> - <arg value="-Dversion=${publish.version}" /> - <arg value="-Dpackaging=ivy.xml" /> - <arg value="-Dfile=${publish.file}" /> - </exec> - </then> - <else> - <exec executable="mvn" failonerror="true"> - <arg value="deploy:deploy-file" /> - <arg value="-DrepositoryId=${ivy.repository.id}" /> - <arg value="-Durl=${ivy.repository.publish}" /> - <arg value="-DgroupId=${publish.groupId}" /> - <arg value="-DartifactId=${publish.artifactId}" /> - <arg value="-Dversion=${publish.version}" /> - <arg value="-Dpackaging=ivy.xml" /> - <arg value="-Dfile=${publish.file}" /> - <arg value="-e" /> - </exec> - </else> - </if> - </sequential> - </target> - - - <!--======================================================================= - maven-publish-artifact - - A function that deploys an artifact to a maven repository - ====================================================================--> - <target name="maven-publish-artifact" depends="install-antcontrib"> - <sequential> - <fail message="No file found at: ${publish.file}"> - <condition> - <not> - <available file="${publish.file}" /> - </not> - </condition> - </fail> - <echo message="Publishing ${publish.file} to ${ivy.repository.publish}..." /> - <if> - <isset property="isWindows" /> - <then> - <exec executable="cmd" failonerror="true"> - <arg value="/c" /> - <arg value="mvn.bat" /> - <arg value="deploy:deploy-file" /> - <arg value="-DrepositoryId=${ivy.repository.id}" /> - <arg value="-Durl=${ivy.repository.publish}" /> - <arg value="-DpomFile=${publish.pomFile}" /> - <arg value="-Dfile=${publish.file}" /> - </exec> - </then> - <else> - <exec executable="mvn" failonerror="true"> - <arg value="deploy:deploy-file" /> - <arg value="-DrepositoryId=${ivy.repository.id}" /> - <arg value="-Durl=${ivy.repository.publish}" /> - <arg value="-DpomFile=${publish.pomFile}" /> - <arg value="-Dfile=${publish.file}" /> - </exec> - </else> - </if> - </sequential> - </target> - - - <!--======================================================================= - maven-publish-sources - - A function that deploys a java-sources artifact to a maven repository - ====================================================================--> - <target name="maven-publish-sources" depends="install-antcontrib"> - <sequential> - <fail message="No file found at: ${publish.file}"> - <condition> - <not> - <available file="${publish.file}" /> - </not> - </condition> - </fail> - <echo message="Publishing ${publish.file} to ${ivy.repository.publish}..." /> - <if> - <isset property="isWindows" /> - <then> - <exec executable="cmd" failonerror="true"> - <arg value="/c" /> - <arg value="mvn.bat" /> - <arg value="deploy:deploy-file" /> - <arg value="-DrepositoryId=${ivy.repository.id}" /> - <arg value="-Durl=${ivy.repository.publish}" /> - <arg value="-DgroupId=${publish.groupId}" /> - <arg value="-DartifactId=${publish.artifactId}" /> - <arg value="-Dversion=${publish.version}" /> - <arg value="-DgeneratePom=true" /> - <arg value="-Dpackaging=java-source" /> - <arg value="-Dfile=${publish.file}" /> - </exec> - </then> - <else> - <exec executable="mvn" failonerror="true"> - <arg value="deploy:deploy-file" /> - <arg value="-DrepositoryId=${ivy.repository.id}" /> - <arg value="-Durl=${ivy.repository.publish}" /> - <arg value="-DgroupId=${publish.groupId}" /> - <arg value="-DartifactId=${publish.artifactId}" /> - <arg value="-Dversion=${publish.version}" /> - <arg value="-DgeneratePom=true" /> - <arg value="-Dpackaging=java-source" /> - <arg value="-Dfile=${publish.file}" /> - </exec> - </else> - </if> - </sequential> - </target> - - - <!--======================================================================= - create-pom - - Creates the POM file for publishing the jar file to a Maven2 repository. - ====================================================================--> - <target name="create-pom" depends="install-ivy"> - <ivy:makepom ivyfile="${ivyfile}" pomfile="${dist.dir}/pom.xml"> - <mapping conf="default" scope="compile" /> - <mapping conf="runtime" scope="runtime" /> - </ivy:makepom> - </target> - - - <!--======================================================================= - clean-jars - - Removes all the libraries that have been downloaded for this project - using the ivy dependencies. - ====================================================================--> - <target name="clean-jars"> - <delete dir="${lib.dir}" /> - <delete dir="${testlib.dir}" /> - </target> - - - <!--======================================================================= - clean - - Removes all the files generated from the build process. - ====================================================================--> - <target name="clean" - description="Cleans all the files generated from a build with the exception of IVY-downloaded jars (see clean-all)" - depends="clean-tests, clean-cobertura, clean-sonar, clean-javadoc, clean-dist"> - <delete dir="${classes.dir}" /> - <delete dir="${bin.dir}" /> - </target> - - - <!--======================================================================= - clean-dist - - Removes all dist artifacts - ====================================================================--> - <target name="clean-dist"> - <delete dir="${dist.dir}" /> - </target> - - - <!--======================================================================= - clean-all - - Removes all the libraries that have been downloaded for this project - in the workspace's lib dirs as well as all the files - generated from the build process. - ====================================================================--> - <target name="clean-all" depends="clean,clean-jars" description="Cleans all the generated and dependency files" /> - - - <!--======================================================================= - copy-license-lgpl - - Copies the LGPL license file into the binary directory. - ====================================================================--> - <target name="copy-license-lgpl" if="lgpl-license-avail"> - <copy todir="${classes.dir}/META-INF"> - <fileset dir="${license.dir}" includes="lgpl-2.1.txt" /> - </copy> - </target> - - - <!--======================================================================= - copy-license-gpl-parent - - Copies the GPL license file from the parent directory into the - binary directory. - ====================================================================--> - <target name="copy-license-gpl" if="gpl-license-avail"> - <copy todir="${classes.dir}/META-INF"> - <fileset dir="${license.dir}" includes="gpl-2.0.txt" /> - </copy> - </target> - - - <!--======================================================================= - compile - - Compiles the source code (using the specified options) into the - binary directory. - - NOTE: This contains multiple sub-tasks which will occur in the - following order (this is provided for easier overriding by - the build.xml which will include this file)... - - compile.pre : anything needed to prep for compile - - compile.compile : the actual compilation step - - compile.src_copy : copying the source into the bin directory - - compile.res_copy : copying the resources into the bin directory - - compile.lic_copy : copying the license information into the bin directory - - compile.post : anything needed after the compile is done - ====================================================================--> - <target name="compile" - depends="init, compile.pre, compile.compile, compile.src_copy, compile.res_copy, compile.lic_copy, compile.post" - description="Performs all the steps to prepare the bin directory with a complete compilation" /> - - - <!--======================================================================= - compile.pre - - Prepares to perform the compile. - ====================================================================--> - <target name="compile.pre" /> - - - <!--======================================================================= - compile.compile - - Performs the actual compile - ====================================================================--> - <target name="compile.compile" depends="init"> - <javac destdir="${classes.dir}" - debug="${javac.debug}" - deprecation="${javac.deprecation}" - fork="true" - memorymaximumsize="${javac.maxmemory}" - source="${javac.source}" - target="${javac.target}"> - <classpath> - <path refid="classpath" /> - </classpath> - <src path="${src.dir}" /> - <compilerarg value="${javac.xlint}" /> - </javac> - </target> - - - <!--======================================================================= - compile.res_copy - - Copies any needed resources into the classes directory. Will not - duplicate copying of resources from src tree (handled by compile.src_copy - if jar.include.source is set. - ====================================================================--> - <target name="compile.res_copy" depends="install-antcontrib"> - <if> - <available file="${res.dir}" /> - <then> - <copy todir="${classes.dir}"> - <fileset dir="${res.dir}" /> - </copy> - </then> - </if> - - <if> - <not> - <isset property="jar.include.source" /> - </not> - <then> - <copy todir="${classes.dir}" flatten="false"> - <fileset dir="${src.dir}" excludes="**/*.java" /> - </copy> - </then> - </if> - </target> - - - <!--======================================================================= - compile.src_copy - - Copies the source files to the bin directory - NOTE: if the dont.copy.source variable exists, this step will be - skipped! - ====================================================================--> - <target name="compile.src_copy" depends="init" if="jar.include.source"> - <copy todir="${classes.dir}" flatten="false"> - <fileset dir="${src.dir}" /> - </copy> - </target> - - - <!--======================================================================= - compile.lic_copy - - Copies the license file(s) into the bin directory - ====================================================================--> - <target name="compile.lic_copy" depends="init"> - <condition property="lgpl-license-avail"> - <available file="${license.dir}/lgpl-2.1.txt" /> - </condition> - <antcall target="copy-license-lgpl" /> - <condition property="gpl-license-avail"> - <available file="${license.dir}/gpl-2.0.txt" /> - </condition> - <antcall target="copy-license-gpl" /> - </target> - - - <!--======================================================================= - compile.post - - Performs any needed post-compile tasks - ====================================================================--> - <target name="compile.post" /> - - - <!--======================================================================= - jar - - Creates a jar file from the bin directory - ====================================================================--> - <target name="jar" - depends="jar.main,jar.test" - description="Jars up the bin directory after a compile"> - </target> - - <!-- jar the tests ONLY IF tests.publish it true --> - <!-- if the compile-tests target is in the dependency list for this target, --> - <!-- it will get executed no matter what the value of tests.publish is --> - <target name="jar.test" - if="tests.publish"> - <antcall target="compile-tests" /> - <jar destfile="${dist.dir}/${ivy.artifact.id}-test-${project.revision}.jar" manifest="${dist.manifest.file}"> - <fileset dir="${testclasses.dir}"/> - </jar> - </target> - - <target name="jar.main" - depends="compile,set-build.id,generate.manifest"> - <jar destfile="${dist.dir}/${ivy.artifact.id}-${project.revision}.jar" manifest="${dist.manifest.file}"> - <fileset dir="${classes.dir}" /> - </jar> - </target> - - <!--======================================================================= - generate.manifest - - Creates a new manifest file if one is not specified, or updates - an existing manifest file if one is specified. - ====================================================================--> - <target name="generate.manifest" depends="init,set-build.id"> - <delete file="${dist.manifest.file}" /> - <touch file="${dist.manifest.file}" /> - <copy file="${manifest.file}" tofile="${dist.manifest.file}" overwrite="true" failonerror="false" /> - - <manifest file="${dist.manifest.file}" mode="update"> - <attribute name="Implementation-Title" value="${impl.title}" /> - <attribute name="Implementation-Version" value="${project.revision}.${build.id}" /> - <attribute name="Implementation-Vendor" value="${impl.vendor}" /> - <attribute name="Implementation-ProductID" value="${impl.productID}" /> - </manifest> - </target> - - - <!--======================================================================= - dist-source - - Generates zip and targz distributions of the javadoc - ====================================================================--> - <target name="dist-source" depends="source.jar, source.zip, source.targz" /> - - - <!--======================================================================= - source.jar - - Creates a jar of the project source for distribution - ====================================================================--> - <target name="source.jar" depends="init,install-antcontrib"> - <jar jarfile="${dist.dir}/${ivy.artifact.id}-${project.revision}-sources.jar" basedir="${src.dir}" /> - <if> - <equals arg1="${tests.publish}" arg2="true" /> - <then> - <jar jarfile="${dist.dir}/${ivy.artifact.id}-test-${project.revision}-sources.jar" basedir="${src.dir}" /> - </then> - </if> - </target> - - <!--======================================================================= - source.zip - - Creates a zip of the project source for distribution - ====================================================================--> - <target name="source.zip" depends="init"> - <jar jarfile="${dist.dir}/${source.zip.filename}" basedir="${src.dir}" /> - </target> - - <!--======================================================================= - source.targz - - Creates a gzipped tar of the project source for distribution - ====================================================================--> - <target name="source.targz" depends="init"> - <tar compression="gzip" destfile="${dist.dir}/${source.tar.filename}" basedir="${src.dir}" /> - </target> - - - <!--======================================================================= - clean-tests - - Removes all files related to tests - ====================================================================--> - <target name="clean-tests"> - <delete dir="${testbin.dir}" /> - </target> - - - <!--======================================================================= - init-tests - - Compiles project test source - ====================================================================--> - <target name="init-tests" depends="clean-tests"> - <mkdir dir="${testclasses.dir}" /> - <mkdir dir="${testsrc.dir}" /> - </target> - - - <!--======================================================================= - compile-tests - - Compiles project test source - ====================================================================--> - <target name="compile-tests" depends="init-tests"> - <javac destdir="${testclasses.dir}" - debug="true" - optimize="false" - source="${javac.source}" - target="${javac.target}" - fork="true"> - <src path="${testsrc.dir}" /> - <classpath refid="test.classpath" /> - </javac> - - <!-- Copy the non-java files from the source directory to the test classes directory ---> - <copy todir="${testclasses.dir}"> - <fileset dir="${testsrc.dir}"> - <exclude name="**/*.java" /> - </fileset> - </copy> - </target> - - - <!--======================================================================= - test - - Compiles and runs all the tests for the project - ====================================================================--> - <target name="test" depends="compile,compile-tests, init-test-reports" description="Compiles and runs unit tests"> - <junit maxmemory="${junit.maxmemory}" - dir="${junit.base.dir}" - fork="yes" - forkmode="${junit.forkmode}" - failureProperty="test.failed" - haltonfailure="${junit.haltonfailure}" - haltonerror="${junit.haltonerror}" - printsummary="yes"> - <sysproperty key="java.awt.headless" value="${headless.unittest}" /> - - <syspropertyset> - <propertyref prefix="junit.sysprop." /> - <mapper type="glob" from="junit.sysprop.*" to="*"/> - </syspropertyset> - - <classpath refid="test.classpath" /> - <formatter type="xml" /> - <test name="${testcase}" todir="${testreports.xml.dir}" if="testcase" /> - <batchtest fork="yes" todir="${testreports.xml.dir}" unless="testcase"> - <fileset dir="${testsrc.dir}" casesensitive="yes"> - <include name="**/*Test.java" /> - </fileset> - </batchtest> - </junit> - - <junitreport todir="${testreports.html.dir}"> - <fileset dir="${testreports.xml.dir}"> - <include name="TEST-*.xml" /> - </fileset> - <report format="frames" todir="${testreports.html.dir}" /> - </junitreport> - </target> - - - <!--======================================================================= - clean-test-reports - - Remove all xml and html JUnit test reports - ====================================================================--> - <target name="clean-test-reports"> - <delete dir="${testreports.xml.dir}" /> - <delete dir="${testreports.html.dir}" /> - </target> - - - <!--======================================================================= - init-test-reports - - Prepare directories for JUnit test reports - ====================================================================--> - <target name="init-test-reports" depends="clean-test-reports"> - <mkdir dir="${testreports.xml.dir}" /> - <mkdir dir="${testreports.html.dir}" /> - </target> - - <!--======================================================================= - dist - - Creates a distribution of this project - ====================================================================--> - <target name="dist" depends="jar" description="Creates a distribution" /> - - - <!--======================================================================= - dist-full - - Creates a distribution of this project including all sources needed - to build as well as the resultant jar - ====================================================================--> - <target name="dist-full" depends="jar" - description="Creates all the distributable items for this project"> - <!-- Create the required zip distribution which contains the entire project --> - <zip destfile="${dist.dir}/${ivy.artifact.id}-${project.revision}.zip"> - <fileset dir="${basedir}"> - <exclude name="bin/"/> - <exclude name="dist/"/> - <exclude name="eclipse-bin/"/> - </fileset> - <zipfileset dir="${dist.dir}" includes="**/*.jar"/> - </zip> - </target> - - - <!--======================================================================= - javadoc - - Generates javadoc source documentation for this project - ====================================================================--> - <target name="javadoc" depends="javadoc.init, compile"> - <javadoc destdir="${javadoc.dir}/docs/api" - access="public" - source="6" - use="true" - notree="false" - nonavbar="false" - noindex="false" - splitindex="true" - author="true" - version="true" - maxmemory="256M" - nodeprecatedlist="false" - nodeprecated="false" - packagenames="${javadoc.packagenames}" - sourcepath="${src.dir}" - doctitle="${impl.title} documentation"> - <link href="http://docs.oracle.com/javase/6/docs/api/" /> - <classpath refid="classpath" /> - </javadoc> - </target> - - - <!--======================================================================= - enunciate - - Generates enunciate documentation for the resoruce - classes comprising the BIServer REST api - ====================================================================--> - <target name="enunciate" depends="resolve-enunciate"> - <path id="enunciate.classpath"> - <fileset dir="${lib.dir}"> - <include name="*.jar" /> - <exclude name="saxon*.jar" /> - </fileset> - <dirset dir="${classes.dir}" /> - <fileset dir="${dist.dir}"> - <include name="*.jar" /> - </fileset> - <fileset dir="${enunciate.home}/lib"> - <include name="*.jar" /> - </fileset> - </path> - - <taskdef name="enunciate" classname="org.codehaus.enunciate.main.EnunciateTask"> - <classpath refid="enunciate.classpath" /> - </taskdef> - - <enunciate dir="${basedir}/src" - configFile="${basedir}/enunciate.xml" - generateDir="${enunciate.bin.dir}/generate" - compileDir="${enunciate.bin.dir}/compile" - buildDir="${enunciate.bin.dir}/build" - packageDir="${enunciate.bin.dir}/package" - verbose="true"> - <include name="**/*.java" /> - <!-- have to exclude class that contains jersey multipart endpoint until http://jira.codehaus.org/browse/ENUNCIATE-537 is fixed --> - - <classpath refid="enunciate.classpath" /> - <export artifactId="docs" destination="${dist.dir}/${enunciate.packagename}.zip" /> - </enunciate> - </target> - - <!--======================================================================= - dist-javadoc - - Generates zip and targz distributions of the javadoc - ====================================================================--> - <target name="dist-javadoc" depends="javadoc.zip, javadoc.targz" /> - - - <!--======================================================================= - clean-javadoc - - Removes generated javadoc files (note, this does not remove javadoc distributions. - Use clean-dist to remove artifacts from the dist.dir. - ====================================================================--> - <target name="clean-javadoc"> - <delete dir="${javadoc.dir}" /> - </target> - - - <!--======================================================================= - javadoc.init - - Creates directories for javadoc process - ====================================================================--> - <target name="javadoc.init" depends="clean-javadoc"> - <mkdir dir="${javadoc.dir}" /> - </target> - - - <!--======================================================================= - javadoc.zip - - Creates a zip of the javadoc for distribution - ====================================================================--> - <target name="javadoc.zip" depends="javadoc"> - <jar jarfile="${dist.dir}/${javadoc.zip.filename}" - basedir="${javadoc.dir}" - includes="**/*" - excludes="**/Thumbs.db" /> - </target> - - - <!--======================================================================= - javadoc.targz - - Creates a gzipped tar of the javadoc for distribution - ====================================================================--> - <target name="javadoc.targz" depends="javadoc"> - <tar compression="gzip" - destfile="${dist.dir}/${javadoc.tar.filename}" - basedir="${javadoc.dir}" - includes="**/*" - excludes="**/Thumbs.db" /> - </target> - - - <!--======================================================================= - cobertura - - Runs tests in an instrumented environment and produces Cobertura test coverage reports - ====================================================================--> - <target name="cobertura" - description="Runs tests in an instrumented environment and produces Cobertura test coverage reports" - depends="clean-cobertura,install-cobertura,compile,compile-tests,cobertura.instrument-classes,cobertura.test-instrumented,cobertura.xml-report,cobertura.html-report" /> - - - <!--======================================================================= - cobertura.instrument-classes - - Instruments the application classes used by Cobertura during cobertura.test-instrumented - ====================================================================--> - <target name="cobertura.instrument-classes" depends="cobertura.clean-instrumented-classes,install-cobertura,compile"> - <cobertura-instrument todir="${instrumented.classes.dir}" datafile="${cobertura.data.dir}/cobertura.ser"> - <ignore regex="org.apache.log4j.*" /> - <fileset dir="${classes.dir}"> - <!-- - Instrument all the application classes, but - don't instrument the test classes. - --> - <include name="**/*.class" /> - <exclude name="**/*Test.class" /> - </fileset> - - </cobertura-instrument> - </target> - - - - <!--======================================================================= - install-cobertura - - Downloads and installs Cobertura ant tasks - ====================================================================--> - <target name="install-cobertura" depends="install-ivy"> - <taskdef-with-ivy organisation="net.sourceforge.cobertura" module="cobertura" revision="${cobertura.version}" resource="tasks.properties" classname="net.sourceforge.cobertura.ant.InstrumentTask"/> - </target> - - - <!--======================================================================= - clean-cobertura - - Removes all files created by Cobertura code coverage utility - ====================================================================--> - <target name="clean-cobertura" depends="cobertura.clean-instrumented-classes,cobertura.clean-coverage-reports"> - <delete dir="${cobertura.data.dir}" /> - </target> - - <!--======================================================================= - clean-sonar - - Removes the temporary file location for sonar files - ====================================================================--> - <target name="clean-sonar"> - <delete dir="${basedir}/.sonar" /> - </target> - - - <!--======================================================================= - cobertura.clean-instrumented-classes - - Remove the instrumented classes used by Cobertura - ====================================================================--> - <target name="cobertura.clean-instrumented-classes"> - <delete dir="${instrumented.classes.dir}" /> - </target> - - - <!--======================================================================= - cobertura.clean-coverage-reports - - Remove all xml and html Cobertura coverage reports - ====================================================================--> - <target name="cobertura.clean-coverage-reports"> - <delete dir="${coberturareports.xml.dir}" /> - <delete dir="${coberturareports.html.dir}" /> - <delete dir="${coberturareports.dir}" /> - </target> - - - <!--======================================================================= - cobertura.test-instrumented - - Runs tests against instrumented classes and generates xml and html JUnit test reports - ====================================================================--> - <target name="cobertura.test-instrumented" - depends="init-test-reports,install-cobertura,compile,compile-tests,cobertura.instrument-classes"> - <mkdir dir="${instrumented.classes.dir}" /> - <path id="cobertura.classpath"> - <fileset dir="${subfloor.resources.dir}/cobertura-${cobertura.version}"> - <include name="*.jar" /> - </fileset> - </path> - <junit fork="yes" - forkmode="${junit.forkmode}" - dir="${junit.base.dir}" - maxmemory="${junit.maxmemory}" - failureProperty="test.failed" - haltonerror="${junit.haltonerror}" - haltonfailure="${junit.haltonfailure}"> - <sysproperty key="java.awt.headless" value="${headless.unittest}" /> - - <!-- Specify the name of the coverage data file to use. --> - <sysproperty key="net.sourceforge.cobertura.datafile" file="${cobertura.data.dir}/cobertura.ser" /> - - <syspropertyset> - <propertyref prefix="junit.sysprop." /> - <mapper type="glob" from="junit.sysprop.*" to="*"/> - </syspropertyset> - - <!-- - Note the classpath order: instrumented classes are before the - original (uninstrumented) classes. This is important. - --> - <classpath location="${instrumented.classes.dir}" /> - <classpath refid="test.classpath" /> - <classpath refid="cobertura.classpath" /> - - <formatter type="xml" /> - <test name="${testcase}" todir="${testreports.xml.dir}" if="testcase" /> - <batchtest todir="${testreports.xml.dir}" unless="testcase"> - <fileset dir="${testsrc.dir}" casesensitive="yes"> - <include name="**/*Test.java" /> - </fileset> - </batchtest> - </junit> - - <junitreport todir="${testreports.html.dir}"> - <fileset dir="${testreports.xml.dir}"> - <include name="TEST-*.xml" /> - </fileset> - <report format="frames" todir="${testreports.html.dir}" /> - </junitreport> - </target> - - - <!--======================================================================= - cobertura.xml-report - - Produces machine-readable xml Cobertura coverage report from results of instrumented tests - ====================================================================--> - <target name="cobertura.xml-report" depends="cobertura.test-instrumented"> - <cobertura-report destdir="${coberturareports.xml.dir}" datafile="${cobertura.data.dir}/cobertura.ser" format="xml"> - <fileset dir="${src.dir}"> - <include name="**/*.java" /> - </fileset> - </cobertura-report> - </target> - - - <!--======================================================================= - cobertura.html-report - - Produces human-readable html Cobertura coverage report from results of instrumented tests - ====================================================================--> - <target name="cobertura.html-report" depends="cobertura.test-instrumented"> - <cobertura-report destdir="${coberturareports.html.dir}" - datafile="${cobertura.data.dir}/cobertura.ser" - format="html"> - <fileset dir="${src.dir}"> - <include name="**/*.java" /> - </fileset> - </cobertura-report> - </target> - - <!--======================================================================= - install-pentaho-ant-tasks - - Fetches and installs Pentaho Ant tasks - ====================================================================--> - <target name="install-pentaho-ant-tasks" depends="install-ivy"> - <taskdef-with-ivy task-name="dot-classpath" classname="org.pentaho.anttasks.DotClasspath" organisation="pentaho" module="pentaho-ant-tasks" revision="1.1" /> - </target> - - <!--======================================================================= - create-dot-classpath - - Creates the Eclipse .classpath file from the resolved - classpath from Ant. - ====================================================================--> - <target name="create-dot-classpath" depends="install-pentaho-ant-tasks,init"> - <dot-classpath> - <!-- Include all lib dirs --> - <classpath> - <fileset dir="${devlib.dir}"> - <include name="*.jar" /> - </fileset> - <fileset dir="${testlib.dir}"> - <include name="*.jar" /> - </fileset> - <fileset dir="${lib.dir}"> - <include name="*.jar" /> - </fileset> - </classpath> - </dot-classpath> - </target> - - - <!--======================================================================= - MACRO: taskdef-with-ivy - Downloads (using IVY) and defines new Ant tasks - - NOTE: any task using this macro must depend on "install-antcontrib" - - parameters: - task-name - Name to give the new Ant task (only used if resource is not set) - organisation - Artifact organization (for artifact resolution with IVY) - module - Artifact module (for artifact resolution with IVY) - revision - Artifact revision (for artifact resolution with IVY) - classname - Classname for the Ant task. Used during taskdef and to check - if we already have the libraries - resource - (optional) Resource defining the Ant task. Used during taskdef - ====================================================================--> - <macrodef name="taskdef-with-ivy"> - <attribute name="task-name" - description="Name to give the new Ant task (only used if resource is not set)" - default="unset" /> - <attribute name="organisation" description="Artifact organization" /> - <attribute name="module" description="Artifact module" /> - <attribute name="revision" description="Artifact revision" /> - <attribute name="classname" - description="Classname for the Ant task. Used during taskdef and to check if we already have the libraries." /> - <attribute name="resource" - description="(optional) Resource defining the Ant task. Used during taskdef" - default="unset" /> - <sequential> - <mkdir dir="${subfloor.resources.dir}/@{module}-@{revision}/" /> - <!-- if the library does not exist, we must download it --> - <if> - <not> - <and> - <available file="${subfloor.resources.dir}/@{module}-@{revision}" /> - <available classname="@{classname}"> - <classpath> - <fileset dir="${subfloor.resources.dir}/@{module}-@{revision}"> - <include name="*.jar" /> - </fileset> - </classpath> - </available> - </and> - </not> - <then> - <ivy:retrieve inline="true" - conf="default" - organisation="@{organisation}" - module="@{module}" - revision="@{revision}" - pattern="${subfloor.resources.dir}/@{module}-@{revision}/[module]-__-[revision](-[classifier]).[ext]" /> - <!-- in case the artifact pulls in an ant jar, remove it. they cause runtime conflicts --> - <delete> - <fileset dir="${subfloor.resources.dir}/@{module}-@{revision}"> - <include name="ant-__-*.jar" /> - <include name="ant-launcher-__-*.jar" /> - </fileset> - </delete> - </then> - </if> - <path id="taskdef.classpath"> - <fileset dir="${subfloor.resources.dir}/@{module}-@{revision}"> - <include name="*.jar" /> - </fileset> - </path> - <if> - <equals arg1="@{resource}" arg2="unset" /> - <then> - <taskdef classpathref="taskdef.classpath" name="@{task-name}" classname="@{classname}" /> - </then> - <else> - <taskdef classpathref="taskdef.classpath" resource="@{resource}" /> - </else> - </if> - </sequential> - </macrodef> - - - <!--======================================================================= - Macro which will download the specified library. - - NOTE: any task using this macro must depend on "install-antcontrib" - - parameters: - name - The name of the library (the filename w/o extension) - url - The URL from which the library will be downloaded - resource - The name of the resource which should be loaded - as a task definition - classname - A class file name which can be used to detect if the - property library exists - extension - The extension of the library being downloaded - (defaults to zip) - ====================================================================--> - <macrodef name="download-antlib"> - <attribute name="name" /> - <attribute name="url" /> - <attribute name="classname" /> - <attribute name="extension" default="zip" /> - <sequential> - <mkdir dir="${subfloor.resources.dir}/@{name}/" /> - <!-- if the library does not exist, we must download it --> - <if> - <not> - <and> - <available file="${subfloor.resources.dir}/@{name}" /> - <available classname="@{classname}"> - <classpath> - <fileset dir="${subfloor.resources.dir}/@{name}"> - <include name="**/*.jar" /> - </fileset> - </classpath> - </available> - </and> - </not> - <then> - <!-- if it is a zip file, unzip it ... otherwise if a jar, just download it --> - <if> - <equals arg1="zip" arg2="@{extension}" /> - <then> - <!-- download the source file to a temp directory --> - <echo message="downloading library @{name} [@{name}.@{extension} from @{url}]" /> - <mkdir dir="${subfloor.tmp.dir}" /> - <get src="@{url}" dest="${subfloor.tmp.dir}/@{name}.@{extension}" usetimestamp="true" /> - <unzip src="${subfloor.tmp.dir}/@{name}.@{extension}" - dest="${subfloor.resources.dir}/@{name}" - overwrite="true" /> - </then> - <else> - <get src="@{url}" dest="${subfloor.resources.dir}/@{name}/@{name}.@{extension}" usetimestamp="true" /> - </else> - </if> - </then> - </if> - </sequential> - </macrodef> - - <!--======================================================================= - install-tattletale - - (Fetches and) installs TATTLETALE for use by this ant script - ====================================================================--> - <target name="install-tattletale" depends="install-antcontrib"> - <if> - <istrue value="${tattletale.isinstalled}" /> - <then> - <echo message="Skipping TATTLETALE install. TATTLETALE has already been configured by the build" /> - </then> - <else> - <download-antlib name="tattletale" - url="${tattletale.url}" - classname="${tattletale.classname}" - extension="zip"/> - - <taskdef name="tattletale.report" classname="${tattletale.classname}"> - <classpath> - <fileset dir="${subfloor.resources.dir}/tattletale"> - <include name="*.jar" /> - </fileset> - </classpath> - </taskdef> - - <property name="tattletale.isinstalled" value="true" /> - </else> - </if> - </target> - - <!--======================================================================= - tattletale-report - - Generates a tattletale report for this project - ====================================================================--> - <target name="tattletale-report" depends="install-tattletale,jar"> - <tattletale.report source="${basedir}" destination="${tattletale.reports.dir}"/> - </target> - -<!--======================================================================= - install-sonar - - (Fetches and) installs SONAR ant plugin for use by this ant script - ====================================================================--> - <target name="install-sonar" depends="install-antcontrib"> - <if> - <istrue value="${sonar.isinstalled}" /> - <then> - <echo message="Skipping SONAR install. SONAR has already been configured by the build" /> - </then> - <else> - <download-antlib name="sonar" - url="${sonar.url}" - classname="${sonar.classname}" - extension="jar"/> - - <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml"> - <classpath> - <fileset dir="${subfloor.resources.dir}/sonar"> - <include name="*.jar" /> - </fileset> - </classpath> - </taskdef> - - <property name="sonar.isinstalled" value="true" /> - </else> - </if> - </target> - - <!--======================================================================= - sonar - - Execute the sonar analysis and publish to a sonar server specified by: - sonar.jdbc.url - sonar.jdbc.driverClassName - sonar.jdbc.username - sonar.jdbc.password - sonar.host.url - ====================================================================--> - <target name="sonar" depends="install-sonar, compile, test, cobertura"> - <property name="sonar.sources" value="${src.dir}" /> - <property name="sonar.binaries" value="${classes.dir}" /> - <property name="sonar.tests" value="${testsrc.dir}" /> - <property name="sonar.libraries" value="${lib.dir}" /> - - <property name="sonar.dynamicAnalysis" value="reuseReports" /> - <property name="sonar.cobertura.reportPath" value="${coberturareports.xml.dir}/coverage.xml" /> - <property name="sonar.surefire.reportsPath" value="${testreports.xml.dir}" /> - - <sonar:sonar key="${ivy.artifact.group}:${ivy.artifact.id}" version="${project.revision}" xmlns:sonar="antlib:org.sonar.ant"/> - </target> - -</project>
http://git-wip-us.apache.org/repos/asf/oodt/blob/2fc7bced/tools/pdi_plugin/build.properties ---------------------------------------------------------------------- diff --git a/tools/pdi_plugin/build.properties b/tools/pdi_plugin/build.properties deleted file mode 100644 index 27fa591..0000000 --- a/tools/pdi_plugin/build.properties +++ /dev/null @@ -1,13 +0,0 @@ -impl.title=Apache OODT filemgr file get -impl.productID=OODT_FILEMGR_GET -impl.vendor=Apache Foundation - -ivy.artifact.group=oodt-filemgr -ivy.artifact.id=filemgr-fileget-plugin - -project.revision=TRUNK-SNAPSHOT -dependency.pentaho-metadata.revision=TRUNK-SNAPSHOT -src.dir=${basedir}/src -testsrc.dir=${basedir}/test-src -project.use-full-dist=true -javadoc.packagenames=org.apache.oodt.*
