blob: dbf940bdab078faab8abe4e2453a9258647ef8dd [file] [log] [blame]
<!--
Copyright © 2009-2013, JoshuaTree. All Rights Reserved.
Licensed to Joshua Tree Software, LLC under New BSD license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
JTS licenses this file to You under the New BSD License
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://jts.us/License
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="fortress-sentry" default="build" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<target name="init">
<!-- read properties from the build.properties, if any -->
<property name="component-propfile" value="${basedir}/build.properties"/>
<property file="${component-propfile}"/>
<!-- read properties from the ${user.home}/propfile, if any -->
<property name="user-propfile" value="${user.home}/build.properties"/>
<property file="${user-propfile}"/>
<property name="project.name" value="Fortress Java Sentry"/>
<property name="name" value="fortressSentry"/>
<property name="title" value="Fortress Java Sentry ${version}"/>
<property name="vendor" value="Joshua Tree Software"/>
<property name="package" value="us.jts.sentry.*"/>
<property name="ivy.install.version" value="2.2.0"/>
<!-- Env vars -->
<property name="src.dir" value="${basedir}/src"/>
<property name="lib.dir" value="${basedir}/lib"/>
<property name="config.dir" value="${basedir}/conf"/>
<property name="src.java.dir" value="${src.dir}/main/java"/>
<property name="src.java.proxy.dir" value="${src.java.dir}/proxy"/>
<property name="src.java.impl.dir" value="${src.java.dir}/impl"/>
<property name="build.dir" value="${basedir}/build"/>
<property name="build.classes.dir" value="${build.dir}/classes"/>
<property name="build.classes.proxy.dir" value="${build.classes.dir}/proxy"/>
<property name="build.classes.impl.dir" value="${build.classes.dir}/impl"/>
<property name="dist.dir" value="${basedir}/dist"/>
<property name="work.base.dir" value="${build.dir}/work"/>
<property name="work.dir" value="${work.base.dir}/dflt"/>
<property name="work.jboss.dir" value="${work.base.dir}/jb"/>
<property name="src.dist.zip" value="${dist.dir}/${name}Src-${version}.zip"/>
<property name="dst.remote.conf" value="${config.dir}/fortress.properties"/>
<property name="src.remote.conf" value="${config.dir}/fortress.properties.src"/>
<!-- config.suffix has a '\' which is required for commons configuration utility -->
<property name="config.suffix" value="dc=${suffix.name}\,dc=com"/>
<!-- Build artifacts -->
<property name="fortressTomcatSentry.jar" value="${dist.dir}/fortressProxyTomcat-${version}.jar"/>
<property name="fortressTomcat7Sentry.jar" value="${dist.dir}/fortressProxyTomcat7-${version}.jar"/>
<property name="fortressSentry.jar" value="${dist.dir}/fortressSentry-${version}.jar"/>
<property name="fortressSentry.zip" value="${dist.dir}/fortressSentryDist-${version}.zip"/>
<property name="fortressSentryDistro.jar" value="${dist.dir}/fortressSentry-${version}.jar"/>
<property name="fortressJbossSentryDistro.jar" value="${dist.dir}/fortressSentryJBoss-${version}.jar"/>
<property name="fortressSentryImpl.jar" value="${dist.dir}/fortressSentryImpl-${version}.jar"/>
<property name="javadoc.dist.zip" value="${dist.dir}/fortressSentryDoc-${version}.zip"/>
<property name="fortressSentryBuilder.zip" value="${dist.dir}/fortressSentryBuilder-${version}.zip"/>
<property name="config.dir" value="${basedir}/conf"/>
<!-- Dependent LIBs in maven -->
<property name="fortress.jar" value="${lib.dir}/fortress-${version}.jar"/>
<property name="catalina7.jar" value="${lib.dir}/tomcat-catalina-7.0.22.jar"/>
<property name="catalina.jar" value="${lib.dir}/catalina-6.0.33.jar"/>
<property name="commons-config.jar" value="${lib.dir}/commons-configuration-1.6.jar"/>
<property name="commons-lang.jar" value="${lib.dir}/commons-lang-2.4.jar"/>
<property name="commons-collections.jar" value="${lib.dir}/commons-collections-3.2.1.jar"/>
<property name="commons-pool.jar" value="${lib.dir}/commons-pool-1.5.2.jar"/>
<property name="commons-logging.jar" value="${lib.dir}/commons-logging-1.1.1.jar"/>
<property name="unboundsdk.jar" value="${lib.dir}/unboundid-ldapsdk-2.1.0.jar"/>
<property name="jgraph.jar" value="${lib.dir}/jgrapht-jdk1.5-0.7.3.jar"/>
<property name="log4j.jar" value="${lib.dir}/log4j-1.2.17.jar"/>
<property name="jasypt.jar" value="${lib.dir}/jasypt-1.8.jar"/>
<property name="ehcache-core.jar" value="${lib.dir}/ehcache-core-2.6.5.jar"/>
<property name="slf4j-api.jar" value="${lib.dir}/slf4j-api-1.7.5.jar"/>
<property name="slf4j-jcl.jar" value="${lib.dir}/slf4j-jcl-1.7.5.jar"/>
<property name="apacheds-all.jar" value="${lib.dir}/apacheds-all-2.0.0-M15.jar"/>
<!-- ########### Define classpaths ########################### -->
<path id="build.proxy.class.path">
<!-- J2EE JARs -->
<pathelement location="${catalina.jar}"/>
</path>
<path id="build.proxy.tc7.class.path">
<!-- J2EE JARs -->
<pathelement location="${catalina7.jar}"/>
</path>
<path id="build.impl.class.path">
<!-- J2EE JARs -->
<pathelement location="${catalina.jar}"/>
<!-- Fortress JARs -->
<pathelement location="${build.classes.proxy.dir}"/>
<pathelement location="${fortress.jar}"/>
<pathelement location="${log4j.jar}"/>
</path>
<!-- JARS required for distribution -->
<patternset id="dist.libs">
<include name="${fortress.jar}"/>
<include name="${log4j.jar}"/>
<include name="${commons-collections.jar}"/>
<include name="${commons-config.jar}"/>
<include name="${commons-lang.jar}"/>
<include name="${commons-logging.jar}"/>
<include name="${commons-pool.jar}"/>
<include name="${jgraph.jar}"/>
<include name="${jasypt.jar}"/>
<include name="${ehcache-core.jar}"/>
<include name="${slf4j-api.jar}"/>
<include name="${slf4j-jcl.jar}"/>
<include name="${apacheds-all.jar}"/>
</patternset>
<!-- Javadoc vars -->
<property name="javadoc.dir" value="${dist.dir}/docs/api"/>
<property name="javadoc.images.dir" value="${javadoc.dir}/images"/>
<property name="javadoc.bottom"
value="&lt;small&gt;Copyright &amp;copy; 2009-2013, JoshuaTree. All Rights Reserved."/>
<property name="javadoc.overview" value="${src.java.dir}/overview.html"/>
<property name="javadoc.stylesheet" value="${src.java.dir}/fortress-javadoc.css"/>
<path id="javadoc.source.path">
<pathelement location="${src.java.proxy.dir}"/>
<pathelement location="${src.java.impl.dir}"/>
</path>
<property name="javac.optimize" value="false"/>
<property name="javac.debug" value="true"/>
<property name="javac.deprecation" value="true"/>
<!-- Presetdef to create jar with common manifest -->
<presetdef name="fortressSentry.jar">
<jar compress="true">
<manifest>
<attribute name="Created-By" value="${vendor} - ${project.name} dev team"/>
<attribute name="Implementation-Vendor" value="${vendor}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Specification-Title" value="${title}"/>
<attribute name="Package" value="${package}"/>
<attribute name="Extension-Name" value="${name}"/>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Compile-JDK" value="${java.runtime.version}"/>
<attribute name="Test-VM" value="${java.vm.version}"/>
</manifest>
</jar>
</presetdef>
<!-- define Maven coordinates (publishing only) -->
<property name="groupId" value="us.jts"/>
<property name="artifactId" value="sentry"/>
<!-- defined maven snapshots and staging repository id and url (publishing only) -->
<property name="maven-snapshots-repository-id" value="sonatype-nexus-snapshots"/>
<property name="maven-snapshots-repository-url"
value="https://oss.sonatype.org/content/repositories/snapshots"/>
<property name="maven-staging-repository-id" value="sonatype-nexus-staging"/>
<property name="maven-staging-repository-url"
value="https://oss.sonatype.org/service/local/staging/deploy/maven2"/>
<!-- define artifacts' name, which follows the convention of Maven (publishing only) -->
<property name="maven-jar" value="${fortressSentryBuilder.zip}"/>
<property name="maven-javadoc-jar" value="${javadoc.dist.zip}"/>
<property name="maven-sources-jar" value="${src.dist.zip}"/>
</target>
<!-- =================================
target: download-ivy - pulls down ivy.jar from maven 2 website
================================= -->
<target name="download-ivy" depends="init" unless="local.mode">
<!-- download from web site so that it can be used even without any special installation -->
<echo message="downloading ivy to Ant home: ${ant.home}"/>
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
dest="${ant.home}/lib" usetimestamp="true"/>
</target>
<!-- =================================
target: resolve
================================= -->
<target name="resolve" depends="init,download-ivy" description="--> retreive dependencies with ivy"
unless="local.mode">
<ivy:retrieve pattern="${lib.dir}/[artifact]-[revision].[ext]"/>
</target>
<!-- =================================
target: clean-cache
================================= -->
<target name="clean-cache" description="--> clean the ivy cache">
<ivy:cleancache/>
</target>
<!-- ######################################################### -->
<target name="clean" depends="init" description="removes generated files">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<!-- ############### create javadoc ############################### -->
<target name="javadoc" depends="init" description="generates javadocs">
<mkdir dir="${javadoc.dir}"/>
<javadoc packagenames="${package}"
sourcepathref="javadoc.source.path"
destdir="${javadoc.dir}"
windowtitle="${title}"
doctitle="${title} "
bottom="${javadoc.bottom}"
overview="${javadoc.overview}"
public="true"
version="true"
author="true"
splitindex="false"
nodeprecated="true"
nodeprecatedlist="true"
notree="true"
noindex="false"
nohelp="true"
nonavbar="false"
classpathref="build.impl.class.path"
serialwarn="false">
</javadoc>
</target>
<!-- ############### compile packages ############################### -->
<target name="compile-proxy" depends="init,resolve" description="compiles proxy source files">
<mkdir dir="${build.classes.proxy.dir}"/>
<javac srcdir="${src.java.proxy.dir}"
debug="${javac.debug}"
deprecation="${javac.deprecation}"
destdir="${build.classes.proxy.dir}">
<exclude name="us/jts/sentry/tomcat/Tc7AccessMgrProxy.java"/>
<exclude name="us/jts/sentry/websphere/**"/>
<classpath refid="build.proxy.class.path"/>
</javac>
</target>
<target name="compile-proxy-tc7" depends="compile-proxy" description="compiles tomcat 7 proxy source files">
<javac srcdir="${src.java.proxy.dir}"
debug="${javac.debug}"
deprecation="${javac.deprecation}"
destdir="${build.classes.proxy.dir}">
<exclude name="us/jts/sentry/tomcat/TcAccessMgrProxy.java"/>
<exclude name="us/jts/sentry/websphere/**"/>
<classpath refid="build.proxy.tc7.class.path"/>
</javac>
</target>
<target name="compile-impl" depends="init,resolve" description="compiles impl source files">
<mkdir dir="${build.classes.impl.dir}"/>
<javac srcdir="${src.java.impl.dir}"
debug="${javac.debug}"
deprecation="${javac.deprecation}"
destdir="${build.classes.impl.dir}">
<exclude name="us/jts/sentry/websphere/**"/>
<classpath refid="build.impl.class.path"/>
</javac>
</target>
<target name="build-jar-tcproxy" depends="compile-proxy,compile-proxy-tc7,compile-impl">
<mkdir dir="${dist.dir}"/>
<fortressSentry.jar destfile="${fortressTomcatSentry.jar}">
<fileset dir="${build.classes.proxy.dir}">
<include name="us/jts/sentry/tomcat/**"/>
<include name="us/jts/sentry/util/**"/>
<exclude name="us/jts/sentry/tomcat/Tc7AccessMgrProxy.class"/>
</fileset>
<fileset dir="${build.classes.impl.dir}">
<include name="us/jts/sentry/tomcat/TcPrincipal.class"/>
</fileset>
<metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
</fortressSentry.jar>
</target>
<target name="build-jar-tc7proxy" depends="compile-proxy,compile-impl">
<mkdir dir="${dist.dir}"/>
<fortressSentry.jar destfile="${fortressTomcat7Sentry.jar}">
<fileset dir="${build.classes.proxy.dir}">
<include name="us/jts/sentry/tomcat/**"/>
<include name="us/jts/sentry/util/**"/>
<exclude name="us/jts/sentry/tomcat/TcAccessMgrProxy.class"/>
</fileset>
<fileset dir="${build.classes.impl.dir}">
<include name="us/jts/sentry/tomcat/TcPrincipal.class"/>
</fileset>
<metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
</fortressSentry.jar>
</target>
<target name="build-jar-impl" depends="compile-impl">
<mkdir dir="${dist.dir}"/>
<fortressSentry.jar basedir="${build.classes.impl.dir}" destfile="${fortressSentryImpl.jar}"/>
</target>
<target name="build-jar-distro" depends="init,build-jar-impl">
<unjar dest="${work.dir}" src="${fortressSentryImpl.jar}"/>
<unjar dest="${work.dir}" src="${fortress.jar}"/>
<unjar dest="${work.dir}" src="${log4j.jar}"/>
<unjar dest="${work.dir}" src="${commons-collections.jar}"/>
<unjar dest="${work.dir}" src="${commons-config.jar}"/>
<unjar dest="${work.dir}" src="${commons-lang.jar}"/>
<unjar dest="${work.dir}" src="${commons-pool.jar}"/>
<unjar dest="${work.dir}" src="${commons-logging.jar}"/>
<unjar dest="${work.dir}" src="${unboundsdk.jar}"/>
<unjar dest="${work.dir}" src="${jgraph.jar}"/>
<unjar dest="${work.dir}" src="${jasypt.jar}"/>
<unjar dest="${work.dir}" src="${ehcache-core.jar}"/>
<unjar dest="${work.dir}" src="${slf4j-api.jar}"/>
<unjar dest="${work.dir}" src="${slf4j-jcl.jar}"/>
<fortressSentry.jar basedir="${work.dir}" compress="true" jarfile="${fortressSentryDistro.jar}"/>
</target>
<target name="build-jar-distro-jboss" depends="init,build-jar-impl">
<unjar dest="${work.jboss.dir}" src="${fortressSentryImpl.jar}"/>
<unjar dest="${work.jboss.dir}" src="${fortress.jar}"/>
<unjar dest="${work.jboss.dir}" src="${log4j.jar}"/>
<unjar dest="${work.jboss.dir}" src="${commons-collections.jar}"/>
<unjar dest="${work.jboss.dir}" src="${commons-config.jar}"/>
<unjar dest="${work.jboss.dir}" src="${commons-lang.jar}"/>
<unjar dest="${work.jboss.dir}" src="${commons-pool.jar}"/>
<unjar dest="${work.jboss.dir}" src="${commons-logging.jar}"/>
<unjar dest="${work.jboss.dir}" src="${unboundsdk.jar}"/>
<unjar dest="${work.jboss.dir}" src="${jgraph.jar}"/>
<unjar dest="${work.jboss.dir}" src="${jasypt.jar}"/>
<unjar dest="${work.jboss.dir}" src="${ehcache-core.jar}"/>
<unjar dest="${work.jboss.dir}" src="${slf4j-api.jar}"/>
<unjar dest="${work.jboss.dir}" src="${slf4j-jcl.jar}"/>
<fileset dir="${config.dir}">
<include name="*.xml"/>
<include name="*.properties"/>
</fileset>
<fortressSentry.jar basedir="${work.jboss.dir}" jarfile="${fortressJbossSentryDistro.jar}"/>
</target>
<target name="build"
depends="clean,build-jar-tcproxy,build-jar-tc7proxy,build-jar-impl, build-jar-distro,build-jar-distro-jboss,javadoc">
<copy todir="${dist.dir}" file="${basedir}/LICENSE.txt"/>
<copy todir="${dist.dir}" file="${basedir}/NOTICE.txt"/>
<copy todir="${dist.dir}" file="${basedir}/TOMCAT-SETUP-NOTES.txt"/>
</target>
<!-- ############### create distribution packages ############################ -->
<target name="dist" depends="build" description="Create source and binary distribution">
<zip destfile='${src.dist.zip}'>
<zipfileset dir='${src.java.dir}'/>
<zipfileset dir='${dist.dir}' prefix='META-INF'>
<include name="*.txt"/>
</zipfileset>
</zip>
<zip destfile="${javadoc.dist.zip}" basedir="${javadoc.dir}">
<zipfileset dir='${dist.dir}' prefix='META-INF'>
<include name="LICENSE.txt"/>
<include name="NOTICE.txt"/>
</zipfileset>
</zip>
<echo message="############### Modify fortress configuration per user settings ###############"/>
<delete file="${dst.remote.conf}"/>
<copyfile src="${src.remote.conf}" dest="${dst.remote.conf}"/>
<replace file="${dst.remote.conf}" token="@SUFFIX@" value="${suffix}"/>
<replace file="${dst.remote.conf}" token="@LDAP_HOST@" value="${ldap.host}"/>
<replace file="${dst.remote.conf}" token="@LDAP_PORT@" value="${ldap.port}"/>
<replace file="${dst.remote.conf}" token="@ROOT_DN@" value="${root.dn}"/>
<replace file="${dst.remote.conf}" token="@CFG_ROOT_PW@" value="${cfg.root.pw}"/>
<replace file="${dst.remote.conf}" token="@ADM_MIN_CONN@" value="${admin.min.conn}"/>
<replace file="${dst.remote.conf}" token="@ADM_MAX_CONN@" value="${admin.max.conn}"/>
<replace file="${dst.remote.conf}" token="@CFG_CRYPTO_PROP@" value="${crypto.prop}"/>
<!-- Break up the install binary packages by platform: -->
<zip destfile="${fortressSentry.zip}">
<zipfileset dir="${dist.dir}" prefix="doc">
<include name="fortressSentryDoc*.zip"/>
</zipfileset>
<zipfileset dir="${dist.dir}" prefix="src">
<include name="fortressSentrySrc*.zip"/>
</zipfileset>
<zipfileset dir="${dist.dir}" prefix="proxy">
<include name="fortressTomcatSentry*.jar"/>
<include name="fortressTomcat7Sentry*.jar"/>
</zipfileset>
<zipfileset dir="${lib.dir}" prefix="lib" excludes="ws_runtime*,*catalina*,websphere*">
<include name="*.jar"/>
</zipfileset>
<zipfileset dir="${dist.dir}" prefix="lib">
<include name="fortress*.jar"/>
<exclude name="fortressTomcatSentry*.jar"/>
<exclude name="fortressTomcat7Sentry*.jar"/>
</zipfileset>
<zipfileset dir="${config.dir}" prefix="conf">
<include name="*.xml"/>
<include name="*.properties"/>
</zipfileset>
<zipfileset dir='${basedir}'>
<include name="*.txt"/>
<exclude name="WEBSPHERE*"/>
</zipfileset>
</zip>
<antcall target="builder"></antcall>
</target>
<!-- =================================
create Fortress Sentry Builder distribution package
================================= -->
<target name="builder" depends="init" description="--> create the Sentry Builder distribution package">
<echo message="############### Create Sentry package named: ${fortressSentryBuilder.zip} ###############"/>
<zip destfile="${fortressSentryBuilder.zip}"
update="true">
<zipfileset dir="${src.dir}" prefix="sentry-${version}/src">
<include name="*/**"/>
<exclude name="*.iml"/>
</zipfileset>
<zipfileset dir="${basedir}" prefix="sentry-${version}">
<include name="*.xml"/>
<include name="*.txt"/>
<include name="*.properties"/>
<include name="*.sh"/>
<include name="*.bat"/>
<include name="*.html"/>
<exclude name="*.log"/>
<exclude name="build.sh"/>
<exclude name="READ-ME.txt"/>
</zipfileset>
<zipfileset dir="${config.dir}" prefix="sentry-${version}/conf">
<include name="*/**"/>
</zipfileset>
</zip>
</target>
<!-- =================================
Deploy Sentry to Tomcat server
================================= -->
<target name="deploy-tomcat" depends="build" description="Deploy the security realm to Tomcat">
<antcall target="deploy-tomcat-nix"></antcall>
<antcall target="deploy-tomcat-win"></antcall>
</target>
<!-- =================================
Deploy Sentry to Tomcat server to Unix
================================= -->
<target name="deploy-tomcat-nix" depends="build" description="Deploy the security realm to Tomcat on Unix"
unless="windows">
<property name="src.catalina.sh" value="${tomcat.dir}/bin/catalina.sh.src"/>
<property name="dst.catalina.sh" value="${tomcat.dir}/bin/catalina.sh"/>
<property name="src.server.xml" value="${tomcat.dir}/conf/server.xml.src"/>
<property name="dst.server.xml" value="${tomcat.dir}/conf/server.xml"/>
<echo message="############### Deploy the Tomcat Security Realm to Unix ###############"/>
<delete file="${dst.catalina.sh}"/>
<copyfile src="${src.catalina.sh}" dest="${dst.catalina.sh}"/>
<replace file="${dst.catalina.sh}" token="@JAVA_HOME@" value="${java.home}"/>
<delete file="${dst.server.xml}"/>
<copyfile src="${src.server.xml}" dest="${dst.server.xml}"/>
<replace file="${dst.server.xml}" token="@FORTRESS-SENTRY-REALM@" value="${tomcat-realm.conf}"/>
<copyfile src="${fortressTomcat7Sentry.jar}" dest="${dst.server.xml}"/>
<copy todir="${tomcat.dir}/lib" file="${fortressTomcat7Sentry.jar}"/>
</target>
<!-- =================================
Deploy Sentry to Tomcat server to Windows
================================= -->
<target name="deploy-tomcat-win" depends="build" description="Deploy the security realm to Tomcat on Windows"
if="windows">
<property name="src.catalina.bat" value="${tomcat.dir}\bin\catalina.bat.src"/>
<property name="dst.catalina.bat" value="${tomcat.dir}\bin\catalina.bat"/>
<property name="src.server.xml" value="${tomcat.dir}\conf\server.xml.src"/>
<property name="dst.server.xml" value="${tomcat.dir}\conf\server.xml"/>
<echo message="############### Deploy the Tomcat Security Realm to Windows ###############"/>
<delete file="${dst.catalina.bat}"/>
<copyfile src="${src.catalina.bat}" dest="${dst.catalina.bat}"/>
<replace file="${dst.catalina.bat}" token="@JAVA_HOME@" value="${java.home}"/>
<delete file="${dst.server.xml}"/>
<copyfile src="${src.server.xml}" dest="${dst.server.xml}"/>
<replace file="${dst.server.xml}" token="@FORTRESS-SENTRY-REALM@" value="${tomcat-realm.conf}"/>
<copyfile src="${fortressTomcat7Sentry.jar}" dest="${dst.server.xml}"/>
<copy todir="${tomcat.dir}/lib" file="${fortressTomcat7Sentry.jar}"/>
</target>
<!-- =================================
call the target to start the Tomcat server
================================= -->
<target name="start-tomcat" depends="init" description="--> start the Tomcat server">
<antcall target="start-tomcat-nix"></antcall>
<antcall target="start-tomcat-win"></antcall>
</target>
<!-- =================================
Call the Unix Tomcat script to startup
================================= -->
<target name="start-tomcat-nix" depends="init" unless="windows">
<echo message="############### Start the tomcat process on Unix ###############"/>
<property name="startup.sh" value="${tomcat.dir}/bin/startup.sh"/>
<chmod dir="${tomcat.dir}" perm="a+x" includes="**/*.sh"/>
<exec dir="." executable="/bin/sh">
<arg line="${startup.sh}"/>
</exec>
</target>
<!-- =================================
Call the Win Tomcat script to startup
================================= -->
<target name="start-tomcat-win" depends="init" if="windows">
<echo message="############### Start the tomcat process on win ###############"/>
<property name="dst.start.tomcat-script-win" value="${user.dir}/${tomcat.dir}/bin/startup.bat"/>
<exec command="cmd.exe" spawn="false" osfamily="windows" dir="${user.dir}/${tomcat.dir}/bin">
<arg value="/${fortress.home.drive}"/>
<arg value="${dst.start.tomcat-script-win}"/>
</exec>
</target>
<!-- =================================
call the target to stop the Tomcat server
================================= -->
<target name="stop-tomcat" depends="init" description="--> stop the Tomcat server">
<antcall target="stop-tomcat-win"></antcall>
<antcall target="stop-tomcat-nix"></antcall>
</target>
<!-- =================================
Call the unix Tomcat script to shutdown
================================= -->
<target name="stop-tomcat-nix" depends="init" unless="windows">
<echo message="############### Stop the tomcat process on nix ###############"/>
<property name="shutdown.sh" value="${tomcat.dir}/bin/shutdown.sh"/>
<exec dir="." executable="/bin/sh">
<arg line="${shutdown.sh}"/>
</exec>
</target>
<!-- =================================
Call the Win Tomcat script to shutdown
================================= -->
<target name="stop-tomcat-win" depends="init" if="windows">
<echo message="############### Stop the tomcat process on win ###############"/>
<property name="shutdown.bat" value="${user.dir}/${tomcat.dir}/bin/shutdown.bat"/>
<exec command="cmd.exe" spawn="false" osfamily="windows" dir="${user.dir}/${tomcat.dir}/bin">
<arg value="/${fortress.home.drive}"/>
<arg value="${shutdown.bat}"/>
</exec>
</target>
<!-- =================================
Deploy snapshot to remote Maven repository
================================= -->
<target name="deploy" depends="dist" description="deploy snapshot version to Maven snapshot repository">
<artifact:mvn>
<arg value="org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy-file"/>
<arg value="-Durl=${maven-snapshots-repository-url}"/>
<arg value="-DrepositoryId=${maven-snapshots-repository-id}"/>
<arg value="-DpomFile=pom.xml"/>
<arg value="-Dfile=${maven-jar}"/>
</artifact:mvn>
</target>
<!-- =================================
Update project version (both build.xml and pom.xml) from SNAPSHOT to RELEASE
================================= -->
<target name="stage" depends="dist" description="deploy release version to Maven staging repository">
<!-- sign and deploy the main artifact -->
<artifact:mvn>
<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
<arg value="-Durl=${maven-staging-repository-url}"/>
<arg value="-DrepositoryId=${maven-staging-repository-id}"/>
<arg value="-DpomFile=pom.xml"/>
<arg value="-Dfile=${maven-jar}"/>
<arg value="-Pgpg"/>
</artifact:mvn>
<!-- sign and deploy the sources artifact -->
<artifact:mvn>
<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
<arg value="-Durl=${maven-staging-repository-url}"/>
<arg value="-DrepositoryId=${maven-staging-repository-id}"/>
<arg value="-DpomFile=pom.xml"/>
<arg value="-Dfile=${maven-sources-jar}"/>
<arg value="-Dclassifier=sources"/>
<arg value="-Pgpg"/>
</artifact:mvn>
<!-- sign and deploy the javadoc artifact -->
<artifact:mvn>
<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file"/>
<arg value="-Durl=${maven-staging-repository-url}"/>
<arg value="-DrepositoryId=${maven-staging-repository-id}"/>
<arg value="-DpomFile=pom.xml"/>
<arg value="-Dfile=${maven-javadoc-jar}"/>
<arg value="-Dclassifier=javadoc"/>
<arg value="-Pgpg"/>
</artifact:mvn>
</target>
</project>