Browse Source

Add spring-build 2.5.2

spring-build was previously included via an svn:external. Adding
directly to the source tree under Git to avoid the need for a git
submodule.

In order to build from any earlier commit, it is recommended to
export spring-build or symlink an existing copy into the root
of the spring-framework project and then build normally.

    $ svn export https://src.springsource.org/svn/spring-build/tags/project-build-2.5.2 spring-build
pull/9/merge
Chris Beams 13 years ago
parent
commit
abb5fc094a
  1. 1
      .gitignore
  2. 33
      spring-build/aspect/artifact.xml
  3. 45
      spring-build/aspect/common.xml
  4. 25
      spring-build/aspect/default.xml
  5. 22
      spring-build/aspect/package.xml
  6. 22
      spring-build/aspect/publish.xml
  7. 74
      spring-build/aspect/quality.xml
  8. 120
      spring-build/common/artifact.xml
  9. 183
      spring-build/common/common.properties
  10. 240
      spring-build/common/common.xml
  11. 34
      spring-build/common/default-ivy-configurations.xml
  12. 22
      spring-build/common/findbugs-exclude.xml
  13. 82
      spring-build/common/ivysettings.xml
  14. BIN
      spring-build/common/javadoc-resources/TableHeading-background.png
  15. 109
      spring-build/common/package.xml
  16. 110
      spring-build/common/publish.xml
  17. 276
      spring-build/common/quality.xml
  18. 184
      spring-build/common/spring-javadoc.css
  19. 21
      spring-build/docbook/common.xml
  20. 46
      spring-build/docbook/css/html/highlight.css
  21. 75
      spring-build/docbook/css/html/stylesheet.css
  22. 24
      spring-build/docbook/default.xml
  23. 182
      spring-build/docbook/documentation.xml
  24. 29
      spring-build/docbook/package.xml
  25. 44
      spring-build/docbook/publish.xml
  26. 119
      spring-build/docbook/styles/html/custom.xsl
  27. 56
      spring-build/docbook/styles/html/titlepage.xml
  28. 661
      spring-build/docbook/styles/pdf/custom.xsl
  29. 96
      spring-build/docbook/styles/pdf/titlepage.xml
  30. BIN
      spring-build/lib/ivy/commons-codec.jar
  31. BIN
      spring-build/lib/ivy/commons-httpclient.jar
  32. BIN
      spring-build/lib/ivy/commons-logging.jar
  33. 20
      spring-build/lib/ivy/current.version
  34. BIN
      spring-build/lib/ivy/ivy.jar
  35. BIN
      spring-build/lib/ivy/jets3t.jar
  36. 26
      spring-build/lib/ivy/jets3t.properties
  37. BIN
      spring-build/lib/ivy/org.springframework.build.aws.ivy.jar
  38. 52
      spring-build/library/artifact.xml
  39. 21
      spring-build/library/common.xml
  40. 25
      spring-build/library/default.xml
  41. 37
      spring-build/library/package.xml
  42. 82
      spring-build/library/publish.xml
  43. 35
      spring-build/library/quality.xml
  44. 70
      spring-build/multi-bundle/artifact.xml
  45. 120
      spring-build/multi-bundle/common.xml
  46. 25
      spring-build/multi-bundle/default.xml
  47. 29
      spring-build/multi-bundle/package.xml
  48. 83
      spring-build/multi-bundle/publish.xml
  49. 138
      spring-build/multi-bundle/quality.xml
  50. 66
      spring-build/par/artifact.xml
  51. 21
      spring-build/par/common.xml
  52. 25
      spring-build/par/default.xml
  53. 31
      spring-build/par/package.xml
  54. 66
      spring-build/par/publish.xml
  55. 22
      spring-build/par/quality.xml
  56. 45
      spring-build/resource/artifact.xml
  57. 21
      spring-build/resource/common.xml
  58. 25
      spring-build/resource/default.xml
  59. 39
      spring-build/resource/package.xml
  60. 82
      spring-build/resource/publish.xml
  61. 35
      spring-build/resource/quality.xml
  62. 40
      spring-build/standard/artifact.xml
  63. 48
      spring-build/standard/common.xml
  64. 25
      spring-build/standard/default.xml
  65. 22
      spring-build/standard/package.xml
  66. 22
      spring-build/standard/publish.xml
  67. 22
      spring-build/standard/quality.xml
  68. 85
      spring-build/war/artifact.xml
  69. 48
      spring-build/war/common.xml
  70. 25
      spring-build/war/default.xml
  71. 31
      spring-build/war/package.xml
  72. 70
      spring-build/war/publish.xml
  73. 74
      spring-build/war/quality.xml
  74. 83
      spring-build/weaving-external/artifact.xml
  75. 48
      spring-build/weaving-external/common.xml
  76. 25
      spring-build/weaving-external/default.xml
  77. 22
      spring-build/weaving-external/package.xml
  78. 22
      spring-build/weaving-external/publish.xml
  79. 63
      spring-build/weaving-external/quality.xml
  80. 59
      spring-build/weaving/artifact.xml
  81. 50
      spring-build/weaving/common.xml
  82. 25
      spring-build/weaving/default.xml
  83. 22
      spring-build/weaving/package.xml
  84. 22
      spring-build/weaving/publish.xml
  85. 45
      spring-build/weaving/quality.xml

1
.gitignore vendored

@ -14,5 +14,4 @@ org.springframework.jdbc/derby.log @@ -14,5 +14,4 @@ org.springframework.jdbc/derby.log
org.springframework.spring-parent/.classpath
org.springframework.spring-parent/.project
org.springframework.test/test-output/
spring-build
target

33
spring-build/aspect/artifact.xml

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-aspect" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<import file="../common/artifact.xml"/>
<target name="jar" depends="ivy.init, resolve.aspects, artifact-common.jar"
description="Creates a JAR file containing the output of a compilation of the source tree."/>
<!-- Other targets -->
<target name="compile.init" depends="ivy.init">
<ivy:cachepath resolveId="ajc.classpath" pathid="ajc.classpath" organisation="org.aspectj"
module="com.springsource.org.aspectj.tools" revision="${org.aspectj.tools.version}" conf="runtime"
type="jar" inline="true" log="download-only"/>
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties" classpathref="ajc.classpath"/>
</target>
</project>

45
spring-build/aspect/common.xml

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-aspect">
<import file="../common/common.xml"/>
<!-- Macros -->
<macrodef name="do-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<iajc sourceroots="@{input.dir}" destDir="@{output.dir}" classpathRef="@{classpath.id}" source="${source.version}"
debug="${compile.debug}" debugLevel="${compile.debug.level}" checkRuntimeVersion="false"
aspectPathRef="aspects.classpath" X="${aspectj.x}"/>
<copy todir="@{output.dir}">
<fileset dir="@{input.dir}" erroronmissingdir="false">
<exclude name="**/*.aj"/>
<exclude name="**/*.java"/>
<exclude name="*.aj"/>
<exclude name="*.java"/>
</fileset>
</copy>
<copy todir="@{output.dir}">
<fileset dir="@{resources.dir}" erroronmissingdir="false"/>
</copy>
</sequential>
</macrodef>
</project>

25
spring-build/aspect/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-aspect">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

22
spring-build/aspect/package.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-aspect">
<import file="common.xml"/>
<import file="../common/package.xml"/>
</project>

22
spring-build/aspect/publish.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-aspect">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
</project>

74
spring-build/aspect/quality.xml

@ -0,0 +1,74 @@ @@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-aspect" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<import file="../common/quality.xml"/>
<target name="test.do" depends="ivy.init, resolve.test, resolve.aspects, compile.init, test.init" if="test.exists">
<path id="test.compile.classpath">
<pathelement location="${jar.output.file}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
</path>
<path id="test.aspect.path">
<pathelement location="${jar.output.file}"/>
<path refid="aspects.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.java.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<iajc inPath="${test.output.dir}" aspectPathRef="test.aspect.path" classpathRef="test.compile.classpath"
destDir="${test.output.dir}" source="${source.version}" checkRuntimeVersion="false" X="${aspectj.x}"/>
<path id="test.run.classpath">
<pathelement location="${jar.output.file}"/>
<pathelement location="${test.output.dir}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
<path refid="runtime.classpath"/>
</path>
<test-run classpath.id="test.run.classpath"/>
</target>
<target name="clover.instrument" depends="ivy.init, resolve.aspects, resolve.test, compile.init, clover.init">
<instrument input.dir="${main.java.dir}" output.dir="${main.clover.dir}"/>
<path id="clover.compile.classpath">
<path refid="clover.classpath"/>
<path refid="compile.classpath"/>
</path>
<compile classpath.id="clover.compile.classpath" input.dir="${main.clover.dir}" output.dir="${main.output.dir}"
resources.dir="${main.resources.dir}"/>
<instrument input.dir="${test.java.dir}" output.dir="${test.clover.dir}"/>
<path id="test.compile.classpath">
<pathelement location="${main.output.dir}"/>
<path refid="clover.classpath"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
</path>
<path id="test.aspect.path">
<pathelement location="${main.output.dir}"/>
<path refid="aspects.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.clover.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<iajc inPath="${test.output.dir}" aspectPathRef="test.aspect.path" classpathRef="test.compile.classpath"
destDir="${test.output.dir}" source="${source.version}" checkRuntimeVersion="false" X="${aspectj.x}"/>
<delete dir="${clover.staging.dir}" quiet="true"/>
</target>
</project>

120
spring-build/common/artifact.xml

