Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 b35d7573d -> 9df8a53dd


SQOOP-1896: Upgrade the Derby repo version to 5 for 1.99.5 release

(Veena Basavaraj via Jarek Jarcec Cecho)


Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/9df8a53d
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/9df8a53d
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/9df8a53d

Branch: refs/heads/sqoop2
Commit: 9df8a53dd2a908edbb4207aaa6f793ed4a0ad3a4
Parents: b35d757
Author: Jarek Jarcec Cecho <[email protected]>
Authored: Sun Dec 14 08:04:42 2014 -0800
Committer: Jarek Jarcec Cecho <[email protected]>
Committed: Sun Dec 14 08:04:42 2014 -0800

----------------------------------------------------------------------
 .../apache/sqoop/repository/JdbcRepository.java |   2 +-
 .../sqoop/repository/JdbcRepositoryHandler.java |   2 +-
 .../repository/derby/DerbyRepoConstants.java    |   3 +-
 .../derby/DerbyRepositoryHandler.java           |   4 +-
 .../sqoop/repository/derby/DerbyTestCase.java   |   5 +-
 .../repository/derby/TestRepositoryUpgrade.java | 161 +++++++++++++++++++
 .../derby/TestRespositorySchemaUpgrade.java     | 161 -------------------
 7 files changed, 170 insertions(+), 168 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/9df8a53d/core/src/main/java/org/apache/sqoop/repository/JdbcRepository.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/repository/JdbcRepository.java 
b/core/src/main/java/org/apache/sqoop/repository/JdbcRepository.java
index e5415e8..e163622 100644
--- a/core/src/main/java/org/apache/sqoop/repository/JdbcRepository.java
+++ b/core/src/main/java/org/apache/sqoop/repository/JdbcRepository.java
@@ -142,7 +142,7 @@ public class JdbcRepository extends Repository {
     return (Boolean) doWithConnection(new DoWithConnection() {
       @Override
       public Object doIt(Connection conn) throws Exception {
-        return handler.isRespositorySuitableForUse(conn);
+        return handler.isRepositorySuitableForUse(conn);
       }
     });
   }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/9df8a53d/core/src/main/java/org/apache/sqoop/repository/JdbcRepositoryHandler.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/sqoop/repository/JdbcRepositoryHandler.java 
