]> source.dussan.org Git - poi.git/commitdiff
Implement idea from bug #35583 - Include a version class, org.apache.poi.Version...
authorNick Burch <nick@apache.org>
Sat, 12 Jul 2008 19:37:17 +0000 (19:37 +0000)
committerNick Burch <nick@apache.org>
Sat, 12 Jul 2008 19:37:17 +0000 (19:37 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@676221 13f79535-47bb-0310-9956-ffa450edef68

build.xml
src/documentation/content/xdocs/changes.xml
src/documentation/content/xdocs/status.xml
src/resources/version/Version.java.template [new file with mode: 0644]

index 485fe1d77000f53e0e0e17ef14a008a78bf9c131..b93455576192d329c07a9737dd45dab25934b10f 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -369,6 +369,29 @@ under the License.
     </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"/>
 
@@ -950,7 +973,7 @@ FORREST_HOME environment variable!</echo>
                <!-- 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/" />
index e1a1872bead222d0fcc5958ed9aa6d7337218c92..c043624b6f103dca84c9c0b87509dd6855b9ac43 100644 (file)
@@ -37,6 +37,7 @@
 
                <!-- 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>
index b6cb13dad5205bde21781523209f6ab0c1424218..a12e6dd7f603b0177cf2037f7e3a06ce802b6c6d 100644 (file)
@@ -34,6 +34,7 @@
        <!-- 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>
diff --git a/src/resources/version/Version.java.template b/src/resources/version/Version.java.template
new file mode 100644 (file)
index 0000000..716ec91
--- /dev/null
@@ -0,0 +1,69 @@
+/* ====================================================================
+   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() + ")"
+               );
+       }
+}