# -------------------------------------------------------------------
# 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=SNAPSHOT
#version_affix=
axis2_version=${version_number}
addressing_version=${axis2_version}
rampart_version=SNAPSHOT
rahas_version=SNAPSHOT
secpolicy_version=SNAPSHOT
rampart_module_version=SNAPSHOT
rahas_module_version=SNAPSHOT
soapmonitor_version=${axis2_version}
savan_version=${axis2_version}

# -------------------------------------------------------------------
#                Dependency Repositories
# -------------------------------------------------------------------
maven.repo.remote=\
http://mirrors.ibiblio.org/pub/mirrors/maven,\
http://people.apache.org/repo/m1-snapshot-repository/,\
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/jibx/project.xml,\
modules/savan/project.xml,\
modules/rahas/project.xml,\
modules/secpolicy/project.xml,\
modules/mtompolicy/project.xml,\
${optional.includes}

#maven.multiproject.excludes=modules/tool/project.xml

maven.multiproject.includes.requiresJDK15=\
modules/metadata/project.xml,\
modules/saaj-api/project.xml,\
modules/saaj/project.xml,\
modules/jaxbri/project.xml,\
modules/jaxws/project.xml,\
modules/jaxws-api/project.xml,\
modules/json/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=SNAPSHOT
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-alpha3
javamail.version=1.4
jaxbri.version=2.0.2
jaxen.version=1.1-beta-10
jaxme.version=0.5.2
jibx.version=1.1.2
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=SNAPSHOT
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-incubating-SNAPSHOT
wsdl4j.version=1.6.2
wss4j.version=SNAPSHOT
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
jettison.version=1.0-alpha-2-SNAPSHOT

# ------------------------------------------------------------------------
# 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
