This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git


The following commit(s) were added to refs/heads/master by this push:
     new 8f3e1bc  make derby Driver optional
8f3e1bc is described below

commit 8f3e1bc21aaf745dff450e7da2c29a99283730d3
Author: Mark Struberg <[email protected]>
AuthorDate: Sat Sep 5 19:28:28 2020 +0200

    make derby Driver optional
    
    Skip this test if the class is not on the classpath.
    This basically happens with every profile other than test-derby
---
 .../openjpa/jdbc/sql/TestDelimitIdentifiers.java     | 20 ++++++++++++++++----
 .../apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java    | 17 +++++++++++++++--
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestDelimitIdentifiers.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestDelimitIdentifiers.java
index 505c8f0..e91b998 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestDelimitIdentifiers.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestDelimitIdentifiers.java
@@ -20,7 +20,6 @@ package org.apache.openjpa.jdbc.sql;
 
 import static junit.framework.TestCase.assertEquals;
 import org.apache.commons.dbcp2.BasicDataSource;
-import org.apache.derby.jdbc.EmbeddedDriver;
 import org.apache.openjpa.persistence.PersistenceProviderImpl;
 import org.apache.openjpa.persistence.PersistenceUnitInfoImpl;
 import org.junit.Test;
@@ -28,12 +27,13 @@ import org.junit.Test;
 import javax.persistence.Entity;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
+
+import java.sql.Driver;
 import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Set;
 
-import static org.junit.Assert.assertNotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -68,14 +68,26 @@ public class TestDelimitIdentifiers {
             setSupportsDelimitedIdentifiers(true);
         }
     }
-    
+
     @Test
     public void testDelimitIdentifiers() throws SQLException {
+
+        Driver derbyDriver;
+        try {
+            Class derbyClazz = 
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
+            derbyDriver = (Driver) derbyClazz.newInstance();
+        }
+        catch (Exception e) {
+            // all fine
+            System.out.println("Skipping Derby specific test because Derby 
cannot be found in ClassPath");
+            return;
+        }
+
         final PersistenceUnitInfoImpl persistenceUnitInfo = new 
PersistenceUnitInfoImpl();
         persistenceUnitInfo.setExcludeUnlistedClasses(true);
         persistenceUnitInfo.addManagedClassName(AllFieldTypes.class.getName());
         final BasicDataSource ds = new BasicDataSource();
-        ds.setDriver(new EmbeddedDriver());
+        ds.setDriver(derbyDriver);
         ds.setUrl("jdbc:derby:memory:TestDelimitIdentifiers;create=true");
         persistenceUnitInfo.setNonJtaDataSource(ds);
         // reproducer for OPENJPA-2818 
delimitIdentifiers=true,delimitedCase=lower,schemaCase=lower
diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
index 94d1a51..ac36b1f 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/sql/TestSnakeCaseDDL.java
@@ -19,7 +19,6 @@
 package org.apache.openjpa.jdbc.sql;
 
 import org.apache.commons.dbcp2.BasicDataSource;
-import org.apache.derby.jdbc.EmbeddedDriver;
 import org.apache.openjpa.persistence.PersistenceProviderImpl;
 import org.apache.openjpa.persistence.PersistenceUnitInfoImpl;
 import org.junit.Test;
@@ -29,6 +28,7 @@ import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Id;
 import java.sql.Connection;
+import java.sql.Driver;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
@@ -46,14 +46,27 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 public class TestSnakeCaseDDL {
+
     @Test
     public void ddlInSnakeCase() throws SQLException {
+
+        Driver derbyDriver;
+        try {
+            Class derbyClazz = 
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
+            derbyDriver = (Driver) derbyClazz.newInstance();
+        }
+        catch (Exception e) {
+            // all fine
+            System.out.println("Skipping Derby specific test because Derby 
cannot be found in ClassPath");
+            return;
+        }
+
         final PersistenceUnitInfoImpl persistenceUnitInfo = new 
PersistenceUnitInfoImpl();
         persistenceUnitInfo.setExcludeUnlistedClasses(true);
         persistenceUnitInfo.addManagedClassName(MyEntity1.class.getName());
         persistenceUnitInfo.addManagedClassName(MyEntity2.class.getName());
         final BasicDataSource ds = new BasicDataSource();
-        ds.setDriver(new EmbeddedDriver());
+        ds.setDriver(derbyDriver);
         ds.setUrl("jdbc:derby:memory:ddlInSnakeCase;create=true");
         persistenceUnitInfo.setJtaDataSource(ds);
         persistenceUnitInfo.setProperty("openjpa.jdbc.DBDictionary", 
"derby(javaToDbColumnNameProcessing=snake_case)");

Reply via email to