You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ja...@apache.org on 2015/11/12 22:08:32 UTC

sqoop git commit: SQOOP-2675: Sqoop2: Remove the id from public interface for Job

Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 fdc7cd3d3 -> 6dde89615


SQOOP-2675: Sqoop2: Remove the id from public interface for Job

(Colin Ma 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/6dde8961
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/6dde8961
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/6dde8961

Branch: refs/heads/sqoop2
Commit: 6dde89615895212a51d10f829b4a6332f24d4526
Parents: fdc7cd3
Author: Jarek Jarcec Cecho <ja...@apache.org>
Authored: Thu Nov 12 13:08:02 2015 -0800
Committer: Jarek Jarcec Cecho <ja...@apache.org>
Committed: Thu Nov 12 13:08:02 2015 -0800

----------------------------------------------------------------------
 .../org/apache/sqoop/handler/HandlerUtils.java  | 47 ++------------------
 .../apache/sqoop/handler/JobRequestHandler.java | 36 +++++++--------
 .../sqoop/handler/SubmissionRequestHandler.java |  4 +-
 .../test/infrastructure/SqoopTestCase.java      |  4 +-
 .../sqoop/test/testcases/ConnectorTestCase.java |  6 +--
 .../jdbc/generic/IncrementalReadTest.java       |  4 +-
 .../derby/upgrade/Derby1_99_3UpgradeTest.java   | 14 ++----
 .../derby/upgrade/Derby1_99_4UpgradeTest.java   |  9 +---
 .../derby/upgrade/Derby1_99_5UpgradeTest.java   |  9 +---
 .../derby/upgrade/Derby1_99_6UpgradeTest.java   |  9 +---
 .../upgrade/DerbyRepositoryUpgradeTest.java     | 23 +++++-----
 .../SubmissionWithDisabledModelObjectsTest.java |  7 ++-
 12 files changed, 59 insertions(+), 113 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java b/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java
index 69bccf7..c23a704 100644
--- a/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java
+++ b/server/src/main/java/org/apache/sqoop/handler/HandlerUtils.java
@@ -27,53 +27,14 @@ import org.apache.sqoop.server.common.ServerError;
 
 public class HandlerUtils {
 
-  public static long getJobIdFromIdentifier(String identifier) {
-    // support jobName or jobId for the api
-    // NOTE: jobId is a fallback for older sqoop clients if any, since we want
-    // to primarily use unique jobNames
-    long jobId;
-    Repository repository = RepositoryManager.getInstance().getRepository();
-    MJob job = repository.findJob(identifier);
-    if (job != null) {
-      jobId = job.getPersistenceId();
-    } else {
-      try {
-        jobId = Long.parseLong(identifier);
-      } catch (NumberFormatException ex) {
-        // this means name nor Id existed and we want to throw a user friendly
-        // message than a number format exception
-        throw new SqoopException(ServerError.SERVER_0005, "Invalid job: " + identifier
-            + " requested");
-      }
-    }
-    return jobId;
-  }
-
-  public static String getJobNameFromIdentifier(String identifier) {
-    // support jobName or jobId for the api
-    // NOTE: jobId is a fallback for older sqoop clients if any, since we want
-    // to primarily use unique jobNames
+  public static MJob getJobFromIdentifier(String identifier) {
     Repository repository = RepositoryManager.getInstance().getRepository();
     MJob job = repository.findJob(identifier);
     if (job == null) {
-      long jobId;
-      try {
-        jobId = Long.parseLong(identifier);
-      } catch (NumberFormatException ex) {
-        // this means name nor Id existed and we want to throw a user friendly
-        // message than a number format exception
-        throw new SqoopException(ServerError.SERVER_0005, "Invalid job: " + identifier
-            + " requested");
-      }
-
-      job = repository.findJob(jobId);
-      if (job == null) {
-        throw new SqoopException(ServerError.SERVER_0006, "Job: " + identifier
-            + " doesn't exist");
-      }
+      throw new SqoopException(ServerError.SERVER_0006, "Job: " + identifier
+              + " doesn't exist");
     }
-
-    return job.getName();
+    return job;
   }
 
   public static long getLinkIdFromIdentifier(String identifier) {

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java
index 6face94..094bf2b 100644
--- a/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java
+++ b/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java
@@ -141,7 +141,8 @@ public class JobRequestHandler implements RequestHandler {
     Repository repository = RepositoryManager.getInstance().getRepository();
 
     String jobIdentifier = ctx.getLastURLElement();
-    String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier);
+    MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier);
+    String jobName = job.getName();
 
     // Authorization check
     AuthorizationEngine.deleteJob(ctx.getUserName(), jobName);
@@ -195,7 +196,7 @@ public class JobRequestHandler implements RequestHandler {
       AuthorizationEngine.updateJob(ctx.getUserName(),
           HandlerUtils.getLinkNameFromIdentifier(String.valueOf(postedJob.getFromLinkId())),
           HandlerUtils.getLinkNameFromIdentifier(String.valueOf(postedJob.getToLinkId())),
-          HandlerUtils.getJobNameFromIdentifier(String.valueOf(postedJob.getPersistenceId())));
+          postedJob.getName());
     }
 
     // Verify that user is not trying to spoof us
@@ -214,10 +215,8 @@ public class JobRequestHandler implements RequestHandler {
     // if update get the job id from the request URI
     if (!create) {
       String jobIdentifier = ctx.getLastURLElement();
-      // support jobName or jobId for the api
-      long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
+      MJob existingJob = HandlerUtils.getJobFromIdentifier(jobIdentifier);
       if (postedJob.getPersistenceId() == MPersistableEntity.PERSISTANCE_ID_DEFAULT) {
-        MJob existingJob = repository.findJob(jobId);
         postedJob.setPersistenceId(existingJob.getPersistenceId());
       }
     }
@@ -310,12 +309,12 @@ public class JobRequestHandler implements RequestHandler {
       AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(),
           ctx.getRequest().getRemoteAddr(), "get", "job", connectorIdentifier);
 
-      String jobName = HandlerUtils.getJobNameFromIdentifier(connectorIdentifier);
+      MJob job = HandlerUtils.getJobFromIdentifier(connectorIdentifier);
+      String jobName = job.getName();
 
       // Authorization check
       AuthorizationEngine.readJob(ctx.getUserName(), jobName);
 
-      MJob job = repository.findJob(jobName);
       jobBean = createJobBean(Arrays.asList(job), locale);
     }
     return jobBean;
@@ -354,7 +353,8 @@ public class JobRequestHandler implements RequestHandler {
     Repository repository = RepositoryManager.getInstance().getRepository();
     String[] elements = ctx.getUrlElements();
     String jobIdentifier = elements[elements.length - 2];
-    String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier);
+    MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier);
+    String jobName = job.getName();
 
     // Authorization check
     AuthorizationEngine.enableDisableJob(ctx.getUserName(), jobName);
@@ -366,14 +366,14 @@ public class JobRequestHandler implements RequestHandler {
   private JsonBean startJob(RequestContext ctx) {
     String[] elements = ctx.getUrlElements();
     String jobIdentifier = elements[elements.length - 2];
-    long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
-    String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier);
+    MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier);
+    String jobName = job.getName();
 
     // Authorization check
     AuthorizationEngine.startJob(ctx.getUserName(), jobName);
 
     AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(),
-        ctx.getRequest().getRemoteAddr(), "submit", "job", String.valueOf(jobId));
+        ctx.getRequest().getRemoteAddr(), "submit", "job", jobName);
     // TODO(SQOOP-1638): This should be outsourced somewhere more suitable than here
     // Current approach is to point JobManager to use /v1/job/notification/$JOB_ID/status
     // and depend on the behavior of status that for running jobs will go to the cluster
