</javac>
</target>
+ <target name="compile-version" depends="init"
+ description="Compiles the version class">
+ <!-- Generate the .java file -->
+ <property name="version.java" value="${main.output.dir}/org/apache/poi/Version.java" />
+ <delete file="${version.java}" />
+ <copy
+ file="src/resources/version/Version.java.template"
+ tofile="${version.java}">
+ <filterset>
+ <filter token="VERSION" value="${version.id}" />
+ <filter token="DSTAMP" value="${DSTAMP}" />
+ </filterset>
+ </copy>
+
+ <!-- Compile -->
+ <javac target="${jdk.version.class}" source="${jdk.version.source}"
+ failonerror="true" destdir="${main.output.dir}" debug="on" fork="yes"
+ srcdir="${main.output.dir}" />
+
+ <!-- Tidy up -->
+ <delete file="${version.java}" />
+ </target>
+
<target name="test" depends="test-main,test-scratchpad,test-contrib"
description="Tests main, contrib and scratchpad"/>
<!-- And that's it for maven -->
</target>
- <target name="jar" depends="compile" description="Creates jar files for distribution">
+ <target name="jar" depends="compile,compile-version" description="Creates jar files for distribution">
<jar destfile="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar">
<fileset dir="${main.output.dir}" />
<fileset dir="legal/" />
<!-- Don't forget to update status.xml too! -->
<release version="3.1.1-alpha1" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="add">35583 - Include a version class, org.apache.poi.Version, to allow easy introspection of the POI version</action>
<action dev="POI-DEVELOPERS" type="add">Allow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another</action>
<action dev="POI-DEVELOPERS" type="fix">45289 - finished support for special comparison operators in COUNTIF</action>
<action dev="POI-DEVELOPERS" type="fix">45126 - Avoid generating multiple NamedRanges with the same name, which Excel dislikes</action>
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.1.1-alpha1" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="add">35583 - Include a version class, org.apache.poi.Version, to allow easy introspection of the POI version</action>
<action dev="POI-DEVELOPERS" type="add">Allow the cloning of one HSSFCellStyle onto another, including cloning styles from one HSSFWorkbook onto another</action>
<action dev="POI-DEVELOPERS" type="fix">45289 - finished support for special comparison operators in COUNTIF</action>
<action dev="POI-DEVELOPERS" type="fix">45126 - Avoid generating multiple NamedRanges with the same name, which Excel dislikes</action>
--- /dev/null
+/* ====================================================================
+ 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.
+==================================================================== */
+
+package org.apache.poi;
+
+/**
+ * Administrative class to keep track of the version number of the
+ * POI release.
+ *
+ * This class implements the upcoming standard of having
+ * org.apache.project-name.Version.getVersion() be a standard
+ * way to get version information.
+ */
+public class Version {
+ private static final String VERSION_STRING = "@VERSION@";
+ private static final String RELEASE_DATE = "@DSTAMP@";
+
+ /**
+ * Return the basic version string, of the form
+ * nn.nn(.nn)
+ */
+ public static String getVersion() {
+ return VERSION_STRING;
+ }
+
+ /**
+ * Return the date of the release / build
+ */
+ public static String getReleaseDate() {
+ return RELEASE_DATE;
+ }
+
+ /**
+ * Name of product: POI
+ */
+ public static String getProduct() {
+ return "POI";
+ }
+ /**
+ * Implementation Language: Java
+ */
+ public static String getImplementationLanguage() {
+ return "Java";
+ }
+
+ /**
+ * Prints the version to the command line
+ */
+ public static void main(String[] args) {
+ System.out.println(
+ "Apache " + getProduct() + " " +
+ getVersion() + " (" + getReleaseDate() + ")"
+ );
+ }
+}