changeset 786:f7df78989ac5

Generate MonetVersion.java rather than MonetDriver.java MonetDriver.java also contains code, MonetVersion only the generated values.
author Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
date Fri, 30 Jun 2023 11:55:48 +0200 (22 months ago)
parents e00866975421
children e349d8272a13
files .hgignore Makefile build.xml build_jre17.xml src/main/java/org/monetdb/jdbc/MonetDriver.java src/main/java/org/monetdb/jdbc/MonetDriver.java.in src/main/java/org/monetdb/jdbc/MonetVersion.java.in
diffstat 7 files changed, 512 insertions(+), 488 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore
+++ b/.hgignore
@@ -4,7 +4,7 @@ syntax: glob
 *.class
 *.jar
 build/META-INF/services/java.sql.Driver
-src/main/java/org/monetdb/jdbc/MonetDriver.java
+src/main/java/org/monetdb/jdbc/MonetVersion.java
 
 # files generated by various editors
 *.swp
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,14 @@
-all: src/main/java/org/monetdb/jdbc/MonetDriver.java
+all: src/main/java/org/monetdb/jdbc/MonetVersion.java
 	ant -f build.xml distjdbc distmerocontrol
 	cd tests; ant -f build.xml jar_jdbctests
 
-jre17jars: src/main/java/org/monetdb/jdbc/MonetDriver.java
+jre17jars: src/main/java/org/monetdb/jdbc/MonetVersion.java
 	rm -rf build
 	ant -f build_jre17.xml distjdbc
 	rm -rf build
 
-src/main/java/org/monetdb/jdbc/MonetDriver.java: build.properties src/main/java/org/monetdb/jdbc/MonetDriver.java.in
-	. ./build.properties; sed -e "s/@JDBC_MAJOR@/$$JDBC_MAJOR/g;s/@JDBC_MINOR@/$$JDBC_MINOR/g;s/@JDBC_VER_SUFFIX@/$$JDBC_VER_SUFFIX $$buildno/g" src/main/java/org/monetdb/jdbc/MonetDriver.java.in > src/main/java/org/monetdb/jdbc/MonetDriver.java
+src/main/java/org/monetdb/jdbc/MonetVersion.java: build.properties src/main/java/org/monetdb/jdbc/MonetVersion.java.in
+	. ./build.properties; sed -e "s/@JDBC_MAJOR@/$$JDBC_MAJOR/g;s/@JDBC_MINOR@/$$JDBC_MINOR/g;s/@JDBC_VER_SUFFIX@/$$JDBC_VER_SUFFIX $$buildno/g" src/main/java/org/monetdb/jdbc/MonetVersion.java.in > src/main/java/org/monetdb/jdbc/MonetVersion.java
 
 testsjar:
 	cd tests; ant -f build.xml jar_jdbctests
@@ -17,7 +17,7 @@ doc:
 	ant -f build.xml doc
 
 clean:
-	rm -f src/main/java/org/monetdb/jdbc/MonetDriver.java
+	rm -f src/main/java/org/monetdb/jdbc/MonetVersion.java
 	rm -rf build tests/build jars doc
 
 cleandoc:
--- a/build.xml
+++ b/build.xml
@@ -242,7 +242,7 @@ Copyright 1997 - July 2008 CWI, August 2
   </target>
 
   <!--
-  This generates MonetDriver.java from its ".java.in" equivalent.
+  This generates MonetVersion.java from its ".java.in" equivalent.
   It's required for importing the driver version properties.
   -->
   <target name="driver" depends="prepare" unless="uptodate.drivers">
@@ -262,9 +262,9 @@ Copyright 1997 - July 2008 CWI, August 2
     <fail unless="JDBC_VER_SUFFIX" message="'JDBC_VER_SUFFIX' undefined. Please follow the directions in build.properties."/>
 
     <!-- now copy and filter the file -->
-  	<copy file="${srcdir}/${jdbc-package}/MonetDriver.java.in"
+  	<copy file="${srcdir}/${jdbc-package}/MonetVersion.java.in"
   	  overwrite="true"
-  	  tofile="${srcdir}/${jdbc-package}/MonetDriver.java"
+  	  tofile="${srcdir}/${jdbc-package}/MonetVersion.java"
   	  filtering="yes" />
 
     <echo message="Configured build for the ${JDBC_MAJOR}.${JDBC_MINOR} (${JDBC_VER_SUFFIX}) edition driver" />
@@ -312,11 +312,11 @@ Copyright 1997 - July 2008 CWI, August 2
     </uptodate>
     <condition property="uptodate.drivers">
       <and>
-        <uptodate targetfile="${builddir}/src/${jdbc-package}/MonetDriver.java">
+        <uptodate targetfile="${builddir}/src/${jdbc-package}/MonetVersion.java">
           <srcfiles dir="${srcdir}">
             <include name="build.properties" />
             <include name="build.local.properties" />
