| <!-- |
| Copyright (C) 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"> |
| |
| <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 Websphere"/> |
| <property name="name" value="fortressSentry"/> |
| <property name="version" value="1.0-RC18"/> |
| <property name="title" value="Fortress Java Sentry Websphere ${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="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="fortressUserRegistry.jar" value="${dist.dir}/fortressProxyWebSphere-${version}.jar"/> |
| <property name="fortressSentry.jar" value="${dist.dir}/fortressSentry-${version}.jar"/> |
| <property name="fortressSentry.zip" value="${dist.dir}/fortressSentryWebsphereDist-${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="config.dir" value="${basedir}/conf"/> |
| <!-- Dependent LIBs, not in maven --> |
| <property name="fortress.jar" value="${lib.dir}/fortress-${version}.jar"/> |
| <property name="ws_runtime.jar" value="${lib.dir}/ws_runtime.jar"/> |
| <!-- Dependent LIBs in maven --> |
| <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}"/> |
| <pathelement location="${ws_runtime.jar}"/> |
| <!--pathelement location="${websphere.jar}"/--> |
| </path> |
| |
| <path id="build.proxy.tc7.class.path"> |
| <!-- J2EE JARs --> |
| <pathelement location="${catalina7.jar}"/> |
| <pathelement location="${ws_runtime.jar}"/> |
| </path> |
| |
| <path id="build.impl.class.path"> |
| <!-- J2EE JARs --> |
| <pathelement location="${catalina.jar}"/> |
| <pathelement location="${ws_runtime.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="${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> |
| |
| </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"> |
| <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"/> |
| <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"/> |
| <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}"> |
| <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-wsproxy" depends="compile-proxy"> |
| <mkdir dir="${dist.dir}"/> |
| <fortressSentry.jar destfile="${fortressUserRegistry.jar}"> |
| <fileset dir="${build.classes.proxy.dir}"> |
| <include name="us/jts/sentry/websphere/**"/> |
| <include name="us/jts/sentry/util/**"/> |
| </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" depends="clean,build-jar-tcproxy,build-jar-tc7proxy,build-jar-wsproxy,build-jar-impl, build-jar-distro,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"/> |
| <copy todir="${dist.dir}" file="${basedir}/WEBSPHERE-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"/> |
| <include name="fortressUserRegistry*.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"/> |
| <exclude name="fortressUserRegistry*.jar"/> |
| </zipfileset> |
| <zipfileset dir="${config.dir}" prefix="conf"> |
| <include name="*.xml"/> |
| <include name="*.properties"/> |
| </zipfileset> |
| <zipfileset dir='${basedir}'> |
| <include name="*.txt"/> |
| </zipfileset> |
| </zip> |
| </target> |
| |
| |
| </project> |