# -------------------------------------------------------------------
# P R O J E C T  P R O P E R T I E S
# -------------------------------------------------------------------
maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory

compile.debug = on
compile.optimize = off
compile.deprecation = off

maven.compile.source=1.3
maven.compile.target=1.3

maven.jarResources.basedir=${basedir}/src/java

# Reset the checkstyle properties to use the default sun settings
maven.checkstyle.properties=
maven.checkstyle.format=sun

maven.xdoc.date=left
maven.xdoc.version=${pom.currentVersion}
maven.xdoc.developmentProcessUrl=http://jakarta.apache.org/commons/charter.html
maven.xdoc.poweredby.image=maven-feather.png

maven.javadoc.links=http://java.sun.com/j2se/1.4/docs/api/

# Jar Manifest and Additional Attributes
maven.jar.manifest=${basedir}/src/conf/MANIFEST.MF
maven.jar.manifest.attributes.list=Implementation-Vendor-Id,X-Compile-Source-JDK,X-Compile-Target-JDK
maven.jar.manifest.attribute.Implementation-Vendor-Id=org.apache
maven.jar.manifest.attribute.X-Compile-Source-JDK=${maven.compile.source}
maven.jar.manifest.attribute.X-Compile-Target-JDK=${maven.compile.target}