-            <include name="${jdbc-package}/MonetDriver.java.in" />
+            <include name="${jdbc-package}/MonetVersion.java.in" />
             <include name="${jdbc-package}/**/*.java" />
           </srcfiles>
         </uptodate>
--- a/build_jre17.xml
+++ b/build_jre17.xml
@@ -245,7 +245,7 @@ Copyright 1997 - July 2008 CWI, August 2
   </target>
 
   <!--
-  This generates MonetDriver.java from its ".java.in" equivalent.
+  This generates MonetVersion.java from its ".java.in" equivalent.
   It's required for importing the driver version properties.
   -->
   <target name="driver" depends="prepare" unless="uptodate.drivers">
@@ -265,9 +265,9 @@ Copyright 1997 - July 2008 CWI, August 2
     <fail unless="JDBC_VER_SUFFIX" message="'JDBC_VER_SUFFIX' undefined. Please follow the directions in build.properties."/>
 
     <!-- now copy and filter the file -->
-  	<copy file="${srcdir}/${jdbc-package}/MonetDriver.java.in"
+  	<copy file="${srcdir}/${jdbc-package}/MonetVersion.java.in"
   	  overwrite="true"
-  	  tofile="${srcdir}/${jdbc-package}/MonetDriver.java"
+  	  tofile="${srcdir}/${jdbc-package}/MonetVersion.java"
   	  filtering="yes" />
 
     <echo message="Configured build for the ${JDBC_MAJOR}.${JDBC_MINOR} (${JDBC_VER_SUFFIX}) edition driver" />
@@ -315,11 +315,11 @@ Copyright 1997 - July 2008 CWI, August 2
     </uptodate>
     <condition property="uptodate.drivers">
       <and>
-        <uptodate targetfile="${builddir}/src/${jdbc-package}/MonetDriver.java">
+        <uptodate targetfile="${builddir}/src/${jdbc-package}/MonetVersion.java">
           <srcfiles dir="${srcdir}">
             <include name="build.properties" />
             <include name="build.local.properties" />
-            <include name="${jdbc-package}/MonetDriver.java.in" />
+            <include name="${jdbc-package}/MonetVersion.java.in" />
             <include name="${jdbc-package}/**/*.java" />
           </srcfiles>
         </uptodate>
rename from src/main/java/org/monetdb/jdbc/MonetDriver.java.in
rename to src/main/java/org/monetdb/jdbc/MonetDriver.java
--- a/src/main/java/org/monetdb/jdbc/MonetDriver.java.in
+++ b/src/main/java/org/monetdb/jdbc/MonetDriver.java
@@ -158,7 +158,8 @@ public final class MonetDriver implement
 	 */
 	@Override
 	public int getMajorVersion() {
-		return @JDBC_MAJOR@;
+		// defer to the static version of this method
+		return getDriverMajorVersion();
 	}
 
 	/**
@@ -168,7 +169,8 @@ public final class MonetDriver implement
 	 */
 	@Override
 	public int getMinorVersion() {
-		return @JDBC_MINOR@;
+		// defer to the static version of this method
+		return getDriverMinorVersion();
 	}
 
 	/**
@@ -306,7 +308,8 @@ public final class MonetDriver implement
 	 * @return MonetDB JDBC Driver major version number
 	 */
 	static final int getDriverMajorVersion() {
-		return @JDBC_MAJOR@;
+		// defer to the generated MonetVersion class
+		return MonetVersion.majorVersion;
 	}
 
 	/**
@@ -315,7 +318,8 @@ public final class MonetDriver implement
 	 * @return MonetDB JDBC Driver minor version number
 	 */
 	static final int getDriverMinorVersion() {
-		return @JDBC_MINOR@;
+		// defer to the generated MonetVersion class
+		return MonetVersion.minorVersion;
 	}
 
 	/**
@@ -324,7 +328,7 @@ public final class MonetDriver implement
 	 * @return the version string
 	 */
 	public static final String getDriverVersion() {
-		return "@JDBC_MAJOR@.@JDBC_MINOR@ (@JDBC_VER_SUFFIX@)";
+		return MonetVersion.driverVersion;
 	}
 
 	/** A static Map containing the mapping between MonetDB types and Java SQL types */
new file mode 100644
--- /dev/null
+++ b/src/main/java/org/monetdb/jdbc/MonetVersion.java.in
@@ -0,0 +1,20 @@
+package org.monetdb.jdbc;
+
+public final class MonetVersion {
+
+	/**
+	 * Major version of MonetDB JDBC driver.
+	 */
+	public static int majorVersion = @JDBC_MAJOR@;
+
+	/**
+	 * Minor version of MonetDB JDBC driver.
+	 */
+	public static int minorVersion = @JDBC_MINOR@;
+
+	/**
+	 * Full version string of MonetDB JDBC driver.
+	 */
+	public static String driverVersion = "@JDBC_MAJOR@.@JDBC_MINOR@ (@JDBC_VER_SUFFIX@)";
+}
+