@@ -392,14 +392,14 @@ public class JobRequestHandler implements RequestHandler {
   private JsonBean stopJob(RequestContext ctx) {
     String[] elements = ctx.getUrlElements();
     String jobIdentifier = elements[elements.length - 2];
-    long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
-    String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier);
+    MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier);
+    String jobName = job.getName();
 
     // Authorization check
     AuthorizationEngine.stopJob(ctx.getUserName(), jobName);
 
     AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(),
-        ctx.getRequest().getRemoteAddr(), "stop", "job", String.valueOf(jobId));
+        ctx.getRequest().getRemoteAddr(), "stop", "job", jobName);
     MSubmission submission = JobManager.getInstance().stop(jobName, prepareRequestEventContext(ctx));
     return new SubmissionBean(submission);
   }
@@ -407,17 +407,17 @@ public class JobRequestHandler implements RequestHandler {
   private JsonBean getJobStatus(RequestContext ctx) {
     String[] elements = ctx.getUrlElements();
     String jobIdentifier = elements[elements.length - 2];
-    long jobId = HandlerUtils.getJobIdFromIdentifier(jobIdentifier);
-    String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier);
+    MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier);
+    String jobName = job.getName();
 
     // Authorization check
     AuthorizationEngine.statusJob(ctx.getUserName(), jobName);
 
     AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(),
