You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by km...@apache.org on 2011/09/30 20:53:36 UTC

svn commit: r1177776 - in /db/derby/code/trunk/java: testing/org/apache/derbyTesting/functionTests/tests/management/JDBCMBeanTest.java tools/org/apache/derby/impl/tools/ij/xaHelper.java tools/org/apache/derby/impl/tools/sysinfo/Main.java

Author: kmarsden
Date: Fri Sep 30 18:53:36 2011
New Revision: 1177776

URL: http://svn.apache.org/viewvc?rev=1177776&view=rev
Log:
DERBY-1046 JVMInfo is duplicated in derbyclient.jar

DERBY-5431 If 10.7 or greater derbyclient.jar is in the classpath before an older release's server jars, derby fails to boot with NoSuchFieldError for JVMInfo.JAVA_SQL_TYPES_BOOLEAN 

DERBY-5439 Remove JRE / JDBC line from sysinfo

JVMInfo now lives only in derby.jar. Removing the JRE / JDBC line is only a trunk soltion. In 10.8 we kept the duplicate code.


Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/JDBCMBeanTest.java
    db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/xaHelper.java
    db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/sysinfo/Main.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/JDBCMBeanTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/JDBCMBeanTest.java?rev=1177776&r1=1177775&r2=1177776&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/JDBCMBeanTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/JDBCMBeanTest.java Fri Sep 30 18:53:36 2011
@@ -22,12 +22,15 @@
 package org.apache.derbyTesting.functionTests.tests.management;
 
 import java.io.BufferedReader;
+import java.sql.DatabaseMetaData;
 import java.sql.Driver;
 import java.util.Hashtable;
 import javax.management.ObjectName;
 import junit.framework.Test;
 import junit.framework.Test;
 import junit.framework.TestSuite;
+
+import org.apache.derby.iapi.services.info.JVMInfo;
 import org.apache.derbyTesting.junit.Utilities;
 
 