@ -0,0 +1,120 @@ @@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-common" xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:bundlor="antlib:com.springsource.bundlor.ant">
<!-- Main targets -->
<target name="javadoc-all" depends="ivy.init, resolve.compile, src.init" if="src.exists"
description="Creates javadoc documentation for all classes.">
<java-doc input.dir="${main.java.dir}" output.dir="${javadoc-all.output.dir}" classpath.id="compile.classpath"
access="private"/>
</target>
<target name="javadoc-api" depends="ivy.init, resolve.compile, src.init" if="src.exists"
description="Creates javadoc documentation for all classes.">
<java-doc input.dir="${main.java.dir}" output.dir="${javadoc-api.output.dir}" classpath.id="compile.classpath"
access="protected" exclude.package.names="${javadoc.exclude.package.names}"/>
</target>
<target name="jar" depends="ivy.init, resolve.compile, compile.init, jar.init"
description="Creates a JAR file containing the output of a compilation of the source tree.">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}"/>
<delete quiet="true" file="${jar.output.file}"/>
<mkdir dir="${jar.output.dir}"/>
<delete quiet="true" file="${source-jar.output.file}"/>
<mkdir dir="${source-jar.output.dir}"/>
<compile classpath.id="compile.classpath" input.dir="${main.java.dir}" output.dir="${main.output.dir}"
resources.dir="${main.resources.dir}"/>
<ivy:retrieve resolveId="additional.classpath" conf="additional" type="jar" transitive="false"
pattern="${main.output.dir}/[artifact]-[revision].[ext]" log="download-only"/>
<antcall target="bundlor"/>
<jar destfile="${jar.output.file}" basedir="${main.output.dir}" index="true" filesetmanifest="merge">
<manifest>
<attribute name="Bundle-ManifestVersion" value="2"/>
<attribute name="Bundle-Version" value="${bundle.version}"/>
<attribute name="Bundle-Creator" value="${user.name}"/>
<attribute name="Implementation-Title" value="${implementation.title}"/>
<attribute name="Implementation-Version" value="${implementation.version}"/>
</manifest>
</jar>
<jar destfile="${source-jar.output.file}" basedir="${main.java.dir}" index="true"/>
<ivy:publish resolver="integration" pubdate="${timestamp}" status="${release.type}">
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${source-jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<!-- Other targets -->
<propertyset id="bundlor.properties"/>
<target name="compile.init" depends="ivy.init"/>
<target name="jar.init">
<fail message="The 'integration.repo.dir' property must be set on this project.">
<condition>
<not>
<isset property="integration.repo.dir"/>
</not>
</condition>
</fail>
<fail message="The 'ivy.cache.dir' property must be set on this project.">
<condition>
<not>
<isset property="ivy.cache.dir"/>
</not>
</condition>
</fail>
<fail message="The 'version' property must be set on this project.">
<condition>
<not>
<isset property="version"/>
</not>
</condition>
</fail>
</target>
<target name="bundlor" depends="bundlor.init" unless="disable.bundlor">
<bundlor:bundlor inputPath="${main.output.dir}" outputPath="${main.output.dir}"
bundleVersion="${bundle.version}" manifestTemplatePath="${manifest.template.file}"
failOnWarnings="${fail.on.warnings}">
<propertyset refid="bundlor.properties"/>
<propertyset>
<propertyref builtin="all"/>
</propertyset>
</bundlor:bundlor>
</target>
<target name="bundlor.init" depends="ivy.init" unless="disable.bundlor">
<ivy:cachepath resolveId="bundlor.classpath" pathid="bundlor.classpath" organisation="com.springsource.bundlor"
module="com.springsource.bundlor.ant" revision="${bundlor.ant.version}" conf="ant" inline="true"
type="jar" log="download-only"/>
<taskdef resource="com/springsource/bundlor/ant/antlib.xml" uri="antlib:com.springsource.bundlor.ant"
classpathref="bundlor.classpath"/>
</target>
<target name="javadoc.prep" depends="src.init" if="src.exists">
<mkdir dir="${javadoc.prep.dir}"/>
<copy todir="${javadoc.prep.dir}">
<fileset dir="${main.java.dir}" erroronmissingdir="false"/>
</copy>
</target>
</project>

183
spring-build/common/common.properties

@ -0,0 +1,183 @@ @@ -0,0 +1,183 @@
# Copyright 2010 SpringSource
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Common Properties
lib.dir=${spring.build.dir}/lib
artifacts.dir=${target.dir}/artifacts
target.dir=${basedir}/target
ci.build=false
natural.name=${ant.project.name}
build.stamp=BUILD-${timestamp}
bundle.version=${version}.${build.stamp}
publish.bucket=repository.springsource.com
local.repo.dir=${java.io.tmpdir}/local-repository
# Artifact Properties
license.dir=${basedir}
main.java.dir=${basedir}/src/main/java
main.resources.dir=${basedir}/src/main/resources
main.output.dir=${target.dir}/classes
main.webapp.dir=${basedir}/src/main/webapp
# Javadoc Properties
javadoc-all.output.dir=${target.dir}/javadoc-all
javadoc-api.output.dir=${target.dir}/javadoc-api
javadoc.prep.dir=${target.dir}/javadoc-prep
javadoc.exclude.package.names=
javadoc.stylesheet.file=${spring.build.dir}/common/spring-javadoc.css
javadoc.resources.dir=${spring.build.dir}/common/javadoc-resources
javadoc.max.memory=128M
# JAR Properties
implementation.title=${ant.project.name}
implementation.version=${bundle.version}
jar.output.dir=${artifacts.dir}
jar.output.file=${jar.output.dir}/${ant.project.name}.jar
source-jar.output.dir=${artifacts.dir}
source-jar.output.file=${source-jar.output.dir}/${ant.project.name}-sources.jar
# PAR Properties
par.output.dir=${artifacts.dir}
par.output.file=${par.output.dir}/${ant.project.name}.par
par.provided.dir=${target.dir}/par-provided
par.provided.bundles.dir=${par.provided.dir}/bundles
par.provided.libraries.dir=${par.provided.dir}/libraries
par.staging.dir=${target.dir}/par-expanded
application.name=
application.description=
# Web Module Properties
web.module.output.dir=${artifacts.dir}
web.module.output.file=${web.module.output.dir}/${ant.project.name}.jar
web.module.staging.dir=${target.dir}/web-module-expanded
web.module.classes.dir=${web.module.staging.dir}/WEB-INF/classes
# Library Properties
libd.input.file=${basedir}/${ant.project.name}.libd
libd.output.dir=${artifacts.dir}
libd.output.file=${libd.output.dir}/${ant.project.name}.libd
# Resource Properties
resource.src.dir=${basedir}/src
# WAR Properties
war.output.dir=${artifacts.dir}
war.output.file=${war.output.dir}/${ant.project.name}.war
war.staging.dir=${target.dir}/war-expanded
war.classes.dir=${war.staging.dir}/WEB-INF/classes
war.lib.dir=${war.staging.dir}/WEB-INF/lib
# Compiler Properties
org.springframework.build.ant.version=1.1.0.RELEASE
org.eclipse.jdt.core.compiler.batch.version=3.3.0
build.compiler=org.eclipse.jdt.core.JDTCompilerAdapter
compile.debug=true
compile.debug.level=lines,vars,source
compiler.args=-enableJavadoc
source.version=1.5
target.version=${source.version}
# Package Properties
copy.to.dir=${package.dist.dir}
package.dir=${target.dir}/package-expanded
package.basename=${natural.name}-${bundle.version}
package.file.name=${package.basename}.zip
package.output.dir=${package.dir}/${package.basename}
package.output.file=${artifacts.dir}/${package.file.name}
package.dist.dir=${package.output.dir}/dist
package.lib.dir=${package.output.dir}/lib
package.src.dir=${package.output.dir}/src
package.docs.dir=${package.output.dir}/docs
package.jar.output.file=${ant.project.name}-${bundle.version}.jar
package.par.output.file=${ant.project.name}-${bundle.version}.par
package.libd.output.file=${ant.project.name}-${bundle.version}.libd
package.war.output.file=${ant.project.name}-${bundle.version}.war
package.source-jar.output.file=${ant.project.name}-sources-${bundle.version}.jar
org.springframework.build.aws.ant.version=3.0.3.RELEASE
# AspectJ Properties
org.aspectj.tools.version=1.6.8.RELEASE
aspectj.x=
# Test Properties
test.forkmode=perBatch
test.java.dir=${basedir}/src/test/java
test.resources.dir=${basedir}/src/test/resources
test.output.dir=${target.dir}/test-classes
test-results.output.dir=${target.dir}/test-results
test.vm.args=
# Clover Properties
clover.db.dir=${clover.output.dir}/db
clover.db.file=${clover.db.dir}/clover.db
clover.output.dir=${target.dir}/clover
clover.staging.dir=${clover.output.dir}/staging
main.clover.dir=${clover.staging.dir}/main
test.clover.dir=${clover.staging.dir}/test
com.springsource.com.cenqua.clover.version=2.6.0
clover.enforce=false
clover.coverage=0%
# Docbook Properties
docbook.dir=${lib.dir}/docbook
docbook.target.dir=${target.dir}/docbook
org.apache.velocity.docbookframework.dist.version=1.0.0.BUILD-20080625
com.springsource.net.sf.xslthl.version=1.2.0
com.springsource.org.apache.xerces.version=2.8.1
docbook.build.dir=${spring.build.dir}/docbook
docbook.output.dir=${target.dir}/${ant.project.name}
docbook.staging.dir=${docbook.target.dir}/staging
docbook.src.dir=${basedir}/src
docbook.images.dir=${basedir}/images
docbook.css.dir=${basedir}/css
docbook.styles.dir=${basedir}/styles
# Findbugs Properties
findbugs.dir=${lib.dir}/findbugs
findbugs.exclude.file=${spring.build.dir}/common/findbugs-exclude.xml
findbugs.output.dir=${target.dir}/findbugs
findbugs.output.file=${findbugs.output.dir}/${ant.project.name}.xml
edu.umd.cs.findbugs.version=1.3.7
# Ivy Properties
bucket.basename=springframework.org
release.type=integration
ivy.checksums=sha1
ivy.deliver.revision=${bundle.version}
ivy.file=${basedir}/ivy.xml
ivy.lib.dir=${lib.dir}/ivy
ivy.output.dir=${artifacts.dir}
ivy.output.file=${ivy.output.dir}/ivy.xml
ivy.settings.file=${spring.build.dir}/common/ivysettings.xml
# Maven Properties
pom.output.dir=${artifacts.dir}
pom.output.file=${pom.output.dir}/pom.xml
local.pom.output.file=${basedir}/pom.xml
org.apache.maven.ant.version=2.0.10
org.springframework.build.aws.maven.version=2.0.0.RELEASE
# Bundlor Properties
bundlor.ant.version=1.0.0.RELEASE
manifest.template.file=${basedir}/template.mf
merge.existing.headers=true
fail.on.warnings=true
# OSGi Properties
org.springframework.build.osgi.version=1.0.0.RELEASE
org.eclipse.osgi.version=3.5.0.v20090311-1300
#S3 Properties
accessKey=
secretKey=

240
spring-build/common/common.xml

@ -0,0 +1,240 @@ @@ -0,0 +1,240 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-common" xmlns:ivy="antlib:org.apache.ivy.ant">
<tstamp>
<format property="timestamp" pattern="yyyyMMddHHmmss" timezone="GMT"/>
</tstamp>
<!-- Properties -->
<dirname property="spring.build.dir" file="${ant.file.common-common}/.."/>
<property file="${spring.build.dir}/common/common.properties"/>
<!-- Global tasks -->
<condition property="adjusted.release.type" value="snapshot" else="${release.type}">
<equals arg1="integration" arg2="${release.type}"/>
</condition>
<condition property="publication.resolver.prefix" value="local" else="ebr">
<istrue value="${local.build}"/>
</condition>
<!-- Main targets -->
<target name="clean"
description="Removes the target directory.">
<delete quiet="true" dir="${target.dir}"/>
</target>
<target name="clean-integration"
description="Removes the integration repository directory.">
<fail message="The 'integration.repo.dir' property must be set on this project.">
<condition>
<not>
<isset property="integration.repo.dir"/>
</not>
</condition>
</fail>
<delete quiet="true" dir="${integration.repo.dir}"/>
</target>
<target name="clean-ivy"
description="Removes the ivy cache directory.">
<fail message="The 'ivy.cache.dir' property must be set on this project.">
<condition>
<not>
<isset property="ivy.cache.dir"/>
</not>
</condition>
</fail>
<delete quiet="true" dir="${ivy.cache.dir}"/>
</target>
<target name="resolve" depends="resolve.init"
description="Retrieves all external dependencies for this project.">
<ivy:resolve id="all.classpath" log="download-only"/>
</target>
<!-- Other targets -->
<target name="ivy.init" unless="ivy.initialized">
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant">
<classpath>
<path location="${ivy.lib.dir}/ivy.jar"/>
<path location="${ivy.lib.dir}/org.springframework.build.aws.ivy.jar"/>
<path location="${ivy.lib.dir}/commons-codec.jar"/>
<path location="${ivy.lib.dir}/commons-httpclient.jar"/>
<path location="${ivy.lib.dir}/commons-logging.jar"/>
<path location="${ivy.lib.dir}/jets3t.jar"/>
<path location="${ivy.lib.dir}"/>
</classpath>
</taskdef>
<ivy:settings file="${ivy.settings.file}"/>
<property name="ivy.initialized" value="true"/>
</target>
<target name="resolve.init" depends="ivy.file.exists">
<fail message="Dependency resolution requires an ${ivy.file} file to exist.">
<condition>
<not>
<isset property="ivy.file.exists"/>
</not>
</condition>
</fail>
</target>
<target name="ivy.file.exists" depends="ivy.init">
<condition property="ivy.file.exists">
<available file="${ivy.file}"/>
</condition>
</target>
<target name="resolve.compile" depends="resolve.init">
<ivy:cachepath resolveId="compile.classpath" pathid="compile.classpath"
conf="compile,optional,provided,dm-server-provided" type="jar" log="download-only"/>
</target>
<target name="resolve.test" depends="resolve.init, resolve.compile">
<ivy:cachepath resolveId="test.classpath" pathid="test.classpath" conf="test" type="jar" log="download-only"/>
<ivy:cachepath resolveId="runtime.classpath" pathid="runtime.classpath" conf="runtime" type="jar"
log="download-only"/>
</target>
<target name="resolve.aspects" depends="resolve.init">
<ivy:cachepath resolveId="aspects.classpath" pathid="aspects.classpath" conf="aspects" type="jar"
log="download-only"/>
</target>
<target name="resolve.external" depends="resolve.init">
<ivy:cachepath resolveId="external.classpath" pathid="external.classpath" conf="external" type="jar"
transitive="false" log="download-only"/>
<ivy:cachepath resolveId="external.srcpath" pathid="external.srcpath" conf="external" type="src"
transitive="false" log="download-only"/>
</target>
<target name="src.init">
<condition property="src.exists">
<resourcecount when="gt" count="0">
<fileset dir="${main.java.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
<include name="*.java"/>
</fileset>
</resourcecount>
</condition>
</target>
<target name="test.init">
<condition property="test.exists">
<resourcecount when="gt" count="0">
<fileset dir="${test.java.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
<include name="*.java"/>
</fileset>
</resourcecount>
</condition>
</target>
<!-- Macros -->
<macrodef name="compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<delete quiet="true" dir="@{output.dir}"/>
<mkdir dir="@{output.dir}"/>
<pre-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<do-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<post-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
</sequential>
</macrodef>
<macrodef name="test-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<delete quiet="true" dir="@{output.dir}"/>
<mkdir dir="@{output.dir}"/>
<test-pre-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<do-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
<test-post-compile classpath.id="@{classpath.id}" input.dir="@{input.dir}" output.dir="@{output.dir}"
resources.dir="@{resources.dir}"/>
</sequential>
</macrodef>
<macrodef name="pre-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="post-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="test-pre-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="test-post-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential/>
</macrodef>
<macrodef name="java-doc">
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="classpath.id"/>
<attribute name="access"/>
<attribute name="exclude.package.names" default=""/>
<sequential>
<delete quiet="true" dir="@{output.dir}"/>
<mkdir dir="@{output.dir}"/>
<javadoc.links sourcepath="@{input.dir}" destdir="@{output.dir}" classpathref="@{classpath.id}"
access="@{access}" excludepackagenames="@{exclude.package.names}" maxmemory="${javadoc.max.memory}"
stylesheetfile="${javadoc.stylesheet.file}" splitindex="true" useexternalfile="true">
<header><![CDATA[<!-- Begin Google Analytics code --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-2728886-3"); pageTracker._setDomainName("none"); pageTracker._setAllowLinker(true); pageTracker._trackPageview(); </script> <!-- End Google Analytics code -->]]></header>
</javadoc.links>
<copy toDir="@{output.dir}/resources">
<fileset dir="${javadoc.resources.dir}" erroronmissingdir="false"/>
</copy>
</sequential>
</macrodef>
<presetdef name="javadoc.links">
<javadoc/>
</presetdef>
</project>

34
spring-build/common/default-ivy-configurations.xml

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configurations>
<!-- Maven equivalent configurations -->
<conf name="compile" visibility="public" extends="aspects" description="Maven compile dependencies"/>
<conf name="optional" visibility="public" extends="compile" description="Maven optional dependencies"/>
<conf name="provided" visibility="public" description="Maven provided dependencies"/>
<conf name="dm-server-provided" visibility="public" description="Maven provided dependencies that already exist in the platform"/>
<conf name="runtime" visibility="public" extends="compile" description="Runtime dependencies"/>
<conf name="test" visibility="private" description="Test dependencies"/>
<!-- Aspect weaving configuration -->
<conf name="aspects" visibility="private" description="Aspects to be woven"/>
<conf name="external" visibility="private" description="External candidates to be woven"/>
<!-- PAR configuration -->
<conf name="additional" visibility="private" description="Additional candidates to be included in the PAR"/>
</configurations>

22
spring-build/common/findbugs-exclude.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<FindBugsFilter>
<!-- Exclusions -->
<Match>
<Bug code="BAC,PS"/>
</Match>
</FindBugsFilter>

82
spring-build/common/ivysettings.xml

@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<ivysettings>
<typedef name="s3" classname="org.springframework.aws.ivy.S3Resolver"/>
<settings defaultResolver="external-lookup" defaultLatestStrategy="latest-lexico"/>
<caches resolutionCacheDir="${ivy.cache.dir}/resolution" repositoryCacheDir="${ivy.cache.dir}/repository"
ivyPattern="[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
artifactPattern="[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
useOrigin="true" checkUpToDate="false"/>
<macrodef name="s3repo">
<attribute name="bucket"/>
<attribute name="artifact.type"/>
<attribute name="release.type"/>
<s3 descriptor="required" accessKey="${accessKey}" secretKey="${secretKey}">
<ivy pattern="s3://@{bucket}/ivy/@{artifact.type}/@{release.type}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
<artifact pattern="s3://@{bucket}/ivy/@{artifact.type}/@{release.type}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</s3>
</macrodef>
<macrodef name="localrepo">
<filesystem descriptor="required">
<ivy pattern="${local.repo.dir}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
<artifact pattern="${local.repo.dir}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</filesystem>
</macrodef>
<resolvers>
<!-- Integration repositories -->
<filesystem name="integration" descriptor="required">
<ivy pattern="${integration.repo.dir}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
<artifact pattern="${integration.repo.dir}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</filesystem>
<!-- Lookup repositories -->
<chain name="external-lookup" returnFirst="true">
<localrepo name="local-external-repository"/>
<s3repo name="bundle-external-repository" bucket="repository.springsource.com" artifact.type="bundles" release.type="external"/>
<s3repo name="library-external-repository" bucket="repository.springsource.com" artifact.type="libraries" release.type="external"/>
</chain>
<chain name="spring-portfolio-lookup" returnFirst="true">
<resolver ref="integration"/>
<localrepo name="local"/>
<s3repo name="bundle-release-repository" bucket="repository.springsource.com" artifact.type="bundles" release.type="release"/>
<s3repo name="bundle-milestone-repository" bucket="repository.springsource.com" artifact.type="bundles" release.type="milestone"/>
<s3repo name="bundle-snapshot-repository" bucket="repository.springsource.com" artifact.type="bundles" release.type="snapshot"/>
<s3repo name="library-release-repository" bucket="repository.springsource.com" artifact.type="libraries" release.type="release"/>
<s3repo name="library-milestone-repository" bucket="repository.springsource.com" artifact.type="libraries" release.type="milestone"/>
<s3repo name="library-snapshot-repository" bucket="repository.springsource.com" artifact.type="libraries" release.type="snapshot"/>
</chain>
<!-- Publishing repositories -->
<s3repo name="ebr-bundle-publish" bucket="${publish.bucket}" artifact.type="bundles" release.type="${adjusted.release.type}"/>
<s3repo name="ebr-library-publish" bucket="${publish.bucket}" artifact.type="libraries" release.type="${adjusted.release.type}"/>
<localrepo name="local-bundle-publish"/>
<localrepo name="local-library-publish"/>
</resolvers>
<modules>
<module organisation="org.springframework.*" name="*" resolver="spring-portfolio-lookup"/>
<module organisation="com.springsource.*" name="*" resolver="spring-portfolio-lookup"/>
</modules>
</ivysettings>

BIN
spring-build/common/javadoc-resources/TableHeading-background.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

109
spring-build/common/package.xml

@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-common" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<!-- Main targets -->
<target name="package"
description="Copies all external and created artifacts to a packaging location. Unless overriden, copies nothing.">
<echo message="${ant.project.name} contributed no artifacts to packaging. To contribute, override the 'package' target in the bundle." />
</target>
<target name="copy-dist-jar" depends="ivy.init"
description="Copies the distributable jar to a location">
<dist-jar output.dir="${copy.to.dir}"/>
</target>
<target name="copy-ext-jars" depends="ivy.init"
description="Copies the external jars to a location">
<ext-jars output.dir="${copy.to.dir}"/>
</target>
<target name="copy-provided-jars" depends="ivy.init"
description="Copies the provided jars to a location">
<provided-jars output.dir="${copy.to.dir}"/>
</target>
<target name="copy-provided-libs" depends="ivy.init"
description="Copies the provided libs to a location">
<provided-libs output.dir="${copy.to.dir}"/>
</target>
<!-- Macros -->
<macrodef name="dist-jar">
<attribute name="output.dir" default="${package.dist.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<copy file="${jar.output.file}" tofile="@{output.dir}/${package.jar.output.file}"/>
</sequential>
</macrodef>
<macrodef name="src-jar">
<attribute name="output.dir" default="${package.src.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<copy file="${source-jar.output.file}" tofile="@{output.dir}/${package.source-jar.output.file}"/>
</sequential>
</macrodef>
<macrodef name="add-jars">
<attribute name="output.dir" default="${package.lib.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<ivy:retrieve resolveId="additional.classpath" conf="additional" type="jar"
pattern="@{output.dir}/[artifact]-[revision].[ext]" log="download-only"/>
</sequential>
</macrodef>
<macrodef name="ext-jars">
<attribute name="output.dir" default="${package.lib.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<ivy:retrieve resolveId="runtime.classpath" conf="runtime" type="jar"
pattern="@{output.dir}/[artifact]-[revision].[ext]" log="download-only"/>
</sequential>
</macrodef>
<macrodef name="ext-jars-shallow">
<attribute name="output.dir" default="${package.lib.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<ivy:retrieve resolveId="runtime.classpath" conf="runtime" type="jar" transitive="false"
pattern="@{output.dir}/[artifact]-[revision].[ext]" log="download-only"/>
</sequential>
</macrodef>
<macrodef name="provided-jars">
<attribute name="output.dir" default="${package.lib.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<ivy:retrieve resolveId="provided.classpath" conf="provided" type="jar"
pattern="@{output.dir}/[artifact]-[revision].[ext]" log="download-only"/>
</sequential>
</macrodef>
<macrodef name="provided-libs">
<attribute name="output.dir" default="${package.lib.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<ivy:retrieve resolveId="provided.classpath" conf="provided" type="library"
pattern="@{output.dir}/[artifact]-[revision].[ext]" log="download-only"/>
</sequential>
</macrodef>
</project>

110
spring-build/common/publish.xml

@ -0,0 +1,110 @@ @@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-common" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:maven="antlib:org.apache.maven.artifact.ant">
<import file="common.xml"/>
<!-- Main targets -->
<target name="publish" depends="publish-ivy, publish-maven"
description="Publishes all artifacts to remote repositories"/>
<target name="publish-ivy" depends="ivy.init, resolve">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}"/>
<ivy:publish resolver="${publication.resolver.prefix}-bundle-publish" pubdate="${timestamp}"
status="${release.type}">
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${source-jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<target name="publish-maven" depends="create.pom, snapshot.pom, maven.init" unless="local.build">
<maven:deploy file="${jar.output.file}">
<remoteRepository url="s3://${publish.bucket}/maven/bundles/${adjusted.release.type}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:deploy>
</target>
<target name="publish-maven-central" depends="maven.init">
<property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
<maven:deploy file="${jar.output.file}">
<remoteRepository url="${maven.central.repository}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${local.pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:deploy>
</target>
<target name="install-maven" depends="create.pom, snapshot.pom, maven.init">
<maven:install file="${jar.output.file}">
<pom file="${pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:install>
</target>
<target name="install-maven-central" depends="maven.init">
<maven:install file="${jar.output.file}">
<pom file="${local.pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:install>
</target>
<!-- Other targets -->
<target name="maven.init" depends="ivy.init">
<ivy:cachepath resolveId="maven.ant.tasks.classpath" pathid="maven.ant.tasks.classpath"
organisation="org.apache.maven" module="com.springsource.org.apache.maven.ant"
revision="${org.apache.maven.ant.version}" conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant"
classpathref="maven.ant.tasks.classpath"/>
<maven:install-provider groupId="org.springframework.build.aws" artifactId="org.springframework.build.aws.maven"
version="${org.springframework.build.aws.maven.version}"/>
</target>
<target name="create.pom" depends="ivy.init, resolve">
<delete quiet="true" file="${pom.output.file}"/>
<mkdir dir="${pom.output.dir}"/>
<ivy:makepom ivyfile="${ivy.output.file}" pomfile="${pom.output.file}">
<mapping conf="compile" scope="compile"/>
<mapping conf="provided" scope="provided"/>
<mapping conf="dm-server-provided" scope="provided"/>
<mapping conf="runtime" scope="runtime"/>
<mapping conf="test" scope="test"/>
</ivy:makepom>
<replaceregexp flags="g" match="latest.integration" replace="${project.version}"
file="${pom.output.file}"/>
</target>
<target name="snapshot.pom" depends="is.snapshot" if="snapshot.release">
<replaceregexp flags="g" match="(\d(.\d(.\d)?)?).${build.stamp}" replace="\1.BUILD-SNAPSHOT"
file="${pom.output.file}"/>
</target>
<target name="is.snapshot">
<condition property="snapshot.release">
<equals arg1="integration" arg2="${release.type}"/>
</condition>
</target>
</project>

276
spring-build/common/quality.xml

@ -0,0 +1,276 @@ @@ -0,0 +1,276 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-common" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:osgi="antlib:org.springframework.build.osgi">
<!-- Main targets -->
<target name="test" depends="jar, test.pre, test.do, test.post"
description="Executes all tests resulting from a compilation of the test tree returning test success metrics."/>
<target name="clover" depends="clover.pre, clover.do, clover.post"
description="Executes all tests resulting from a compilation of the test tree returning test coverage metrics."/>
<target name="findbugs" depends="findbugs.pre, findbugs.do"
description="Checks all code from the source tree for bugs."/>
<target name="osgi-validate" depends="ivy.init, osgi.init"
description="Validates that a bundle can resolve against it's dependencies.">
<ivy:cachepath resolveId="osgi.optional.classpath" pathid="osgi.optional.classpath"
conf="compile,optional,provided,dm-server-provided" type="jar" log="download-only"/>
<osgi:validate bundlePath="${jar.output.file}">
<equinoxPath refid="equinox.classpath"/>
<supportingBundlesPath refid="osgi.optional.classpath"/>
</osgi:validate>
<ivy:cachepath resolveId="osgi.compile.classpath" pathid="osgi.compile.classpath"
conf="compile,provided,dm-server-provided" type="jar" log="download-only"/>
<osgi:validate bundlePath="${jar.output.file}">
<equinoxPath refid="equinox.classpath"/>
<supportingBundlesPath refid="osgi.compile.classpath"/>
</osgi:validate>
</target>
<!-- Other targets -->
<target name="test.pre" depends="test.init" if="test.exists">
<delete dir="${test-results.output.dir}" quiet="true"/>
<mkdir dir="${test-results.output.dir}/xml"/>
</target>
<target name="test.do" depends="ivy.init, resolve.test, compile.init, test.init" if="test.exists">
<path id="test.compile.classpath">
<pathelement location="${jar.output.file}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.java.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<path id="test.run.classpath">
<pathelement location="${jar.output.file}"/>
<pathelement location="${test.output.dir}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
<path refid="runtime.classpath"/>
</path>
<test-run classpath.id="test.run.classpath"/>
</target>
<target name="test.post" depends="test.init" if="test.exists">
<mkdir dir="${test-results.output.dir}/html"/>
<junitreport>
<fileset dir="${test-results.output.dir}/xml" erroronmissingdir="false"/>
<report format="frames" todir="${test-results.output.dir}/html"/>
</junitreport>
<delete file="TESTS-TestSuites.xml"/>
</target>
<target name="clover.init" depends="ivy.init">
<ivy:cachepath resolveId="clover.classpath" pathid="clover.classpath" organisation="com.atlassian.clover"
module="com.springsource.com.cenqua.clover" revision="${com.springsource.com.cenqua.clover.version}"
conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef resource="cloverlib.xml" classpathref="clover.classpath"/>
</target>
<target name="clover.pre">
<delete dir="${clover.output.dir}" quiet="true"/>
<mkdir dir="${clover.output.dir}"/>
</target>
<target name="clover.do" depends="ivy.init, resolve.test, compile.init, clover.instrument, test.init"
if="test.exists">
<path id="test.compile.classpath">
<pathelement location="${main.output.dir}"/>
<path refid="compile.classpath" />
<path refid="test.classpath"/>
</path>
<path id="clover.run.classpath">
<pathelement location="${main.output.dir}"/>
<pathelement location="${test.output.dir}"/>
<path refid="clover.classpath"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
<path refid="runtime.classpath"/>
</path>
<test-run classpath.id="clover.run.classpath"/>
</target>
<target name="clover.instrument" depends="ivy.init, resolve.test, compile.init, clover.init">
<instrument input.dir="${main.java.dir}" output.dir="${main.clover.dir}"/>
<path id="clover.compile.classpath">
<path refid="clover.classpath"/>
<path refid="compile.classpath"/>
</path>
<compile classpath.id="clover.compile.classpath" input.dir="${main.clover.dir}" output.dir="${main.output.dir}"
resources.dir="${main.resources.dir}"/>
<instrument input.dir="${test.java.dir}" output.dir="${test.clover.dir}"/>
<path id="test.compile.classpath">
<pathelement location="${main.output.dir}"/>
<path refid="clover.classpath"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.clover.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<delete dir="${clover.staging.dir}" quiet="true"/>
</target>
<target name="clover.post" depends="clover.init">
<clover-report initstring="${clover.db.file}">
<current outfile="${clover.output.dir}/clover.xml">
<format type="xml"/>
<testsources dir="${test.java.dir}">
<include name="**/*.java"/>
<include name="*.java"/>
</testsources>
</current>
</clover-report>
<clover-report initstring="${clover.db.file}">
<current outfile="${clover.output.dir}/html">
<format type="html"/>
<testsources dir="${test.java.dir}">
<include name="**/*.java"/>
<include name="*.java"/>
</testsources>
</current>
</clover-report>
<clover-report initstring="${clover.db.file}">
<current outfile="${clover.output.dir}/clover.pdf" summary="true">
<format type="pdf"/>
<testsources dir="${test.java.dir}">
<include name="**/*.java"/>
<include name="*.java"/>
</testsources>
</current>
</clover-report>
<clover-check initstring="${clover.db.file}" target="${clover.coverage}" haltOnFailure="${clover.enforce}">
<testsources dir="${test.java.dir}">
<include name="**/*.java"/>
<include name="*.java"/>
</testsources>
</clover-check>
</target>
<target name="findbugs.init" depends="ivy.init, findbugs.download">
<ivy:cachepath resolveId="findbugs.classpath" pathid="findbugs.classpath" organisation="edu.umd.cs.findbugs"
module="com.springsource.edu.umd.cs.findbugs.ant" revision="${edu.umd.cs.findbugs.version}"
conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
classpathref="findbugs.classpath"/>
</target>
<target name="findbugs.download" depends="findbugs.download.init" if="findbugs.download.needed">
<ivy:cachepath resolveId="findbugs" pathid="findbugs" organisation="edu.umd.cs.findbugs"
module="edu.umd.cs.findbugs.dist" revision="${edu.umd.cs.findbugs.version}" conf="runtime" type="zip"
inline="true" log="download-only"/>
<unzip dest="${findbugs.dir}">
<path refid="findbugs"/>
<globmapper from="findbugs-${edu.umd.cs.findbugs.version}/*" to="*"/>
</unzip>
</target>
<target name="findbugs.download.init">
<condition property="findbugs.download.needed">
<not>
<available file="${findbugs.dir}" type="dir"/>
</not>
</condition>
</target>
<target name="findbugs.pre" depends="src.init" if="src.exists">
<delete dir="${findbugs.output.dir}" quiet="true"/>
<mkdir dir="${findbugs.output.dir}"/>
</target>
<target name="findbugs.do" depends="ivy.init, resolve.compile, compile.init, findbugs.init, src.init" if="src.exists">
<findbugs home="${findbugs.dir}" output="xml" outputFile="${findbugs.output.file}"
excludeFilter="${findbugs.exclude.file}" jvmargs="-Xmx1024M" errorProperty="findbugs.errors" warningsProperty="findbugs.warnings">
<class location="${main.output.dir}"/>
<auxClasspath>
<!-- Require something to always be in this classpath so findbugs on windows runs -->
<path location="." />
<path refid="compile.classpath"/>
</auxClasspath>
<sourcepath location="${main.java.dir}"/>
</findbugs>
<antcall target="findbugs.post"/>
</target>
<target name="findbugs.post" if="findbugs.enforce">
<fail if="findbugs.errors" message="FindBugs errors found"/>
<fail if="findbugs.warnings" message="FindBugs warnings found"/>
</target>
<target name="osgi.init" depends="ivy.init">
<ivy:cachepath resolveId="equinox.classpath" pathid="equinox.classpath" organisation="org.eclipse.osgi"
module="org.eclipse.osgi" revision="${org.eclipse.osgi.version}" type="jar" inline="true"
log="download-only"/>
<ivy:cachepath resolveId="ant.osgi.classpath" pathid="ant.osgi.classpath"
organisation="org.springframework.build" module="org.springframework.build.osgi"
revision="${org.springframework.build.osgi.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
<taskdef resource="org/springframework/build/osgi/antlib.xml" uri="antlib:org.springframework.build.osgi"
classpathref="ant.osgi.classpath"/>
</target>
<!-- Macros -->
<macrodef name="test-run">
<attribute name="classpath.id"/>
<sequential>
<condition property="test.halt" value="false" else="true">
<istrue value="${ci.build}"/>
</condition>
<mkdir dir="${test-results.output.dir}/xml"/>
<junit forkmode="${test.forkmode}" dir="${basedir}" haltonerror="${test.halt}" haltonfailure="${test.halt}">
<jvmarg line="${test.vm.args}"/>
<syspropertyset>
<propertyref builtin="commandline"/>
</syspropertyset>
<classpath refid="@{classpath.id}"/>
<test fork="yes" todir="${test-results.output.dir}/xml" name="${testcase}" if="testcase"/>
<batchtest fork="yes" todir="${test-results.output.dir}/xml" unless="testcase">
<fileset dir="${test.output.dir}" erroronmissingdir="false">
<include name="**/*Test.class"/>
<include name="**/*Tests.class"/>
<exclude name="**/Abstract*.class"/>
</fileset>
</batchtest>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
</junit>
</sequential>
</macrodef>
<macrodef name="instrument">
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<sequential>
<clover-instr initstring="${clover.db.file}" destdir="@{output.dir}">
<fileset dir="@{input.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
<include name="*.java"/>
</fileset>
</clover-instr>
<copy todir="@{output.dir}">
<fileset dir="@{input.dir}" erroronmissingdir="false">
<exclude name="**/*.java"/>
<exclude name="*.java"/>
</fileset>
</copy>
</sequential>
</macrodef>
</project>

184
spring-build/common/spring-javadoc.css

@ -0,0 +1,184 @@ @@ -0,0 +1,184 @@
/*
* Copyright 2010 SpringSource
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.code
{
border: 1px solid black;
background-color: #F4F4F4;
padding: 5px;
}
body
{
font: 12px Verdana, Arial, Helvetica, "Bitstream Vera Sans", sans-serif;
background-color: #fff;
color: #333;
}
/* Link colors */
a
{
color:#2c7b14;
text-decoration:none;
}
a:hover
{
text-decoration:underline;
}
/* Headings */
h1
{
font-size:28px;
color:#007c00;
}
/* Table colors */
table
{
border:none;
}
td
{
border:none;
border-bottom:1px dotted #ddd;
}
th
{
border:none;
}
.TableHeadingColor th
{
background-color: #efffcb;
background-image: url(resources/TableHeading-background.png);
background-repeat: repeat-x;
color:#fff;
font-size:14px;
height:26px;
}
.TableSubHeadingColor
{
background: #f7ffee;
}
.TableRowColor
{
background: #fff;
}
.TableRowColor a
{
border-bottom:none;
color:#2c7b14;
font-weight:normal;
}
tr.TableRowColor:hover
{
background:#eef2e1;
}
/* Font used in left-hand frame lists */
.FrameTitleFont
{
font-size: 120%;
font-weight:bold;
}
.FrameTitleFont a
{
color: #333;
}
.FrameHeadingFont
{
font-weight: bold;
font-size:95%;
}
.FrameItemFont
{
line-height:130%;
font-size: 95%;
}
.FrameItemFont a
{
color:#333;
}
.FrameItemFont a:hover
{
color:#249901;
border-bottom:none;
text-decoration:underline;
}
/* Navigation bar fonts and colors */
.NavBarCell1
{
background-color:#fff;
border:none;
}
.NavBarCell1Rev
{
background-color:#e3faa5;
border:1px solid #9ad00c;
padding:0;
margin:0;
}
.NavBarCell1 a
{
color:#333;
text-decoration:none;
}
.NavBarFont1Rev
{
}
.NavBarCell2
{
border:none;
}
.NavBarCell2 a
{
color:#249901;
font-size:90%;
}
.NavBarCell3
{
border:none;
}
/* Override sizes in font tags */
font
{
font: inherit !important;
}

21
spring-build/docbook/common.xml

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-docbook">
<import file="../common/common.xml"/>
</project>

46
spring-build/docbook/css/html/highlight.css

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
/*
* Copyright 2010 SpringSource
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
.hl-keyword {
color: #7F0055;
font-weight: bold;
}
.hl-comment {
color: #3F5F5F;
font-style: italic;
}
.hl-multiline-comment {
color: #3F5FBF;
font-style: italic;
}
.hl-tag {
color: #3F7F7F;
}
.hl-attribute {
color: #7F007F;
}
.hl-value {
color: #2A00FF;
}
.hl-string {
color: #2A00FF;
}

75
spring-build/docbook/css/html/stylesheet.css

@ -0,0 +1,75 @@ @@ -0,0 +1,75 @@
/*
* Copyright 2010 SpringSource
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@IMPORT url("highlight.css");
html {
padding: 0pt;
margin: 0pt;
}
body {
margin-left: 10%;
margin-right: 10%;
font-family: Arial, Sans-serif;
}
div {
margin: 0pt;
}
p {
text-align: justify;
}
hr {
border: 1px solid gray;
background: gray;
}
h1,h2,h3,h4 {
color: #234623;
font-family: Arial, Sans-serif;
}
pre {
line-height: 1.0;
color: black;
}
pre.programlisting {
font-size: 10pt;
padding: 7pt 3pt;
border: 1pt solid black;
background: #eeeeee;
clear: both;
}
div.table {
margin: 1em;
padding: 0.5em;
text-align: center;
}
div.table table {
display: table;
width: 100%;
}
div.table td {
padding-left: 7px;
padding-right: 7px;
}

24
spring-build/docbook/default.xml

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-docbook">
<import file="common.xml"/>
<import file="documentation.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

182
spring-build/docbook/documentation.xml

@ -0,0 +1,182 @@ @@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="documentation-docbook" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<filterset id="docbook.filters" />
<!-- Main targets -->
<target name="doc-html" depends="docbook.init"
description="Creates both the single and multi-page HTML versions of the reference documentation.">
<delete quiet="true" dir="${docbook.output.dir}/html"/>
<delete quiet="true" dir="${docbook.output.dir}/htmlsingle"/>
<mkdir dir="${docbook.output.dir}"/>
<mkdir dir="${docbook.staging.dir}"/>
<copy todir="${docbook.staging.dir}">
<fileset dir="${docbook.src.dir}" erroronmissingdir="false">
<include name="**/*.xml"/>
</fileset>
<filterset>
<filterset refid="docbook.filters"/>
</filterset>
</copy>
<copy todir="${docbook.staging.dir}/images">
<fileset dir="${docbook.images.dir}" erroronmissingdir="false">
<include name="**/*"/>
</fileset>
</copy>
<ant antfile="${docbook.dir}/build-docbook.xml" inheritAll="false">
<property name="dbf.basedir" value="${docbook.dir}"/>
<property name="docbook.dir" value=""/>
<property name="docbook.file" value="${ant.project.name}"/>
<property name="docbook.src.dir" value="${docbook.staging.dir}"/>
<property name="images.src.dir" value="${docbook.staging.dir}/images"/>
<property name="src.dir" value="${docbook.build.dir}"/>
<property name="css.src.dir" value="${docbook.css.dir}"/>
<property name="styles.src.dir" value="${docbook.styles.dir}"/>
<property name="target.dir" value="${docbook.target.dir}"/>
<target name="html"/>
<target name="htmlsingle"/>
</ant>
<move file="${docbook.target.dir}/html" todir="${docbook.output.dir}"/>
<move file="${docbook.target.dir}/htmlsingle" todir="${docbook.output.dir}"/>
<delete quiet="true" dir="${docbook.target.dir}"/>
</target>
<target name="doc-pdf" depends="docbook.init"
description="Creates the PDF version of the reference documentation.">
<delete quiet="true" dir="${docbook.output.dir}/pdf"/>
<mkdir dir="${docbook.output.dir}"/>
<mkdir dir="${docbook.staging.dir}"/>
<copy todir="${docbook.staging.dir}">
<fileset dir="${docbook.src.dir}" erroronmissingdir="false">
<include name="**/*.xml"/>
</fileset>
<filterset>
<filterset refid="docbook.filters"/>
</filterset>
</copy>
<copy todir="${docbook.staging.dir}/images">
<fileset dir="${docbook.images.dir}" erroronmissingdir="false">
<include name="**/*"/>
</fileset>
</copy>
<ant antfile="${docbook.dir}/build-docbook.xml" inheritAll="false">
<property name="dbf.basedir" value="${docbook.dir}"/>
<property name="docbook.dir" value=""/>
<property name="docbook.file" value="${ant.project.name}"/>
<property name="docbook.src.dir" value="${docbook.staging.dir}"/>
<property name="images.src.dir" value="${docbook.staging.dir}/images"/>
<property name="src.dir" value="${docbook.build.dir}"/>
<property name="css.src.dir" value="${docbook.css.dir}"/>
<property name="styles.src.dir" value="${docbook.styles.dir}"/>
<property name="target.dir" value="${docbook.target.dir}"/>
<target name="pdf"/>
</ant>
<move file="${docbook.target.dir}/pdf" todir="${docbook.output.dir}"/>
<delete quiet="true" dir="${docbook.target.dir}"/>
</target>
<target name="doc" depends="docbook.init, ivy.init, resolve"
description="Creates both the single and multi-page HTML versions and the PDF version of the reference documentation.">
<delete quiet="true" dir="${docbook.output.dir}/html"/>
<delete quiet="true" dir="${docbook.output.dir}/htmlsingle"/>
<delete quiet="true" dir="${docbook.output.dir}/pdf"/>
<mkdir dir="${docbook.output.dir}"/>
<mkdir dir="${docbook.staging.dir}"/>
<copy todir="${docbook.staging.dir}">
<fileset dir="${docbook.src.dir}" erroronmissingdir="false">
<include name="**/*.xml"/>
</fileset>
<filterset>
<filterset refid="docbook.filters"/>
</filterset>
</copy>
<copy todir="${docbook.staging.dir}/images">
<fileset dir="${docbook.images.dir}" erroronmissingdir="false">
<include name="**/*"/>
</fileset>
</copy>
<ant antfile="${docbook.dir}/build-docbook.xml" inheritAll="false">
<property name="dbf.basedir" value="${docbook.dir}"/>
<property name="docbook.dir" value=""/>
<property name="docbook.file" value="${ant.project.name}"/>
<property name="docbook.src.dir" value="${docbook.staging.dir}"/>
<property name="images.src.dir" value="${docbook.staging.dir}/images"/>
<property name="src.dir" value="${docbook.build.dir}"/>
<property name="css.src.dir" value="${docbook.css.dir}"/>
<property name="styles.src.dir" value="${docbook.styles.dir}"/>
<property name="target.dir" value="${docbook.target.dir}"/>
<target name="html"/>
<target name="htmlsingle"/>
<target name="pdf"/>
</ant>
<move file="${docbook.target.dir}/htmlsingle/${ant.project.name}.zip"
tofile="${docbook.target.dir}/htmlsingle/${ant.project.name}-single.zip"/>
<move file="${docbook.target.dir}/html" todir="${docbook.output.dir}"/>
<move file="${docbook.target.dir}/htmlsingle" todir="${docbook.output.dir}"/>
<move file="${docbook.target.dir}/pdf" todir="${docbook.output.dir}"/>
<ivy:publish resolver="integration" pubdate="${timestamp}" status="${release.type}">
<artifacts pattern="${docbook.output.dir}/html/[artifact].[ext]"/>
<artifacts pattern="${docbook.output.dir}/htmlsingle/[artifact].[ext]"/>
<artifacts pattern="${docbook.output.dir}/pdf/[artifact].[ext]"/>
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
<delete quiet="true" dir="${docbook.target.dir}"/>
</target>
<!-- Other targets -->
<target name="docbook.init" depends="ivy.init, docbook.download.init" if="docbook.download.needed">
<ivy:cachepath resolveId="docbook.framework" pathid="docbook.framework" organisation="org.apache.velocity"
module="org.apache.velocity.docbookframework.dist"
revision="${org.apache.velocity.docbookframework.dist.version}" conf="runtime" type="zip" inline="true"
log="download-only"/>
<unzip dest="${docbook.dir}">
<path refid="docbook.framework"/>
<globmapper from="DocBook-Framework-${org.apache.velocity.docbookframework.dist.version}/*" to="*"/>
</unzip>
<ivy:retrieve resolveId="xslthl" pattern="${docbook.dir}/lib/[artifact]-[revision].[ext]"
organisation="net.sourceforge.xslthl" module="com.springsource.net.sf.xslthl"
revision="${com.springsource.net.sf.xslthl.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
<ivy:retrieve resolveId="xerces" pattern="${docbook.dir}/lib/[artifact]-[revision].[ext]"
organisation="org.apache.xerces" module="com.springsource.org.apache.xerces"
revision="${com.springsource.org.apache.xerces.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
</target>
<target name="docbook.download.init">
<condition property="docbook.download.needed">
<not>
<available file="${docbook.dir}" type="dir"/>
</not>
</condition>
</target>
</project>

29
spring-build/docbook/package.xml

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-docbook">
<import file="common.xml"/>
<!-- Main targets -->
<target name="package" description="Copies all documentation to a packaging location. Unless overriden, copies all documentation.">
<mkdir dir="${package.docs.dir}/${ant.project.name}"/>
<copy todir="${package.docs.dir}/${ant.project.name}">
<fileset dir="${docbook.output.dir}" erroronmissingdir="false"/>
</copy>
</target>
</project>

44
spring-build/docbook/publish.xml

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-docbook" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
<target name="publish-ivy" depends="ivy.init, resolve">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}" />
<ivy:publish resolver="${publication.resolver.prefix}-bundle-publish" pubdate="${timestamp}"
status="${release.type}">
<artifacts pattern="${docbook.output.dir}/html/[artifact].[ext]"/>
<artifacts pattern="${docbook.output.dir}/htmlsingle/[artifact].[ext]"/>
<artifacts pattern="${docbook.output.dir}/pdf/[artifact].[ext]"/>
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<target name="publish-maven"/>
<target name="publish-maven-central"/>
<target name="install-maven"/>
<target name="install-maven-central"/>
</project>

119
spring-build/docbook/styles/html/custom.xsl

@ -0,0 +1,119 @@ @@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xslthl="http://xslthl.sf.net"
exclude-result-prefixes="xslthl"
version='1.0'>
<!-- Extensions -->
<xsl:param name="use.extensions">1</xsl:param>
<xsl:param name="tablecolumns.extension">0</xsl:param>
<xsl:param name="callout.extensions">1</xsl:param>
<!-- Activate Graphics -->
<xsl:param name="admon.graphics" select="1"/>
<xsl:param name="admon.graphics.path">images/</xsl:param>
<xsl:param name="admon.graphics.extension">.gif</xsl:param>
<xsl:param name="callout.graphics" select="1" />
<xsl:param name="callout.defaultcolumn">120</xsl:param>
<xsl:param name="callout.graphics.path">images/callouts/</xsl:param>
<xsl:param name="callout.graphics.extension">.gif</xsl:param>
<xsl:param name="table.borders.with.css" select="1"/>
<xsl:param name="html.stylesheet">css/stylesheet.css</xsl:param>
<xsl:param name="html.stylesheet.type">text/css</xsl:param>
<xsl:param name="generate.toc">book toc,title</xsl:param>
<xsl:param name="admonition.title.properties">text-align: left</xsl:param>
<!-- Leave image paths as relative when navigating XInclude -->
<xsl:param name="keep.relative.image.uris" select="1"/>
<!-- Label Chapters and Sections (numbering) -->
<xsl:param name="chapter.autolabel" select="1"/>
<xsl:param name="section.autolabel" select="1"/>
<xsl:param name="section.autolabel.max.depth" select="1"/>
<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="table.footnote.number.format" select="'1'"/>
<!-- Show only Sections up to level 1 in the TOCs -->
<xsl:param name="toc.section.depth">1</xsl:param>
<!-- Remove "Chapter" from the Chapter titles... -->
<xsl:param name="local.l10n.xml" select="document('')"/>
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="en">
<l:context name="title-numbered">
<l:template name="chapter" text="%n.&#160;%t"/>
<l:template name="section" text="%n&#160;%t"/>
</l:context>
</l:l10n>
</l:i18n>
<!-- Use code syntax highlighting -->
<xsl:param name="highlight.source" select="1"/>
<xsl:template match='xslthl:keyword'>
<span class="hl-keyword"><xsl:value-of select='.'/></span>
</xsl:template>
<xsl:template match='xslthl:comment'>
<span class="hl-comment"><xsl:value-of select='.'/></span>
</xsl:template>
<xsl:template match='xslthl:oneline-comment'>
<span class="hl-comment"><xsl:value-of select='.'/></span>
</xsl:template>
<xsl:template match='xslthl:multiline-comment'>
<span class="hl-multiline-comment"><xsl:value-of select='.'/></span>
</xsl:template>
<xsl:template match='xslthl:tag'>
<span class="hl-tag"><xsl:value-of select='.'/></span>
</xsl:template>
<xsl:template match='xslthl:attribute'>
<span class="hl-attribute"><xsl:value-of select='.'/></span>
</xsl:template>
<xsl:template match='xslthl:value'>
<span class="hl-value"><xsl:value-of select='.'/></span>
</xsl:template>
<xsl:template match='xslthl:string'>
<span class="hl-string"><xsl:value-of select='.'/></span>
</xsl:template>
<!-- Google Analytics -->
<xsl:template name="user.head.content">
<xsl:comment>Begin Google Analytics code</xsl:comment>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2728886-3");
pageTracker._setDomainName("none");
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
</script>
<xsl:comment>End Google Analytics code</xsl:comment>
</xsl:template>
</xsl:stylesheet>

56
spring-build/docbook/styles/html/titlepage.xml

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- ==================================================================== -->
<t:titlepage t:element="book" t:wrapper="div" class="titlepage">
<t:titlepage-content t:side="recto">
<title/>
<subtitle/>
<corpauthor/>
<authorgroup/>
<author/>
<mediaobject/>
<othercredit/>
<productname/>
<releaseinfo/>
<copyright/>
<pubdate/>
<revision/>
<revhistory/>
<abstract/>
</t:titlepage-content>
<t:titlepage-content t:side="verso">
<legalnotice/>
</t:titlepage-content>
<t:titlepage-separator>
<hr/>
</t:titlepage-separator>
<t:titlepage-before t:side="recto">
</t:titlepage-before>
<t:titlepage-before t:side="verso">
</t:titlepage-before>
</t:titlepage>
</t:templates>

661
spring-build/docbook/styles/pdf/custom.xsl

@ -0,0 +1,661 @@ @@ -0,0 +1,661 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xslthl="http://xslthl.sf.net"
exclude-result-prefixes="xslthl"
version='1.0'>
<!-- Use nice graphics for admonitions -->
<xsl:param name="admon.graphics">'1'</xsl:param>
<xsl:param name="admon.graphics.path">@file.prefix@@dbf.xsl@/images/</xsl:param>
<xsl:param name="draft.watermark.image" select="'@file.prefix@@dbf.xsl@/images/draft.png'"/>
<xsl:param name="paper.type" select="'@paper.type@'"/>
<xsl:param name="page.margin.top" select="'1cm'"/>
<xsl:param name="region.before.extent" select="'1cm'"/>
<xsl:param name="body.margin.top" select="'1.5cm'"/>
<xsl:param name="body.margin.bottom" select="'1.5cm'"/>
<xsl:param name="region.after.extent" select="'1cm'"/>
<xsl:param name="page.margin.bottom" select="'1cm'"/>
<xsl:param name="title.margin.left" select="'0cm'"/>
<!-- Leave image paths as relative when navigating XInclude -->
<xsl:param name="keep.relative.image.uris" select="1"/>
<!--###################################################
Header and Footer control
################################################### -->
<!-- Number of levels of sections to include in markers (for running headings/footings). Default is 2. -->
<xsl:param name="marker.section.level">1</xsl:param>
<!-- Remove rules from top and bottom of the page -->
<xsl:param name="header.rule" select="0"></xsl:param>
<xsl:param name="footer.rule" select="0"></xsl:param>
<!-- More space in the center header for long text
<xsl:attribute-set name="header.content.properties">
<xsl:attribute name="font-family">
<xsl:value-of select="$body.font.family"/>
</xsl:attribute>
<xsl:attribute name="margin-left">-5em</xsl:attribute>
<xsl:attribute name="margin-right">-5em</xsl:attribute>
</xsl:attribute-set>
-->
<!--###################################################
Table of Contents
################################################### -->
<xsl:param name="generate.toc">
book toc,title
</xsl:param>
<!-- Show only Sections up to level 1 in the TOCs -->
<xsl:param name="toc.section.depth">1</xsl:param>
<!--###################################################
Custom Header and Footer
################################################### -->
<!--
pageclass
There is a specific pageclass value for each type of page design that might be needed. For example, an index might
be two-column layout while the rest of the book is single column. Each pageclass has a set of FO simple-page-masters
defined for it. The following pageclass values are available by default, but this list could be extended by adding
custom page masters.
titlepage Division title page, including set, book, part.
lot Page with a list of titles, including book table of contents, list of figures, etc.
front Front matter pages, including preface, dedication
body Main content pages
back Back matter pages, including appendix, glossary, etc.
index Alphabetical book-style index
sequence
Within a pageclass, the sequence of pages can have different page designs. For example, the first page of sequence
might omit the running header so it will not detract from the main title. The enumerated sequence values are:
first First page of a page class.
odd Odd-numbered pages in the page class.
even Even-numbered pages.
blank Blank page at end of sequence, to even out page count.
If the output format is single-sided, then odd and even pages should have the same design, and the blank page is
not called upon.
-->
<xsl:template name="header.content">
<xsl:param name="pageclass" select="''"/>
<xsl:param name="sequence" select="''"/>
<xsl:param name="position" select="''"/>
<xsl:param name="gentext-key" select="''"/>
<xsl:variable name="ProductName">
<xsl:choose>
<xsl:when test="//productname">
<xsl:value-of select="//productname"/><xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>please define productname in your docbook file!</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="TitleAbbrev">
<xsl:choose>
<xsl:when test="//titleabbrev">
<xsl:value-of select="//titleabbrev"/><xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>please define titleabbrev in your docbook file!</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- $double.sided can be 0 or 1, meaning false or true respectively -->
<!-- pageclass can be titlepage, lot, front, body, back, index -->
<!-- sequence can be first, odd, even, blank -->
<!-- position can be left, center, right -->
<xsl:choose>
<xsl:when test="$double.sided != 0">
<xsl:choose>
<xsl:when test="$pageclass='titlepage'"><!-- nop --></xsl:when>
<xsl:when test="$pageclass='lot'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='front' or $pageclass='body'">
<xsl:choose>
<xsl:when test="$sequence='first' or $sequence='odd'">
<xsl:choose>
<xsl:when test="$position='left'">
<xsl:apply-templates select="." mode="titleabbrev.markup"/> <!-- chapter header -->
</xsl:when>
<xsl:when test="$position='center'">
<!--
<xsl:value-of select="$TitleAbbrev"/>
-->
</xsl:when>
<xsl:when test="$position='right'">
<fo:page-number/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$sequence='even' or $sequence='blank'">
<xsl:choose>
<xsl:when test="$position='left'">
<fo:page-number/>
</xsl:when>
<xsl:when test="$position='center'">
<!--
<fo:retrieve-marker retrieve-class-name="section.head.marker"
retrieve-position="first-including-carryover"
retrieve-boundary="page-sequence"/>
-->
</xsl:when>
<xsl:when test="$position='right'">
<xsl:value-of select="$TitleAbbrev"/>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$pageclass='back'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='index'"> <!-- nop --></xsl:when>
<xsl:otherwise> <!-- nop --></xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$double.sided = 0">
<xsl:choose>
<xsl:when test="$pageclass='titlepage'"><!-- nop --></xsl:when>
<xsl:when test="$pageclass='lot'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='front' or $pageclass='body'">
<xsl:choose>
<xsl:when test="$sequence='first' or $sequence='odd' or $sequence='even' or $sequence='blank'">
<xsl:choose>
<xsl:when test="$position='left'">
<xsl:apply-templates select="." mode="titleabbrev.markup"/> <!-- chapter header -->
</xsl:when>
<xsl:when test="$position='center'">
<!--
<xsl:value-of select="$TitleAbbrev"/>
-->
</xsl:when>
<xsl:when test="$position='right'">
<fo:page-number/>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$pageclass='back'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='index'"> <!-- nop --></xsl:when>
<xsl:otherwise> <!-- nop --></xsl:otherwise>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--###################################################
Custom Footer
################################################### -->
<xsl:template name="footer.content">
<xsl:param name="pageclass" select="''"/>
<xsl:param name="sequence" select="''"/>
<xsl:param name="position" select="''"/>
<xsl:param name="gentext-key" select="''"/>
<xsl:variable name="Version">
<xsl:choose>
<xsl:when test="//releaseinfo">
<xsl:value-of select="//releaseinfo"/>
</xsl:when>
<xsl:otherwise>
<!-- nop -->
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="TitleAbbrev">
<xsl:choose>
<xsl:when test="//titleabbrev">
<xsl:value-of select="//titleabbrev"/><xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>please define titleabbrev in your docbook file!</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- $double.sided can be 0 or 1, meaning false or true respectively -->
<!-- pageclass can be titlepage, lot, front, body, back, index -->
<!-- sequence can be first, odd, even, blank -->
<!-- position can be left, center, right -->
<xsl:choose>
<xsl:when test="$double.sided != 0">
<xsl:choose>
<xsl:when test="$pageclass='titlepage'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='lot' or $pageclass='front' or $pageclass='body'">
<xsl:choose>
<xsl:when test="$pageclass!='titlepage' and ($sequence='first' or $sequence='odd')">
<xsl:choose>
<xsl:when test="$position='left'">
<xsl:value-of select="$Version"/>
</xsl:when>
<xsl:when test="$position='center'">
<!--
<xsl:value-of select="$TitleAbbrev"/>
<fo:retrieve-marker retrieve-class-name="section.head.marker"
retrieve-position="first-including-carryover"
retrieve-boundary="page-sequence"/>
-->
</xsl:when>
<xsl:when test="$position='right'">
<fo:page-number/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$sequence='even' or $sequence='blank'">
<xsl:choose>
<xsl:when test="$position='left'">
<fo:page-number/>
</xsl:when>
<xsl:when test="$position='center'">
<!--
<xsl:value-of select="$TitleAbbrev"/>
-->
</xsl:when>
<xsl:when test="$position='right'">
<xsl:apply-templates select="." mode="titleabbrev.markup"/> <!-- chapter header -->
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$pageclass='back'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='index'"> <!-- nop --></xsl:when>
<xsl:otherwise> <!-- nop --></xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$double.sided = 0">
<xsl:choose>
<xsl:when test="$pageclass='titlepage'"><!-- nop --></xsl:when>
<xsl:when test="$pageclass='lot'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='front' or $pageclass='body'">
<xsl:choose>
<xsl:when test="$sequence='first' or $sequence='odd' or $sequence='even' or $sequence='blank'">
<xsl:choose>
<xsl:when test="$position='left'">
<xsl:value-of select="$Version"/>
</xsl:when>
<xsl:when test="$position='center'">
<fo:retrieve-marker retrieve-class-name="section.head.marker"
retrieve-position="first-including-carryover"
retrieve-boundary="page-sequence"/>
</xsl:when>
<xsl:when test="$position='right'">
<fo:page-number/>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$pageclass='back'"> <!-- nop --></xsl:when>
<xsl:when test="$pageclass='index'"> <!-- nop --></xsl:when>
<xsl:otherwise> <!-- nop --></xsl:otherwise>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="processing-instruction('hard-pagebreak')">
<fo:block break-before='page'/>
</xsl:template>
<!--###################################################
Extensions
################################################### -->
<!-- These extensions are required for table printing and other stuff -->
<xsl:param name="use.extensions">1</xsl:param>
<xsl:param name="tablecolumns.extension">0</xsl:param>
<xsl:param name="callout.extensions">1</xsl:param>
<xsl:param name="fop.extensions">1</xsl:param>
<!--###################################################
Paper & Page Size
################################################### -->
<!-- Paper type, no headers on blank pages, no double sided printing -->
<xsl:param name="double.sided">1</xsl:param>
<xsl:param name="headers.on.blank.pages">1</xsl:param>
<xsl:param name="footers.on.blank.pages">1</xsl:param>
<!--###################################################
Fonts & Styles
################################################### -->
<xsl:param name="alignment">left</xsl:param>
<xsl:param name="hyphenate">false</xsl:param>
<xsl:attribute-set name="footer.content.properties">
<xsl:attribute name="font-family">
<xsl:value-of select="$body.fontset"/>
</xsl:attribute>
</xsl:attribute-set>
<!-- Default Font size -->
<xsl:param name="body.font.master">12</xsl:param>
<xsl:param name="body.font.small">8</xsl:param>
<!-- Line height in body text -->
<xsl:param name="line-height">1.2</xsl:param>
<!-- Chapter title size -->
<xsl:attribute-set name="chapter.titlepage.recto.style">
<xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.8"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<!-- Why is the font-size for chapters hardcoded in the XSL FO templates?
Let's remove it, so this sucker can use our attribute-set only... -->
<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
xsl:use-attribute-sets="chapter.titlepage.recto.style">
<xsl:call-template name="component.title">
<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
</xsl:call-template>
</fo:block>
</xsl:template>
<!-- Sections 1, 2 and 3 titles have a small bump factor and padding -->
<xsl:attribute-set name="section.title.level1.properties">
<xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.5"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="section.title.level2.properties">
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.25"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="section.title.level3.properties">
<xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.0"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set>
<!-- Use code syntax highlighting -->
<xsl:param name="highlight.source" select="1"/>
<xsl:param name="highlight.default.language" select="xml" />
<xsl:template match='xslthl:keyword'>
<fo:inline font-weight="bold" color="#7F0055"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:comment'>
<fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:oneline-comment'>
<fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:multiline-comment'>
<fo:inline font-style="italic" color="#3F5FBF"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:tag'>
<fo:inline color="#3F7F7F"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:attribute'>
<fo:inline color="#7F007F"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:value'>
<fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:string'>
<fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline>
</xsl:template>
<!--###################################################
Tables
################################################### -->
<!-- Some padding inside tables -->
<xsl:attribute-set name="table.cell.padding">
<xsl:attribute name="padding-left">4pt</xsl:attribute>
<xsl:attribute name="padding-right">4pt</xsl:attribute>
<xsl:attribute name="padding-top">4pt</xsl:attribute>
<xsl:attribute name="padding-bottom">4pt</xsl:attribute>
</xsl:attribute-set>
<!-- Only hairlines as frame and cell borders in tables -->
<xsl:param name="table.frame.border.thickness">0.1pt</xsl:param>
<xsl:param name="table.cell.border.thickness">0.1pt</xsl:param>
<!--###################################################
Labels
################################################### -->
<!-- Label Chapters and Sections (numbering) -->
<xsl:param name="chapter.autolabel" select="1"/>
<xsl:param name="section.autolabel" select="1"/>
<xsl:param name="section.autolabel.max.depth" select="1"/>
<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="table.footnote.number.format" select="'1'"/>
<!--###################################################
Programlistings
################################################### -->
<!-- Verbatim text formatting (programlistings) -->
<xsl:attribute-set name="monospace.verbatim.properties">
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.small * 0.90"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="verbatim.properties">
<xsl:attribute name="space-before.minimum">1em</xsl:attribute>
<xsl:attribute name="space-before.optimum">1em</xsl:attribute>
<xsl:attribute name="space-before.maximum">1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
<xsl:attribute name="border-color">#444444</xsl:attribute>
<xsl:attribute name="border-style">solid</xsl:attribute>
<xsl:attribute name="border-width">0.1pt</xsl:attribute>
<xsl:attribute name="padding-top">0.5em</xsl:attribute>
<xsl:attribute name="padding-left">0.5em</xsl:attribute>
<xsl:attribute name="padding-right">0.5em</xsl:attribute>
<xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
<xsl:attribute name="margin-left">0em</xsl:attribute>
<xsl:attribute name="margin-right">0em</xsl:attribute>
</xsl:attribute-set>
<!-- Shade (background) programlistings -->
<xsl:param name="shade.verbatim">1</xsl:param>
<xsl:attribute-set name="shade.verbatim.style">
<xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="list.block.spacing">
<xsl:attribute name="space-before.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="abstract.properties">
<xsl:attribute name="font-weight">normal</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="example.properties">
<xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
<xsl:attribute name="space-before.optimum">0.5em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.5em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
<xsl:attribute name="keep-together.within-column">always</xsl:attribute>
</xsl:attribute-set>
<!--###################################################
Title information for Figures, Examples etc.
################################################### -->
<xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
<xsl:attribute name="font-weight">normal</xsl:attribute>
<xsl:attribute name="font-style">italic</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
<xsl:attribute name="hyphenate">false</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.1em</xsl:attribute>
</xsl:attribute-set>
<!--###################################################
Callouts
################################################### -->
<!-- don't use images for callouts -->
<xsl:param name="callout.graphics">0</xsl:param>
<xsl:param name="callout.unicode">1</xsl:param>
<!-- Place callout marks at this column in annotated areas -->
<xsl:param name="callout.defaultcolumn">90</xsl:param>
<!--###################################################
Misc
################################################### -->
<!-- Placement of titles -->
<xsl:param name="formal.title.placement">
figure after
example after
equation before
table before
procedure before
</xsl:param>
<!-- Format Variable Lists as Blocks (prevents horizontal overflow) -->
<xsl:param name="variablelist.as.blocks">1</xsl:param>
<xsl:param name="body.start.indent">0pt</xsl:param>
<!-- Remove "Chapter" from the Chapter titles... -->
<xsl:param name="local.l10n.xml" select="document('')"/>
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="en">
<l:context name="title-numbered">
<l:template name="chapter" text="%n.&#160;%t"/>
<l:template name="section" text="%n&#160;%t"/>
</l:context>
<l:context name="title">
<l:template name="example" text="Example&#160;%n&#160;%t"/>
</l:context>
</l:l10n>
</l:i18n>
<!--###################################################
colored and hyphenated links
################################################### -->
<xsl:template match="ulink">
<fo:basic-link external-destination="{@url}"
xsl:use-attribute-sets="xref.properties"
text-decoration="underline"
color="blue">
<xsl:choose>
<xsl:when test="count(child::node())=0">
<xsl:value-of select="@url"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</fo:basic-link>
</xsl:template>
<xsl:template match="link">
<fo:basic-link internal-destination="{@linkend}"
xsl:use-attribute-sets="xref.properties"
text-decoration="underline"
color="blue">
<xsl:choose>
<xsl:when test="count(child::node())=0">
<xsl:value-of select="@linkend"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</fo:basic-link>
</xsl:template>
</xsl:stylesheet>

96
spring-build/docbook/styles/pdf/titlepage.xml

@ -0,0 +1,96 @@ @@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE t:templates [
<!ENTITY hsize0 "10pt">
<!ENTITY hsize1 "12pt">
<!ENTITY hsize2 "14.4pt">
<!ENTITY hsize3 "17.28pt">
<!ENTITY hsize4 "20.736pt">
<!ENTITY hsize5 "24.8832pt">
<!ENTITY hsize0space "7.5pt"> <!-- 0.75 * hsize0 -->
<!ENTITY hsize1space "9pt"> <!-- 0.75 * hsize1 -->
<!ENTITY hsize2space "10.8pt"> <!-- 0.75 * hsize2 -->
<!ENTITY hsize3space "12.96pt"> <!-- 0.75 * hsize3 -->
<!ENTITY hsize4space "15.552pt"> <!-- 0.75 * hsize4 -->
<!ENTITY hsize5space "18.6624pt"> <!-- 0.75 * hsize5 -->
]>
<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<t:titlepage t:element="book" t:wrapper="fo:block">
<t:titlepage-content t:side="recto">
<title
t:named-template="division.title"
param:node="ancestor-or-self::book[1]"
text-align="center"
font-size="&hsize5;"
space-before="&hsize5space;"
font-weight="bold"
font-family="{$title.fontset}"
/>
<subtitle
text-align="center"
font-size="&hsize4;"
space-before="&hsize4space;"
font-family="{$title.fontset}"
/>
<corpauthor space-before="0.5em"
font-size="&hsize2;"
/>
<authorgroup space-before="0.5em"
font-size="&hsize2;"
/>
<author space-before="0.5em" font-size="&hsize2;"/>
<mediaobject space-before="2em" space-after="2em"/>
<releaseinfo space-before="5em" font-size="&hsize2;"/>
<othercredit space-before="2em" font-weight="normal" font-size="8"/>
<pubdate space-before="0.5em"/>
<revision space-before="0.5em"/>
<revhistory space-before="0.5em"/>
<abstract space-before="0.5em"
text-align="start"
margin-left="0.1in"
margin-right="0.1in"
font-family="{$body.fontset}"
/>
</t:titlepage-content>
<t:titlepage-content t:side="verso" text-align="start">
<copyright space-before="1.5em"/>
<legalnotice space-before="15em"/>
</t:titlepage-content>
<t:titlepage-separator>
</t:titlepage-separator>
<t:titlepage-before t:side="recto">
</t:titlepage-before>
<t:titlepage-before t:side="verso">
</t:titlepage-before>
</t:titlepage>
<!-- ==================================================================== -->
</t:templates>

BIN
spring-build/lib/ivy/commons-codec.jar

Binary file not shown.

BIN
spring-build/lib/ivy/commons-httpclient.jar

Binary file not shown.

BIN
spring-build/lib/ivy/commons-logging.jar

Binary file not shown.

20
spring-build/lib/ivy/current.version

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
# Copyright 2010 SpringSource
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
ivy.jar= 2.1.0
org.springframework.build.aws.ivy.jar= 1.0.8.RELEASE
commons-codec= 1.3.0
commons-httpclient= 3.1.0
commons-logging= 1.1.1
jets3t= 0.7.0

BIN
spring-build/lib/ivy/ivy.jar

Binary file not shown.

BIN
spring-build/lib/ivy/jets3t.jar

Binary file not shown.

26
spring-build/lib/ivy/jets3t.properties

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
# Copyright 2010 SpringSource
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## JetS3t Configuration Properties
# A full description of all configuration properties can be found at
# http://jets3t.s3.amazonaws.com/toolkit/configuration.html
# Proxy configuration
httpclient.proxy-autodetect=true
#httpclient.proxy-host=
#httpclient.proxy-port=
#httpclient.proxy-user=
#httpclient.proxy-password=
#httpclient.proxy-domain=

BIN
spring-build/lib/ivy/org.springframework.build.aws.ivy.jar

Binary file not shown.

52
spring-build/library/artifact.xml

@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-library" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<filterset id="library.filters" />
<!-- Main targets -->
<target name="javadoc-all" description="Does nothing"/>
<target name="javadoc-api" description="Does nothing."/>
<target name="jar" depends="ivy.init, resolve.compile"
description="Creates a libd file with the proper versions substituted.">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}"/>
<delete quiet="true" file="${libd.output.file}"/>
<mkdir dir="${libd.output.dir}"/>
<copy file="${libd.input.file}" tofile="${libd.output.file}">
<filterset>
<filter token="bundle.version" value="${bundle.version}"/>
<filterset refid="library.filters"/>
</filterset>
</copy>
<ivy:publish resolver="integration" pubdate="${timestamp}" status="${release.type}">
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${libd.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<!-- Other targets -->
<target name="javadoc.prep"/>
</project>

21
spring-build/library/common.xml

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-library" xmlns:s="antlib:org.springframework.build">
<import file="../common/common.xml"/>
</project>

25
spring-build/library/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-library">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

37
spring-build/library/package.xml

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-library">
<import file="common.xml"/>
<import file="../common/package.xml"/>
<!-- Macros -->
<macrodef name="dist-jar">
<attribute name="output.dir" default="${package.dist.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<copy file="${libd.output.file}" tofile="@{output.dir}/${package.libd.output.file}"/>
</sequential>
</macrodef>
<macrodef name="src-jar">
<attribute name="output.dir" default="${package.src.dir}"/>
<sequential>
</sequential>
</macrodef>
</project>

82
spring-build/library/publish.xml

@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-library" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:maven="antlib:org.apache.maven.artifact.ant">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
<target name="publish-ivy" depends="ivy.init, resolve">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}" />
<ivy:publish resolver="${publication.resolver.prefix}-library-publish" pubdate="${timestamp}"
status="${release.type}">
<artifacts pattern="${libd.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<target name="publish-maven" depends="create.pom, ivy.init, maven.init, resolve" unless="local.build">
<maven:deploy file="${libd.output.file}">
<remoteRepository url="s3://${publish.bucket}/maven/libraries/${adjusted.release.type}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${pom.output.file}"/>
</maven:deploy>
</target>
<target name="publish-maven-central" depends="maven.init">
<property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
<maven:deploy file="${libd.output.file}">
<remoteRepository url="${maven.central.repository}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${local.pom.output.file}"/>
</maven:deploy>
</target>
<target name="install-maven" depends="create.pom, snapshot.pom, maven.init">
<maven:install file="${libd.output.file}">
<pom file="${pom.output.file}"/>
</maven:install>
</target>
<target name="install-maven-central" depends="maven.init">
<maven:install file="${libd.output.file}">
<pom file="${local.pom.output.file}"/>
</maven:install>
</target>
<target name="create.pom" depends="ivy.init, resolve">
<delete quiet="true" file="${pom.output.file}"/>
<mkdir dir="${pom.output.dir}"/>
<ivy:makepom ivyfile="${ivy.output.file}" pomfile="${pom.output.file}">
<mapping conf="compile" scope="compile"/>
<mapping conf="provided" scope="provided"/>
<mapping conf="dm-server-provided" scope="provided"/>
<mapping conf="runtime" scope="runtime"/>
<mapping conf="test" scope="test"/>
</ivy:makepom>
<replaceregexp match="&lt;packaging&gt;jar&lt;/packaging&gt;"
replace="&lt;packaging&gt;libd&lt;/packaging&gt;"
file="${pom.output.file}"/>
</target>
</project>

35
spring-build/library/quality.xml

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-library">
<!-- Main targets -->
<target name="test" description="Does nothing."/>
<target name="clover" description="Does nothing."/>
<target name="findbugs" description="Does nothing."/>
<target name="osgi-validate" description="Does nothing."/>
<!-- Other targets -->
<target name="test.do" description="Does nothing."/>
<target name="clover.do" description="Does nothing."/>
<target name="findbugs.do" description="Does nothing."/>
</project>

70
spring-build/multi-bundle/artifact.xml

@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-multi-bundle">
<import file="common.xml"/>
<!-- Main targets -->
<target name="javadoc-all"
description="Creates javadoc documentation for all classes.">
<delete dir="${javadoc-all.output.dir}" quiet="true"/>
<mkdir dir="${javadoc-all.output.dir}"/>
<all-bundles target="javadoc.prep">
<property name="javadoc.prep.dir" value="${javadoc.prep.dir}"/>
</all-bundles>
<path id="global.path">
<fileset dir="${ivy.cache.dir}" erroronmissingdir="false">
<exclude name="**/*-sources-*.jar"/>
<include name="**/*.jar"/>
</fileset>
</path>
<java-doc input.dir="${javadoc.prep.dir}" output.dir="${javadoc-all.output.dir}" classpath.id="global.path"
access="private"/>
<delete quiet="true" dir="${javadoc.prep.dir}"/>
</target>
<target name="javadoc-api"
description="Creates javadoc documentation for all classes.">
<delete dir="${javadoc-api.output.dir}" quiet="true"/>
<mkdir dir="${javadoc-api.output.dir}"/>
<all-bundles target="javadoc.prep">
<property name="javadoc.prep.dir" value="${javadoc.prep.dir}"/>
</all-bundles>
<path id="global.path">
<fileset dir="${ivy.cache.dir}" erroronmissingdir="false">
<exclude name="**/*-sources-*.jar"/>
<include name="**/*.jar"/>
</fileset>
</path>
<java-doc input.dir="${javadoc.prep.dir}" output.dir="${javadoc-api.output.dir}" classpath.id="global.path"
access="protected" exclude.package.names="${javadoc.exclude.package.names}"/>
<delete quiet="true" dir="${javadoc.prep.dir}"/>
</target>
<target name="jar"
description="Creates a JAR file containing the output of a compilation of the source tree.">
<all-bundles target="jar"/>
</target>
<!-- Other targets -->
<target name="javadoc.prep">
<all-bundles target="javadoc.prep">
<property name="javadoc.prep.dir" value="${javadoc.prep.dir}"/>
</all-bundles>
</target>
</project>

120
spring-build/multi-bundle/common.xml

@ -0,0 +1,120 @@ @@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-multi-bundle" xmlns:ivy="antlib:org.apache.ivy.ant">
<tstamp>
<format property="timestamp" pattern="yyyyMMddHHmmss" timezone="GMT"/>
</tstamp>
<!-- Properties -->
<dirname property="spring.build.dir" file="${ant.file.common-multi-bundle}/.."/>
<property file="${spring.build.dir}/common/common.properties"/>
<!-- Global targets -->
<condition property="adjusted.release.type" value="snapshot" else="${release.type}">
<equals arg1="integration" arg2="${release.type}"/>
</condition>
<!-- Main targets -->
<target name="clean"
description="Removes the target directory.">
<delete quiet="true" dir="${target.dir}"/>
<all-bundles target="clean"/>
</target>
<target name="clean-integration"
description="Removes the integration repository directory.">
<fail message="The 'integration.repo.dir' property must be set on this project.">
<condition>
<not>
<isset property="integration.repo.dir"/>
</not>
</condition>
</fail>
<delete quiet="true" dir="${integration.repo.dir}"/>
</target>
<target name="clean-ivy" depends="ivy.init"
description="Removes the ivy cache directory.">
<fail message="The 'ivy.cache.dir' property must be set on this project.">
<condition>
<not>
<isset property="ivy.cache.dir"/>
</not>
</condition>
</fail>
<delete quiet="true" dir="${ivy.cache.dir}"/>
</target>
<!-- Other targets -->
<target name="ivy.init" unless="ivy.initialized">
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant">
<classpath>
<path location="${ivy.lib.dir}/ivy.jar"/>
<path location="${ivy.lib.dir}/org.springframework.build.aws.ivy.jar"/>
<path location="${ivy.lib.dir}/commons-codec.jar"/>
<path location="${ivy.lib.dir}/commons-httpclient.jar"/>
<path location="${ivy.lib.dir}/commons-logging.jar"/>
<path location="${ivy.lib.dir}/jets3t.jar"/>
<path location="${ivy.lib.dir}"/>
</classpath>
</taskdef>
<ivy:settings file="${ivy.settings.file}"/>
<property name="ivy.initialized" value="true"/>
</target>
<!-- Macros -->
<macrodef name="all-bundles">
<attribute name="target"/>
<attribute name="buildpathRef" default="bundles"/>
<element name="inherited-properties" optional="true" implicit="true"/>
<sequential>
<subant target="@{target}" verbose="true" buildpathRef="@{buildpathRef}">
<inherited-properties/>
<propertyset>
<propertyref builtin="commandline"/>
</propertyset>
<property name="timestamp" value="${timestamp}"/>
</subant>
</sequential>
</macrodef>
<macrodef name="java-doc">
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="classpath.id"/>
<attribute name="access"/>
<attribute name="exclude.package.names" default=""/>
<sequential>
<delete quiet="true" dir="@{output.dir}"/>
<mkdir dir="@{output.dir}"/>
<javadoc.links sourcepath="@{input.dir}" destdir="@{output.dir}" classpathref="@{classpath.id}"
access="@{access}" excludepackagenames="@{exclude.package.names}" maxmemory="${javadoc.max.memory}"
stylesheetfile="${javadoc.stylesheet.file}" splitindex="true" useexternalfile="true">
<header><![CDATA[<!-- Begin Google Analytics code --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-2728886-3"); pageTracker._setDomainName("none"); pageTracker._setAllowLinker(true); pageTracker._trackPageview(); </script> <!-- End Google Analytics code -->]]></header>
</javadoc.links>
<copy toDir="@{output.dir}/resources">
<fileset dir="${javadoc.resources.dir}" erroronmissingdir="false"/>
</copy>
</sequential>
</macrodef>
<presetdef name="javadoc.links">
<javadoc/>
</presetdef>
</project>

25
spring-build/multi-bundle/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-multi-bundle">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

29
spring-build/multi-bundle/package.xml

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-multi-bundle">
<import file="common.xml"/>
<!-- Main targets -->
<target name="package"
description="Creates a packaged distributable of the project. Unless overridden, delegates to sub-bundles.">
<all-bundles target="package">
<property name="package.output.dir" value="${package.output.dir}"/>
</all-bundles>
</target>
</project>

83
spring-build/multi-bundle/publish.xml

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-multi-bundle" xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:aws="antlib:org.springframework.build.aws">
<import file="common.xml"/>
<!-- Main targets -->
<target name="publish"
description="Publishes all artifacts to remote repositories">
<all-bundles target="publish"/>
</target>
<target name="publish-ivy"
description="Publishes all ivy artifacts to remote repositories">
<all-bundles target="publish-ivy"/>
</target>
<target name="publish-maven"
description="Publishes all maven artifacts to remote repositories">
<all-bundles target="publish-maven"/>
</target>
<target name="publish-maven-central">
<all-bundles target="publish-maven-central"/>
</target>
<target name="install-maven">
<all-bundles target="install-maven"/>
</target>
<target name="install-maven-central">
<all-bundles target="install-maven-central"/>
</target>
<target name="publish-package" depends="aws.init">
<fail message="The 'project.name' property must be set on this project.">
<condition>
<not>
<isset property="project.name"/>
</not>
</condition>
</fail>
<checksum file="${package.output.file}" algorithm="sha1"/>
<aws:s3 accessKey="${accessKey}" secretKey="${secretKey}">
<upload bucketName="dist.${bucket.basename}" file="${package.output.file}"
toFile="${adjusted.release.type}/${project.key}/${package.file.name}" publicRead="true">
<metadata name="project.name" value="${project.name}"/>
<metadata name="release.type" value="${release.type}"/>
<metadata name="bundle.version" value="${bundle.version}"/>
<metadata name="package.file.name" value="${package.file.name}"/>
</upload>
<upload bucketName="dist.${bucket.basename}" file="${package.output.file}.sha1"
toFile="${adjusted.release.type}/${project.key}/${package.file.name}.sha1" publicRead="true">
</upload>
</aws:s3>
</target>
<!-- Other targets -->
<target name="aws.init" depends="ivy.init">
<ivy:cachepath resolveId="spring.aws.ant.classpath" pathid="spring.aws.ant.classpath"
organisation="org.springframework.build" module="org.springframework.build.aws.ant"
revision="${org.springframework.build.aws.ant.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
<taskdef resource="org/springframework/build/aws/ant/antlib.xml" uri="antlib:org.springframework.build.aws"
classpathref="spring.aws.ant.classpath" />
</target>
</project>

138
spring-build/multi-bundle/quality.xml

@ -0,0 +1,138 @@ @@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-multi-bundle" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<!-- Main targets -->
<target name="test" depends="jar, test.pre, test.do, test.post"
description="Executes all tests resulting from a compilation of the test tree returning test success metrics."/>
<target name="clover" depends="clover.pre, clover.do, clover.post"
description="Executes all tests resulting from a compilation of the test tree returning test coverage metrics."/>
<target name="findbugs" depends="findbugs.pre, findbugs.do"
description="Checks all code from the source tree for bugs."/>
<target name="osgi-validate"
description="Checks all code from the source tree for bugs.">
<all-bundles target="osgi-validate"/>
</target>
<!-- Other targets -->
<target name="test.pre">
<delete quiet="true" dir="${test-results.output.dir}"/>
<mkdir dir="${test-results.output.dir}/xml"/>
</target>
<target name="test.do">
<all-bundles target="test.do">
<property name="test-results.output.dir" value="${test-results.output.dir}"/>
</all-bundles>
</target>
<target name="test.post">
<mkdir dir="${test-results.output.dir}/html"/>
<junitreport>
<fileset dir="${test-results.output.dir}/xml" erroronmissingdir="false"/>
<report format="frames" todir="${test-results.output.dir}/html"/>
</junitreport>
<delete file="TESTS-TestSuites.xml"/>
</target>
<target name="clover.init" depends="ivy.init">
<ivy:cachepath resolveId="clover.classpath" pathid="clover.classpath" organisation="com.atlassian.clover"
module="com.springsource.com.cenqua.clover" revision="${com.springsource.com.cenqua.clover.version}"
conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef resource="cloverlib.xml" classpathref="clover.classpath"/>
</target>
<target name="clover.pre" depends="clover.init">
<delete dir="${clover.output.dir}" quiet="true"/>
<mkdir dir="${clover.db.dir}"/>
</target>
<target name="clover.do">
<condition property="has.unit.test.bundles">
<isreference refid="unit.test.bundles" />
</condition>
<antcall target="clover.do.unit"/>
<antcall target="clover.do.all" />
</target>
<target name="clover.do.unit" if="has.unit.test.bundles">
<all-bundles target="clover" buildpathRef="unit.test.bundles"/>
</target>
<target name="clover.do.all" unless="has.unit.test.bundles">
<all-bundles target="clover" buildpathRef="bundles"/>
</target>
<target name="clover.post" depends="clover.init">
<clover-merge initString="${clover.db.file}">
<cloverDbSet dir="${basedir}/.." span="30m">
<include name="**/target/clover/db/clover.db"/>
</cloverDbSet>
</clover-merge>
<clover-report initstring="${clover.db.file}">
<current outfile="${clover.output.dir}/clover.xml" span="30m">
<format type="xml"/>
<testsources dir="..">
<include name="**/src/test/java/**/*.java"/>
<include name="**/src/test/java/*.java"/>
</testsources>
</current>
</clover-report>
<clover-report initstring="${clover.db.file}">
<current outfile="${clover.output.dir}/html" span="30m">
<format type="html"/>
<testsources dir="..">
<include name="**/src/test/java/**/*.java"/>
<include name="**/src/test/java/*.java"/>
</testsources>
</current>
</clover-report>
<clover-report initstring="${clover.db.file}">
<current outfile="${clover.output.dir}/clover.pdf" summary="true" span="30m">
<format type="pdf"/>
<testsources dir="..">
<include name="**/src/test/java/**/*.java"/>
<include name="**/src/test/java/*.java"/>
</testsources>
</current>
</clover-report>
<clover-check initstring="${clover.db.file}" target="${clover.coverage}" haltOnFailure="${clover.enforce}"
span="30m">
<testsources dir="..">
<include name="**/src/test/java/**/*.java"/>
<include name="**/src/test/java/*.java"/>
</testsources>
</clover-check>
</target>
<target name="findbugs.pre">
<delete dir="${findbugs.output.dir}" quiet="true"/>
<mkdir dir="${findbugs.output.dir}"/>
</target>
<target name="findbugs.do">
<all-bundles target="findbugs.do">
<property name="findbugs.output.dir" value="${findbugs.output.dir}"/>
</all-bundles>
</target>
</project>

66
spring-build/par/artifact.xml

@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-par" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<import file="../multi-bundle/artifact.xml"/>
<!-- Main targets -->
<target name="jar" depends="ivy.init"
description="Creates a PAR file containing the output of the list of bundles.">
<delete dir="${par.staging.dir}" quiet="true"/>
<mkdir dir="${par.staging.dir}"/>
<delete dir="${par.output.file}" quiet="true"/>
<mkdir dir="${jar.output.dir}"/>
<all-bundles target="jar"/>
<all-bundles target="copy-dist-jar">
<property name="copy.to.dir" value="${par.staging.dir}"/>
</all-bundles>
<all-bundles target="copy-ext-jars">
<property name="copy.to.dir" value="${par.staging.dir}"/>
</all-bundles>
<antcall target="collect-additional"/>
<jar destfile="${par.output.file}" basedir="${par.staging.dir}" index="true" filesetmanifest="merge">
<manifest>
<attribute name="Application-SymbolicName" value="${ant.project.name}"/>
<attribute name="Application-Version" value="${bundle.version}"/>
<attribute name="Application-Name" value="${application.name}"/>
<attribute name="Application-Description" value="${application.description}"/>
<attribute name="Application-Creator" value="${user.name}"/>
</manifest>
</jar>
</target>
<target name="collect-additional" depends="ivy.file.exists" if="ivy.file.exists">
<add-jars output.dir="${par.staging.dir}"/>
</target>
<target name="collect-provided"
description="Collects all the JARs expected to be provided for a PAR file.">
<delete dir="${par.provided.dir}" quiet="true"/>
<mkdir dir="${par.provided.dir}"/>
<all-bundles target="copy-provided-jars">
<property name="copy.to.dir" value="${par.provided.bundles.dir}"/>
</all-bundles>
<all-bundles target="copy-provided-libs">
<property name="copy.to.dir" value="${par.provided.libraries.dir}"/>
</all-bundles>
</target>
</project>

21
spring-build/par/common.xml

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-par">
<import file="../multi-bundle/common.xml"/>
</project>

25
spring-build/par/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-par">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

31
spring-build/par/package.xml

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-par">
<import file="common.xml"/>
<import file="../common/package.xml"/>
<!-- Macros -->
<macrodef name="dist-jar">
<attribute name="output.dir" default="${package.dist.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<copy file="${par.output.file}" tofile="@{output.dir}/${package.par.output.file}"/>
</sequential>
</macrodef>
</project>

66
spring-build/par/publish.xml

@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-par" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:maven="antlib:org.apache.maven.artifact.ant">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
<target name="publish-ivy" depends="ivy.init, resolve">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}" />
<ivy:publish resolver="${publication.resolver.prefix}-bundle-publish" pubdate="${timestamp}"
status="${release.type}">
<artifacts pattern="${par.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${source-jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<target name="publish-maven" depends="create.pom, ivy.init, maven.init, resolve" unless="local.build">
<maven:deploy file="${par.output.file}">
<remoteRepository url="s3://${publish.bucket}/maven/bundles/${adjusted.release.type}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${pom.output.file}"/>
</maven:deploy>
</target>
<target name="publish-maven-central" depends="maven.init">
<property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
<maven:deploy file="${par.output.file}">
<remoteRepository url="${maven.central.repository}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${local.pom.output.file}"/>
</maven:deploy>
</target>
<target name="install-maven" depends="create.pom, snapshot.pom, maven.init">
<maven:install file="${par.output.file}">
<pom file="${pom.output.file}"/>
</maven:install>
</target>
<target name="install-maven-central" depends="maven.init">
<maven:install file="${par.output.file}">
<pom file="${local.pom.output.file}"/>
</maven:install>
</target>
</project>

22
spring-build/par/quality.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-par">
<import file="common.xml"/>
<import file="../multi-bundle/quality.xml"/>
</project>

45
spring-build/resource/artifact.xml

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-resource" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<!-- Main targets -->
<target name="javadoc-all" description="Does nothing"/>
<target name="javadoc-api" description="Does nothing."/>
<target name="jar" depends="ivy.init, resolve.compile"
description="Creates a libd file with the proper versions substituted.">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}"/>
<copy toDir="${artifacts.dir}">
<fileset dir="${resource.src.dir}" erroronmissingdir="false"/>
</copy>
<ivy:publish resolver="integration" pubdate="${timestamp}" status="${release.type}">
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${artifacts.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<!-- Other targets -->
<target name="javadoc.prep"/>
</project>

21
spring-build/resource/common.xml

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-resource" xmlns:s="antlib:org.springframework.build">
<import file="../common/common.xml"/>
</project>

25
spring-build/resource/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-resource">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

39
spring-build/resource/package.xml

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-resource">
<import file="common.xml"/>
<import file="../common/package.xml"/>
<!-- Macros -->
<macrodef name="dist-jar">
<attribute name="output.dir" default="${package.dist.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<copy todir="@{output.dir}">
<fileset dir="${resource.src.dir}" />
</copy>
</sequential>
</macrodef>
<macrodef name="src-jar">
<attribute name="output.dir" default="${package.src.dir}"/>
<sequential>
</sequential>
</macrodef>
</project>

82
spring-build/resource/publish.xml

@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-resource" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:maven="antlib:org.apache.maven.artifact.ant">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
<target name="publish-ivy" depends="ivy.init, resolve">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}" />
<ivy:publish resolver="${publication.resolver.prefix}-library-publish" pubdate="${timestamp}"
status="${release.type}">
<artifacts pattern="${artifacts.dir}/[artifact].[ext]"/>
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<target name="publish-maven" depends="create.pom, ivy.init, maven.init, resolve" unless="local.build">
<maven:deploy>
<remoteRepository url="s3://${publish.bucket}/maven/libraries/${adjusted.release.type}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${pom.output.file}"/>
</maven:deploy>
</target>
<target name="publish-maven-central" depends="maven.init">
<property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
<maven:deploy>
<remoteRepository url="${maven.central.repository}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${local.pom.output.file}"/>
</maven:deploy>
</target>
<target name="install-maven" depends="create.pom, snapshot.pom, maven.init">
<maven:install>
<pom file="${pom.output.file}"/>
</maven:install>
</target>
<target name="install-maven-central" depends="maven.init">
<maven:install>
<pom file="${local.pom.output.file}"/>
</maven:install>
</target>
<target name="create.pom" depends="ivy.init, resolve">
<delete quiet="true" file="${pom.output.file}"/>
<mkdir dir="${pom.output.dir}"/>
<ivy:makepom ivyfile="${ivy.output.file}" pomfile="${pom.output.file}">
<mapping conf="compile" scope="compile"/>
<mapping conf="provided" scope="provided"/>
<mapping conf="dm-server-provided" scope="provided"/>
<mapping conf="runtime" scope="runtime"/>
<mapping conf="test" scope="test"/>
</ivy:makepom>
<replaceregexp match="&lt;packaging&gt;jar&lt;/packaging&gt;"
replace="&lt;packaging&gt;pom&lt;/packaging&gt;"
file="${pom.output.file}"/>
</target>
</project>

35
spring-build/resource/quality.xml

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-resource">
<!-- Main targets -->
<target name="test" description="Does nothing."/>
<target name="clover" description="Does nothing."/>
<target name="findbugs" description="Does nothing."/>
<target name="osgi-validate" description="Does nothing."/>
<!-- Other targets -->
<target name="test.do" description="Does nothing."/>
<target name="clover.do" description="Does nothing."/>
<target name="findbugs.do" description="Does nothing."/>
</project>

40
spring-build/standard/artifact.xml

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-standard" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<import file="../common/artifact.xml"/>
<!-- Other targets -->
<target name="compile.init" depends="ivy.init">
<ivy:cachepath resolveId="spring.ant.classpath" pathid="spring.ant.classpath"
organisation="org.springframework.build" module="org.springframework.build.ant"
revision="${org.springframework.build.ant.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
<ivy:cachepath resolveId="ecj.classpath" pathid="ecj.classpath" organisation="org.eclipse.jdt"
module="com.springsource.org.eclipse.jdt.core.compiler.batch" revision="${org.eclipse.jdt.core.compiler.batch.version}"
conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef resource="org/springframework/build/ant/antlib.xml" uri="antlib:org.springframework.build">
<classpath>
<path refid="spring.ant.classpath"/>
<path refid="ecj.classpath"/>
</classpath>
</taskdef>
</target>
</project>

48
spring-build/standard/common.xml

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-standard" xmlns:s="antlib:org.springframework.build">
<import file="../common/common.xml"/>
<!-- Macros -->
<macrodef name="do-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<s:javac destdir="@{output.dir}" source="${source.version}" target="${target.version}"
debug="${compile.debug}" debugLevel="${compile.debug.level}">
<compilerarg line="${compiler.args}"/>
<src path="@{input.dir}"/>
<include name="**/*.java"/>
<include name="*.java"/>
<classpath refid="@{classpath.id}"/>
</s:javac>
<copy todir="@{output.dir}">
<fileset dir="@{input.dir}" erroronmissingdir="false">
<exclude name="**/*.java"/>
<exclude name="*.java"/>
</fileset>
</copy>
<copy todir="@{output.dir}">
<fileset dir="@{resources.dir}" erroronmissingdir="false"/>
</copy>
</sequential>
</macrodef>
</project>

25
spring-build/standard/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-standard">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

22
spring-build/standard/package.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-standard">
<import file="common.xml"/>
<import file="../common/package.xml"/>
</project>

22
spring-build/standard/publish.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-standard">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
</project>

22
spring-build/standard/quality.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-standard">
<import file="common.xml"/>
<import file="../common/quality.xml"/>
</project>

85
spring-build/war/artifact.xml

@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-war" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:bundlor="antlib:com.springsource.bundlor.ant">
<import file="common.xml"/>
<import file="../common/artifact.xml"/>
<!-- Main targets -->
<target name="jar" depends="ivy.init, resolve.compile, compile.init, jar.init"
description="Creates a WAR file containing the output of a compilation of the source tree.">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}"/>
<delete quiet="true" file="${war.output.file}"/>
<mkdir dir="${war.output.dir}"/>
<delete quiet="true" file="${source-jar.output.file}"/>
<mkdir dir="${source-jar.output.dir}"/>
<copy todir="${war.staging.dir}">
<fileset dir="${main.webapp.dir}" erroronmissingdir="false"/>
</copy>
<compile classpath.id="compile.classpath" input.dir="${main.java.dir}" output.dir="${war.classes.dir}"
resources.dir="${main.resources.dir}"/>
<ivy:retrieve resolveId="compile.classpath" conf="compile,runtime" type="jar"
pattern="${war.lib.dir}/[artifact]-[revision].[ext]" log="download-only"/>
<antcall target="bundlor"/>
<jar destfile="${war.output.file}" basedir="${war.staging.dir}" index="true" filesetmanifest="merge">
<manifest>
<attribute name="Bundle-Creator" value="${user.name}"/>
<attribute name="Implementation-Title" value="${implementation.title}"/>
<attribute name="Implementation-Version" value="${implementation.version}"/>
</manifest>
</jar>
<jar destfile="${source-jar.output.file}" basedir="${main.java.dir}" index="true"/>
<ivy:publish resolver="integration" pubdate="${timestamp}" status="${release.type}">
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${war.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${source-jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<!-- Other targets -->
<target name="compile.init" depends="ivy.init">
<ivy:cachepath resolveId="spring.ant.classpath" pathid="spring.ant.classpath"
organisation="org.springframework.build" module="org.springframework.build.ant"
revision="${org.springframework.build.ant.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
<ivy:cachepath resolveId="ecj.classpath" pathid="ecj.classpath" organisation="org.eclipse.jdt"
module="com.springsource.org.eclipse.jdt.core.compiler.batch" revision="${org.eclipse.jdt.core.compiler.batch.version}"
conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef resource="org/springframework/build/ant/antlib.xml" uri="antlib:org.springframework.build">
<classpath>
<path refid="spring.ant.classpath"/>
<path refid="ecj.classpath"/>
</classpath>
</taskdef>
</target>
<target name="bundlor" depends="bundlor.init" unless="disable.bundlor">
<bundlor:bundlor inputPath="${war.staging.dir}" outputPath="${war.staging.dir}"
bundleVersion="${bundle.version}" manifestTemplatePath="${manifest.template.file}"
failOnWarnings="${fail.on.warnings}">
<propertyset refid="bundlor.properties"/>
<propertyset>
<propertyref builtin="all"/>
</propertyset>
</bundlor:bundlor>
</target>
</project>

48
spring-build/war/common.xml

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-war" xmlns:s="antlib:org.springframework.build">
<import file="../common/common.xml"/>
<!-- Macros -->
<macrodef name="do-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<s:javac destdir="@{output.dir}" source="${source.version}" target="${target.version}"
debug="${compile.debug}" debugLevel="${compile.debug.level}">
<compilerarg line="${compiler.args}"/>
<src path="@{input.dir}"/>
<include name="**/*.java"/>
<include name="*.java"/>
<classpath refid="@{classpath.id}"/>
</s:javac>
<copy todir="@{output.dir}">
<fileset dir="@{input.dir}" erroronmissingdir="false">
<exclude name="**/*.java"/>
<exclude name="*.java"/>
</fileset>
</copy>
<copy todir="@{output.dir}">
<fileset dir="@{resources.dir}" erroronmissingdir="false"/>
</copy>
</sequential>
</macrodef>
</project>

25
spring-build/war/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-war">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

31
spring-build/war/package.xml

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-war">
<import file="common.xml"/>
<import file="../common/package.xml"/>
<!-- Macros -->
<macrodef name="dist-jar">
<attribute name="output.dir" default="${package.dist.dir}"/>
<sequential>
<mkdir dir="@{output.dir}"/>
<copy file="${war.output.file}" tofile="@{output.dir}/${package.war.output.file}"/>
</sequential>
</macrodef>
</project>

70
spring-build/war/publish.xml

@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-war" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:maven="antlib:org.apache.maven.artifact.ant">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
<target name="publish-ivy" depends="ivy.init, resolve">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}" />
<ivy:publish resolver="${publication.resolver.prefix}-bundle-publish" pubdate="${timestamp}"
status="${release.type}">
<artifacts pattern="${war.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${source-jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<target name="publish-maven" depends="create.pom, snapshot.pom, maven.init" unless="local.build">
<maven:deploy file="${war.output.file}">
<remoteRepository url="s3://${publish.bucket}/maven/bundles/${adjusted.release.type}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:deploy>
</target>
<target name="publish-maven-central" depends="maven.init">
<property name="maven.central.repository" value="s3://maven.springframework.org/${adjusted.release.type}"/>
<maven:deploy file="${war.output.file}">
<remoteRepository url="${maven.central.repository}">
<authentication username="${accessKey}" passphrase="${secretKey}"/>
</remoteRepository>
<pom file="${local.pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:deploy>
</target>
<target name="install-maven" depends="create.pom, snapshot.pom, maven.init">
<maven:install file="${war.output.file}">
<pom file="${pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:install>
</target>
<target name="install-maven-central" depends="maven.init">
<maven:install file="${war.output.file}">
<pom file="${local.pom.output.file}"/>
<attach file="${source-jar.output.file}" classifier="sources"/>
</maven:install>
</target>
</project>

74
spring-build/war/quality.xml

@ -0,0 +1,74 @@ @@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-war" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:osgi="antlib:org.springframework.build.osgi">
<import file="common.xml"/>
<import file="../common/quality.xml"/>
<target name="osgi-validate" depends="ivy.init, osgi.init"
description="Validates that a bundle can resolve against it's dependencies.">
<ivy:cachepath resolveId="osgi.optional.classpath" pathid="osgi.optional.classpath"
conf="compile,optional,provided,dm-server-provided" type="jar" log="download-only"/>
<osgi:validate bundlePath="${war.output.file}">
<equinoxPath refid="equinox.classpath"/>
<supportingBundlesPath refid="osgi.optional.classpath"/>
</osgi:validate>
<ivy:cachepath resolveId="osgi.compile.classpath" pathid="osgi.compile.classpath"
conf="compile,provided,dm-server-provided" type="jar" log="download-only"/>
<osgi:validate bundlePath="${war.output.file}">
<equinoxPath refid="equinox.classpath"/>
<supportingBundlesPath refid="osgi.compile.classpath"/>
</osgi:validate>
</target>
<!-- Other targets -->
<target name="test.do" depends="ivy.init, resolve.test, compile.init, test.init" if="test.exists">
<path id="test.compile.classpath">
<pathelement location="${war.classes.dir}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.java.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<path id="test.run.classpath">
<pathelement location="${war.classes.dir}"/>
<pathelement location="${test.output.dir}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
<path refid="runtime.classpath"/>
</path>
<test-run classpath.id="test.run.classpath"/>
</target>
<target name="findbugs.do" depends="ivy.init, resolve.compile, compile.init, findbugs.init, src.init" if="src.exists">
<findbugs home="${findbugs.dir}" output="xml" outputFile="${findbugs.output.file}"
excludeFilter="${findbugs.exclude.file}" jvmargs="-Xmx1024M" errorProperty="findbugs.errors" warningsProperty="findbugs.warnings">
<class location="${war.classes.dir}"/>
<auxClasspath refid="compile.classpath"/>
<sourcepath location="${main.java.dir}"/>
</findbugs>
<antcall target="findbugs.post"/>
</target>
<target name="findbugs.post" if="findbugs.enforce">
<fail if="findbugs.errors" message="FindBugs errors found"/>
<fail if="findbugs.warnings" message="FindBugs warnings found"/>
</target>
</project>

83
spring-build/weaving-external/artifact.xml vendored

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-weaving-external" xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:bundlor="antlib:com.springsource.bundlor.ant">
<import file="common.xml"/>
<import file="../common/artifact.xml"/>
<target name="javadoc-all"
description="Creates javadoc documentation for all classes."/>
<target name="jar" depends="ivy.init, resolve.compile, resolve.aspects, resolve.external, compile.init, jar.init"
description="Creates a JAR file containing the output of a compilation of the source tree.">
<delete quiet="true" file="${ivy.output.file}"/>
<mkdir dir="${ivy.output.dir}"/>
<delete quiet="true" file="${jar.output.file}"/>
<mkdir dir="${jar.output.dir}"/>
<delete quiet="true" file="${source-jar.output.file}"/>
<mkdir dir="${source-jar.output.dir}"/>
<iajc inPathRef="external.classpath" aspectPathRef="aspects.classpath" classpathRef="compile.classpath"
outJar="${jar.output.file}" source="${source.version}" checkRuntimeVersion="false" X="${aspectj.x}"/>
<antcall target="bundlor"/>
<copy tofile="${source-jar.output.file}">
<path refid="external.srcpath"/>
<flattenmapper/>
</copy>
<ivy:publish resolver="integration" pubdate="${timestamp}" status="${release.type}" overwrite="true">
<artifacts pattern="${ivy.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${source-jar.output.dir}/[artifact].[ext]"/>
<artifacts pattern="${license.dir}/[artifact].[ext]"/>
</ivy:publish>
</target>
<!-- Other targets -->
<target name="compile.init" depends="ivy.init">
<ivy:cachepath resolveId="ajc.classpath" pathid="ajc.classpath" organisation="org.aspectj"
module="com.springsource.org.aspectj.tools" revision="${org.aspectj.tools.version}" conf="runtime"
type="jar" inline="true" log="download-only"/>
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties" classpathref="ajc.classpath"/>
<ivy:cachepath resolveId="spring.ant.classpath" pathid="spring.ant.classpath"
organisation="org.springframework.build" module="org.springframework.build.ant"
revision="${org.springframework.build.ant.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
<ivy:cachepath resolveId="ecj.classpath" pathid="ecj.classpath" organisation="org.eclipse.jdt"
module="com.springsource.org.eclipse.jdt.core.compiler.batch" revision="${org.eclipse.jdt.core.compiler.batch.version}"
conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef resource="org/springframework/build/ant/antlib.xml" uri="antlib:org.springframework.build">
<classpath>
<path refid="spring.ant.classpath"/>
<path refid="ecj.classpath"/>
</classpath>
</taskdef>
</target>
<target name="bundlor" depends="bundlor.init" unless="disable.bundlor">
<bundlor:bundlor inputPath="${jar.output.file}" outputPath="${jar.output.file}"
bundleVersion="${bundle.version}" manifestTemplatePath="${manifest.template.file}"
failOnWarnings="${fail.on.warnings}">
<propertyset refid="bundlor.properties"/>
<propertyset>
<propertyref builtin="all"/>
</propertyset>
</bundlor:bundlor>
</target>
</project>

48
spring-build/weaving-external/common.xml vendored

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-weaving-external" xmlns:s="antlib:org.springframework.build">
<import file="../common/common.xml"/>
<!-- Macros -->
<macrodef name="do-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<s:javac destdir="@{output.dir}" source="${source.version}" target="${target.version}"
debug="${compile.debug}" debugLevel="${compile.debug.level}">
<compilerarg line="${compiler.args}"/>
<src path="@{input.dir}"/>
<include name="**/*.java"/>
<include name="*.java"/>
<classpath refid="@{classpath.id}"/>
</s:javac>
<copy todir="@{output.dir}">
<fileset dir="@{input.dir}" erroronmissingdir="false">
<exclude name="**/*.java"/>
<exclude name="*.java"/>
</fileset>
</copy>
<copy todir="@{output.dir}">
<fileset dir="@{resources.dir}" erroronmissingdir="false"/>
</copy>
</sequential>
</macrodef>
</project>

25
spring-build/weaving-external/default.xml vendored

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-weaving-external">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

22
spring-build/weaving-external/package.xml vendored

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-weaving-external">
<import file="common.xml"/>
<import file="../common/package.xml"/>
</project>

22
spring-build/weaving-external/publish.xml vendored

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-weaving-external">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
</project>

63
spring-build/weaving-external/quality.xml vendored

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-weaving-external" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<import file="../common/quality.xml"/>
<!-- Other targets -->
<target name="test.do" depends="ivy.init, resolve.test, compile.init, test.init" if="test.exists">
<path id="test.compile.classpath">
<pathelement location="${jar.output.file}"/>
<path refid="test.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.java.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<path id="test.run.classpath">
<pathelement location="${jar.output.file}"/>
<pathelement location="${test.output.dir}"/>
<path refid="test.classpath"/>
<path refid="runtime.classpath"/>
</path>
<test-run classpath.id="test.run.classpath"/>
</target>
<target name="clover.do" depends="ivy.init, resolve.test, compile.init, clover.init, clover.instrument, test.init"
if="test.exists">
<path id="clover.run.classpath">
<pathelement location="${jar.output.file}"/>
<pathelement location="${test.output.dir}"/>
<path refid="clover.classpath"/>
<path refid="test.classpath"/>
<path refid="runtime.classpath"/>
</path>
<test-run classpath.id="clover.run.classpath"/>
</target>
<target name="clover.instrument" depends="ivy.init, resolve.test, compile.init, clover.init">
<instrument input.dir="${test.java.dir}" output.dir="${test.clover.dir}"/>
<path id="test.compile.classpath">
<pathelement location="${main.output.dir}"/>
<path refid="test.classpath"/>
<path refid="clover.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.clover.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<delete dir="${clover.staging.dir}" quiet="true"/>
</target>
</project>

59
spring-build/weaving/artifact.xml

@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="artifact-weaving" xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:bundlor="antlib:com.springsource.bundlor.ant">
<import file="common.xml"/>
<import file="../common/artifact.xml"/>
<target name="jar" depends="ivy.init, resolve.aspects, artifact-common.jar"
description="Creates a JAR file containing the output of a compilation of the source tree."/>
<!-- Other targets -->
<target name="compile.init" depends="ivy.init">
<ivy:cachepath resolveId="ajc.classpath" pathid="ajc.classpath" organisation="org.aspectj"
module="com.springsource.org.aspectj.tools" revision="${org.aspectj.tools.version}" conf="runtime"
type="jar" inline="true" log="download-only"/>
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties" classpathref="ajc.classpath"/>
<ivy:cachepath resolveId="spring.ant.classpath" pathid="spring.ant.classpath"
organisation="org.springframework.build" module="org.springframework.build.ant"
revision="${org.springframework.build.ant.version}" conf="runtime" type="jar" inline="true"
log="download-only"/>
<ivy:cachepath resolveId="ecj.classpath" pathid="ecj.classpath" organisation="org.eclipse.jdt"
module="com.springsource.org.eclipse.jdt.core.compiler.batch" revision="${org.eclipse.jdt.core.compiler.batch.version}"
conf="runtime" type="jar" inline="true" log="download-only"/>
<taskdef resource="org/springframework/build/ant/antlib.xml" uri="antlib:org.springframework.build">
<classpath>
<path refid="spring.ant.classpath"/>
<path refid="ecj.classpath"/>
</classpath>
</taskdef>
</target>
<target name="bundlor" depends="bundlor.init" unless="disable.bundlor">
<bundlor:bundlor inputPath="${main.output.dir}" outputPath="${main.output.dir}"
bundleVersion="${bundle.version}" manifestTemplatePath="${manifest.template.file}"
failOnWarnings="${fail.on.warnings}">
<propertyset refid="bundlor.properties"/>
<propertyset>
<propertyref builtin="all"/>
</propertyset>
</bundlor:bundlor>
</target>
</project>

50
spring-build/weaving/common.xml

@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="common-weaving" xmlns:s="antlib:org.springframework.build">
<import file="../common/common.xml"/>
<!-- Macros -->
<macrodef name="do-compile">
<attribute name="classpath.id"/>
<attribute name="input.dir"/>
<attribute name="output.dir"/>
<attribute name="resources.dir"/>
<sequential>
<s:javac destdir="@{output.dir}" source="${source.version}" target="${target.version}"
debug="${compile.debug}" debugLevel="${compile.debug.level}">
<compilerarg line="${compiler.args}"/>
<src path="@{input.dir}"/>
<include name="**/*.java"/>
<include name="*.java"/>
<classpath refid="@{classpath.id}"/>
</s:javac>
<copy todir="@{output.dir}">
<fileset dir="@{input.dir}" erroronmissingdir="false">
<exclude name="**/*.java"/>
<exclude name="*.java"/>
</fileset>
</copy>
<copy todir="@{output.dir}">
<fileset dir="@{resources.dir}" erroronmissingdir="false"/>
</copy>
<iajc inPath="${main.output.dir}" aspectPathRef="aspects.classpath" classpathRef="compile.classpath"
destDir="${main.output.dir}" source="${source.version}" checkRuntimeVersion="false" X="${aspectj.x}"/>
</sequential>
</macrodef>
</project>

25
spring-build/weaving/default.xml

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="default-weaving">
<import file="common.xml"/>
<import file="artifact.xml"/>
<import file="quality.xml"/>
<import file="package.xml"/>
<import file="publish.xml"/>
</project>

22
spring-build/weaving/package.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="package-weaving">
<import file="common.xml"/>
<import file="../common/package.xml"/>
</project>

22
spring-build/weaving/publish.xml

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="publish-weaving">
<import file="common.xml"/>
<import file="../common/publish.xml"/>
</project>

45
spring-build/weaving/quality.xml

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2010 SpringSource
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="quality-weaving" xmlns:ivy="antlib:org.apache.ivy.ant">
<import file="common.xml"/>
<import file="../common/quality.xml"/>
<target name="clover.instrument" depends="ivy.init, resolve.aspects, quality-common.clover.instrument"
description="Creates a JAR file containing the output of a compilation of the source tree."/>
<target name="test.do" depends="ivy.init, resolve.test, resolve.aspects, compile.init, test.init" if="test.exists">
<path id="test.compile.classpath">
<pathelement location="${jar.output.file}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
</path>
<test-compile classpath.id="test.compile.classpath" input.dir="${test.java.dir}" output.dir="${test.output.dir}"
resources.dir="${test.resources.dir}"/>
<path id="test.run.classpath">
<pathelement location="${jar.output.file}"/>
<pathelement location="${test.output.dir}"/>
<path refid="compile.classpath"/>
<path refid="test.classpath"/>
<path refid="runtime.classpath"/>
<path refid="aspects.classpath"/>
</path>
<test-run classpath.id="test.run.classpath"/>
</target>
</project>
Loading…
Cancel
Save