You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by js...@apache.org on 2016/04/17 02:28:12 UTC
nifi git commit: NIFI-1685 Optimize database Junit tests to reduce
execution time. Removed commented blocks.
Repository: nifi
Updated Branches:
refs/heads/master 10986553a -> 678d64d1d
NIFI-1685 Optimize database Junit tests to reduce execution time. Removed commented blocks.
This closes #304.
Signed-off-by: Joe Skora <js...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/678d64d1
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/678d64d1
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/678d64d1
Branch: refs/heads/master
Commit: 678d64d1d4a05122182b0d57901bda685e0506dc
Parents: 1098655
Author: Toivo Adams <to...@gmail.com>
Authored: Fri Mar 25 18:51:00 2016 +0200
Committer: Joe Skora <js...@gmail.com>
Committed: Sat Apr 16 20:15:42 2016 -0400
----------------------------------------------------------------------
.../nifi/processors/standard/TestPutSQL.java | 179 ++++++-------------
.../standard/util/TestJdbcCommon.java | 63 +++----
2 files changed, 78 insertions(+), 164 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/678d64d1/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutSQL.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutSQL.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutSQL.java
index 301ad75..b5ebca5 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutSQL.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutSQL.java
@@ -39,39 +39,47 @@ import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.TestRunner;
import org.apache.nifi.util.TestRunners;
import org.junit.BeforeClass;
-import org.junit.Rule;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.mockito.Mockito;
public class TestPutSQL {
private static final String createPersons = "CREATE TABLE PERSONS (id integer primary key, name varchar(100), code integer)";
- private static final String createPersonsAutoId = "CREATE TABLE PERSONS (id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1), name VARCHAR(100), code INTEGER check(code <= 100))";
+ private static final String createPersonsAutoId = "CREATE TABLE PERSONS_AI (id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1), name VARCHAR(100), code INTEGER check(code <= 100))";
- @Rule
- public TemporaryFolder folder = new TemporaryFolder();
+ @ClassRule
+ public static TemporaryFolder folder = new TemporaryFolder();
+
+ /**
+ * Setting up Connection pooling is expensive operation.
+ * So let's do this only once and reuse MockDBCPService in each test.
+ */
+ static protected DBCPService service;
@BeforeClass
- public static void setup() {
+ public static void setupClass() throws ProcessException, SQLException {
System.setProperty("derby.stream.error.file", "target/derby.log");
- }
-
- @Test
- public void testDirectStatements() throws InitializationException, ProcessException, SQLException, IOException {
- final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
final File tempDir = folder.getRoot();
final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
- runner.addControllerService("dbcp", service);
- runner.enableControllerService(service);
-
+ service = new MockDBCPService(dbDir.getAbsolutePath());
try (final Connection conn = service.getConnection()) {
try (final Statement stmt = conn.createStatement()) {
stmt.executeUpdate(createPersons);
+ stmt.executeUpdate(createPersonsAutoId);
}
}
+ }
+ @Test
+ public void testDirectStatements() throws InitializationException, ProcessException, SQLException, IOException {
+ final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
+ runner.addControllerService("dbcp", service);
+ runner.enableControllerService(service);
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
+
+ recreateTable("PERSONS", createPersons);
+
runner.enqueue("INSERT INTO PERSONS (ID, NAME, CODE) VALUES (1, 'Mark', 84)".getBytes());
runner.run();
@@ -107,21 +115,13 @@ public class TestPutSQL {
@Test
public void testInsertWithGeneratedKeys() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersonsAutoId);
- }
- }
-
runner.setProperty(PutSQL.OBTAIN_GENERATED_KEYS, "true");
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
- runner.enqueue("INSERT INTO PERSONS (NAME, CODE) VALUES ('Mark', 84)".getBytes());
+
+ recreateTable("PERSONS_AI",createPersonsAutoId);
+ runner.enqueue("INSERT INTO PERSONS_AI (NAME, CODE) VALUES ('Mark', 84)".getBytes());
runner.run();
runner.assertAllFlowFilesTransferred(PutSQL.REL_SUCCESS, 1);
@@ -130,7 +130,7 @@ public class TestPutSQL {
try (final Connection conn = service.getConnection()) {
try (final Statement stmt = conn.createStatement()) {
- final ResultSet rs = stmt.executeQuery("SELECT * FROM PERSONS");
+ final ResultSet rs = stmt.executeQuery("SELECT * FROM PERSONS_AI");
assertTrue(rs.next());
assertEquals(1, rs.getInt(1));
assertEquals("Mark", rs.getString(2));
@@ -144,24 +144,14 @@ public class TestPutSQL {
@Test
public void testFailInMiddleWithBadStatement() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersonsAutoId);
- }
- }
-
runner.setProperty(PutSQL.OBTAIN_GENERATED_KEYS, "false");
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
- runner.enqueue("INSERT INTO PERSONS (NAME, CODE) VALUES ('Mark', 84)".getBytes());
- runner.enqueue("INSERT INTO PERSONS".getBytes()); // intentionally wrong syntax
- runner.enqueue("INSERT INTO PERSONS (NAME, CODE) VALUES ('Tom', 3)".getBytes());
- runner.enqueue("INSERT INTO PERSONS (NAME, CODE) VALUES ('Harry', 44)".getBytes());
+ runner.enqueue("INSERT INTO PERSONS_AI (NAME, CODE) VALUES ('Mark', 84)".getBytes());
+ runner.enqueue("INSERT INTO PERSONS_AI".getBytes()); // intentionally wrong syntax
+ runner.enqueue("INSERT INTO PERSONS_AI (NAME, CODE) VALUES ('Tom', 3)".getBytes());
+ runner.enqueue("INSERT INTO PERSONS_AI (NAME, CODE) VALUES ('Harry', 44)".getBytes());
runner.run();
runner.assertTransferCount(PutSQL.REL_FAILURE, 1);
@@ -172,18 +162,8 @@ public class TestPutSQL {
@Test
public void testFailInMiddleWithBadParameterType() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersonsAutoId);
- }
- }
-
runner.setProperty(PutSQL.OBTAIN_GENERATED_KEYS, "false");
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
@@ -195,7 +175,7 @@ public class TestPutSQL {
badAttributes.put("sql.args.1.type", String.valueOf(Types.VARCHAR));
badAttributes.put("sql.args.1.value", "hello");
- final byte[] data = "INSERT INTO PERSONS (NAME, CODE) VALUES ('Mark', ?)".getBytes();
+ final byte[] data = "INSERT INTO PERSONS_AI (NAME, CODE) VALUES ('Mark', ?)".getBytes();
runner.enqueue(data, goodAttributes);
runner.enqueue(data, badAttributes);
runner.enqueue(data, goodAttributes);
@@ -210,21 +190,13 @@ public class TestPutSQL {
@Test
public void testFailInMiddleWithBadParameterValue() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersonsAutoId);
- }
- }
-
runner.setProperty(PutSQL.OBTAIN_GENERATED_KEYS, "false");
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
+ recreateTable("PERSONS_AI",createPersonsAutoId);
+
final Map<String, String> goodAttributes = new HashMap<>();
goodAttributes.put("sql.args.1.type", String.valueOf(Types.INTEGER));
goodAttributes.put("sql.args.1.value", "84");
@@ -233,7 +205,7 @@ public class TestPutSQL {
badAttributes.put("sql.args.1.type", String.valueOf(Types.INTEGER));
badAttributes.put("sql.args.1.value", "9999");
- final byte[] data = "INSERT INTO PERSONS (NAME, CODE) VALUES ('Mark', ?)".getBytes();
+ final byte[] data = "INSERT INTO PERSONS_AI (NAME, CODE) VALUES ('Mark', ?)".getBytes();
runner.enqueue(data, goodAttributes);
runner.enqueue(data, badAttributes);
runner.enqueue(data, goodAttributes);
@@ -246,7 +218,7 @@ public class TestPutSQL {
try (final Connection conn = service.getConnection()) {
try (final Statement stmt = conn.createStatement()) {
- final ResultSet rs = stmt.executeQuery("SELECT * FROM PERSONS");
+ final ResultSet rs = stmt.executeQuery("SELECT * FROM PERSONS_AI");
assertTrue(rs.next());
assertEquals(1, rs.getInt(1));
assertEquals("Mark", rs.getString(2));
@@ -260,30 +232,26 @@ public class TestPutSQL {
@Test
public void testUsingSqlDataTypesWithNegativeValues() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
- runner.addControllerService("dbcp", service);
- runner.enableControllerService(service);
-
try (final Connection conn = service.getConnection()) {
try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate("CREATE TABLE PERSONS (id integer primary key, name varchar(100), code bigint)");
+ stmt.executeUpdate("CREATE TABLE PERSONS2 (id integer primary key, name varchar(100), code bigint)");
}
}
+ runner.addControllerService("dbcp", service);
+ runner.enableControllerService(service);
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
final Map<String, String> attributes = new HashMap<>();
attributes.put("sql.args.1.type", "-5");
attributes.put("sql.args.1.value", "84");
- runner.enqueue("INSERT INTO PERSONS (ID, NAME, CODE) VALUES (1, 'Mark', ?)".getBytes(), attributes);
+ runner.enqueue("INSERT INTO PERSONS2 (ID, NAME, CODE) VALUES (1, 'Mark', ?)".getBytes(), attributes);
runner.run();
runner.assertAllFlowFilesTransferred(PutSQL.REL_SUCCESS, 1);
try (final Connection conn = service.getConnection()) {
try (final Statement stmt = conn.createStatement()) {
- final ResultSet rs = stmt.executeQuery("SELECT * FROM PERSONS");
+ final ResultSet rs = stmt.executeQuery("SELECT * FROM PERSONS2");
assertTrue(rs.next());
assertEquals(1, rs.getInt(1));
assertEquals("Mark", rs.getString(2));
@@ -296,19 +264,12 @@ public class TestPutSQL {
@Test
public void testStatementsWithPreparedParameters() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
+ runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersons);
- }
- }
+ recreateTable("PERSONS", createPersons);
- runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
final Map<String, String> attributes = new HashMap<>();
attributes.put("sql.args.1.type", String.valueOf(Types.INTEGER));
attributes.put("sql.args.1.value", "1");
@@ -364,18 +325,8 @@ public class TestPutSQL {
@Test
public void testMultipleStatementsWithinFlowFile() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersons);
- }
- }
-
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
final String sql = "INSERT INTO PERSONS (ID, NAME, CODE) VALUES (?, ?, ?); " +
@@ -411,18 +362,8 @@ public class TestPutSQL {
@Test
public void testWithNullParameter() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersons);
- }
- }
-
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
final Map<String, String> attributes = new HashMap<>();
attributes.put("sql.args.1.type", String.valueOf(Types.INTEGER));
@@ -453,20 +394,12 @@ public class TestPutSQL {
@Test
public void testInvalidStatement() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersons);
- }
- }
-
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
+ recreateTable("PERSONS", createPersons);
+
final String sql = "INSERT INTO PERSONS (ID, NAME, CODE) VALUES (?, ?, ?); " +
"UPDATE SOME_RANDOM_TABLE NAME='George' WHERE ID=?; ";
final Map<String, String> attributes = new HashMap<>();
@@ -532,21 +465,13 @@ public class TestPutSQL {
@Test
public void testMultipleFlowFilesSuccessfulInTransaction() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
-
- try (final Connection conn = service.getConnection()) {
- try (final Statement stmt = conn.createStatement()) {
- stmt.executeUpdate(createPersons);
- }
- }
-
runner.setProperty(PutSQL.CONNECTION_POOL, "dbcp");
runner.setProperty(PutSQL.BATCH_SIZE, "1");
+ recreateTable("PERSONS", createPersons);
+
final Map<String, String> attributes = new HashMap<>();
attributes.put("sql.args.1.type", String.valueOf(Types.INTEGER));
attributes.put("sql.args.1.value", "1");
@@ -599,9 +524,6 @@ public class TestPutSQL {
@Test
public void testTransactionTimeout() throws InitializationException, ProcessException, SQLException, IOException {
final TestRunner runner = TestRunners.newTestRunner(PutSQL.class);
- final File tempDir = folder.getRoot();
- final File dbDir = new File(tempDir, "db");
- final DBCPService service = new MockDBCPService(dbDir.getAbsolutePath());
runner.addControllerService("dbcp", service);
runner.enableControllerService(service);
@@ -697,4 +619,13 @@ public class TestPutSQL {
}
}
}
+
+ private void recreateTable(String tableName, String createSQL) throws ProcessException, SQLException {
+ try (final Connection conn = service.getConnection()) {
+ try (final Statement stmt = conn.createStatement()) {
+ stmt.executeUpdate("drop table " + tableName);
+ stmt.executeUpdate(createSQL);
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/nifi/blob/678d64d1/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java
index da9e163..37933a1 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java
@@ -46,7 +46,7 @@ import org.apache.avro.generic.GenericRecord;
import org.apache.avro.io.DatumReader;
import org.junit.Assert;
import org.junit.BeforeClass;
-import org.junit.Rule;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.mockito.Mockito;
@@ -55,33 +55,35 @@ import org.mockito.stubbing.Answer;
public class TestJdbcCommon {
- @Rule
- public TemporaryFolder folder = new TemporaryFolder();
+ static final String createTable = "create table restaurants(id integer, name varchar(20), city varchar(50))";
+ static final String dropTable = "drop table restaurants";
- @BeforeClass
- public static void setup() {
- System.setProperty("derby.stream.error.file", "target/derby.log");
- }
+ @ClassRule
+ public static TemporaryFolder folder = new TemporaryFolder();
- String createTable = "create table restaurants(id integer, name varchar(20), city varchar(50))";
- String dropTable = "drop table restaurants";
-
- @Test
- public void testCreateSchema() throws ClassNotFoundException, SQLException {
+ /**
+ * Setting up Connection is expensive operation.
+ * So let's do this only once and reuse Connection in each test.
+ */
+ static protected Connection con;
+ @BeforeClass
+ public static void setup() throws ClassNotFoundException, SQLException {
+ System.setProperty("derby.stream.error.file", "target/derby.log");
+ Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
// remove previous test database, if any
folder.delete();
- final Connection con = createConnection(folder.getRoot().getAbsolutePath());
- final Statement st = con.createStatement();
-
- try {
- st.executeUpdate(dropTable);
- } catch (final Exception e) {
- // table may not exist, this is not serious problem.
+ String location = folder.getRoot().getAbsolutePath();
+ con = DriverManager.getConnection("jdbc:derby:" + location + ";create=true");
+ try (final Statement stmt = con.createStatement()) {
+ stmt.executeUpdate(createTable);
}
+ }
- st.executeUpdate(createTable);
+ @Test
+ public void testCreateSchema() throws ClassNotFoundException, SQLException {
+ final Statement st = con.createStatement();
st.executeUpdate("insert into restaurants values (1, 'Irifunes', 'San Mateo')");
st.executeUpdate("insert into restaurants values (2, 'Estradas', 'Daly City')");
st.executeUpdate("insert into restaurants values (3, 'Prime Rib House', 'San Francisco')");
@@ -100,7 +102,7 @@ public class TestJdbcCommon {
assertNotNull(schema.getField("CITY"));
st.close();
- con.close();
+// con.close();
}
@Test
@@ -120,7 +122,6 @@ public class TestJdbcCommon {
// may have different table names
assertEquals("NiFi_ExecuteSQL_Record", schema.getName());
assertNull(schema.getField("ID"));
-
}
@Test
@@ -144,20 +145,7 @@ public class TestJdbcCommon {
@Test
public void testConvertToBytes() throws ClassNotFoundException, SQLException, IOException {
- // remove previous test database, if any
- folder.delete();
-
- final Connection con = createConnection(folder.getRoot().getAbsolutePath());
final Statement st = con.createStatement();
-
- try {
- st.executeUpdate(dropTable);
- } catch (final Exception e) {
- // table may not exist, this is not serious problem.
- }
-
- st.executeUpdate(createTable);
-
st.executeUpdate("insert into restaurants values (1, 'Irifunes', 'San Mateo')");
st.executeUpdate("insert into restaurants values (2, 'Estradas', 'Daly City')");
st.executeUpdate("insert into restaurants values (3, 'Prime Rib House', 'San Francisco')");
@@ -342,9 +330,4 @@ public class TestJdbcCommon {
assertNotNull(clazz);
}
- private Connection createConnection(String location) throws ClassNotFoundException, SQLException {
- Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
- return DriverManager.getConnection("jdbc:derby:" + location + ";create=true");
- }
-
}