From 80b1790b9dcbd3f6d99bccba7f005de2017388c6 Mon Sep 17 00:00:00 2001 From: Kate Ting Date: Sat, 16 Jan 2016 15:43:26 -0800 Subject: [PATCH] SQOOP-2771: Sqoop2: Remove the notion of SubmissionBean (Jarek Jarcec Cecho) --- .../client/request/SqoopResourceRequests.java | 2 +- .../request/SubmissionResourceRequest.java | 6 +- .../org/apache/sqoop/json/SubmissionBean.java | 24 +++---- .../apache/sqoop/json/SubmissionsBean.java | 63 ------------------- .../apache/sqoop/json/TestSubmissionBean.java | 9 ++- .../handler/SubmissionRequestHandler.java | 6 +- .../tools/RepositoryDumpLoadToolTest.java | 4 +- .../sqoop/tools/tool/RepositoryDumpTool.java | 4 +- .../sqoop/tools/tool/RepositoryLoadTool.java | 4 +- 9 files changed, 29 insertions(+), 93 deletions(-) delete mode 100644 common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java diff --git a/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java b/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java index bb5242f7..33c90a87 100644 --- a/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java +++ b/client/src/main/java/org/apache/sqoop/client/request/SqoopResourceRequests.java @@ -174,7 +174,7 @@ public SubmissionBean stopJob(String jArg) { return getJobResourceRequest().stop(serverUrl, jArg); } - public SubmissionsBean readSubmission(String jArg) { + public SubmissionBean readSubmission(String jArg) { return getSubmissionResourceRequest().read(serverUrl, jArg); } diff --git a/client/src/main/java/org/apache/sqoop/client/request/SubmissionResourceRequest.java b/client/src/main/java/org/apache/sqoop/client/request/SubmissionResourceRequest.java index 0317b931..1da8c6fc 100644 --- a/client/src/main/java/org/apache/sqoop/client/request/SubmissionResourceRequest.java +++ b/client/src/main/java/org/apache/sqoop/client/request/SubmissionResourceRequest.java @@ -19,7 +19,7 @@ import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL; import org.apache.sqoop.json.JSONUtils; -import org.apache.sqoop.json.SubmissionsBean; +import org.apache.sqoop.json.SubmissionBean; import org.apache.sqoop.utils.UrlSafeUtils; import org.json.simple.JSONObject; @@ -39,7 +39,7 @@ public SubmissionResourceRequest(DelegationTokenAuthenticatedURL.Token token){ super(token); } - public SubmissionsBean read(String serverUrl, String jArg) { + public SubmissionBean read(String serverUrl, String jArg) { String response; if (jArg == null) { // all submissions @@ -49,7 +49,7 @@ public SubmissionsBean read(String serverUrl, String jArg) { response = super.get(serverUrl + RESOURCE + "?jname=" + UrlSafeUtils.urlEncode(jArg)); } JSONObject jsonObject = JSONUtils.parse(response); - SubmissionsBean submissionBean = new SubmissionsBean(); + SubmissionBean submissionBean = new SubmissionBean(); submissionBean.restore(jsonObject); return submissionBean; } diff --git a/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java b/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java index 40406885..b19ada14 100644 --- a/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java +++ b/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java @@ -43,7 +43,7 @@ @InterfaceStability.Unstable public class SubmissionBean implements JsonBean { - private static final String SUBMISSION = "submission"; + private static final String SUBMISSIONS = "submissions"; private static final String JOB_NAME = "job-name"; private static final String CREATION_USER = "creation-user"; private static final String CREATION_DATE = "creation-date"; @@ -84,9 +84,16 @@ public SubmissionBean() { @Override @SuppressWarnings("unchecked") public JSONObject extract(boolean skipSensitive) { - JSONObject submission = new JSONObject(); - submission.put(SUBMISSION, extractSubmission(submissions.get(0))); - return submission; + JSONArray submissionsArray = extractSubmissions(); + JSONObject submissions = new JSONObject(); + submissions.put(SUBMISSIONS, submissionsArray); + return submissions; + } + + @Override + public void restore(JSONObject json) { + JSONArray submissionsArray = JSONUtils.getJSONArray(json, SUBMISSIONS); + restoreSubmissions(submissionsArray); } @SuppressWarnings("unchecked") @@ -156,15 +163,8 @@ private JSONObject extractCounters(Counters counters) { return counterArray; } - @Override - public void restore(JSONObject json) { - submissions = new ArrayList(); - JSONObject obj = JSONUtils.getJSONObject(json, SUBMISSION); - submissions.add(restoreSubmission(obj)); - } - protected void restoreSubmissions(JSONArray array) { - submissions = new ArrayList(); + submissions = new ArrayList<>(); for (Object obj : array) { submissions.add(restoreSubmission(obj)); } diff --git a/common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java b/common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java deleted file mode 100644 index 52e8efa7..00000000 --- a/common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java +++ /dev/null @@ -1,63 +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.json; - -import java.util.List; - -import org.apache.sqoop.classification.InterfaceAudience; -import org.apache.sqoop.classification.InterfaceStability; -import org.apache.sqoop.model.MSubmission; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; - -@InterfaceAudience.Private -@InterfaceStability.Unstable -public class SubmissionsBean extends SubmissionBean { - - private static final String SUBMISSIONS = "submissions"; - - // For "extract" - public SubmissionsBean(MSubmission submission) { - super(submission); - } - - public SubmissionsBean(List submissions) { - super(submissions); - - } - - // For "restore" - public SubmissionsBean() { - } - - @Override - @SuppressWarnings("unchecked") - public JSONObject extract(boolean skipSensitive) { - JSONArray submissionsArray = super.extractSubmissions(); - JSONObject submissions = new JSONObject(); - submissions.put(SUBMISSIONS, submissionsArray); - return submissions; - } - - @Override - public void restore(JSONObject json) { - JSONArray submissionsArray = JSONUtils.getJSONArray(json, SUBMISSIONS); - restoreSubmissions(submissionsArray); - } - -} diff --git a/common/src/test/java/org/apache/sqoop/json/TestSubmissionBean.java b/common/src/test/java/org/apache/sqoop/json/TestSubmissionBean.java index 204c1de1..02dcd947 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestSubmissionBean.java +++ b/common/src/test/java/org/apache/sqoop/json/TestSubmissionBean.java @@ -36,7 +36,6 @@ import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; -// NOTE: This tests both the submission and submissions list bean public class TestSubmissionBean { private static final double EPSILON = 0.01; @@ -460,13 +459,13 @@ private Schema getSchema() { * @return */ private MSubmission transfer(MSubmission submission) { - SubmissionsBean bean = new SubmissionsBean(submission); + SubmissionBean bean = new SubmissionBean(submission); JSONObject json = bean.extract(false); String string = json.toString(); JSONObject retrievedJson = JSONUtils.parse(string); - SubmissionsBean retrievedBean = new SubmissionsBean(); + SubmissionBean retrievedBean = new SubmissionBean(); retrievedBean.restore(retrievedJson); return retrievedBean.getSubmissions().get(0); @@ -479,13 +478,13 @@ private MSubmission transfer(MSubmission submission) { * @return */ private List transfer(List submissions) { - SubmissionsBean bean = new SubmissionsBean(submissions); + SubmissionBean bean = new SubmissionBean(submissions); JSONObject json = bean.extract(false); String string = json.toString(); JSONObject retrievedJson = JSONUtils.parse(string); - SubmissionsBean retrievedBean = new SubmissionsBean(); + SubmissionBean retrievedBean = new SubmissionBean(); retrievedBean.restore(retrievedJson); return retrievedBean.getSubmissions(); 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 6cf3dbea..b894e370 100644 --- a/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/SubmissionRequestHandler.java @@ -23,7 +23,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.json.SubmissionBean; import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MSubmission; import org.apache.sqoop.repository.RepositoryManager; @@ -72,7 +72,7 @@ private JsonBean getSubmissions(RequestContext ctx) { //Authorization check submissions = AuthorizationEngine.filterSubmission(ctx.getUserName(), submissions); - return new SubmissionsBean(submissions); + return new SubmissionBean(submissions); } private JsonBean getSubmissionsForJob(String jobIdentifier, RequestContext ctx) { @@ -85,6 +85,6 @@ private JsonBean getSubmissionsForJob(String jobIdentifier, RequestContext ctx) List submissions = RepositoryManager.getInstance().getRepository() .findSubmissionsForJob(jobName); - return new SubmissionsBean(submissions); + return new SubmissionBean(submissions); } } diff --git a/test/src/test/java/org/apache/sqoop/integration/tools/RepositoryDumpLoadToolTest.java b/test/src/test/java/org/apache/sqoop/integration/tools/RepositoryDumpLoadToolTest.java index f046e252..c1a10bc3 100644 --- a/test/src/test/java/org/apache/sqoop/integration/tools/RepositoryDumpLoadToolTest.java +++ b/test/src/test/java/org/apache/sqoop/integration/tools/RepositoryDumpLoadToolTest.java @@ -23,7 +23,7 @@ import org.apache.sqoop.json.JSONUtils; import org.apache.sqoop.json.JobBean; import org.apache.sqoop.json.LinkBean; -import org.apache.sqoop.json.SubmissionsBean; +import org.apache.sqoop.json.SubmissionBean; import org.apache.sqoop.model.*; import org.apache.sqoop.submission.SubmissionStatus; import org.apache.sqoop.test.infrastructure.Infrastructure; @@ -81,7 +81,7 @@ public void testDump() throws Exception { // verify the submission JSONObject jsonSubmissions = (JSONObject) json.get(JSONConstants.SUBMISSIONS); - SubmissionsBean submissionsBean = new SubmissionsBean(); + SubmissionBean submissionsBean = new SubmissionBean(); submissionsBean.restore(jsonSubmissions); verifySubmissions(submissionsBean.getSubmissions()); } diff --git a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryDumpTool.java b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryDumpTool.java index 49978fad..e0d11734 100644 --- a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryDumpTool.java +++ b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryDumpTool.java @@ -35,7 +35,7 @@ import org.apache.sqoop.connector.ConnectorManager; import org.apache.sqoop.json.JobBean; import org.apache.sqoop.json.LinkBean; -import org.apache.sqoop.json.SubmissionsBean; +import org.apache.sqoop.json.SubmissionBean; import org.apache.sqoop.model.MLink; import org.apache.sqoop.repository.Repository; import org.apache.sqoop.repository.RepositoryManager; @@ -117,7 +117,7 @@ private JSONObject dump(boolean skipSensitive) { result.put(JSONConstants.JOBS, jobsJsonObject); LOG.info("Dumping Submissions with skipSensitive=" + String.valueOf(skipSensitive)); - SubmissionsBean submissions = new SubmissionsBean(repository.findSubmissions()); + SubmissionBean submissions = new SubmissionBean(repository.findSubmissions()); JSONObject submissionsJsonObject = submissions.extract(skipSensitive); result.put(JSONConstants.SUBMISSIONS, submissionsJsonObject); diff --git a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java index 08c914a9..d51c8604 100644 --- a/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java +++ b/tools/src/main/java/org/apache/sqoop/tools/tool/RepositoryLoadTool.java @@ -43,7 +43,7 @@ import org.apache.sqoop.json.JSONUtils; import org.apache.sqoop.json.JobBean; import org.apache.sqoop.json.LinkBean; -import org.apache.sqoop.json.SubmissionsBean; +import org.apache.sqoop.json.SubmissionBean; import org.apache.sqoop.model.ConfigUtils; import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MConnector; @@ -205,7 +205,7 @@ private boolean load(JSONObject repo) { removeSubmissionIfJobNotExist((JSONArray)jsonSubmissions.get(JSONConstants.SUBMISSIONS)); - SubmissionsBean submissionsBean = new SubmissionsBean(); + SubmissionBean submissionsBean = new SubmissionBean(); submissionsBean.restore(jsonSubmissions); for (MSubmission submission : submissionsBean.getSubmissions()) { resetPersistenceId(submission);