5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-04 21:32:27 +08:00

SQOOP-2771: Sqoop2: Remove the notion of SubmissionBean

(Jarek Jarcec Cecho)
This commit is contained in:
Kate Ting 2016-01-16 15:43:26 -08:00
parent f24e76050b
commit 80b1790b9d
9 changed files with 29 additions and 93 deletions

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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<MSubmission>();
JSONObject obj = JSONUtils.getJSONObject(json, SUBMISSION);
submissions.add(restoreSubmission(obj));
}
protected void restoreSubmissions(JSONArray array) {
submissions = new ArrayList<MSubmission>();
submissions = new ArrayList<>();
for (Object obj : array) {
submissions.add(restoreSubmission(obj));
}

View File

@ -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<MSubmission> 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);
}
}

View File

@ -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<MSubmission> transfer(List<MSubmission> 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();

View File

@ -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<MSubmission> submissions = RepositoryManager.getInstance().getRepository()
.findSubmissionsForJob(jobName);
return new SubmissionsBean(submissions);
return new SubmissionBean(submissions);
}
}

View File

@ -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());
}

View File

@ -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);

View File

@ -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);