# -------------------------------------------------------------------
# Copyright 2001-2006 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -------------------------------------------------------------------


# -------------------------------------------------------------------
#                Project Information
# -------------------------------------------------------------------
version_number=1.1.1
#version_affix=
axis2_version=${version_number}
addressing_version=1.1.1
rampart_version=1.1
rahas_version=1.1
secpolicy_version=1.1
rampart_module_version=1.1
rahas_module_version=1.1
soapmonitor_version=1.1.1
savan_version=1.1.1

# -------------------------------------------------------------------
#                Dependency Repositories
# -------------------------------------------------------------------
maven.repo.remote=\
http://repo1.maven.org/maven/,\
http://ws.zones.apache.org/repository/,\
http://people.apache.org/repo/m1-ibiblio-rsync-repository/,\
http://jibx.sourceforge.net/maven/

# -------------------------------------------------------------------
#                Multiproject includes and excludes
# -------------------------------------------------------------------

optional.includes=

maven.multiproject.includes=\
modules/common/project.xml,\
modules/java2wsdl/project.xml,\
modules/adb/project.xml,\
modules/adb-codegen/project.xml,\
modules/codegen/project.xml,\
modules/xmlbeans/project.xml,\
modules/java2wsdl/project.xml,\
modules/kernel/project.xml,\
modules/addressing/project.xml,\
modules/tool/project.xml,\
modules/samples/project.xml,\
modules/security/project.xml,\
modules/spring/project.xml,\
modules/soapmonitor/project.xml,\
modules/integration/project.xml,\
modules/saaj/project.xml,\
modules/jibx/project.xml,\
modules/savan/project.xml,\
modules/rahas/project.xml,\
modules/secpolicy/project.xml,\
${optional.includes}

#maven.multiproject.excludes=modules/tool/project.xml

maven.multiproject.includes.requiresJDK15=\
modules/jaxbri/project.xml,\
modules/jaxws/project.xml

# -------------------------------------------------------------------
#                JUnit
# -------------------------------------------------------------------
maven.junit.jvmargs=-Xmx256m -Djava.awt.headless=true
maven.junit.fork=true

# -------------------------------------------------------------------
#                Compile
# -------------------------------------------------------------------
maven.compile.optimize=false
maven.compile.fork=true
maven.compile.target=1.4
maven.compile.source=1.4

# -------------------------------------------------------------------
#                Versions of dependencies
# -------------------------------------------------------------------
activation.version=1.1
annogen.version=0.1.0
ant.version=1.6.5
axiom.version=1.2.2
backport_util_concurrent.version=2.2
bcel.version=5.2
bcprov.version=jdk13-133
commons.codec.version=1.3
commons.fileupload.version=1.1.1
commons.io.version=1.2
commons.httpclient.version=3.0.1
commons.logging.version=1.1
geronimo.spec.jms.version=1.1-rc4
groovy.all.version=1.0-jsr-06
jakarta.httpcore.version=4.0-alpha2
javamail.version=1.4
jaxbri.version=2.0.2
jaxen.version=1.1-beta-10
jaxme.version=0.5.2
jibx.version=1.1.3
junit.version=3.8.2
maven.itest.plugin.version=1.0
maven.jar.plugin.version=1.8-SNAPSHOT
maven.multiproject.plugin.version=1.5-SNAPSHOT
maven.plugin.plugin.version=1.8-SNAPSHOT
maven.test.plugin.version=1.8.1-SNAPSHOT
opensaml.version=1.1
neethi.version=2.0
servletapi.version=2.3
spring.version=1.2.8
stax.api.version=1.0.1
stax.impl.artifactid=wstx
stax.impl.groupid=org.codehaus.woodstox
stax.impl.version=asl-3.2.0
stax_utils.version=20060915 
woden.version=1.0.0M6
wsdl4j.version=1.6.2
wss4j.version=1.5.1
xalan.version=2.7.0
xbean.version=2.2.0
xerces.version=2.8.1
xml_apis.version=1.3.03
XmlSchema.version=1.2
xmlsec.version=1.3.0
xmlunit.version=1.0
log4j.version=1.2.13

# ------------------------------------------------------------------------
# M A V E N  J A R  O V E R R I D E
# ------------------------------------------------------------------------
maven.jar.override =off

# ------------------------------------------------------------------------
# Jars set explicity by path.
# ------------------------------------------------------------------------

dependencies.dir=${basedir}/../../lib