@@ -93,23 +96,19 @@ public class JDBCMBeanTest extends MBean
     }
     
     public void testAttributeDriverLevel() throws Exception {
-        String expected = "[Unable to get driver level from sysinfo]";
-        // Get the expected value from sysinfo
-        BufferedReader sysinfoOutput = Utilities.getSysinfoFromServer();
-        String line = null;
-        while ((line = sysinfoOutput.readLine()) != null) {
-            /* Looking for:
-             *--------- Derby Information --------
-             *JRE - JDBC: J2SE 5.0 - JDBC 3.0
-             *            ^^^^^^^^^^^^^^^^^^^
-             * (actual JRE/JDBC values may vary)*/
-            if (line.matches("^JRE - JDBC: .*")) {
-                expected = line.substring(line.indexOf(": ") + 2);
-            }
-        }
-        
-        // test the attribute value against the expected value
-        assertStringAttribute(expected,getJdbcMBeanObjectName(), "DriverLevel");
+        // get JDBC version from DatabaseMetaData for comparison
+        DatabaseMetaData dmd = getConnection().getMetaData();
+        String JDBCVersion = "" + dmd.getJDBCMajorVersion() + 
+            dmd.getJDBCMajorVersion() + "." +
+            dmd.getJDBCMinorVersion();
+        println("DatabaseMetaDataJDBCLevel = " + JDBCVersion);
+        ObjectName driverLevel = getJdbcMBeanObjectName();
+        String driverLevelString = driverLevel.toString();
+        println("MBean driverLevel  = " + driverLevelString);
+       
+        assert(driverLevelString.indexOf('?') == -1);
+        assert(driverLevelString.matches("^JRE - JDBC: " + JDBCVersion + ".*"));
+
     }
     
     /**

Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/xaHelper.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/xaHelper.java?rev=1177776&r1=1177775&r2=1177776&view=diff
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/xaHelper.java (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/xaHelper.java Fri Sep 30 18:53:36 2011
@@ -510,45 +510,49 @@ class xaHelper implements xaAbstractHelp
 		// if we new it directly, then it will the tools.jar file to bloat.
 		try
 		{
-			if (isJCC)
-				return (XADataSource) 
-					(Class.forName("com.ibm.db2.jcc.DB2XADataSource").newInstance());
-			else if (isNetClient){
-                            if (JVMInfo.JDK_ID >= JVMInfo.J2SE_16) {
-                                //running under jdk1.6 or higher 
-                                // try instantiating EmbeddedXADataSource40
-                                try {
-                                    return (XADataSource)(Class.forName(
-                                        "org.apache.derby.jdbc." +
-                                        "ClientXADataSource40").newInstance());                                        
-                                }
-                                catch (ClassNotFoundException e) {
-                                    //probably it was not compiled with jdbc4.0
-                                    //support go ahead with EmbeddedXADataSource
-                                }
-                            }
-                            return (XADataSource) (Class.forName(
-                                    "org.apache.derby.jdbc.ClientXADataSource"
-                                    ).newInstance());
-                        }
-			else {
-                            if (JVMInfo.JDK_ID >= JVMInfo.J2SE_16) {
-                                //running under jdk1.6 or higher 
-                                // try instantiating EmbeddedXADataSource40
-                                try {
-                                    return (XADataSource)(Class.forName(
-                                        "org.apache.derby.jdbc." +
-                                        "EmbeddedXADataSource40").newInstance());                                        
-                                }
-                                catch (ClassNotFoundException e) {
-                                    //probably it was not compiled with jdbc4.0
-                                    //support go ahead with EmbeddedXADataSource
-                                }
-                            }
-                            return (XADataSource)(Class.forName("org.apache.derby.jdbc.EmbeddedXADataSource").newInstance());
-                        }
-		}
-		catch(ClassNotFoundException cnfe) {
+		    
+            if (isJCC)
+               return (XADataSource) 
+                (Class.forName("com.ibm.db2.jcc.DB2XADataSource").newInstance());
+            else if (isNetClient){
+                //running under jdk1.6 or higher 
+                // try instantiating EmbeddedXADataSource40
+                try {
+                    return (XADataSource)(Class.forName(
+                            "org.apache.derby.jdbc." +
+                    "ClientXADataSource40").newInstance());                                        
+                }
+                catch (ClassNotFoundException e) {
+                    //probably it was not compiled with jdbc4.0
+                    //support go ahead with ClientXADataSource
+                }
+                catch (UnsupportedClassVersionError ue) { 
+                    // ClientXADataSource
+                }
+                return (XADataSource) (Class.forName(
+                        "org.apache.derby.jdbc.ClientXADataSource"
+                ).newInstance());
+            }
+            else {
+                //running under jdk1.6 or higher 
+                // try instantiating EmbeddedXADataSource40
+                try {
+                    return (XADataSource)(Class.forName(
+                            "org.apache.derby.jdbc." +
+                    "EmbeddedXADataSource40").newInstance());                                        
+                }
+                catch (ClassNotFoundException e) {
+                    //probably it was not compiled with jdbc4.0
+                    //support go ahead with EmbeddedXADataSource
+                }
+                catch (UnsupportedClassVersionError ue) {
+                    // not jdk 16 or higher. Go ahead with
+                    // EmbeddedXADataSource
+                }
+                return (XADataSource)(Class.forName("org.apache.derby.jdbc.EmbeddedXADataSource").newInstance());
+            }
+        }
+        catch(ClassNotFoundException cnfe) {
 			throw new ijException(LocalizedResource.getMessage("IJ_XAClass"));
 		}
 		catch (InstantiationException e) { }

Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/sysinfo/Main.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/sysinfo/Main.java?rev=1177776&r1=1177775&r2=1177776&view=diff
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/sysinfo/Main.java (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/sysinfo/Main.java Fri Sep 30 18:53:36 2011
@@ -220,8 +220,6 @@ public static void getMainInfo (java.io.
 
   private static void reportDerby (java.io.PrintWriter localAW) {
 
-	  localAW.println("JRE - JDBC: " + org.apache.derby.iapi.services.info.JVMInfo.derbyVMLevel());
-
 	  String classpath = null;
 
       try {