-        ctx.getRequest().getRemoteAddr(), "status", "job", String.valueOf(jobId));
+        ctx.getRequest().getRemoteAddr(), "status", "job", jobName);
     MSubmission submission = JobManager.getInstance().status(jobName);
     if (submission == null) {
-      submission = new MSubmission(jobId, new Date(), SubmissionStatus.NEVER_EXECUTED);
+      submission = new MSubmission(job.getPersistenceId(), new Date(), SubmissionStatus.NEVER_EXECUTED);
     }
 
     return new SubmissionBean(submission);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java
index 02937bb..6cf3dbe 100644
--- a/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java
+++ b/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java
@@ -24,6 +24,7 @@ import org.apache.sqoop.audit.AuditLoggerManager;
 import org.apache.sqoop.common.SqoopException;
 import org.apache.sqoop.json.JsonBean;
 import org.apache.sqoop.json.SubmissionsBean;
+import org.apache.sqoop.model.MJob;
 import org.apache.sqoop.model.MSubmission;
 import org.apache.sqoop.repository.RepositoryManager;
 import org.apache.sqoop.security.authorization.AuthorizationEngine;
@@ -75,7 +76,8 @@ public class SubmissionRequestHandler implements RequestHandler {
   }
 
   private JsonBean getSubmissionsForJob(String jobIdentifier, RequestContext ctx) {
-    String jobName = HandlerUtils.getJobNameFromIdentifier(jobIdentifier);
+    MJob job = HandlerUtils.getJobFromIdentifier(jobIdentifier);
+    String jobName = job.getName();
 
     //Authorization check
     AuthorizationEngine.statusJob(ctx.getUserName(), jobName);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java
----------------------------------------------------------------------
diff --git a/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java b/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java
index 386b701..4c5d3a8 100644
--- a/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java
+++ b/test/src/main/java/org/apache/sqoop/test/infrastructure/SqoopTestCase.java
@@ -353,8 +353,8 @@ public class SqoopTestCase implements ITest {
    * @param jid Job id
    * @throws Exception
    */
-  public void executeJob(long jid) throws Exception {
-    MSubmission finalSubmission = getClient().startJob(jid, DEFAULT_SUBMISSION_CALLBACKS, 100);
+  public void executeJob(String jobName) throws Exception {
+    MSubmission finalSubmission = getClient().startJob(jobName, DEFAULT_SUBMISSION_CALLBACKS, 100);
 
     if(finalSubmission.getStatus().isFailure()) {
       LOG.error("Submission has failed: " + finalSubmission.getError().getErrorSummary());

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
----------------------------------------------------------------------
diff --git a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java b/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
index 8e3d7df..c843448 100644
--- a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
+++ b/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
@@ -279,8 +279,8 @@ abstract public class ConnectorTestCase extends JettyTestCase {
    * @param jid Job id
    * @throws Exception
    */
-  protected void executeJob(long jid) throws Exception {
-    MSubmission finalSubmission = getClient().startJob(jid, DEFAULT_SUBMISSION_CALLBACKS, 100);
+  protected void executeJob(String jobName) throws Exception {
+    MSubmission finalSubmission = getClient().startJob(jobName, DEFAULT_SUBMISSION_CALLBACKS, 100);
 
     if(finalSubmission.getStatus().isFailure()) {
       LOG.error("Submission has failed: " + finalSubmission.getError().getErrorSummary());
@@ -297,6 +297,6 @@ abstract public class ConnectorTestCase extends JettyTestCase {
    * @throws Exception
    */
   protected void executeJob(MJob job) throws Exception {
-    executeJob(job.getPersistenceId());
+    executeJob(job.getName());
   }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java b/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java
index a7be9c6..d29e4cf 100644
--- a/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/connector/jdbc/generic/IncrementalReadTest.java
@@ -120,7 +120,7 @@ public class IncrementalReadTest extends ConnectorTestCase implements ITest {
       );
 
     // Verify new last value
-    MJob updatedJob = getClient().getJob(job.getPersistenceId());
+    MJob updatedJob = getClient().getJob(job.getName());
     assertEquals(updatedJob.getFromJobConfig().getStringInput("incrementalRead.lastValue").getValue(), newMaxValue);
 
     // Clean up testing table
@@ -175,7 +175,7 @@ public class IncrementalReadTest extends ConnectorTestCase implements ITest {
       );
 
     // Verify new last value
-    MJob updatedJob = getClient().getJob(job.getPersistenceId());
+    MJob updatedJob = getClient().getJob(job.getName());
     assertEquals(updatedJob.getFromJobConfig().getStringInput("incrementalRead.lastValue").getValue(), newMaxValue);
 
     // Clean up testing table

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java
index 3962449..ab2b950 100644
--- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_3UpgradeTest.java
@@ -20,10 +20,7 @@ package org.apache.sqoop.integration.repository.derby.upgrade;
 import org.apache.sqoop.model.MJob;
 import org.testng.annotations.Test;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
+import java.util.*;
 
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertEquals;
@@ -77,8 +74,8 @@ public class Derby1_99_3UpgradeTest extends DerbyRepositoryUpgradeTest {
   }
 
   @Override
-  public Integer[] getDisabledJobIds() {
-    return new Integer[] {3};
+  public String[] getDisabledJobNames() {
+    return new String[] {jobIdToNameMap.get(3L)};
   }
 
   @Override
@@ -86,11 +83,6 @@ public class Derby1_99_3UpgradeTest extends DerbyRepositoryUpgradeTest {
     return new Integer[] {1, 2, 3, 4, 5};
   }
 
-  @Override
-  public Integer[] getDeleteJobIds() {
-    return new Integer[] {1, 2, 3, 4, 5, 6};
-  }
-
   @Test
   public void testNonuniqueNames() throws Exception {
     Set<String> jobNames = new TreeSet<String>();

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java
index 9ee0379..c86888f 100644
--- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_4UpgradeTest.java
@@ -76,17 +76,12 @@ public class Derby1_99_4UpgradeTest extends DerbyRepositoryUpgradeTest {
   }
 
   @Override
-  public Integer[] getDisabledJobIds() {
-    return new Integer[] {4, 5};
+  public String[] getDisabledJobNames() {
+    return new String[] {jobIdToNameMap.get(4L), jobIdToNameMap.get(5L)};
   }
 
   @Override
   public Integer[] getDeleteLinkIds() {
     return new Integer[] {1, 2, 3, 4, 5, 6};
   }
-
-  @Override
-  public Integer[] getDeleteJobIds() {
-    return new Integer[] {1, 2, 3, 4, 5, 6};
-  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java
index 4183d8b..8e6435a 100644
--- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_5UpgradeTest.java
@@ -85,8 +85,8 @@ public class Derby1_99_5UpgradeTest extends DerbyRepositoryUpgradeTest {
   }
 
   @Override
-  public Integer[] getDisabledJobIds() {
-    return new Integer[] {4, 5};
+  public String[] getDisabledJobNames() {
+    return new String[] {jobIdToNameMap.get(4L), jobIdToNameMap.get(5L)};
   }
 
   @Override
@@ -94,11 +94,6 @@ public class Derby1_99_5UpgradeTest extends DerbyRepositoryUpgradeTest {
     return new Integer[] {1, 2, 3, 4, 5, 6};
   }
 
-  @Override
-  public Integer[] getDeleteJobIds() {
-    return new Integer[] {1, 2, 3, 4, 5, 6};
-  }
-
   @Test
   public void testJobNameNotNull() {
     assertEquals(getNumberOfJobs(), getClient().getJobs().size());

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java
index 59980c0..258b79a 100644
--- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/Derby1_99_6UpgradeTest.java
@@ -86,8 +86,8 @@ public class Derby1_99_6UpgradeTest extends DerbyRepositoryUpgradeTest {
   }
 
   @Override
-  public Integer[] getDisabledJobIds() {
-    return new Integer[] {4, 5};
+  public String[] getDisabledJobNames() {
+    return new String[] {jobIdToNameMap.get(4L), jobIdToNameMap.get(5L)};
   }
 
   @Override
@@ -95,11 +95,6 @@ public class Derby1_99_6UpgradeTest extends DerbyRepositoryUpgradeTest {
     return new Integer[] {1, 2, 3, 4, 5, 6};
   }
 
-  @Override
-  public Integer[] getDeleteJobIds() {
-    return new Integer[] {1, 2, 3, 4, 5, 6};
-  }
-
   @Test
   public void testJobNameNotNull() {
     assertEquals(getNumberOfJobs(), getClient().getJobs().size());

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java
index 98e1fa1..6f19113 100644
--- a/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/repository/derby/upgrade/DerbyRepositoryUpgradeTest.java
@@ -19,6 +19,7 @@ package org.apache.sqoop.integration.repository.derby.upgrade;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.sqoop.client.SqoopClient;
+import org.apache.sqoop.model.MJob;
 import org.apache.sqoop.test.minicluster.JettySqoopMiniCluster;
 import org.apache.sqoop.test.testcases.JettyTestCase;
 import org.apache.sqoop.test.utils.CompressionUtils;
@@ -54,6 +55,7 @@ import static org.testng.Assert.assertNotNull;
 public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase {
 
   private static final Logger LOG = Logger.getLogger(DerbyRepositoryUpgradeTest.class);
+  protected Map<Long, String> jobIdToNameMap;
 
   /**
    * Custom Sqoop mini cluster that points derby repository to real on-disk structures.
@@ -112,18 +114,13 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase {
   /**
    * List of job ids that should be disabled
    */
-  public abstract Integer[] getDisabledJobIds();
+  public abstract String[] getDisabledJobNames();
 
   /**
    * List of link ids that we should delete using the id
    */
   public abstract Integer[] getDeleteLinkIds();
 
-  /**
-   * List of job ids that we should delete using the id
-   */
-  public abstract Integer[] getDeleteJobIds();
-
   public String getRepositoryPath() {
     return HdfsUtils.joinPathFragments(getTemporaryJettyPath(), "repo");
   }
@@ -157,6 +154,11 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase {
 
     // Initialize Sqoop Client API
     setClient(new SqoopClient(getServerUrl()));
+
+    jobIdToNameMap = new HashMap<Long, String>();
+    for(MJob job : getClient().getJobs()) {
+      jobIdToNameMap.put(job.getPersistenceId(), job.getName());
+    }
   }
 
   @AfterMethod
@@ -166,6 +168,7 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase {
 
   @Test
   public void testPostUpgrade() throws Exception {
+
     // Please note that the upgrade itself is done on startup and hence prior calling this test
     // method. We're just verifying that Server has started and behaves and we are expecting.
 
@@ -185,13 +188,13 @@ public abstract class DerbyRepositoryUpgradeTest extends JettyTestCase {
     for(Integer id : getDisabledLinkIds()) {
       assertFalse(getClient().getLink(id).getEnabled());
     }
-    for(Integer id : getDisabledJobIds()) {
-      assertFalse(getClient().getJob(id).getEnabled());
+    for(String name : getDisabledJobNames()) {
+      assertFalse(getClient().getJob(name).getEnabled());
     }
 
     // Remove all objects
-    for(Integer id : getDeleteJobIds()) {
-      getClient().deleteJob(id);
+    for(String name : jobIdToNameMap.values()) {
+      getClient().deleteJob(name);
     }
     for(Integer id : getDeleteLinkIds()) {
       getClient().deleteLink(id);

http://git-wip-us.apache.org/repos/asf/sqoop/blob/6dde8961/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java b/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java
index 93cc7f6..c4e448e 100644
--- a/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/server/SubmissionWithDisabledModelObjectsTest.java
@@ -76,6 +76,8 @@ public class SubmissionWithDisabledModelObjectsTest extends SqoopTestCase {
 
   @Test
   public void testWithDisabledObjects() throws Exception {
+    // the test will be executed several times, and the jobName should be different.
+    String jobName = "job_" + System.currentTimeMillis();
     // RDBMS link
     MLink rdbmsLink = getClient().createLink("generic-jdbc-connector");
     fillRdbmsLinkConfig(rdbmsLink);
@@ -88,6 +90,7 @@ public class SubmissionWithDisabledModelObjectsTest extends SqoopTestCase {
 
     // Job creation
     MJob job = getClient().createJob(rdbmsLink.getPersistenceId(), hdfsLink.getPersistenceId());
+    job.setName(jobName);
 
     // rdms "FROM" config
     fillRdbmsFromConfig(job, "id");
@@ -99,11 +102,11 @@ public class SubmissionWithDisabledModelObjectsTest extends SqoopTestCase {
 
     // Disable model entities as per parameterized run
     getClient().enableLink(rdbmsLink.getPersistenceId(), enabledLink);
-    getClient().enableJob(job.getPersistenceId(), enabledJob);
+    getClient().enableJob(jobName, enabledJob);
 
     // Try to execute the job and verify that the it was not executed
     try {
-      executeJob(job.getPersistenceId());
+      executeJob(jobName);
       fail("Expected exception as the model classes are disabled.");
     } catch(SqoopException ex) {
       // Top level exception should be CLIENT_0001