maven.jar.annogen=${dependencies.dir}/annogen-${annogen.version}.jar
maven.jar.ant=${dependencies.dir}/ant-${ant.version}.jar
maven.jar.axiom-api=${dependencies.dir}/axiom-api-${axiom.version}.jar
maven.jar.axiom-dom=${dependencies.dir}/axiom-dom-${axiom.version}.jar
maven.jar.axiom-impl=${dependencies.dir}/axiom-impl-${axiom.version}.jar
maven.jar.backport-util-concurrent=${dependencies.dir}/backport-util-concurrent-${backport_util_concurrent.version}.jar
maven.jar.bcel=${dependencies.dir}/bcel-${bcel.version}.jar
maven.jar.bcprov=${dependencies.dir}/bcprov-${bcprov.version}.jar
maven.jar.commons-codec=${dependencies.dir}/commons-codec-${commons.codec.version}.jar
maven.jar.commons-fileupload=${dependencies.dir}/commons-fileupload-${commons.fileupload.version}.jar
maven.jar.commons-httpclient=${dependencies.dir}/commons-httpclient-${commons.httpclient.version}.jar
maven.jar.commons-logging=${dependencies.dir}/commons-logging-${commons.logging.version}.jar
maven.jar.geronimo-spec-activation=${dependencies.dir}/geronimo-spec-activation-${geronimo.spec.activation.version}.jar
maven.jar.geronimo-spec-javamail=${dependencies.dir}/geronimo-spec-javamail-${geronimo.spec.javamail.version}.jar
maven.jar.geronimo-spec-jms=${dependencies.dir}/geronimo-spec-jms-${geronimo.spec.jms.version}.jar
maven.jar.groovy-all=${dependencies.dir}/groovy-all-${groovy.all.version}.jar
maven.jar.jakarta-httpcore=${dependencies.dir}/jakarta-httpcore-${jakarta.httpcore.version}.jar
maven.jar.jaxen=${dependencies.dir}/jaxen-${jaxen.version}.jar
maven.jar.jaxme2=${dependencies.dir}/jaxme2-${jaxme.version}.jar
maven.jar.jaxmeapi=${dependencies.dir}/jaxmeapi-${jaxme.version}.jar
maven.jar.jaxmejs=${dependencies.dir}/jaxmejs-${jaxme.version}.jar
maven.jar.jaxmexs=${dependencies.dir}/jaxmexs-${jaxme.version}.jar
maven.jar.jibx-bind=${dependencies.dir}/jibx-bind-${jibx.version}.jar
maven.jar.jibx-run=${dependencies.dir}/jibx-run-${jibx.version}.jar
maven.jar.junit=${dependencies.dir}/junit-${junit.version}.jar
maven.jar.log4j=${dependencies.dir}/log4j-${log4j.version}.jar
maven.jar.maven-itest-plugin=${dependencies.dir}/maven-itest-plugin-${maven.itest.plugin.version}.jar
maven.jar.opensaml=${dependencies.dir}/opensaml-${opensaml.version}.jar
maven.jar.policy=${dependencies.dir}/neethi-${policy.version}.jar
maven.jar.servletapi=${dependencies.dir}/servletapi-${servletapi.version}.jar
maven.jar.spring=${dependencies.dir}/spring-${spring.version}.jar
maven.jar.stax-api=${dependencies.dir}/stax-api-${stax.api.version}.jar
maven.jar.wsdl4j=${dependencies.dir}/wsdl4j-${wsdl4j.version}.jar
maven.jar.wss4j=${dependencies.dir}/wss4j-${wss4j.version}.jar
maven.jar.wstx=${dependencies.dir}/${stax.impl.artifactid}-${stax.impl.version}.jar
maven.jar.xalan=${dependencies.dir}/xalan-${xalan.version}.jar
maven.jar.xbean=${dependencies.dir}/xbean-${xbean.version}.jar
maven.jar.xercesImpl=${dependencies.dir}/xercesImpl-${xerces.version}.jar
maven.jar.xml-apis=${dependencies.dir}/xml-apis-${xml_apis.version}.jar
maven.jar.XmlSchema=${dependencies.dir}/XmlSchema-${XmlSchema.version}.jar
maven.jar.xmlsec=${dependencies.dir}/xmlsec-${xmlsec.version}.jar
maven.jar.xmlunit=${dependencies.dir}/xmlunit-${xmlunit.version}.jar

# -------------------------------------------------------------------
#                Clover
# -------------------------------------------------------------------
maven.clover.build = ${maven.build.dir}
#maven.clover.includes=**/org/apache/**.java
maven.clover.excludes=sample/**/*.java,userguide/**/*.java, test/**/*.java
maven.clover.license.path=clover.license

# -------------------------------------------------------------------
#                xdoc
# -------------------------------------------------------------------
maven.xdoc.date=left
maven.xdoc.version=${pom.currentVersion}
maven.xdoc.includeProjectDocumentation=no
maven.html2xdoc.enabled=false
maven.html2xdoc.dir=./xdocs
maven.pdf.navigationFile=navigation-pdf.xml
maven.allreports.disable=true