b/core/src/main/java/org/apache/sqoop/repository/JdbcRepositoryHandler.java
index 4fe1500..ca590d8 100644
--- a/core/src/main/java/org/apache/sqoop/repository/JdbcRepositoryHandler.java
+++ b/core/src/main/java/org/apache/sqoop/repository/JdbcRepositoryHandler.java
@@ -156,7 +156,7 @@ public abstract class JdbcRepositoryHandler {
    * @param conn JDBC link for querying repository
    * @return Boolean values if internal structures are suitable for use
    */
-  public abstract boolean isRespositorySuitableForUse(Connection conn);
+  public abstract boolean isRepositorySuitableForUse(Connection conn);
 
   /**
    * Termination callback for repository.

http://git-wip-us.apache.org/repos/asf/sqoop/blob/9df8a53d/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java
----------------------------------------------------------------------
diff --git 
a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java
 
b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java
index d869cb7..4e1efc2 100644
--- 
a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java
+++ 
b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepoConstants.java
@@ -42,8 +42,9 @@ public final class DerbyRepoConstants {
    *     Increased size of SQ_CONNECTOR.SQC_VERSION to 64
    * 4 - Version 1.99.4
    *     Changed to FROM/TO design.
+   * 5 - Version 1.99.5
    */
-  public static final int LATEST_DERBY_REPOSITORY_VERSION = 4;
+  public static final int LATEST_DERBY_REPOSITORY_VERSION = 5;
 
   private DerbyRepoConstants() {
     // Disable explicit object creation

http://git-wip-us.apache.org/repos/asf/sqoop/blob/9df8a53d/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
----------------------------------------------------------------------
diff --git 
a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
 
b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
index 7ba851c..5bb3a43 100644
--- 
a/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
+++ 
b/repository/repository-derby/src/main/java/org/apache/sqoop/repository/derby/DerbyRepositoryHandler.java
@@ -290,7 +290,7 @@ public class DerbyRepositoryHandler extends 
CommonRepositoryHandler {
       }
     }
 
-    if (repositoryVersion <= 4) {
+    if (repositoryVersion < 5) {
       
runQuery(QUERY_UPGRADE_TABLE_SQ_CONFIG_ADD_UNIQUE_CONSTRAINT_NAME_TYPE_AND_CONFIGURABLE_ID,
           conn);
       
runQuery(QUERY_UPGRADE_TABLE_SQ_INPUT_ADD_UNIQUE_CONSTRAINT_NAME_TYPE_AND_CONFIG_ID,
 conn);
@@ -809,7 +809,7 @@ public class DerbyRepositoryHandler extends 
CommonRepositoryHandler {
    * {@inheritDoc}
    */
   @Override
-  public boolean isRespositorySuitableForUse(Connection conn) {
+  public boolean isRepositorySuitableForUse(Connection conn) {
     // TODO(jarcec): Verify that all structures are present (e.g. something 
like corruption validation)
     // NOTE: At this point is is just checking if the repo version matches the 
version
     // in the upgraded code

http://git-wip-us.apache.org/repos/asf/sqoop/blob/9df8a53d/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java
----------------------------------------------------------------------
diff --git 
a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java
 
b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java
index a895320..6d4153c 100644
--- 
a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java
+++ 
b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/DerbyTestCase.java
@@ -31,8 +31,6 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
 
 import org.apache.sqoop.common.Direction;
 import org.apache.sqoop.json.DriverBean;
@@ -546,6 +544,7 @@ abstract public class DerbyTestCase {
       break;
 
     case 4:
+    case 5:
       loadConnectorAndDriverConfigVersion4();
       break;
 
@@ -580,6 +579,7 @@ abstract public class DerbyTestCase {
       break;
 
     case 4:
+    case 5:
       // Insert two links - CA and CB
       runQuery("INSERT INTO SQOOP.SQ_LINK(SQ_LNK_NAME, SQ_LNK_CONFIGURABLE) " 
+ "VALUES('CA', 1)");
       runQuery("INSERT INTO SQOOP.SQ_LINK(SQ_LNK_NAME, SQ_LNK_CONFIGURABLE) " 
+ "VALUES('CB', 1)");
@@ -636,6 +636,7 @@ abstract public class DerbyTestCase {
       break;
 
     case 4:
+    case 5:
       for (String name : new String[] { "JA", "JB", "JC", "JD" }) {
         runQuery("INSERT INTO SQOOP.SQ_JOB(SQB_NAME, SQB_FROM_LINK, 
SQB_TO_LINK)" + " VALUES('"
             + name + index + "', 1, 1)");

http://git-wip-us.apache.org/repos/asf/sqoop/blob/9df8a53d/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRepositoryUpgrade.java
----------------------------------------------------------------------
diff --git 
a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRepositoryUpgrade.java
 
b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRepositoryUpgrade.java
new file mode 100644
index 0000000..31154af
--- /dev/null
+++ 
b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRepositoryUpgrade.java
@@ -0,0 +1,161 @@
+/**
+ * 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.sqoop.repository.derby;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.sql.Connection;
+import java.sql.SQLIntegrityConstraintViolationException;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class TestRepositoryUpgrade extends DerbyTestCase {
+
+  DerbyRepositoryHandler handler;
+
+  @Before
+  public void setUp() throws Exception {
+    super.setUp();
+    handler = new TestDerbyRepositoryHandler();
+  }
+
+  @Test
+  public void testHasLatestRepositoryVersion() throws Exception {
+    
assertFalse(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+    createOrUpgradeSchemaForLatestVersion(); // Test code is building the
+                                             // structures
+    
assertTrue(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+  }
+
+  @Test
+  public void testCreatorUpdateRepositorySchema() throws Exception {
+    
assertFalse(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
+    
assertTrue(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+  }
+
+  @Test
+  public void testDoubleUpdateRepositorySchema() throws Exception {
+    // Setup
+    
assertFalse(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
+    
assertTrue(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+
+    // Exercise and verify
+    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
+    
assertTrue(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+  }
+
+  @Test(expected = SQLIntegrityConstraintViolationException.class)
+  public void testUpgradeVersion4WithNonUniqueJobNameFailure() throws 
Exception {
+    super.createOrUpgradeSchema(4);
+    // try loading duplicate job names in version 4 and it should throw an
+    // exception
+    super.loadNonUniqueJobsInVersion4();
+  }
+
+  @Test(expected = SQLIntegrityConstraintViolationException.class)
+  public void testUpgradeVersion4WithNonUniqueLinkNamesAdded() throws 
Exception {
+    super.createOrUpgradeSchema(4);
+    // try loading duplicate link names in version 4 and it should throw an
+    // exception
+    super.loadNonUniqueLinksInVersion4();
+  }
+
+  @Test(expected = SQLIntegrityConstraintViolationException.class)
+  public void testUpgradeVersion4WithNonUniqueConfigurableNamesAdded() throws 
Exception {
+    super.createOrUpgradeSchema(4);
+    // try loading duplicate configurable names in version 4 and it should 
throw
+    // an exception
+    super.loadNonUniqueConfigurablesInVersion4();
+  }
+
+  @Test(expected = SQLIntegrityConstraintViolationException.class)
+  public void testUpgradeVersion4WithNonUniqueConfigNameAndTypeAdded() throws 
Exception {
+    super.createOrUpgradeSchema(4);
+    super.addConnectorB();
+    // try loading duplicate config names in version 4 and it should throw an
+    // exception
+    super.loadNonUniqueConfigNameTypeInVersion4();
+  }
+
+  @Test
+  public void testUpgradeVersion4WithNonUniqueConfigNameButUniqueTypeAdded() 
throws Exception {
+    super.createOrUpgradeSchema(4);
+    super.addConnectorB();
+    // try loading duplicate config names but unique type, hence no exception
+    super.loadNonUniqueConfigNameButUniqueTypeInVersion4();
+  }
+
+  @Test
+  public void 
testUpgradeVersion4WithNonUniqueConfigNameAndTypeButUniqueConfigurable()
+      throws Exception {
+    super.createOrUpgradeSchema(4);
+    super.addConnectorA();
+    super.addConnectorB();
+    // try loading duplicate config names and type but unique connector, hence
+    // no exception
+    super.loadNonUniqueConfigNameAndTypeButUniqueConfigurableInVersion4();
+  }
+
+  @Test(expected = SQLIntegrityConstraintViolationException.class)
+  public void testUpgradeVersion4WithNonUniqueInputNameAndTypeAdded() throws 
Exception {
+    super.createOrUpgradeSchema(4);
+    super.addConnectorB();
+    // try loading duplicate input name and type for a config in version 4 and 
it should throw an
+    // exception
+    super.loadNonUniqueInputNameTypeInVersion4();
+  }
+
+  @Test
+  public void testUpgradeVersion4WithNonUniqueInputNameAndTypeButUniqueConfig()
+      throws Exception {
+    super.createOrUpgradeSchema(4);
+    super.addConnectorA();
+    super.addConnectorB();
+    // try loading duplicate input names and type but unique config, hence
+    // no exception
+    super.loadNonUniqueInputNameAndTypeButUniqueConfigInVersion4();
+  }
+
+  @Test
+  public void testUpgradeRepoVersion2ToVersion4() throws Exception {
+    // in case of version 2 schema there is no unique job/ link constraint
+    super.createOrUpgradeSchema(2);
+    
assertFalse(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+    loadConnectorAndDriverConfig(2);
+    super.loadConnectionsOrLinks(2);
+    super.loadJobs(2);
+    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
+    
assertTrue(handler.isRepositorySuitableForUse(getDerbyDatabaseConnection()));
+  }
+
+  private class TestDerbyRepositoryHandler extends DerbyRepositoryHandler {
+    protected long registerHdfsConnector(Connection conn) {
+      try {
+        TestRepositoryUpgrade.this.runQuery("INSERT INTO 
SQOOP.SQ_CONNECTOR(SQC_NAME, SQC_CLASS, SQC_VERSION)"
+            + "VALUES('hdfs-connector', 'org.apache.sqoop.test.B', 
'1.0-test')");
+        return 2L;
+      } catch (Exception e) {
+        return -1L;
+      }
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/sqoop/blob/9df8a53d/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
----------------------------------------------------------------------
diff --git 
a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
 
b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
deleted file mode 100644
index 934056f..0000000
--- 
a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestRespositorySchemaUpgrade.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * 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.sqoop.repository.derby;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.sql.Connection;
-import java.sql.SQLIntegrityConstraintViolationException;
-
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestRespositorySchemaUpgrade extends DerbyTestCase {
-
-  DerbyRepositoryHandler handler;
-
-  @Before
-  public void setUp() throws Exception {
-    super.setUp();
-    handler = new TestDerbyRepositoryHandler();
-  }
-
-  @Test
-  public void testHasLatestRepositoryVersion() throws Exception {
-    
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-    createOrUpgradeSchemaForLatestVersion(); // Test code is building the
-                                             // structures
-    
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-  }
-
-  @Test
-  public void testCreatorUpdateRepositorySchema() throws Exception {
-    
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
-    
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-  }
-
-  @Test
-  public void testDoubleUpdateRepositorySchema() throws Exception {
-    // Setup
-    
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
-    
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-
-    // Exercise and verify
-    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
-    
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-  }
-
-  @Test(expected = SQLIntegrityConstraintViolationException.class)
-  public void testUpgradeVersion4WithNonUniqueJobNameFailure() throws 
Exception {
-    super.createOrUpgradeSchema(4);
-    // try loading duplicate job names in version 4 and it should throw an
-    // exception
-    super.loadNonUniqueJobsInVersion4();
-  }
-
-  @Test(expected = SQLIntegrityConstraintViolationException.class)
-  public void testUpgradeVersion4WithNonUniqueLinkNamesAdded() throws 
Exception {
-    super.createOrUpgradeSchema(4);
-    // try loading duplicate link names in version 4 and it should throw an
-    // exception
-    super.loadNonUniqueLinksInVersion4();
-  }
-
-  @Test(expected = SQLIntegrityConstraintViolationException.class)
-  public void testUpgradeVersion4WithNonUniqueConfigurableNamesAdded() throws 
Exception {
-    super.createOrUpgradeSchema(4);
-    // try loading duplicate configurable names in version 4 and it should 
throw
-    // an exception
-    super.loadNonUniqueConfigurablesInVersion4();
-  }
-
-  @Test(expected = SQLIntegrityConstraintViolationException.class)
-  public void testUpgradeVersion4WithNonUniqueConfigNameAndTypeAdded() throws 
Exception {
-    super.createOrUpgradeSchema(4);
-    super.addConnectorB();
-    // try loading duplicate config names in version 4 and it should throw an
-    // exception
-    super.loadNonUniqueConfigNameTypeInVersion4();
-  }
-
-  @Test
-  public void testUpgradeVersion4WithNonUniqueConfigNameButUniqueTypeAdded() 
throws Exception {
-    super.createOrUpgradeSchema(4);
-    super.addConnectorB();
-    // try loading duplicate config names but unique type, hence no exception
-    super.loadNonUniqueConfigNameButUniqueTypeInVersion4();
-  }
-
-  @Test
-  public void 
testUpgradeVersion4WithNonUniqueConfigNameAndTypeButUniqueConfigurable()
-      throws Exception {
-    super.createOrUpgradeSchema(4);
-    super.addConnectorA();
-    super.addConnectorB();
-    // try loading duplicate config names and type but unique connector, hence
-    // no exception
-    super.loadNonUniqueConfigNameAndTypeButUniqueConfigurableInVersion4();
-  }
-
-  @Test(expected = SQLIntegrityConstraintViolationException.class)
-  public void testUpgradeVersion4WithNonUniqueInputNameAndTypeAdded() throws 
Exception {
-    super.createOrUpgradeSchema(4);
-    super.addConnectorB();
-    // try loading duplicate input name and type for a config in version 4 and 
it should throw an
-    // exception
-    super.loadNonUniqueInputNameTypeInVersion4();
-  }
-
-  @Test
-  public void testUpgradeVersion4WithNonUniqueInputNameAndTypeButUniqueConfig()
-      throws Exception {
-    super.createOrUpgradeSchema(4);
-    super.addConnectorA();
-    super.addConnectorB();
-    // try loading duplicate input names and type but unique config, hence
-    // no exception
-    super.loadNonUniqueInputNameAndTypeButUniqueConfigInVersion4();
-  }
-
-  @Test
-  public void testUpgradeRepoVersion2ToVersion4() throws Exception {
-    // in case of version 2 schema there is no unique job/ link constraint
-    super.createOrUpgradeSchema(2);
-    
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-    loadConnectorAndDriverConfig(2);
-    super.loadConnectionsOrLinks(2);
-    super.loadJobs(2);
-    handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
-    
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
-  }
-
-  private class TestDerbyRepositoryHandler extends DerbyRepositoryHandler {
-    protected long registerHdfsConnector(Connection conn) {
-      try {
-        TestRespositorySchemaUpgrade.this.runQuery("INSERT INTO 
SQOOP.SQ_CONNECTOR(SQC_NAME, SQC_CLASS, SQC_VERSION)"
-            + "VALUES('hdfs-connector', 'org.apache.sqoop.test.B', 
'1.0-test')");
-        return 2L;
-      } catch (Exception e) {
-        return -1L;
-      }
-    }
-  }
-}
\ No newline at end of file

Reply via email to