<!-- | |
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="<small>Copyright &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> |