| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you 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="fortress-core" default="build" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> |
| <!-- ================================= |
| initialize all Fortress Core package properties |
| ================================= --> |
| <target name="init"> |
| <tstamp/> |
| <!-- read user defined properties from the build.properties --> |
| <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}"/> |
| |
| <!-- ########### Project specific properties ########################### --> |
| <property name="project.name" value="Fortress Identity Access Management SDK"/> |
| <property name="name" value="fortress"/> |
| <property name="ivy.install.version" value="2.2.0"/> |
| <property name="title" value="Fortress Identity and Access Management SDK for Java ${version}"/> |
| <property name="title.samples" value="Fortress Identity and Access Management Samples for Java ${version}"/> |
| <property name="vendor" value="Joshua Tree Software"/> |
| <property name="package" value="org.apache.directory.fortress.*"/> |
| <property name="package.samples" value="org.apache.directory.fortress.core.samples"/> |
| <property name="images.dir" value="${basedir}/images"/> |
| |
| <!-- ########### Env specific properties ########################### --> |
| <property name="src.dir" value="${basedir}/src"/> |
| <property name="lib.dir" value="${basedir}/lib"/> |
| <property name="src.java.dir" value="${src.dir}/main/java"/> |
| <property name="src.test.dir" value="${src.dir}/test/java"/> |
| <property name="src.test.resources.dir" value="${src.dir}/test/resources"/> |
| |
| <!-- ########### Build properties & artifacts ########################### --> |
| <property name="build.dir" value="${basedir}/build"/> |
| <property name="build.classes.dir" value="${build.dir}/classes"/> |
| <property name="build.test-classes.dir" value="${build.dir}/test-classes"/> |
| <property name="dist.dir" value="${basedir}/dist"/> |
| <property name="dist.jar" value="${dist.dir}/${name}-${version}.jar"/> |
| <property name="dist.test.jar" value="${dist.dir}/${name}-${version}-test.jar"/> |
| <property name="src.dist.zip" value="${dist.dir}/${name}-${version}-sources.jar"/> |
| <property name="src.test.dist.zip" value="${dist.dir}/${name}-${version}-sourcestest.jar"/> |
| <property name="src.samples.dist.zip" value="${dist.dir}/${name}SamplesSrc-${version}.zip"/> |
| <property name="samples.dist.zip" value="${dist.dir}/${name}Samples-${version}.zip"/> |
| <property name="fortressBuilder.zip" value="${dist.dir}/fortressBuilder-${platform}-${version}.zip"/> |
| |
| <!-- ########### LDAP properties ########################### --> |
| <property name="ldap.dir" value="${basedir}/ldap"/> |
| <property name="ldap.setup.dir" value="${ldap.dir}/setup"/> |
| <property name="ldap.schema.dir" value="${ldap.dir}/schema"/> |
| <property name="slapd.schema.dir" value="${slapd.dir}/schema"/> |
| <property name="src.slapd.ssl.keys.dir" value="${src.test.resources.dir}/certs"/> |
| <property name="dst.slapd.ssl.keys.dir" value="${openldap.root}/ssl"/> |
| |
| <!-- ########### Configuration, Load and builder properties ########################### --> |
| <property name="src.load.bootstrap.script" value="${ldap.setup.dir}/refreshLDAPData-src.xml"/> |
| <property name="dst.load.bootstrap.script" value="${ldap.setup.dir}/refreshLDAPData.xml"/> |
| <property name="load.delegatedadmin.script" value="${ldap.setup.dir}/DelegatedAdminManagerLoad.xml"/> |
| <property name="load.demo.script" value="${ldap.setup.dir}/FortressDemoUsers.xml"/> |
| <property name="build.win.properties" value="${basedir}/build.win.properties"/> |
| <property name="build.nix.properties" value="${basedir}/build.nix.properties"/> |
| <property name="build.properties" value="${basedir}/build.properties"/> |
| <property name="config.dir" value="${basedir}/config"/> |
| <property name="config.bootstrap.dir" value="${config.dir}/bootstrap"/> |
| <property name="src.remote.conf" value="${config.dir}/fortress.properties.src"/> |
| <property name="dst.remote.conf" value="${config.dir}/fortress.properties"/> |
| <property name="src.bootstrap.conf" value="${config.bootstrap.dir}/fortress.properties.src"/> |
| <property name="dst.bootstrap.conf" value="${config.bootstrap.dir}/fortress.properties"/> |
| <property name="builder.bootstrap.conf" value="${builder.home}/config/bootstrap/fortress.properties"/> |
| <property name="builder.remote.conf" value="${builder.home}/config/fortress.properties"/> |
| <property name="builder.load.bootstrap.script" value="${builder.home}/ldap/refreshLDAPData-src.xml"/> |
| <property name="ehcache.conf" value="${config.dir}/ehcache.xml"/> |
| <property name="bootstrap.ehcache.conf" value="${config.bootstrap.dir}/ehcache.xml"/> |
| <property name="apacheds-resource.dir" value="${basedir}/src/test/resources"/> |
| |
| <!-- ########### Slapd manage & config properties ########################### --> |
| <property name="stop.slapd.script-win" value="${ldap.setup.dir}/stopSlapd.cmd"/> |
| <property name="src.start.slapd.script-win" value="${ldap.setup.dir}/startSlapd.cmd.src"/> |
| <property name="dst.start.slapd.script-win" value="${ldap.setup.dir}/startSlapd.cmd"/> |
| <property name="stop.slapd.script" value="${ldap.setup.dir}/stopSlapd.sh"/> |
| <property name="start.slapd.script" value="${ldap.setup.dir}/startSlapd.sh"/> |
| <property name="mkdir.slapd-win" value="${ldap.setup.dir}/mkDir.cmd"/> |
| <property name="uninstall.slapd.script" value="${ldap.setup.dir}/uninstall.sh"/> |
| <property name="install.slapd.script" value="${ldap.setup.dir}/install.sh"/> |
| <property name="source.symas.conf" value="${ldap.dir}/symas-openldap.conf.src"/> |
| <property name="target.symas.conf" value="${ldap.dir}/symas-openldap.conf"/> |
| <property name="dst.symas.conf" value="${slapd.dir}/symas-openldap.conf"/> |
| <property name="source.slapd.conf" value="${ldap.dir}/slapd.conf.src"/> |
| <property name="target.slapd.conf" value="${ldap.dir}/slapd.conf"/> |
| <property name="dst.slapd.conf" value="${slapd.dir}/slapd.conf"/> |
| <property name="source.fortress.schema" value="${ldap.schema.dir}/fortress.schema"/> |
| <property name="target.fortress.schema" value="${slapd.schema.dir}/fortress.schema"/> |
| <property name="source.rbac.schema" value="${ldap.schema.dir}/rbac.schema"/> |
| <property name="target.rbac.schema" value="${slapd.schema.dir}/rbac.schema"/> |
| <property name="db.cfg" value="${ldap.dir}/DB_CONFIG"/> |
| |
| <!-- ########### Sentry manage & config properties ########################### --> |
| <property name="sentry" value="sentry"/> |
| <property name="sentry.dir" value="${basedir}/${sentry}-${version}"/> |
| <property name="sentry.zip" value="${lib.dir}/${sentry}-${version}.jar"/> |
| |
| <!-- ########### EnMasse manage & config properties ########################### --> |
| <property name="enmasse" value="enmasse"/> |
| <property name="enmasse.dir" value="${basedir}/${enmasse}-${version}"/> |
| <property name="enmasse.zip" value="${basedir}/lib/${enmasse}-${version}.jar"/> |
| |
| <!-- ########### Commander manage & config properties ########################### --> |
| <property name="commander" value="commander"/> |
| <property name="commander.dir" value="${basedir}/${commander}-${version}"/> |
| <property name="commander.zip" value="${basedir}/lib/${commander}-${version}.jar"/> |
| |
| <!-- ########### Java compile switches ########################### --> |
| <property name="javac.optimize" value="false"/> |
| <property name="javac.debug" value="true"/> |
| <property name="javac.deprecation" value="true"/> |
| |
| <!-- ########### Javadoc properties ########################### --> |
| <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; 2003-2015, The Apache Software Foundation. All Rights Reserved. Generated ${TODAY}</small>"/> |
| <property name="javadoc.overview" value="${src.java.dir}/org/apache/directory/fortress/core/overview.html" /> |
| <property name="javadoc.dist.zip" value="${dist.dir}/${name}-${version}-javadoc.jar"/> |
| <property name="javadoc.stylesheet" value="/org/apache/directory/fortress/core/fortress-javadoc.css" /> |
| <property name="javadoc.samples.dir" value="${dist.dir}/docs/samples"/> |
| <property name="javadoc.samples.images.dir" value="${javadoc.samples.dir}/images"/> |
| <property name="javadoc.samples.dist.zip" value="${dist.dir}/${name}-${version}-javadocsamples.jar"/> |
| <property name="javadoc.samples.overview" value="${src.test.dir}/org/openldap/fortress/samples/overview.html" /> |
| |
| <!-- ########### Fortress Package Dependencies ########################### --> |
| <!-- |
| <property name="accelerator-api.jar" value="${lib.dir}/accelerator-api-${version}.jar"/> |
| <property name="accelerator-impl.jar" value="${lib.dir}/accelerator-impl-${version}.jar"/>--> |
| <property name="accelerator-api.jar" value="${lib.dir}/accelerator-api-1.0-RC40.jar"/> |
| <property name="accelerator-impl.jar" value="${lib.dir}/accelerator-impl-1.0-RC40.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-logging.jar" value="${lib.dir}/commons-logging-1.1.1.jar"/> |
| <property name="commons-io.jar" value="${lib.dir}/commons-io-2.4.jar"/> |
| <property name="cxf-common-utilities.jar" value="${lib.dir}/cxf-common-utilities-2.5.0.jar"/> |
| <property name="commons-codec.jar" value="${lib.dir}/commons-codec-1.2.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="junit.jar" value="${lib.dir}/junit-4.11.jar"/> |
| <property name="hamcrest-core.jar" value="${lib.dir}/hamcrest-core-1.3.jar"/> |
| <property name="jasypt.jar" value="${lib.dir}/jasypt-1.8.jar"/> |
| <property name="jaxb-api.jar" value="${lib.dir}/jaxb-api-2.2.6.jar"/> |
| <property name="jaxb-impl.jar" value="${lib.dir}/jaxb-impl-2.2.4-1.jar"/> |
| <property name="jaxb-xjc.jar" value="${lib.dir}/jaxb-xjc-2.2.4-1.jar"/> |
| <property name="jackson-jaxrs.jar" value="${lib.dir}/jackson-jaxrs-1.9.0.jar"/> |
| <property name="commons-httpclient.jar" value="${lib.dir}/commons-httpclient-3.1.jar"/> |
| <property name="jsr311-api.jar" value="${lib.dir}/jsr311-api-1.1.1.jar"/> |
| <property name="ehcache-core.jar" value="${lib.dir}/ehcache-core-2.6.9.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="slf4j-log4j.jar" value="${lib.dir}/slf4j-log4j12-1.7.5.jar"/> |
| <property name="apacheJMeter_core.jar" value="${lib.dir}/ApacheJMeter_core-2.11.jar"/> |
| <property name="apacheJMeter_java.jar" value="${lib.dir}/ApacheJMeter_java-2.11.jar"/> |
| <property name="apacheds-all.jar" value="${lib.dir}/apacheds-all-2.0.0-M19.jar"/> |
| <property name="apacheds-api-all.jar" value="${lib.dir}/api-all-1.0.0-M28.jar"/> |
| <!-- <property name="apacheds-api-all.jar" value="${lib.dir}/api-all-1.0.0-M25.jar"/>--> |
| <property name="mina-core.jar" value="${lib.dir}/mina-core-2.0.7.jar"/> |
| <property name="opencsv.jar" value="${lib.dir}/opencsv-2.3.jar"/> |
| |
| <!-- ########### Define classpaths ########################### --> |
| <path id="build.class.path"> |
| <pathelement location="${build.classes.dir}"/> |
| <pathelement location="${jgraph.jar}"/> |
| <pathelement location="${junit.jar}"/> |
| <pathelement location="${commons-config.jar}"/> |
| <pathelement location="${commons-lang.jar}"/> |
| <pathelement location="${commons-io.jar}"/> |
| <pathelement location="${jasypt.jar}"/> |
| <pathelement location="${jaxb-api.jar}"/> |
| <pathelement location="${jaxb-impl.jar}"/> |
| <pathelement location="${jaxb-xjc.jar}"/> |
| <pathelement location="${jackson-jaxrs.jar}"/> |
| <pathelement location="${commons-httpclient.jar}"/> |
| <pathelement location="${jsr311-api.jar}"/> |
| <pathelement location="${cxf-common-utilities.jar}"/> |
| <pathelement location="${ehcache-core.jar}"/> |
| <pathelement location="${mina-core.jar}"/> |
| <pathelement location="${accelerator-api.jar}"/> |
| <pathelement location="${accelerator-impl.jar}"/> |
| <pathelement location="${apacheds-api-all.jar}"/> |
| <pathelement location="${apacheds-all.jar}"/> |
| <pathelement location="${opencsv.jar}"/> |
| <pathelement location="${slf4j-api.jar}"/> |
| <pathelement location="${slf4j-log4j.jar}"/> |
| <pathelement location="${apacheJMeter_core.jar}"/> |
| <pathelement location="${apacheJMeter_java.jar}"/> |
| </path> |
| |
| <!-- This is used for the JUnit Tests --> |
| <path id="test.class.path"> |
| <path location="${config.dir}"/> |
| <path location="${apacheds-resource.dir}"/> |
| <pathelement location="${build.test-classes.dir}"/> |
| <pathelement location="${dist.jar}"/> |
| <pathelement location="${jgraph.jar}"/> |
| <pathelement location="${junit.jar}"/> |
| <pathelement location="${hamcrest-core.jar}"/> |
| <pathelement location="${log4j.jar}"/> |
| <pathelement location="${commons-config.jar}"/> |
| <pathelement location="${commons-lang.jar}"/> |
| <pathelement location="${commons-logging.jar}"/> |
| <pathelement location="${commons-collections.jar}"/> |
| <pathelement location="${commons-codec.jar}"/> |
| <pathelement location="${commons-io.jar}"/> |
| <pathelement location="${jasypt.jar}"/> |
| <pathelement location="${jackson-jaxrs.jar}"/> |
| <pathelement location="${commons-httpclient.jar}"/> |
| <pathelement location="${jsr311-api.jar}"/> |
| <pathelement location="${cxf-common-utilities.jar}"/> |
| <pathelement location="${jaxb-api.jar}"/> |
| <pathelement location="${jaxb-impl.jar}"/> |
| <pathelement location="${jaxb-xjc.jar}"/> |
| <pathelement location="${ehcache-core.jar}"/> |
| <pathelement location="${slf4j-api.jar}"/> |
| <pathelement location="${slf4j-jcl.jar}"/> |
| <pathelement location="${ant.home}/lib/ant.jar"/> |
| <pathelement location="${images.dir}"/> |
| <pathelement location="${accelerator-api.jar}"/> |
| <pathelement location="${accelerator-impl.jar}"/> |
| <!-- <pathelement location="${apacheds-api-all.jar}"/>--> |
| <pathelement location="${mina-core.jar}"/> |
| <pathelement location="${opencsv.jar}"/> |
| <pathelement location="${apacheJMeter_core.jar}"/> |
| <pathelement location="${apacheJMeter_java.jar}"/> |
| <pathelement location="${apacheds-api-all.jar}"/> |
| <pathelement location="${apacheds-all.jar}"/> |
| </path> |
| |
| <!-- This is used before the initial loads have stored properties on the ldap server. --> |
| <path id="bootstrap.class.path"> |
| <path location="${config.bootstrap.dir}"/> |
| <pathelement location="${build.classes.dir}"/> |
| <pathelement location="${jgraph.jar}"/> |
| <pathelement location="${junit.jar}"/> |
| <pathelement location="${log4j.jar}"/> |
| <pathelement location="${commons-config.jar}"/> |
| <pathelement location="${commons-lang.jar}"/> |
| <pathelement location="${commons-logging.jar}"/> |
| <pathelement location="${commons-collections.jar}"/> |
| <pathelement location="${jasypt.jar}"/> |
| <pathelement location="${ehcache-core.jar}"/> |
| </path> |
| |
| <!-- ########### Test properties ########################### --> |
| <property name="test.sample.entry" value="org.apache.directory.fortress.core.samples.AllSamplesJUnitTest"/> |
| <property name="test.regression.entry" value="org.apache.directory.fortress.core.rbac.FortressJUnitTest"/> |
| <property name="test.failonerror" value="false" /> |
| <property name="test.showoutput" value="yes" /> |
| |
| <!-- define Maven coordinates (publishing only) --> |
| <property name="groupId" value="org.apache.directory" /> |
| <property name="artifactId" value="fortress" /> |
| |
| <!-- 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="${dist.jar}" /> |
| <property name="maven-javadoc-jar" value="${javadoc.dist.zip}" /> |
| <property name="maven-sources-jar" value="${src.dist.zip}" /> |
| </target> |
| |
| <!-- ================================= |
| target: clean - Will remove old distribution packages from dist folder |
| ================================= --> |
| <target name="clean" depends="init" description="--> removes generated files"> |
| <delete dir="${build.dir}" /> |
| <delete dir="${dist.dir}" /> |
| </target> |
| |
| <!-- ================================= |
| target: compile the source |
| ================================= --> |
| <target name="compile" depends="init,resolve" description="--> compiles source files"> |
| <mkdir dir="${build.classes.dir}"/> |
| <javac srcdir="${src.java.dir}" |
| debug="${javac.debug}" |
| deprecation="${javac.deprecation}" |
| destdir="${build.classes.dir}"> |
| <classpath refid="build.class.path"/> |
| </javac> |
| </target> |
| |
| <!-- ================================= |
| target: compile the test source |
| ================================= --> |
| <target name="compile-test" depends="compile" description="--> compiles test source files"> |
| <mkdir dir="${build.test-classes.dir}"/> |
| <javac destdir="${build.test-classes.dir}" |
| srcdir="${src.test.dir}" |
| debug="${javac.debug}" |
| deprecation="${javac.deprecation}" |
| optimize="${javac.optimize}"> |
| <classpath refid="build.class.path"/> |
| </javac> |
| </target> |
| |
| <!-- ================================= |
| target: build-jar - create java archive (jar) files which contain the compiled classes |
| ================================= --> |
| <target name="build-jar" depends="compile" description="--> create the core classes"> |
| <mkdir dir="${dist.dir}"/> |
| <jar jarfile="${dist.jar}"> |
| <fileset dir="${build.classes.dir}"/> |
| <metainf dir="${basedir}" includes="LICENSE,NOTICE"/> |
| <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}"/> |
| <attribute name="Built-Date" value="${TODAY}"/> |
| </manifest> |
| </jar> |
| </target> |
| |
| <tstamp> |
| <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" /> |
| </tstamp> |
| |
| <!-- ================================= |
| target: build-jar-test - create jar containing compiled test classes |
| ================================= --> |
| <target name="build-jar-test" depends="compile-test" description="--> create the core test classes"> |
| <mkdir dir="${dist.dir}"/> |
| <jar jarfile="${dist.test.jar}"> |
| <fileset dir="${build.test-classes.dir}"/> |
| <metainf dir="${basedir}" includes="LICENSE,NOTICE"/> |
| <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> |
| </target> |
| |
| <!-- ================================= |
| target: create the javadoc based on source code |
| ================================= --> |
| <target name="javadoc" depends="init" description="--> generates javadocs"> |
| <mkdir dir="${javadoc.dir}"/> |
| <javadoc packagenames="${package}" |
| sourcepath="${src.java.dir}" |
| 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="test.class.path" |
| serialwarn="false"> |
| </javadoc> |
| </target> |
| |
| <!-- ================================= |
| target: create the javadoc based on source test code |
| ================================= --> |
| <target name="javadoc-samples" depends="init" description="--> generates samples javadocs"> |
| <mkdir dir="${javadoc.samples.dir}"/> |
| <javadoc packagenames="${package.samples}" |
| sourcepath="${src.test.dir}" |
| destdir="${javadoc.samples.dir}" |
| windowtitle="${title.samples}" |
| doctitle="${title.samples} " |
| bottom="${javadoc.bottom}" |
| overview="${javadoc.samples.overview}" |
| public="true" |
| version="true" |
| author="true" |
| splitindex="false" |
| nodeprecated="true" |
| nodeprecatedlist="true" |
| notree="true" |
| noindex="false" |
| nohelp="true" |
| nonavbar="false" |
| classpathref="test.class.path" |
| serialwarn="false"> |
| </javadoc> |
| </target> |
| |
| <!-- ================================= |
| target: build |
| ================================= --> |
| <target name="build" depends="clean,build-jar,build-jar-test,javadoc,javadoc-samples" description="--> create the core Fortress library"> |
| <copy todir="${dist.dir}" file="${basedir}/LICENSE"/> |
| <copy todir="${dist.dir}" file="${basedir}/LICENSE.cmdLineParser.txt"/> |
| <copy todir="${dist.dir}" file="${basedir}/LICENSE.slf4j.txt"/> |
| <copy todir="${dist.dir}" file="${basedir}/NOTICE"/> |
| </target> |
| |
| <!-- ================================= |
| target: dist - creates the 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="LICENSE"/> |
| <include name="LICENSE.cmdLineParser.txt"/> |
| <include name="LICENSE.slf4j.txt"/> |
| <include name="NOTICE"/> |
| </zipfileset> |
| </zip> |
| |
| <zip destfile='${src.test.dist.zip}'> |
| <zipfileset dir='${src.test.dir}'/> |
| |
| <zipfileset dir='${dist.dir}' prefix='META-INF'> |
| <include name="LICENSE"/> |
| <include name="LICENSE.cmdLineParser.txt"/> |
| <include name="LICENSE.slf4j.txt"/> |
| <include name="NOTICE"/> |
| </zipfileset> |
| </zip> |
| |
| <zip destfile="${javadoc.dist.zip}" basedir="${javadoc.dir}"> |
| <zipfileset dir='${dist.dir}' prefix='META-INF'> |
| <include name="LICENSE"/> |
| <include name="LICENSE.cmdLineParser.txt"/> |
| <include name="LICENSE.slf4j.txt"/> |
| <include name="NOTICE"/> |
| </zipfileset> |
| </zip> |
| |
| <zip destfile="${samples.dist.zip}" basedir="${src.test.dir}" includes="**/samples/*.java,build.xml"> |
| <zipfileset dir='${dist.dir}' prefix='META-INF'> |
| <include name="LICENSE"/> |
| <include name="NOTICE"/> |
| </zipfileset> |
| <zipfileset dir='${javadoc.samples.dir}'/> |
| </zip> |
| </target> |
| |
| <!-- ================================= |
| target: test-samples - runs junit programming samples tests |
| ================================= --> |
| <target name="test-samples" depends="compile-test,init-fortress-config" description="--> runs (junit) sample unit tests"> |
| <echo message="Run the Fortress programming sample JUnit tests..."/> |
| <junit fork="yes" haltonfailure="${test.failonerror}" showoutput="${test.showoutput}"> |
| <sysproperty key="tenant" value="${tenant}"/> |
| <sysproperty key="version" value="${version}"/> |
| <classpath refid="test.class.path"/> |
| <formatter type="plain" usefile="false"/> |
| <test name="${test.sample.entry}"/> |
| </junit> |
| </target> |
| |
| <!-- ================================= |
| target: test-full - runs junit regression tests |
| ================================= --> |
| <target name="test-full" depends="build-jar,compile-test,init-fortress-config" description="--> run junit FULL regression tests"> |
| <echo message="Run the Fortress regression JUnit tests. Be patient this can take a while to complete."/> |
| <junit fork="yes" haltonfailure="${test.failonerror}" showoutput="${test.showoutput}" maxmemory="1024m"> |
| <sysproperty key="isFirstJUnitRun" value="false" /> |
| <sysproperty key="version" value="${version}"/> |
| <sysproperty key="tenant" value="${tenant}"/> |
| <classpath refid="test.class.path"/> |
| <formatter type="plain" usefile="false"/> |
| <test name="${test.regression.entry}"/> |
| </junit> |
| </target> |
| |
| <!-- ================================= |
| target: test-apacheds - runs junit regression tests |
| ================================= --> |
| <target name="test-apacheds" depends="build-jar,compile-test,init-fortress-config" description="--> run ApacheDS junit FULL regression tests"> |
| <echo message="Run the Fortress regression JUnit tests. Be patient this can take a while to complete."/> |
| <junit fork="yes" haltonfailure="${test.failonerror}" showoutput="${test.showoutput}" maxmemory="1024m"> |
| <sysproperty key="version" value="${version}"/> |
| <sysproperty key="tenant" value="${tenant}"/> |
| <classpath refid="test.class.path"/> |
| <formatter type="plain" usefile="false"/> |
| <test name="org.apache.directory.fortress.core.rbac.apacheds.FortressJUnitApachedsTest"/> |
| </junit> |
| </target> |
| |
| <!-- ================================= |
| target: test-accel - runs accelerator junit unit tests |
| ================================= --> |
| <target name="test-accel" depends="build-jar,compile-test,init-fortress-config" description="--> run RBAC accelerator tests"> |
| <echo message="Run the RBAC accelerator JUnit tests."/> |
| <junit fork="yes" haltonfailure="${test.failonerror}" showoutput="${test.showoutput}" maxmemory="1024m"> |
| <sysproperty key="tenant" value="${tenant}"/> |
| <classpath refid="test.class.path"/> |
| <formatter type="plain" usefile="false"/> |
| <test name="org.apache.directory.fortress.core.rbac.accelerator.TestAccelerator"/> |
| </junit> |
| </target> |
| |
| <!-- ================================= |
| target: test-accel - runs accelerator junit regression tests |
| ================================= --> |
| <target name="test-accel-full" depends="build-jar,compile-test,init-fortress-config" description="--> run RBAC accelerator tests"> |
| <echo message="Run the RBAC accelerator JUnit tests."/> |
| <junit fork="yes" haltonfailure="${test.failonerror}" showoutput="${test.showoutput}" maxmemory="1024m"> |
| <sysproperty key="tenant" value="${tenant}"/> |
| <classpath refid="test.class.path"/> |
| <formatter type="plain" usefile="false"/> |
| <test name="org.apache.directory.fortress.core.rbac.AccelMgrImplTest"/> |
| </junit> |
| </target> |
| |
| <!-- ================================= |
| target: console - starts the Fortress Console app |
| ================================= --> |
| <target name="console" depends="build-jar,compile-test,init-fortress-config" description="--> start Fortress Console app"> |
| <echo message="Run the Fortress console app"/> |
| <java |
| classname="org.apache.directory.fortress.core.FortressConsole" |
| fork="false" |
| failonerror="true" |
| timeout="4000000" |
| > |
| <classpath refid="test.class.path"/> |
| <sysproperty key="version" value="${version}"/> |
| <sysproperty key="tenant" value="${tenant}"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| target: cli - starts the Fortress Command Line Interpreter |
| ================================= --> |
| <target name="cli" depends="build-jar,compile,init-fortress-config" description="--> start Fortress Command Line Interpreter"> |
| <echo message="Run the Fortress Command Line Interpreter"/> |
| <java |
| classname="org.apache.directory.fortress.core.cli.CommandLineInterpreter" |
| fork="false" |
| failonerror="true" |
| timeout="4000000" |
| > |
| <classpath refid="test.class.path"/> |
| <sysproperty key="version" value="${version}"/> |
| <sysproperty key="tenant" value="${tenant}"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| target: encrypt - allows users to encrypt values which are displayed to the standard output |
| ================================= --> |
| <target name="encrypt" depends="compile" description="--> encrypt -Dparam1=value : encrypts value from clear text to encrypted cypher string that is hex encoded"> |
| <echo message="Encrypt a value"/> |
| <java |
| classname="org.apache.directory.fortress.core.util.crypto.EncryptUtil" |
| fork="false" |
| failonerror="true" |
| timeout="4000000" |
| > |
| <classpath refid="bootstrap.class.path"/> |
| <arg value="${param1}"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| target: admin - runs the Ant demo load scripts |
| ================================= --> |
| <target name="admin" depends="init-fortress-config" description="--> admin -Dparam1=path/to/FileName.xml : to run fortress admin scripts at specified location"> |
| <echo message="############### Run Fortress Ant script param1: ${param1} tenant: ${tenant} version: ${version} ###############"/> |
| <java |
| classname="org.apache.tools.ant.launch.Launcher" |
| fork="true" |
| failonerror="true" |
| dir="${ldap.setup.dir}" |
| timeout="4000000" |
| taskname="startAnt"> |
| <classpath> |
| <pathelement location="${ant.home}/lib/ant-launcher.jar"/> |
| <path refid="bootstrap.class.path"/> |
| <path refid="test.class.path"/> |
| </classpath> |
| <sysproperty key="version" value="${version}"/> |
| <sysproperty key="tenant" value="${tenant}"/> |
| <arg value="-buildfile"/> |
| <arg file="${param1}"/> |
| <arg value="-Dbasedir=${ldap.setup.dir}"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| target: admin-debug - runs the Ant demo load scripts in debug mode |
| ================================= --> |
| <target name="admin-debug" depends="init-fortress-config" description="--> admin -Dparam1=path/to/FileName.xml : to run fortress admin scripts at specified location"> |
| <echo message="############### Run Fortress Ant script ${param1} ###############"/> |
| <java |
| classname="org.apache.tools.ant.launch.Launcher" |
| fork="true" |
| failonerror="true" |
| dir="${ldap.setup.dir}" |
| timeout="4000000" |
| taskname="startAnt"> |
| <classpath> |
| <pathelement location="${ant.home}/lib/ant-launcher.jar"/> |
| <path refid="bootstrap.class.path"/> |
| <path refid="test.class.path"/> |
| </classpath> |
| <sysproperty key="debug.admin" value="true"/> |
| <sysproperty key="version" value="${version}"/> |
| <sysproperty key="tenant" value="${tenant}"/> |
| <arg value="-buildfile"/> |
| <arg file="${param1}"/> |
| <arg value="-Dbasedir=${ldap.setup.dir}"/> |
| <jvmarg value="-Xdebug" /> |
| <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" /> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| target: init-openldap-config - modifies openldap artifacts for runtime use of fortress-core |
| ================================= --> |
| <target name="init-openldap-config" depends="init" description="--> map env params from build.properties to scripts and config files"> |
| <echo message="############### Modify slapd configuration per user settings ###############"/> |
| <delete file="${target.slapd.conf}" failonerror="false"/> |
| <copy file="${source.slapd.conf}" tofile="${target.slapd.conf}"/> |
| <replace file="${target.slapd.conf}" token="@SCHEMA_PATH@" value="${slapd.schema.dir}"/> |
| <replace file="${target.slapd.conf}" token="@SUFFIX@" value="${suffix}"/> |
| <replace file="${target.slapd.conf}" token="@PID_PATH@" value="${pid.dir}"/> |
| <replace file="${target.slapd.conf}" token="@HISTORY_DB_PATH@" value="${db.hist.dir}"/> |
| <replace file="${target.slapd.conf}" token="@DEFAULT_DB_PATH@" value="${db.dir}"/> |
| <replace file="${target.slapd.conf}" token="@SLAPD_MODULE_PATH@" value="${slapd.module.dir}"/> |
| <replace file="${target.slapd.conf}" token="@LOGOPS@" value="${log.ops}"/> |
| <replace file="${target.slapd.conf}" token="@ROOT_DN@" value="${root.dn}"/> |
| <replace file="${target.slapd.conf}" token="@ROOT_PW@" value="${root.pw}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_ROOT_DN@" value="${log.admin.user}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_ROOT_PW@" value="${log.root.pw}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_SUFFIX@" value="${log.suffix}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_DBNOSYNCH@" value="${log.dbnosynch}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_CHECKPOINT@" value="${log.checkpoint}"/> |
| <replace file="${target.slapd.conf}" token="@DFLT_DBNOSYNCH@" value="${dflt.dbnosynch}"/> |
| <replace file="${target.slapd.conf}" token="@DFLT_CHECKPOINT@" value="${dflt.checkpoint}"/> |
| <replace file="${target.slapd.conf}" token="@DB_MODULE_NM@" value="back_${db.type}.la"/> |
| <replace file="${target.slapd.conf}" token="@DB_TYPE@" value="${db.type}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_RDRS@" value="${log.rdrs}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_SIZE@" value="${log.size}"/> |
| <replace file="${target.slapd.conf}" token="@LOG_BDB_CACHE_SIZE@" value="${log.bdb.cache.size}"/> |
| <replace file="${target.slapd.conf}" token="@DFLT_RDRS@" value="${dflt.rdrs}"/> |
| <replace file="${target.slapd.conf}" token="@DFLT_SIZE@" value="${dflt.size}"/> |
| <replace file="${target.slapd.conf}" token="@DFLT_BDB_CACHE_SIZE@" value="${dflt.bdb.cache.size}"/> |
| <replace file="${target.slapd.conf}" token="@DFLT_BDB_CACHE_IDLE_SIZE@" value="${dflt.bdb.cache.idle.size}"/> |
| <replace file="${target.slapd.conf}" token="@POLICIES_DN@" value="${policies.dn}"/> |
| |
| <!-- setup the symas openldap slapd start/stop script --> |
| <delete file="${target.symas.conf}" failonerror="false"/> |
| <copy file="${source.symas.conf}" tofile="${target.symas.conf}"/> |
| <replace file="${target.symas.conf}" token="@LDAP_URIS@" value="${ldap.uris}"/> |
| |
| <antcall target="init-rbac-accelerator"></antcall> |
| <antcall target="init-slapd-ssl"></antcall> |
| |
| <echo message="Target init-all-config complete."/> |
| </target> |
| |
| <!-- ================================= |
| RBAC Accelerator Overlay Config |
| ================================= --> |
| <target name="init-rbac-accelerator" depends="init"> |
| <antcall target="enable-rbac-accelerator"></antcall> |
| <antcall target="disable-rbac-accelerator"></antcall> |
| </target> |
| |
| <!-- ================================= |
| Enable the RBAC Accelerator Overlay |
| ================================= --> |
| <target name="enable-rbac-accelerator" depends="init" if="rbac.accelerator"> |
| <echo message="############### Initialize the RBAC Accelerator Overlay"/> |
| <replace file="${target.slapd.conf}" token="@RBAC_MODULE@" value="${rbac.module}"/> |
| <replace file="${target.slapd.conf}" token="@DDS_MODULE@" value="${dds.module}"/> |
| <replace file="${target.slapd.conf}" token="@MONITOR_MODULE@" value="${monitor.module}"/> |
| <replace file="${target.slapd.conf}" token="@IS_RBAC_ACCELERATOR@" value=""/> |
| <replace file="${target.slapd.conf}" token="@USERS_DN@" value="${users.dn}"/> |
| <replace file="${target.slapd.conf}" token="@ROLES_DN@" value="${roles.dn}"/> |
| <replace file="${target.slapd.conf}" token="@PERMS_DN@" value="${perms.dn}"/> |
| <replace file="${target.slapd.conf}" token="@SUFFIX@" value="${suffix.dc}"/> |
| <replace file="${target.slapd.conf}" token="@SUFFIX_NAME@" value="${suffix.name}"/> |
| <replace file="${target.slapd.conf}" token="@RBACSESS_DB_PATH@" value="${db.sess.dir}"/> |
| <replace file="${target.slapd.conf}" token="@AUDIT_DB_PATH@" value="${db.audit.dir}"/> |
| <replace file="${target.slapd.conf}" token="@RBACOVERLAY_DB_PATH@" value="${db.rbac.dir}"/> |
| <replace file="${target.slapd.conf}" token="@RBAC_DN@" value="${rbac.dn}"/> |
| <replace file="${target.slapd.conf}" token="@SESSIONS_DN@" value="${sessions.dn}"/> |
| <replace file="${target.slapd.conf}" token="@AUDITS_DN@" value="${audit.dn}"/> |
| |
| <echo message="############### Backup old RBAC ACCEL OVERLAY LMDB audit folder ###############"/> |
| <move todir="${db.bak.audit.dir}/${TODAY}" failonerror="false"> |
| <fileset dir="${db.audit.dir}"/> |
| </move> |
| <echo message="############### Backup old RBAC ACCEL OVERLAY LMDB session folder ###############"/> |
| <move todir="${db.bak.sess.dir}/${TODAY}" failonerror="false"> |
| <fileset dir="${db.sess.dir}"/> |
| </move> |
| |
| <echo message="############### Create RBAC ACCEL OVERLAY session folder ###############"/> |
| <mkdir dir="${db.sess.dir}"/> |
| <echo message="############### Create RBAC ACCEL OVERLAY audit folder ###############"/> |
| <mkdir dir="${db.audit.dir}"/> |
| <echo message="############### Create RBAC ACCEL OVERLAY rbac folder ###############"/> |
| <mkdir dir="${db.rbac.dir}"/> |
| <antcall target="copy-rbac-libs"></antcall> |
| </target> |
| |
| <!-- ================================= |
| Disable RBAC Accelerator Overlay |
| ================================= --> |
| <target name="disable-rbac-accelerator" depends="init" unless="rbac.accelerator"> |
| <echo message="############### Disable the RBAC Accelerator Overlay"/> |
| <replace file="${target.slapd.conf}" token="@RBAC_MODULE@" value=""/> |
| <replace file="${target.slapd.conf}" token="@DDS_MODULE@" value=""/> |
| <replace file="${target.slapd.conf}" token="@MONITOR_MODULE@" value=""/> |
| <replace file="${target.slapd.conf}" token="@IS_RBAC_ACCELERATOR@" value="#"/> |
| </target> |
| |
| <!-- ================================= |
| OpenLDAP SSL Config |
| ================================= --> |
| <target name="init-slapd-ssl" depends="init"> |
| <antcall target="enable-slapd-ssl"></antcall> |
| <antcall target="disable-slapd-ssl"></antcall> |
| </target> |
| |
| <!-- ================================= |
| Enable OpenLDAP SSL |
| ================================= --> |
| <target name="enable-slapd-ssl" depends="init" if="enable.ldap.ssl"> |
| <echo message="############### Enable OpenLDAP SSL"/> |
| <antcall target="copy-ssl-keys"></antcall> |
| <replace file="${target.slapd.conf}" token="@IS_SSL@" value=""/> |
| <replace file="${target.slapd.conf}" token="@CA_CERT_FILEW@" value="${dst.slapd.ssl.keys.dir}/${tls.ca.cert.file}"/> |
| <replace file="${target.slapd.conf}" token="@CERT_FILEW@" value="${dst.slapd.ssl.keys.dir}/${tls.cert.file}"/> |
| <replace file="${target.slapd.conf}" token="@CERT_KEY_FILEW@" value="${dst.slapd.ssl.keys.dir}/${tls.key.file}"/> |
| </target> |
| |
| <!-- ================================= |
| Disable OpenLDAP SSL |
| ================================= --> |
| <target name="disable-slapd-ssl" depends="init" unless="enable.ldap.ssl"> |
| <echo message="############### Disable OpenLDAP SSL"/> |
| <replace file="${target.slapd.conf}" token="@IS_SSL@" value="#"/> |
| </target> |
| |
| <!-- ================================= |
| init slapd for windows |
| ================================= --> |
| <target name="init-slapd-win-script" depends="init" if="windows" description="--> creates a startup file for slapd on windows"> |
| <echo message="############### Create slapd startup script for windows ###############"/> |
| <delete file="${dst.start.slapd.script-win}"/> |
| <copy file="${src.start.slapd.script-win}" tofile="${dst.start.slapd.script-win}"/> |
| <replace file="${dst.start.slapd.script-win}" token="@SLAPD_LOCATION@" value="${slapd.exe.location}"/> |
| <echo message="init-slapd-win-script."/> |
| </target> |
| |
| <!-- ================================= |
| initialize the config files |
| ================================= --> |
| <target name="init-fortress-config" depends="init"> |
| <echo message="Determine configuration requirements"/> |
| <antcall target="init-fortress-config-local"></antcall> |
| <antcall target="init-fortress-config-remote"></antcall> |
| </target> |
| |
| <!-- ================================= |
| target: init-fortress-config - uses configuration artifacts created by Fortress Builder in target system environment. |
| ================================= --> |
| <target name="init-fortress-config-remote" depends="init" description="--> uses external build.properties to create local script and config files.." if="builder.home"> |
| <echo message="############### Import fortress configuration from Builder directory ###############"/> |
| <copy file="${builder.bootstrap.conf}" tofile="${dst.bootstrap.conf}"/> |
| <copy file="${builder.remote.conf}" tofile="${dst.remote.conf}"/> |
| <copy file="${builder.load.bootstrap.script}" tofile="${dst.load.bootstrap.script}"/> |
| <echo message="############### Copy ehcache config to bootstrap config folder ###############"/> |
| <delete file="${bootstrap.ehcache.conf}"/> |
| <copy file="${ehcache.conf}" tofile="${bootstrap.ehcache.conf}"/> |
| <echo message="Target init-fortress-config-remote complete."/> |
| </target> |
| |
| <!-- ================================= |
| target: init-fortress-config - modifies fortress-core configuration artifacts for use of openldap in target system environment. |
| ================================= --> |
| <target name="init-fortress-config-local" depends="init" description="--> map env params from build.properties to scripts and config files.." unless="builder.home"> |
| <echo message="############### Modify fortress configuration per user settings ###############"/> |
| <delete file="${dst.bootstrap.conf}"/> |
| <delete file="${dst.remote.conf}"/> |
| |
| <copy file="${src.bootstrap.conf}" tofile="${dst.bootstrap.conf}"/> |
| <replace file="${dst.bootstrap.conf}" token="@SUFFIX@" value="${suffix}"/> |
| <replace file="${dst.bootstrap.conf}" token="@LDAP_HOST@" value="${ldap.host}"/> |
| <replace file="${dst.bootstrap.conf}" token="@LDAP_PORT@" value="${ldap.port}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ROOT_DN@" value="${root.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@CFG_ROOT_PW@" value="${cfg.root.pw}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ADM_MIN_CONN@" value="${admin.min.conn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ADM_MAX_CONN@" value="${admin.max.conn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@LOG_ROOT_DN@" value="${log.admin.user}"/> |
| <replace file="${dst.bootstrap.conf}" token="@CFG_LOG_ROOT_PW@" value="${log.admin.pw}"/> |
| <replace file="${dst.bootstrap.conf}" token="@LOG_MIN_CONN@" value="${min.log.conn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@LOG_MAX_CONN@" value="${max.log.conn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@USR_MIN_CONN@" value="${user.min.conn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@USR_MAX_CONN@" value="${user.max.conn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@CFG_CRYPTO_PROP@" value="${crypto.prop}"/> |
| <replace file="${dst.bootstrap.conf}" token="@SERVER_TYPE@" value="${ldap.server.type}"/> |
| <replace file="${dst.bootstrap.conf}" token="@LDAP_CLIENT_TYPE@" value="${ldap.client.type}"/> |
| <replace file="${dst.bootstrap.conf}" token="@USERS_DN@" value="${users.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ROLES_DN@" value="${roles.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@POLICIES_DN@" value="${policies.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@PERMS_DN@" value="${perms.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@CONSTRAINTS_DN@" value="${constraints.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@USEROUS_DN@" value="${userous.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@PERMOUS_DN@" value="${permous.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ADMINROLES_DN@" value="${adminroles.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ADMINPERMS_DN@" value="${adminperms.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@AUDITS_DN@" value="${audits.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@GROUPS_DN@" value="${groups.dn}"/> |
| <replace file="${dst.bootstrap.conf}" token="@GROUP_OBJECT_CLASS@" value="${group.objectclass}"/> |
| <replace file="${dst.bootstrap.conf}" token="@GROUP_PROTOCOL@" value="${group.protocol}"/> |
| <replace file="${dst.bootstrap.conf}" token="@GROUP_PROPERTIES@" value="${group.properties}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ENABLE_LDAP_SSL@" value="${enable.ldap.ssl}"/> |
| <replace file="${dst.bootstrap.conf}" token="@ENABLE_LDAP_SSL_DEBUG@" value="${enable.ldap.ssl.debug}"/> |
| <replace file="${dst.bootstrap.conf}" token="@TRUST_STORE@" value="${trust.store}"/> |
| <replace file="${dst.bootstrap.conf}" token="@TRUST_STORE_PW@" value="${trust.store.password}"/> |
| <replace file="${dst.bootstrap.conf}" token="@TRUST_STORE_SET_PROPW@" value="${trust.store.set.prop}"/> |
| |
| <copy file="${src.remote.conf}" tofile="${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="@LOG_ROOT_DN@" value="${log.admin.user}"/> |
| <replace file="${dst.remote.conf}" token="@CFG_LOG_ROOT_PW@" value="${log.admin.pw}"/> |
| |
| <replace file="${dst.remote.conf}" token="@LOG_MIN_CONN@" value="${min.log.conn}"/> |
| <replace file="${dst.remote.conf}" token="@LOG_MAX_CONN@" value="${max.log.conn}"/> |
| <replace file="${dst.remote.conf}" token="@USR_MIN_CONN@" value="${user.min.conn}"/> |
| <replace file="${dst.remote.conf}" token="@USR_MAX_CONN@" value="${user.max.conn}"/> |
| <replace file="${dst.remote.conf}" token="@CFG_CRYPTO_PROP@" value="${crypto.prop}"/> |
| <replace file="${dst.remote.conf}" token="@ENABLE_REST@" value="${enable.mgr.impl.rest}"/> |
| <replace file="${dst.remote.conf}" token="@REST_HTTP_USER@" value="${http.user}"/> |
| <replace file="${dst.remote.conf}" token="@REST_HTTP_PW@" value="${http.pw}"/> |
| <replace file="${dst.remote.conf}" token="@REST_HTTP_HOST@" value="${http.host}"/> |
| <replace file="${dst.remote.conf}" token="@REST_HTTP_PORT@" value="${http.port}"/> |
| <replace file="${dst.remote.conf}" token="@LDAP_CLIENT_TYPE@" value="${ldap.client.type}"/> |
| <replace file="${dst.remote.conf}" token="@ENABLE_LDAP_SSL@" value="${enable.ldap.ssl}"/> |
| <replace file="${dst.remote.conf}" token="@ENABLE_LDAP_SSL_DEBUG@" value="${enable.ldap.ssl.debug}"/> |
| <replace file="${dst.remote.conf}" token="@TRUST_STORE@" value="${trust.store}"/> |
| <replace file="${dst.remote.conf}" token="@TRUST_STORE_PW@" value="${trust.store.password}"/> |
| <replace file="${dst.remote.conf}" token="@TRUST_STORE_SET_PROPW@" value="${trust.store.set.prop}"/> |
| <replace file="${dst.remote.conf}" token="@KEY_STORE@" value="${key.store}"/> |
| <replace file="${dst.remote.conf}" token="@KEY_STORE_PW@" value="${key.store.password}"/> |
| |
| |
| <echo message="############### Modify fortress load scripts per user settings ###############"/> |
| <delete file="${dst.load.bootstrap.script}"/> |
| <copy file="${src.load.bootstrap.script}" tofile="${dst.load.bootstrap.script}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@SUFFIX_NAME@" value="${suffix.name}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@SUFFIX_DC@" value="${suffix.dc}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@SUFFIX_DC2@" value="${suffix.dc2}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@SUFFIX@" value="${suffix}"/> |
| |
| <replace file="${dst.load.bootstrap.script}" token="@SERVER_TYPE@" value="${ldap.server.type}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@USERS_DN@" value="${users.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@GROUPS_DN@" value="${groups.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@ROLES_DN@" value="${roles.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@POLICIES_DN@" value="${policies.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@PERMS_DN@" value="${perms.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@CONSTRAINTS_DN@" value="${constraints.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@USEROUS_DN@" value="${userous.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@PERMOUS_DN@" value="${permous.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@ADMINROLES_DN@" value="${adminroles.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@ADMINPERMS_DN@" value="${adminperms.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@AUDITS_DN@" value="${audits.dn}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@GROUP_OBJECT_CLASS@" value="${group.objectclass}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@GROUP_PROTOCOL@" value="${group.protocol}"/> |
| <replace file="${dst.load.bootstrap.script}" token="@GROUP_PROPERTIES@" value="${group.properties}"/> |
| <echo message="############### Copy ehcache config to bootstrap config folder ###############"/> |
| <delete file="${bootstrap.ehcache.conf}"/> |
| <copy file="${ehcache.conf}" tofile="${bootstrap.ehcache.conf}"/> |
| |
| <echo message="Target init-fortress-config-local complete."/> |
| </target> |
| |
| <!-- ================================= |
| target: init-all-config - configures openldap, fortress and the the base load scripts for ldap Directory Information Tree (DIT) |
| ================================= --> |
| <target name="init-all-config" depends="init" description="--> map env params from build.properties to scripts and config files"> |
| <antcall target="init-openldap-config"></antcall> |
| <antcall target="init-fortress-config"></antcall> |
| <echo message="Target init-all-config complete."/> |
| </target> |
| |
| <!-- ================================= |
| target: load-slapd - seeds openldap and base loads for test/use. |
| ================================= --> |
| <target name="load-slapd" depends="build-jar" description="--> task runs ant admin scripts to refresh fortress boostrap data"> |
| <echo message="############### Initialize OpenLDAP ###############"/> |
| |
| <echo message="Load the Fortress bootstrap config and demo users"/> |
| <antcall target="admin"> |
| <param name="param1" value="${dst.load.bootstrap.script}"/> |
| </antcall> |
| <antcall target="admin"> |
| <param name="param1" value="${load.delegatedadmin.script}"/> |
| </antcall> |
| <antcall target="admin"> |
| <param name="param1" value="${load.demo.script}"/> |
| </antcall> |
| <echo message="Target load-slapd complete."/> |
| </target> |
| |
| <!-- ================================= |
| target: use-slapd - configures fortress to work with an existing OpenLDAP system. |
| ================================= --> |
| <target name="use-slapd" depends="build-jar" description="--> task refreshes fortress config and reloads slapd data"> |
| <echo message="############### Use OpenLDAP ###############"/> |
| <antcall target="init-fortress-config"></antcall> |
| <antcall target="load-slapd"></antcall> |
| <echo message="Target use-slapd complete."/> |
| </target> |
| |
| <!-- ================================= |
| target: init-slapd - Performs the following functions: |
| |
| 1. Initializes the Fortress runtime config |
| 2. Installs OpenLDAP directory server to the local machine |
| 3. Loads seed data into directory server. |
| |
| WARNING: Use caution running this target. |
| |
| It backs up the folder containing current LMDB database (pointed to by ${db.dir}) and creates a new/empty database folder. |
| |
| This operation can be manually reversed by moving the saved DB folder (pointed to by ${db.hist.dir}) back to original location (again ${db.dir}). |
| |
| This operation is for creating new or reinitializing existing OpenLdap instances back to origin and should NEVER be run against an LDAP server in prod env. |
| |
| Do NOT run this Ant target on a production LDAP instance !! |
| ================================= --> |
| <target name="init-slapd" depends="build-jar" description="--> task recreates openldap system and must be run as elevated priv's to teardown/create slapd files and folders"> |
| <echo message="############### Initialize OpenLDAP ###############"/> |
| |
| <echo message="############### Stop slapd process ###############"/> |
| <antcall target="stop-slapd"></antcall> |
| <antcall target="uninstall-slapd"></antcall> |
| |
| <echo message="############### Backup the slpad bdb folders ###############"/> |
| <!-- Backup the OpenLDAP access log db folder --> |
| <move todir="${db.bak.hist.dir}/${TODAY}" failonerror="false"> |
| <fileset dir="${db.hist.dir}"/> |
| </move> |
| <!-- Backup the OpenLDAP db folder --> |
| <move todir="${db.bak.dir}/${TODAY}" failonerror="false"> |
| <fileset dir="${db.dir}"/> |
| </move> |
| |
| <antcall target="install-slapd"></antcall> |
| |
| <echo message="############### Create new slapd bdb folders ###############"/> |
| <mkdir dir="${db.dir}"/> |
| <mkdir dir="${db.hist.dir}"/> |
| <copy todir="${db.dir}" file="${db.cfg}"/> |
| <copy todir="${db.hist.dir}" file="${db.cfg}"/> |
| |
| <echo message="############### Backup slapd configuration and Fortress LDAP schema ###############"/> |
| <move file="${dst.slapd.conf}" tofile="${dst.slapd.conf}.bak.${TODAY}" failonerror="false" /> |
| <move file="${dst.symas.conf}" tofile="${dst.symas.conf}.bak.${TODAY}" failonerror="false" /> |
| <move file="${target.fortress.schema}" tofile="${target.fortress.schema}.${TODAY}" failonerror="false" /> |
| <move file="${target.rbac.schema}" tofile="${target.rbac.schema}.${TODAY}" failonerror="false" /> |
| |
| <echo message="############### Setup meta config and base load scripts for openldap and fortress ###############"/> |
| <antcall target="init-all-config"></antcall> |
| |
| <echo message="############### Copy slapd configuration and Fortress LDAP schema files from source ###############"/> |
| <copy todir="${slapd.schema.dir}" file="${source.fortress.schema}"/> |
| <copy todir="${slapd.schema.dir}" file="${source.rbac.schema}"/> |
| <copy todir="${slapd.dir}" file="${target.slapd.conf}"/> |
| <copy todir="${slapd.dir}" file="${target.symas.conf}"/> |
| |
| <antcall target="copy-access-libs"></antcall> |
| <antcall target="init-slapd-win-script"></antcall> |
| <antcall target="start-slapd"></antcall> |
| <antcall target="load-slapd"></antcall> |
| <echo message="Target init-slapd complete."/> |
| </target> |
| |
| <!-- ================================= |
| perform test configurations |
| ================================= --> |
| <target name="test-config" depends="init"> |
| <echo message="############### Test Config Steps"/> |
| <echo message="############### Setup meta config and base load scripts for openldap and fortress ###############"/> |
| <antcall target="init-all-config"></antcall> |
| |
| <echo message="############### Copy slapd configuration and Fortress LDAP schema files from source ###############"/> |
| <copy todir="${slapd.schema.dir}" file="${source.fortress.schema}"/> |
| <copy todir="${slapd.dir}" file="${target.slapd.conf}"/> |
| |
| <antcall target="copy-access-libs"></antcall> |
| <antcall target="init-slapd-win-script"></antcall> |
| </target> |
| |
| <!-- ================================= |
| copy the slapd access log libs from install to bin folder |
| ================================= --> |
| <target name="copy-access-libs" depends="init" > |
| <echo message="############### Copy access log libs ${openldap.install.artifact.dir} to openldap lib folder ${slapd.module.dir}"/> |
| <copy todir="${slapd.module.dir}" failonerror="false"> |
| <fileset dir="${openldap.install.artifact.dir}"> |
| <include name="**/accesslog*"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <!-- ================================= |
| copy the slapd rbac accelerator overlay libs from install to bin folder |
| ================================= --> |
| <target name="copy-rbac-libs" depends="init" > |
| <echo message="############### Copy rbac libs ${openldap.install.artifact.dir} to openldap lib folder ${slapd.module.dir}"/> |
| <copy todir="${slapd.module.dir}" failonerror="false"> |
| <fileset dir="${openldap.install.artifact.dir}"> |
| <include name="**/rbac*"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <!-- ================================= |
| copy the slapd rbac accelerator overlay libs from install to bin folder |
| ================================= --> |
| <target name="copy-ssl-keys" depends="init" > |
| <echo message="############### Copy SSL keys from ${src.slapd.ssl.keys.dir} to ${dst.slapd.ssl.keys.dir}"/> |
| <copy todir="${dst.slapd.ssl.keys.dir}" failonerror="false"> |
| <fileset dir="${src.slapd.ssl.keys.dir}"> |
| <include name="*.pem"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <!-- ================================= |
| if windows system create slapd server folders |
| ================================= --> |
| <target name="mkdir-slapd-win" depends="init" if="windows"> |
| <echo message="############### Create the folder for windows slapd by running ${mkdir.slapd-win}"/> |
| <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${install.image.loc}"> |
| <arg value="/${fortress.home.drive}"/> |
| <arg value="${mkdir.slapd-win}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| call the target to uninstall slapd server |
| ================================= --> |
| <target name="uninstall-slapd" depends="init"> |
| <antcall target="uninstall-slapd-win"></antcall> |
| <antcall target="uninstall-slapd-nix"></antcall> |
| </target> |
| |
| <!-- ================================= |
| uninstall slapd from unix system |
| ================================= --> |
| <target name="uninstall-slapd-nix" depends="init" unless="windows"> |
| <echo message="############### Uninstall OpenLDAP binaries"/> |
| <exec dir="." executable="/bin/sh"> |
| <arg line="${uninstall.slapd.script}"/> |
| <arg value="${slapd.uninstall}"/> |
| <arg value="${sudo.pw}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| call the target to uninstall slapd from windows system |
| ================================= --> |
| <target name="uninstall-slapd-win" depends="init" if="windows"> |
| <antcall target="uninstall-slapd-win-if-present"></antcall> |
| </target> |
| |
| <!-- ================================= |
| if detect running windows uninstall slapd server from windows system. |
| ================================= --> |
| <target name="uninstall-slapd-win-if-present" depends="slapd.dir.check" if="slapd.dir.exists"> |
| <echo message="############### Uninstall OpenLDAP WIN binaries: from ${slapd.exe.location2}"/> |
| <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${slapd.exe.location2}" > |
| <arg value="/${fortress.home.drive}"/> |
| <arg value="${uninstall.image.exe}"/> |
| <arg value="/S"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| call the target to uninstall slapd server |
| ================================= --> |
| <target name="install-slapd" depends="init"> |
| <antcall target="install-slapd-win"></antcall> |
| <antcall target="install-slapd-nix"></antcall> |
| </target> |
| |
| <!-- ================================= |
| uninstall slapd from unix system |
| ================================= --> |
| <target name="install-slapd-nix" depends="init" unless="windows"> |
| <echo message="############### Install OpenLDAP binaries"/> |
| <exec dir="${openldap.install.artifact.dir}" executable="/bin/sh"> |
| <arg line="${install.slapd.script}"/> |
| <arg value="${slapd.install}"/> |
| <arg value="${sudo.pw}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| uninstall slapd from windows system |
| ================================= --> |
| <target name="install-slapd-win" depends="init" if="windows"> |
| <echo message="############### Install OpenLDAP WIN binaries to ${slapd.exe.location}"/> |
| <mkdir dir="${slapd.exe.location}"/> |
| <exec command="cmd.exe" spawn="false" osfamily="windows" dir="${install.image.loc}"> |
| <arg value="/${fortress.home.drive}"/> |
| <arg value="${install.image.exe}"/> |
| <arg value="/S"/> |
| <arg value="/D=${slapd.exe.location}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| call the target to start the slapd server |
| ================================= --> |
| <target name="start-slapd" depends="init" description="--> start the OpenLDAP server"> |
| <antcall target="start-slapd-win"></antcall> |
| <antcall target="start-slapd-nix"></antcall> |
| </target> |
| |
| <!-- ================================= |
| start the slapd server on unix system |
| ================================= --> |
| <target name="start-slapd-nix" depends="init" unless="windows"> |
| <echo message="############### Start the slapd process up ###############"/> |
| <exec dir="." executable="/bin/sh"> |
| <arg line="${start.slapd.script}"/> |
| <arg value="${slapd.start}"/> |
| <arg value="${sudo.pw}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| call the target to stop the slapd server |
| ================================= --> |
| <target name="stop-slapd" depends="init" description="--> stop the OpenLDAP server"> |
| <antcall target="stop-slapd-win"></antcall> |
| <antcall target="stop-slapd-nix"></antcall> |
| </target> |
| |
| <!-- ================================= |
| stop the slapd server on unix system |
| ================================= --> |
| <target name="stop-slapd-nix" depends="init" unless="windows"> |
| <echo message="############### Stop the slapd process"/> |
| <exec dir="." executable="/bin/sh"> |
| <arg line="${stop.slapd.script}"/> |
| <arg value="${sudo.pw}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| start the slapd server on windows system |
| ================================= --> |
| <target name="start-slapd-win" depends="init" if="windows"> |
| <echo message="############### Start the slapd process up: ${dst.start.slapd.script-win} in ${slapd.exe.dir}"/> |
| <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${slapd.exe.drive}:/${slapd.exe.dir}"> |
| <arg value="/${fortress.home.drive}"/> |
| <arg value="${dst.start.slapd.script-win}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| return true if slapd bin folder exists |
| ================================= --> |
| <target name="slapd.dir.check"> |
| <condition property="slapd.dir.exists"> |
| <available file="${slapd.exe.location}" type="dir"/> |
| </condition> |
| </target> |
| |
| <!-- ================================= |
| call the target to stop the slapd server on windows system |
| ================================= --> |
| <target name="stop-slapd-win" depends="init" if="windows"> |
| <antcall target="stop-slapd-win-if-present"></antcall> |
| </target> |
| |
| <!-- ================================= |
| if slapd dir exists stop the slapd server on windows system |
| ================================= --> |
| <target name="stop-slapd-win-if-present" depends="slapd.dir.check" if="slapd.dir.exists"> |
| <echo>${directory} exists</echo> |
| <echo message="############### Stop the slapd process by running ${stop.slapd.script-win}"/> |
| <exec command="cmd.exe" spawn="true" osfamily="windows" dir="${slapd.exe.location}"> |
| <arg value="/${fortress.home.drive}"/> |
| <arg value="${stop.slapd.script-win}"/> |
| </exec> |
| </target> |
| |
| <!-- ================================= |
| target: bdb-delete - Use Caution as it removes the file volume containing the BerkeleyDB User data! |
| This operation is destructive and non-reversible. It is intended for clearing out existing systems data |
| before reinstalling with brand new data. |
| |
| Never run this Ant target on a production system. |
| ================================= --> |
| <target name="bdb-delete" depends="init" description="--> delete OpenLDAP DB"> |
| <echo message="Delete BDB DB"/> |
| |
| <exec dir="." executable="/bin/sh"> |
| <arg line="${stop.slapd.script}"/> |
| </exec> |
| |
| <delete dir="${db.dir}"/> |
| |
| </target> |
| |
| <!-- ================================= |
| target: init-apacheds - initializes the fortress to use ApacheDS LDAP |
| ================================= --> |
| <target name="init-apacheds" depends="build-jar" description="--> task configures fortress to use an existing ApacheDS LDAP server"> |
| <echo message="############### Setup meta config and base load scripts for openldap and fortress ###############"/> |
| <antcall target="init-fortress-config"></antcall> |
| <antcall target="load-slapd"></antcall> |
| <echo message="Target init-apacheds complete."/> |
| </target> |
| |
| <!-- ================================= |
| target: init-jaxb - initializes properties and taskdefs used for schema generation and compilation. |
| ================================= --> |
| <target name="init-jaxb" depends="resolve" description="--> initializes properties and taskdefs used for schema generation and compilation"> |
| |
| <property name="generated.dir" value="${basedir}/generated"/> |
| <property name="generated.classes.dir" value="${generated.dir}/classes"/> |
| <property name="generated.schema.dir" value="${generated.dir}/schema"/> |
| |
| <!-- Defines XJC and SchemaGen tasks --> |
| <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"> |
| <classpath refid="build.class.path"/> |
| </taskdef> |
| |
| <taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask"> |
| <classpath refid="build.class.path"/> |
| </taskdef> |
| |
| </target> |
| |
| <!-- ================================= |
| target: generate-schema - generates JAXB schmea based on Java classes. |
| ================================= --> |
| <target name="generate-schema" depends="init-jaxb,compile" description="--> generates JAXB schema based on Fortress entity classes"> |
| <echo message="Generating schemas..."/> |
| <mkdir dir="${generated.schema.dir}"/> |
| <schemagen srcdir="${src.java.dir}/org/openldap/fortress" destdir="${generated.schema.dir}"> |
| <classpath refid="build.class.path"/> |
| <include name="rbac/Address.java"/> |
| <include name="rbac/AdminRole.java"/> |
| <include name="rbac/AdminRoleRelationship.java"/> |
| <include name="rbac/AuthZ.java"/> |
| <include name="rbac/Bind.java"/> |
| <include name="util/time/Constraint.java"/> |
| <include name="FortEntity.java"/> |
| <include name="rest/FortRequest.java"/> |
| <include name="rest/FortResponse.java"/> |
| <include name="rbac/Mod.java"/> |
| <include name="rbac/OrgUnit.java"/> |
| <include name="rbac/OrgUnitRelationship.java"/> |
| <include name="rbac/Permission.java"/> |
| <include name="rbac/PermGrant.java"/> |
| <include name="rbac/Permission.java"/> |
| <include name="rbac/PermObj.java"/> |
| <include name="rbac/Props.java"/> |
| <include name="rbac/PwPolicy.java"/> |
| <include name="rbac/Role.java"/> |
| <include name="rbac/RolePerm.java"/> |
| <include name="rbac/RoleRelationship.java"/> |
| <include name="rbac/SDSet.java"/> |
| <include name="rbac/Session.java"/> |
| <include name="rbac/User.java"/> |
| <include name="rbac/UserAdminRole.java"/> |
| <include name="rbac/UserAudit.java"/> |
| <include name="rbac/UserRole.java"/> |
| </schemagen> |
| </target> |
| |
| <!-- ================================= |
| target: compile-schema - generates Java classes based on schema. |
| ================================= --> |
| <target name="compile-schema" depends="init-jaxb,generate-schema" description="--> generates Java classes based on Fortress schema"> |
| <echo message="Compiling the schema..."/> |
| <mkdir dir="${generated.classes.dir}"/> |
| <xjc schema="${generated.schema.dir}/schema1.xsd" destdir="${src.java.dir}" package="org.apache.directory.fortress.model" removeOldOutput="yes"/> |
| </target> |
| |
| <!-- ================================= |
| create Fortress Builder distribution package |
| ================================= --> |
| <target name="builder" depends="dist" description="--> create the Fortress QUICKSTART package"> |
| <echo message="############### Build Fortress Builder distribution package named: ${fortressBuilder.zip} ###############"/> |
| <zip destfile="${fortressBuilder.zip}" |
| update="true"> |
| <zipfileset dir="${src.dir}" prefix="src"> |
| <include name="*/**"/> |
| <exclude name="*.iml"/> |
| </zipfileset> |
| |
| <zipfileset dir="${basedir}"> |
| <include name="*.xml"/> |
| <include name="*.properties"/> |
| <include name="*.sh"/> |
| <include name="*.bat"/> |
| <include name="*.html"/> |
| <include name="LICENSE*"/> |
| <include name="NOTICE"/> |
| <exclude name="*.log"/> |
| <exclude name="*.out"/> |
| <exclude name="*.err"/> |
| <exclude name="build.sh"/> |
| <exclude name="codetemplates.xml"/> |
| <exclude name="formatting.xml"/> |
| </zipfileset> |
| |
| <zipfileset dir="${images.dir}" prefix="images"> |
| <include name="Screenshot*.png"/> |
| <include name="fortresscommunitylogov3.jpg"/> |
| </zipfileset> |
| |
| <zipfileset dir="${ldap.dir}" prefix="ldap"> |
| <include name="*/**"/> |
| <exclude name="setup/ext/**"/> |
| <exclude name="*.conf"/> |
| <exclude name="*.log"/> |
| <exclude name="*/*.csv"/> |
| <exclude name="*/*.log"/> |
| <exclude name="*/dev-symas-website-policy.xml"/> |
| <exclude name="*/AccountsSecurityPolicy.xml"/> |
| <exclude name="*/demo-fortressproject-users.xml"/> |
| <exclude name="*/refreshLDAPData.xml"/> |
| </zipfileset> |
| |
| <zipfileset dir="${config.dir}" prefix="config"> |
| <include name="*/**"/> |
| <exclude name="*.log"/> |
| <exclude name="*.properties"/> |
| <exclude name="*/*.properties"/> |
| </zipfileset> |
| |
| <zipfileset dir="${install.image.dir}" prefix="symas-openldap"> |
| <include name="*/**"/> |
| </zipfileset> |
| |
| <zipfileset dir="${ant.home}" prefix="apache-ant"> |
| <include name="*/**"/> |
| </zipfileset> |
| |
| <zipfileset dir="${maven.image.dir}" prefix="apache-maven"> |
| <include name="*/**"/> |
| </zipfileset> |
| |
| <zipfileset dir="${tomcat.image.dir}" prefix="apache-tomcat"> |
| <include name="*/**"/> |
| </zipfileset> |
| |
| </zip> |
| </target> |
| |
| <!-- ================================= |
| Install EnMasse Demo |
| ================================= --> |
| <target name="install-enmasse-demo" depends="init" description="--> install EnMasse Demo"> |
| <antcall target="doSentry"></antcall> |
| <antcall target="sentry-ant-start-tomcat"></antcall> |
| <antcall target="install-enmasse"></antcall> |
| <antcall target="enmasse-maven-test"></antcall> |
| </target> |
| |
| <target name="doSentry" depends="dir.check" unless="dir.exists"> |
| <echo>Install sentry to ${sentry.dir}"</echo> |
| <antcall target="install-sentry"></antcall> |
| <antcall target="sentry-ant-deploy-tomcat"></antcall> |
| </target> |
| |
| <target name="dir.check"> |
| <condition property="dir.exists"> |
| <available file="${sentry.dir}" type="dir"/> |
| </condition> |
| </target> |
| |
| <!-- ================================= |
| Install Fortress Sentry |
| ================================= --> |
| <target name="install-sentry" depends="init" description="--> install sentry"> |
| <unzip src="${sentry.zip}" dest="${basedir}"/> |
| <!-- copy the build.properties file to sentry --> |
| <copy todir="${sentry.dir}" file="${basedir}/build.properties" overwrite="true" /> |
| <!-- Sentry should use LDAPv3 for the demo install --> |
| <replace file="${sentry.dir}/build.properties" token="enable.mgr.impl.rest=true" value="enable.mgr.impl.rest=false"/> |
| <antcall target="sentry-ant-dist"></antcall> |
| <chmod dir="${basedir}" perm="a+x" includes="**/*.sh"/> |
| </target> |
| |
| <!-- ================================= |
| Call the Sentry Ant target to Install Fortress Sentry |
| ================================= --> |
| <target name="sentry-ant-dist" depends="init" description="--> run Fortress admin script"> |
| <echo message="############### Build Sentry Distribution ###############"/> |
| <java |
| classname="org.apache.tools.ant.launch.Launcher" |
| fork="true" |
| failonerror="true" |
| dir="${sentry.dir}" |
| timeout="4000000" |
| taskname="startAnt"> |
| <classpath> |
| <pathelement location="${ant.home}/lib/ant-launcher.jar"/> |
| </classpath> |
| <arg value="dist"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| Call the Sentry Ant target to deploy Tomcat Realm |
| ================================= --> |
| <target name="sentry-ant-deploy-tomcat" depends="init" description="--> deploy Sentry to Tomcat"> |
| <echo message="############### Deploy Sentry to Tomcat ###############"/> |
| <java |
| classname="org.apache.tools.ant.launch.Launcher" |
| fork="true" |
| failonerror="true" |
| dir="${sentry.dir}" |
| timeout="4000000" |
| taskname="startAnt"> |
| <classpath> |
| <pathelement location="${ant.home}/lib/ant-launcher.jar"/> |
| </classpath> |
| <arg value="deploy-tomcat"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| Call the Sentry Ant target to start Tomcat server |
| ================================= --> |
| <target name="sentry-ant-start-tomcat" depends="init" description="--> start Tomcat server"> |
| <echo message="############### Start Tomcat Server ###############"/> |
| <property name="tomcat.dir" value="./tomcat"/> |
| <java |
| classname="org.apache.tools.ant.launch.Launcher" |
| fork="true" |
| failonerror="true" |
| dir="${sentry.dir}" |
| timeout="4000000" |
| taskname="startAnt" |
| jvmargs="-Dversion=${version}"> |
| <classpath> |
| <pathelement location="${ant.home}/lib/ant-launcher.jar"/> |
| </classpath> |
| <arg value="start-tomcat"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| Call the Sentry Ant target to stop Tomcat server |
| ================================= --> |
| <target name="sentry-ant-stop-tomcat" depends="init" description="--> stop Tomcat server"> |
| <echo message="############### Stop Tomcat Server ###############"/> |
| <property name="tomcat.dir" value="./tomcat"/> |
| <java |
| classname="org.apache.tools.ant.launch.Launcher" |
| fork="true" |
| failonerror="true" |
| dir="${sentry.dir}" |
| timeout="4000000" |
| taskname="startAnt"> |
| <classpath> |
| <pathelement location="${ant.home}/lib/ant-launcher.jar"/> |
| </classpath> |
| <arg value="stop-tomcat"/> |
| </java> |
| </target> |
| |
| <!-- ================================= |
| Install EnMasse |
| ================================= --> |
| <target name="install-enmasse" depends="init" description="--> install sentry"> |
| <unzip src="${enmasse.zip}" dest="${basedir}"/> |
| <!-- copy the fortress.properties file to enmasse --> |
| <copy todir="${enmasse.dir}/src/main/resources" file="${dst.remote.conf}"/> |
| <!-- For demo Enmasse should use LDAPv3 for backend connections --> |
| <copy todir="${enmasse.dir}/src/main/resources" file="${dst.remote.conf}" overwrite="true" /> |
| <replace file="${enmasse.dir}/src/main/resources/fortress.properties" token="enable.mgr.impl.rest=true" value="enable.mgr.impl.rest=false"/> |
| <antcall target="enmasse-maven-install"></antcall> |
| <antcall target="enmasse-maven-deploy"></antcall> |
| </target> |
| |
| <!-- ================================= |
| Call the EnMasse Maven to install |
| ================================= --> |
| <target name="enmasse-maven-install" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <artifact:mvn pom="${enmasse.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="install"/> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Call the EnMasse Maven to deploy Web app |
| ================================= --> |
| <target name="enmasse-maven-deploy" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <artifact:mvn pom="${enmasse.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="tomcat:deploy"/> |
| <arg value="-DfailIfNoTests=false" /> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Call the EnMasse Maven to redeploy Web app |
| ================================= --> |
| <target name="enmasse-maven-redeploy" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <artifact:mvn pom="${enmasse.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="tomcat:redeploy"/> |
| <arg value="-DfailIfNoTests=false" /> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Call the EnMasse Maven to test Web app |
| ================================= --> |
| <target name="enmasse-maven-test" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <artifact:mvn pom="${enmasse.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="test"/> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Install Commander Demo |
| ================================= --> |
| <target name="install-commander-demo" depends="init" description="--> install Commander Demo"> |
| <antcall target="doSentry"></antcall> |
| <antcall target="sentry-ant-start-tomcat"></antcall> |
| <antcall target="install-commander"></antcall> |
| </target> |
| |
| <!-- ================================= |
| Install Commander |
| ================================= --> |
| <target name="install-commander" depends="init" description="--> install commander"> |
| <unzip src="${commander.zip}" dest="${basedir}"/> |
| <!-- copy the fortress.properties file to commander --> |
| <copy todir="${commander.dir}/src/main/resources" file="${dst.remote.conf}" overwrite="true" /> |
| <concat destfile="${commander.dir}/src/main/resources/fortress.properties" append="true">${line.separator}version=${version}</concat> |
| <replace file="${commander.dir}/pom.xml" token="<ANT_HOME>/home/smckinn/JavaTools/apache-ant-1.8.2</ANT_HOME>" value="<ANT_HOME>../apache-ant/</ANT_HOME>"/> |
| <!-- load the sample test policy for commander --> |
| <antcall target="commander-maven-load"></antcall> |
| <antcall target="commander-maven-deploy"></antcall> |
| </target> |
| |
| <!-- ================================= |
| Call the Commander Maven to install |
| ================================= --> |
| <target name="commander-maven-install" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <artifact:mvn pom="${commander.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="install"/> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Call the Commander Maven to deploy Web app |
| ================================= --> |
| <target name="commander-maven-deploy" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <artifact:mvn pom="${commander.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="tomcat:deploy"/> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Call the Commander Maven to redeploy Web app |
| ================================= --> |
| <target name="commander-maven-redeploy" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <artifact:mvn pom="${commander.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="tomcat:redeploy"/> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Call the Commander Maven to load test policy into LDAP |
| ================================= --> |
| <target name="commander-maven-load" depends="init" description="--> load Commander test policy into LDAP"> |
| <artifact:mvn pom="${commander.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="test"/> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| Call the Commander Maven to integration test Web app with Selenium Web Driver |
| ================================= --> |
| <target name="commander-maven-test" depends="init" description="--> deploy snapshot version to Maven snapshot repository"> |
| <replace file="${commander.dir}/src/test/java/org/openldap/commander/integration/CommanderSeleniumITCase.java" token="http://192.168.1.101:8080" value="http://${http.host}:${http.port}"/> |
| <artifact:mvn pom="${commander.dir}/pom.xml" mavenHome="${M2_HOME}" fork="true"> |
| <arg value="verify"/> |
| <arg value="-DskipTests=false"/> |
| </artifact:mvn> |
| </target> |
| |
| <!-- ================================= |
| target: download-ivy - pulls down ivy.jar from maven 2 website |
| ================================= --> |
| <target name="download-ivy" depends="init" description="--> pull the ivy jar dependency" 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="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> |
| |
| <!-- ================================= |
| Deploy snapshot to remote Maven repository |
| ================================= --> |
| <target name="deploy" depends="init" 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> |