http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java index 47350ea..595b1c8 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestJobHandling.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.repository.derby; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.apache.sqoop.common.Direction; import org.apache.sqoop.common.SqoopException; -import org.apache.sqoop.model.MForm; +import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MMapInput; import org.apache.sqoop.model.MStringInput; @@ -38,18 +43,19 @@ import static org.junit.Assert.*; public class TestJobHandling extends DerbyTestCase { DerbyRepositoryHandler handler; + Connection derbyConnection; @Before public void setUp() throws Exception { super.setUp(); + derbyConnection = getDerbyDatabaseConnection(); handler = new DerbyRepositoryHandler(); // We always needs schema for this test case createSchema(); - // We always needs connector and framework structures in place - loadConnectorAndDriverConfig(); + loadConnectorLinkConfig(); // We always needs connection metadata in place loadLinks(); @@ -59,58 +65,53 @@ public class TestJobHandling extends DerbyTestCase { public void testFindJob() throws Exception { // Let's try to find non existing job try { - handler.findJob(1, getDerbyDatabaseConnection()); + handler.findJob(1, derbyConnection); fail(); } catch(SqoopException ex) { assertEquals(DerbyRepoError.DERBYREPO_0030, ex.getErrorCode()); } - // Load prepared connections into database loadJobs(); - MJob jobImport = handler.findJob(1, getDerbyDatabaseConnection()); - assertNotNull(jobImport); - assertEquals(1, jobImport.getPersistenceId()); - assertEquals("JA", jobImport.getName()); - - List<MForm> forms; - - // Check connector parts - forms = jobImport.getConnectorPart(Direction.FROM).getForms(); - assertEquals(2, forms.size()); - assertEquals("Value5", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value5", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); - - forms = jobImport.getConnectorPart(Direction.TO).getForms(); - assertEquals(2, forms.size()); - assertEquals("Value9", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value9", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); - - // Check framework part - forms = jobImport.getFrameworkPart().getForms(); - assertEquals(2, forms.size()); - assertEquals("Value17", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value19", forms.get(1).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); + MJob firstJob = handler.findJob(1, derbyConnection); + assertNotNull(firstJob); + assertEquals(1, firstJob.getPersistenceId()); + assertEquals("JA", firstJob.getName()); + + List<MConfig> configs; + + configs = firstJob.getJobConfig(Direction.FROM).getConfigs(); + assertEquals(2, configs.size()); + assertEquals("Value5", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals("Value5", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(1).getInputs().get(1).getValue()); + + configs = firstJob.getJobConfig(Direction.TO).getConfigs(); + assertEquals(2, configs.size()); + assertEquals("Value9", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals("Value9", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(1).getInputs().get(1).getValue()); + + configs = firstJob.getDriverConfig().getConfigs(); + assertEquals(2, configs.size()); + assertEquals("Value13", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals("Value15", configs.get(1).getInputs().get(0).getValue()); + assertNull(configs.get(1).getInputs().get(1).getValue()); } @Test public void testFindJobs() throws Exception { List<MJob> list; - // Load empty list on empty repository - list = handler.findJobs(getDerbyDatabaseConnection()); + list = handler.findJobs(derbyConnection); assertEquals(0, list.size()); - loadJobs(); // Load all two connections on loaded repository - list = handler.findJobs(getDerbyDatabaseConnection()); + list = handler.findJobs(derbyConnection); assertEquals(4, list.size()); assertEquals("JA", list.get(0).getName()); @@ -125,19 +126,19 @@ public class TestJobHandling extends DerbyTestCase { @Test public void testExistsJob() throws Exception { // There shouldn't be anything on empty repository - assertFalse(handler.existsJob(1, getDerbyDatabaseConnection())); - assertFalse(handler.existsJob(2, getDerbyDatabaseConnection())); - assertFalse(handler.existsJob(3, getDerbyDatabaseConnection())); - assertFalse(handler.existsJob(4, getDerbyDatabaseConnection())); - assertFalse(handler.existsJob(5, getDerbyDatabaseConnection())); + assertFalse(handler.existsJob(1, derbyConnection)); + assertFalse(handler.existsJob(2, derbyConnection)); + assertFalse(handler.existsJob(3, derbyConnection)); + assertFalse(handler.existsJob(4, derbyConnection)); + assertFalse(handler.existsJob(5, derbyConnection)); loadJobs(); - assertTrue(handler.existsJob(1, getDerbyDatabaseConnection())); - assertTrue(handler.existsJob(2, getDerbyDatabaseConnection())); - assertTrue(handler.existsJob(3, getDerbyDatabaseConnection())); - assertTrue(handler.existsJob(4, getDerbyDatabaseConnection())); - assertFalse(handler.existsJob(5, getDerbyDatabaseConnection())); + assertTrue(handler.existsJob(1, derbyConnection)); + assertTrue(handler.existsJob(2, derbyConnection)); + assertTrue(handler.existsJob(3, derbyConnection)); + assertTrue(handler.existsJob(4, derbyConnection)); + assertFalse(handler.existsJob(5, derbyConnection)); } @Test @@ -145,10 +146,10 @@ public class TestJobHandling extends DerbyTestCase { loadJobs(); loadSubmissions(); - assertTrue(handler.inUseJob(1, getDerbyDatabaseConnection())); - assertFalse(handler.inUseJob(2, getDerbyDatabaseConnection())); - assertFalse(handler.inUseJob(3, getDerbyDatabaseConnection())); - assertFalse(handler.inUseJob(4, getDerbyDatabaseConnection())); + assertTrue(handler.inUseJob(1, derbyConnection)); + assertFalse(handler.inUseJob(2, derbyConnection)); + assertFalse(handler.inUseJob(3, derbyConnection)); + assertFalse(handler.inUseJob(4, derbyConnection)); } @Test @@ -158,34 +159,34 @@ public class TestJobHandling extends DerbyTestCase { // Load some data fillJob(job); - handler.createJob(job, getDerbyDatabaseConnection()); + handler.createJob(job, derbyConnection); assertEquals(1, job.getPersistenceId()); assertCountForTable("SQOOP.SQ_JOB", 1); assertCountForTable("SQOOP.SQ_JOB_INPUT", 6); - MJob retrieved = handler.findJob(1, getDerbyDatabaseConnection()); + MJob retrieved = handler.findJob(1, derbyConnection); assertEquals(1, retrieved.getPersistenceId()); - List<MForm> forms; - forms = job.getConnectorPart(Direction.FROM).getForms(); - assertEquals("Value1", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - forms = job.getConnectorPart(Direction.TO).getForms(); - assertEquals("Value1", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); + List<MConfig> configs; + configs = job.getJobConfig(Direction.FROM).getConfigs(); + assertEquals("Value1", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + configs = job.getJobConfig(Direction.TO).getConfigs(); + assertEquals("Value1", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); - forms = job.getFrameworkPart().getForms(); - assertEquals("Value13", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value15", forms.get(1).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); + configs = job.getDriverConfig().getConfigs(); + assertEquals("Value13", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals("Value15", configs.get(1).getInputs().get(0).getValue()); + assertNull(configs.get(1).getInputs().get(1).getValue()); // Let's create second job job = getJob(); fillJob(job); - handler.createJob(job, getDerbyDatabaseConnection()); + handler.createJob(job, derbyConnection); assertEquals(2, job.getPersistenceId()); assertCountForTable("SQOOP.SQ_JOB", 2); @@ -199,48 +200,49 @@ public class TestJobHandling extends DerbyTestCase { assertCountForTable("SQOOP.SQ_JOB", 4); assertCountForTable("SQOOP.SQ_JOB_INPUT", 24); - MJob job = handler.findJob(1, getDerbyDatabaseConnection()); + MJob job = handler.findJob(1, derbyConnection); + + List<MConfig> configs; - List<MForm> forms; + configs = job.getJobConfig(Direction.FROM).getConfigs(); + ((MStringInput)configs.get(0).getInputs().get(0)).setValue("Updated"); + ((MMapInput)configs.get(0).getInputs().get(1)).setValue(null); - forms = job.getConnectorPart(Direction.FROM).getForms(); - ((MStringInput)forms.get(0).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(0).getInputs().get(1)).setValue(null); - forms = job.getConnectorPart(Direction.TO).getForms(); - ((MStringInput)forms.get(0).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(0).getInputs().get(1)).setValue(null); + configs = job.getJobConfig(Direction.TO).getConfigs(); + ((MStringInput)configs.get(0).getInputs().get(0)).setValue("Updated"); + ((MMapInput)configs.get(0).getInputs().get(1)).setValue(null); - forms = job.getFrameworkPart().getForms(); - ((MStringInput)forms.get(0).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(0).getInputs().get(1)).setValue(new HashMap<String, String>()); // inject new map value - ((MStringInput)forms.get(1).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(1).getInputs().get(1)).setValue(new HashMap<String, String>()); // inject new map value + configs = job.getDriverConfig().getConfigs(); + ((MStringInput)configs.get(0).getInputs().get(0)).setValue("Updated"); + ((MMapInput)configs.get(0).getInputs().get(1)).setValue(new HashMap<String, String>()); // inject new map value + ((MStringInput)configs.get(1).getInputs().get(0)).setValue("Updated"); + ((MMapInput)configs.get(1).getInputs().get(1)).setValue(new HashMap<String, String>()); // inject new map value job.setName("name"); - handler.updateJob(job, getDerbyDatabaseConnection()); + handler.updateJob(job, derbyConnection); assertEquals(1, job.getPersistenceId()); assertCountForTable("SQOOP.SQ_JOB", 4); assertCountForTable("SQOOP.SQ_JOB_INPUT", 26); - MJob retrieved = handler.findJob(1, getDerbyDatabaseConnection()); + MJob retrieved = handler.findJob(1, derbyConnection); assertEquals("name", retrieved.getName()); - forms = job.getConnectorPart(Direction.FROM).getForms(); - assertEquals(2, forms.size()); - assertEquals("Updated", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - forms = job.getConnectorPart(Direction.TO).getForms(); - assertEquals(2, forms.size()); - assertEquals("Updated", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - - forms = retrieved.getFrameworkPart().getForms(); - assertEquals(2, forms.size()); - assertEquals("Updated", forms.get(0).getInputs().get(0).getValue()); - assertNotNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals(((Map)forms.get(0).getInputs().get(1).getValue()).size(), 0); + configs = job.getJobConfig(Direction.FROM).getConfigs(); + assertEquals(2, configs.size()); + assertEquals("Updated", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + configs = job.getJobConfig(Direction.TO).getConfigs(); + assertEquals(2, configs.size()); + assertEquals("Updated", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + + configs = retrieved.getDriverConfig().getConfigs(); + assertEquals(2, configs.size()); + assertEquals("Updated", configs.get(0).getInputs().get(0).getValue()); + assertNotNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals(((Map)configs.get(0).getInputs().get(1).getValue()).size(), 0); } @Test @@ -248,16 +250,16 @@ public class TestJobHandling extends DerbyTestCase { loadJobs(); // disable job 1 - handler.enableJob(1, false, getDerbyDatabaseConnection()); + handler.enableJob(1, false, derbyConnection); - MJob retrieved = handler.findJob(1, getDerbyDatabaseConnection()); + MJob retrieved = handler.findJob(1, derbyConnection); assertNotNull(retrieved); assertEquals(false, retrieved.getEnabled()); // enable job 1 - handler.enableJob(1, true, getDerbyDatabaseConnection()); + handler.enableJob(1, true, derbyConnection); - retrieved = handler.findJob(1, getDerbyDatabaseConnection()); + retrieved = handler.findJob(1, derbyConnection); assertNotNull(retrieved); assertEquals(true, retrieved.getEnabled()); } @@ -266,28 +268,28 @@ public class TestJobHandling extends DerbyTestCase { public void testDeleteJob() throws Exception { loadJobs(); - handler.deleteJob(1, getDerbyDatabaseConnection()); + handler.deleteJob(1, derbyConnection); assertCountForTable("SQOOP.SQ_JOB", 3); assertCountForTable("SQOOP.SQ_JOB_INPUT", 18); - handler.deleteJob(2, getDerbyDatabaseConnection()); + handler.deleteJob(2, derbyConnection); assertCountForTable("SQOOP.SQ_JOB", 2); assertCountForTable("SQOOP.SQ_JOB_INPUT", 12); - handler.deleteJob(3, getDerbyDatabaseConnection()); + handler.deleteJob(3, derbyConnection); assertCountForTable("SQOOP.SQ_JOB", 1); assertCountForTable("SQOOP.SQ_JOB_INPUT", 6); - handler.deleteJob(4, getDerbyDatabaseConnection()); + handler.deleteJob(4, derbyConnection); assertCountForTable("SQOOP.SQ_JOB", 0); assertCountForTable("SQOOP.SQ_JOB_INPUT", 0); } public MJob getJob() { return new MJob(1, 1, 1, 1, - handler.findConnector("A", getDerbyDatabaseConnection()).getJobForms(Direction.FROM), - handler.findConnector("A", getDerbyDatabaseConnection()).getJobForms(Direction.TO), - handler.findDriverConfig(getDerbyDatabaseConnection()).getJobForms() + handler.findConnector("A", derbyConnection).getFromConfig(), + handler.findConnector("A", derbyConnection).getToConfig(), + handler.findDriver(derbyConnection).getDriverConfig() ); } }
http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestLinkHandling.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestLinkHandling.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestLinkHandling.java index 8dd1ce2..38e632a 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestLinkHandling.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestLinkHandling.java @@ -17,9 +17,11 @@ */ package org.apache.sqoop.repository.derby; +import java.util.List; + import org.apache.sqoop.common.SqoopException; +import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MLink; -import org.apache.sqoop.model.MForm; import org.apache.sqoop.model.MMapInput; import org.apache.sqoop.model.MStringInput; import org.junit.Before; @@ -48,7 +50,7 @@ public class TestLinkHandling extends DerbyTestCase { createSchema(); // We always needs connector and framework structures in place - loadConnectorAndDriverConfig(); + loadConnectorLinkConfig(); } @Test @@ -64,26 +66,19 @@ public class TestLinkHandling extends DerbyTestCase { // Load prepared connections into database loadLinks(); - MLink connA = handler.findLink(1, getDerbyDatabaseConnection()); - assertNotNull(connA); - assertEquals(1, connA.getPersistenceId()); - assertEquals("CA", connA.getName()); - - List<MForm> forms; - - // Check connector part - forms = connA.getConnectorPart().getForms(); - assertEquals("Value1", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value3", forms.get(1).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); - - // Check framework part - forms = connA.getFrameworkPart().getForms(); - assertEquals("Value13", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value15", forms.get(1).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); + MLink linkA = handler.findLink(1, getDerbyDatabaseConnection()); + assertNotNull(linkA); + assertEquals(1, linkA.getPersistenceId()); + assertEquals("CA", linkA.getName()); + + List<MConfig> configs; + + // Check connector link config + configs = linkA.getConnectorLinkConfig().getConfigs(); + assertEquals("Value1", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals("Value3", configs.get(1).getInputs().get(0).getValue()); + assertNull(configs.get(1).getInputs().get(1).getValue()); } @Test @@ -128,24 +123,18 @@ public class TestLinkHandling extends DerbyTestCase { handler.createLink(link, getDerbyDatabaseConnection()); assertEquals(1, link.getPersistenceId()); - assertCountForTable("SQOOP.SQ_CONNECTION", 1); - assertCountForTable("SQOOP.SQ_CONNECTION_INPUT", 4); + assertCountForTable("SQOOP.SQ_LINK", 1); + assertCountForTable("SQOOP.SQ_LINK_INPUT", 2); MLink retrieved = handler.findLink(1, getDerbyDatabaseConnection()); assertEquals(1, retrieved.getPersistenceId()); - List<MForm> forms; - forms = link.getConnectorPart().getForms(); - assertEquals("Value1", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value2", forms.get(1).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); - - forms = link.getFrameworkPart().getForms(); - assertEquals("Value13", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Value15", forms.get(1).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); + List<MConfig> configs; + configs = link.getConnectorLinkConfig().getConfigs(); + assertEquals("Value1", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals("Value2", configs.get(1).getInputs().get(0).getValue()); + assertNull(configs.get(1).getInputs().get(1).getValue()); // Let's create second link link = getLink(); @@ -154,8 +143,8 @@ public class TestLinkHandling extends DerbyTestCase { handler.createLink(link, getDerbyDatabaseConnection()); assertEquals(2, link.getPersistenceId()); - assertCountForTable("SQOOP.SQ_CONNECTION", 2); - assertCountForTable("SQOOP.SQ_CONNECTION_INPUT", 8); + assertCountForTable("SQOOP.SQ_LINK", 2); + assertCountForTable("SQOOP.SQ_LINK_INPUT", 4); } @Test @@ -175,44 +164,30 @@ public class TestLinkHandling extends DerbyTestCase { MLink link = handler.findLink(1, getDerbyDatabaseConnection()); - List<MForm> forms; - - forms = link.getConnectorPart().getForms(); - ((MStringInput)forms.get(0).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(0).getInputs().get(1)).setValue(null); - ((MStringInput)forms.get(1).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(1).getInputs().get(1)).setValue(null); + List<MConfig> configs; - forms = link.getFrameworkPart().getForms(); - ((MStringInput)forms.get(0).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(0).getInputs().get(1)).setValue(new HashMap<String, String>()); // inject new map value - ((MStringInput)forms.get(1).getInputs().get(0)).setValue("Updated"); - ((MMapInput)forms.get(1).getInputs().get(1)).setValue(new HashMap<String, String>()); // inject new map value + configs = link.getConnectorLinkConfig().getConfigs(); + ((MStringInput)configs.get(0).getInputs().get(0)).setValue("Updated"); + ((MMapInput)configs.get(0).getInputs().get(1)).setValue(null); + ((MStringInput)configs.get(1).getInputs().get(0)).setValue("Updated"); + ((MMapInput)configs.get(1).getInputs().get(1)).setValue(null); link.setName("name"); handler.updateLink(link, getDerbyDatabaseConnection()); assertEquals(1, link.getPersistenceId()); - assertCountForTable("SQOOP.SQ_CONNECTION", 2); - assertCountForTable("SQOOP.SQ_CONNECTION_INPUT", 10); + assertCountForTable("SQOOP.SQ_LINK", 2); + assertCountForTable("SQOOP.SQ_LINK_INPUT", 6); MLink retrieved = handler.findLink(1, getDerbyDatabaseConnection()); assertEquals("name", link.getName()); - forms = retrieved.getConnectorPart().getForms(); - assertEquals("Updated", forms.get(0).getInputs().get(0).getValue()); - assertNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals("Updated", forms.get(1).getInputs().get(0).getValue()); - assertNull(forms.get(1).getInputs().get(1).getValue()); - - forms = retrieved.getFrameworkPart().getForms(); - assertEquals("Updated", forms.get(0).getInputs().get(0).getValue()); - assertNotNull(forms.get(0).getInputs().get(1).getValue()); - assertEquals(((Map)forms.get(0).getInputs().get(1).getValue()).size(), 0); - assertEquals("Updated", forms.get(1).getInputs().get(0).getValue()); - assertNotNull(forms.get(1).getInputs().get(1).getValue()); - assertEquals(((Map)forms.get(1).getInputs().get(1).getValue()).size(), 0); + configs = retrieved.getConnectorLinkConfig().getConfigs(); + assertEquals("Updated", configs.get(0).getInputs().get(0).getValue()); + assertNull(configs.get(0).getInputs().get(1).getValue()); + assertEquals("Updated", configs.get(1).getInputs().get(0).getValue()); + assertNull(configs.get(1).getInputs().get(1).getValue()); } @Test @@ -239,18 +214,15 @@ public class TestLinkHandling extends DerbyTestCase { loadLinks(); handler.deleteLink(1, getDerbyDatabaseConnection()); - assertCountForTable("SQOOP.SQ_CONNECTION", 1); - assertCountForTable("SQOOP.SQ_CONNECTION_INPUT", 4); + assertCountForTable("SQOOP.SQ_LINK", 1); + assertCountForTable("SQOOP.SQ_LINK_INPUT", 4); handler.deleteLink(2, getDerbyDatabaseConnection()); - assertCountForTable("SQOOP.SQ_CONNECTION", 0); - assertCountForTable("SQOOP.SQ_CONNECTION_INPUT", 0); + assertCountForTable("SQOOP.SQ_LINK", 0); + assertCountForTable("SQOOP.SQ_LINK_INPUT", 0); } public MLink getLink() { - return new MLink(1, - handler.findConnector("A", getDerbyDatabaseConnection()).getConnectionForms(), - handler.findDriverConfig(getDerbyDatabaseConnection()).getConnectionForms() - ); + return new MLink(1, handler.findConnector("A", getDerbyDatabaseConnection()).getLinkConfig()); } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestSubmissionHandling.java ---------------------------------------------------------------------- diff --git a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestSubmissionHandling.java b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestSubmissionHandling.java index cf0944d..8402d8c 100644 --- a/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestSubmissionHandling.java +++ b/repository/repository-derby/src/test/java/org/apache/sqoop/repository/derby/TestSubmissionHandling.java @@ -48,7 +48,7 @@ public class TestSubmissionHandling extends DerbyTestCase { createSchema(); // We always needs connector and framework structures in place - loadConnectorAndDriverConfig(); + loadConnectorLinkConfig(); // We also always needs connection metadata in place loadLinks(); http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java index d1b6b9a..7109ae5 100644 --- a/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java @@ -87,7 +87,7 @@ public class ConnectorRequestHandler implements RequestHandler { connectors = new LinkedList<MConnector>(); bundles = new HashMap<Long, ResourceBundle>(); - connectors.add(ConnectorManager.getInstance().getConnectorMetadata(id)); + connectors.add(ConnectorManager.getInstance().getConnectorConfig(id)); bundles.put(id, ConnectorManager.getInstance().getResourceBundle(id, locale)); AuditLoggerManager.getInstance() http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/server/src/main/java/org/apache/sqoop/handler/DriverConfigRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/DriverConfigRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/DriverConfigRequestHandler.java index c0d363e..aa773a9 100644 --- a/server/src/main/java/org/apache/sqoop/handler/DriverConfigRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/DriverConfigRequestHandler.java @@ -20,7 +20,7 @@ package org.apache.sqoop.handler; import org.apache.log4j.Logger; import org.apache.sqoop.audit.AuditLoggerManager; import org.apache.sqoop.driver.Driver; -import org.apache.sqoop.json.DriverConfigBean; +import org.apache.sqoop.json.DriverBean; import org.apache.sqoop.json.JsonBean; import org.apache.sqoop.server.RequestContext; import org.apache.sqoop.server.RequestHandler; @@ -40,11 +40,10 @@ public class DriverConfigRequestHandler implements RequestHandler { @Override public JsonBean handleEvent(RequestContext ctx) { - AuditLoggerManager.getInstance() - .logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), - "get", "framework", ""); + AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(), + ctx.getRequest().getRemoteAddr(), "get", "driverConfig", ""); - return new DriverConfigBean(Driver.getInstance().getDriverConfig(), - Driver.getInstance().getBundle(ctx.getAcceptLanguageHeader())); + return new DriverBean(Driver.getInstance().getDriver(), Driver.getInstance() + .getBundle(ctx.getAcceptLanguageHeader())); } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/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 b61d3f5..462579c 100644 --- a/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java @@ -17,6 +17,10 @@ */ package org.apache.sqoop.handler; +import java.io.IOException; +import java.util.List; +import java.util.Locale; + import org.apache.log4j.Logger; import org.apache.sqoop.audit.AuditLoggerManager; import org.apache.sqoop.common.Direction; @@ -27,25 +31,24 @@ import org.apache.sqoop.driver.Driver; import org.apache.sqoop.json.JobBean; import org.apache.sqoop.json.JsonBean; import org.apache.sqoop.json.ValidationResultBean; -import org.apache.sqoop.model.FormUtils; +import org.apache.sqoop.json.util.ConfigSerialization; +import org.apache.sqoop.model.ConfigUtils; +import org.apache.sqoop.model.MDriverConfig; +import org.apache.sqoop.model.MFromConfig; import org.apache.sqoop.model.MJob; -import org.apache.sqoop.model.MJobForms; +import org.apache.sqoop.model.MToConfig; import org.apache.sqoop.repository.Repository; import org.apache.sqoop.repository.RepositoryManager; import org.apache.sqoop.server.RequestContext; import org.apache.sqoop.server.RequestHandler; import org.apache.sqoop.server.common.ServerError; import org.apache.sqoop.utils.ClassUtils; +import org.apache.sqoop.validation.ConfigValidationResult; +import org.apache.sqoop.validation.ConfigValidationRunner; import org.apache.sqoop.validation.Status; -import org.apache.sqoop.validation.ValidationResult; -import org.apache.sqoop.validation.ValidationRunner; import org.json.simple.JSONObject; import org.json.simple.JSONValue; -import java.io.IOException; -import java.util.List; -import java.util.Locale; - /** * Job request handler is supporting following resources: * @@ -109,7 +112,7 @@ public class JobRequestHandler implements RequestHandler { } /** - * Delete job from metadata repository. + * Delete job from repository. * * @param ctx Context object * @return Empty bean @@ -129,18 +132,14 @@ public class JobRequestHandler implements RequestHandler { } /** - * Update or create job metadata in repository. + * Update or create job in repository. * * @param ctx Context object * @return Validation bean object */ private JsonBean createUpdateJob(RequestContext ctx, boolean update) { -// Check that given ID equals with sent ID, otherwise report an error UPDATE -// String sxid = ctx.getLastURLElement(); -// long xid = Long.valueOf(sxid); String username = ctx.getUserName(); - JobBean bean = new JobBean(); try { @@ -157,30 +156,29 @@ public class JobRequestHandler implements RequestHandler { if(jobs.size() != 1) { throw new SqoopException(ServerError.SERVER_0003, - "Expected one job metadata but got " + jobs.size()); + "Expected one job but got " + jobs.size()); } // Job object MJob job = jobs.get(0); // Verify that user is not trying to spoof us - MJobForms fromConnectorForms = ConnectorManager.getInstance() - .getConnectorMetadata(job.getConnectorId(Direction.FROM)) - .getJobForms(Direction.FROM); - MJobForms toConnectorForms = ConnectorManager.getInstance() - .getConnectorMetadata(job.getConnectorId(Direction.TO)) - .getJobForms(Direction.TO); - MJobForms frameworkForms = Driver.getInstance().getDriverConfig() - .getJobForms(); - - if(!fromConnectorForms.equals(job.getConnectorPart(Direction.FROM)) - || !frameworkForms.equals(job.getFrameworkPart()) - || !toConnectorForms.equals(job.getConnectorPart(Direction.TO))) { + MFromConfig fromConfig = ConnectorManager.getInstance() + .getConnectorConfig(job.getConnectorId(Direction.FROM)) + .getFromConfig(); + MToConfig toConfig = ConnectorManager.getInstance() + .getConnectorConfig(job.getConnectorId(Direction.TO)) + .getToConfig(); + MDriverConfig driverConfig = Driver.getInstance().getDriver().getDriverConfig(); + + if(!fromConfig.equals(job.getJobConfig(Direction.FROM)) + || !driverConfig.equals(job.getDriverConfig()) + || !toConfig.equals(job.getJobConfig(Direction.TO))) { throw new SqoopException(ServerError.SERVER_0003, - "Detected incorrect form structure"); + "Detected incorrect config structure"); } - // Responsible connector for this session + // Corresponding connectors for this SqoopConnector fromConnector = ConnectorManager.getInstance().getConnector(job.getConnectorId(Direction.FROM)); SqoopConnector toConnector = ConnectorManager.getInstance().getConnector(job.getConnectorId(Direction.TO)); @@ -194,25 +192,27 @@ public class JobRequestHandler implements RequestHandler { + " does not support TO direction."); } - // We need translate forms to configuration objects - Object fromConnectorConfig = ClassUtils.instantiate(fromConnector.getJobConfigurationClass(Direction.FROM)); - Object frameworkConfig = ClassUtils.instantiate(Driver.getInstance().getJobConfigurationClass()); - Object toConnectorConfig = ClassUtils.instantiate(toConnector.getJobConfigurationClass(Direction.TO)); + // We need translate configs + Object fromConfigObject = ClassUtils.instantiate(fromConnector.getJobConfigurationClass(Direction.FROM)); + Object toConfigObject = ClassUtils.instantiate(toConnector.getJobConfigurationClass(Direction.TO)); + + Object driverConfigObject = ClassUtils.instantiate(Driver.getInstance().getDriverConfigurationGroupClass()); + + ConfigUtils.fromConfigs(job.getJobConfig(Direction.FROM).getConfigs(), fromConfigObject); + ConfigUtils.fromConfigs(job.getJobConfig(Direction.TO).getConfigs(), toConfigObject); + ConfigUtils.fromConfigs(job.getDriverConfig().getConfigs(), driverConfigObject); - FormUtils.fromForms(job.getConnectorPart(Direction.FROM).getForms(), fromConnectorConfig); - FormUtils.fromForms(job.getFrameworkPart().getForms(), frameworkConfig); - FormUtils.fromForms(job.getConnectorPart(Direction.TO).getForms(), toConnectorConfig); + // Validate all configs + ConfigValidationRunner validationRunner = new ConfigValidationRunner(); + ConfigValidationResult fromConfigvalidator = validationRunner.validate(fromConfigObject); + ConfigValidationResult toConfigValidator = validationRunner.validate(toConfigObject); + ConfigValidationResult driverConfigValidator = validationRunner.validate(driverConfigObject); - // Validate all parts - ValidationRunner validationRunner = new ValidationRunner(); - ValidationResult fromConnectorValidation = validationRunner.validate(fromConnectorConfig); - ValidationResult frameworkValidation = validationRunner.validate(frameworkConfig); - ValidationResult toConnectorValidation = validationRunner.validate(toConnectorConfig); - Status finalStatus = Status.getWorstStatus(fromConnectorValidation.getStatus(), frameworkValidation.getStatus(), toConnectorValidation.getStatus()); + Status finalStatus = Status.getWorstStatus(fromConfigvalidator.getStatus(), toConfigValidator.getStatus(), driverConfigValidator.getStatus()); // Return back validations in all cases - ValidationResultBean outputBean = new ValidationResultBean(fromConnectorValidation, frameworkValidation, toConnectorValidation); + ValidationResultBean validationResultBean = new ValidationResultBean(fromConfigvalidator, toConfigValidator); // If we're good enough let's perform the action if(finalStatus.canProceed()) { @@ -227,7 +227,7 @@ public class JobRequestHandler implements RequestHandler { job.setCreationUser(username); job.setLastUpdateUser(username); RepositoryManager.getInstance().getRepository().createJob(job); - outputBean.setId(job.getPersistenceId()); + validationResultBean.setId(job.getPersistenceId()); AuditLoggerManager.getInstance() .logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), @@ -236,7 +236,7 @@ public class JobRequestHandler implements RequestHandler { } - return outputBean; + return validationResultBean; } private JsonBean getJobs(RequestContext ctx) { @@ -250,7 +250,7 @@ public class JobRequestHandler implements RequestHandler { Locale locale = ctx.getAcceptLanguageHeader(); Repository repository = RepositoryManager.getInstance().getRepository(); - if (sjid.equals("all")) { + if (sjid.equals(ConfigSerialization.ALL)) { List<MJob> jobs = repository.findJobs(); bean = new JobBean(jobs); @@ -269,11 +269,8 @@ public class JobRequestHandler implements RequestHandler { MJob job = repository.findJob(jid); // @TODO(Abe): From/To - long connectorId = job.getConnectorId(Direction.FROM); - bean = new JobBean(job); - bean.addConnectorConfigBundle(connectorId, ConnectorManager.getInstance().getResourceBundle(connectorId, locale)); } http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java index 23fc9f1..80e65b8 100644 --- a/server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java @@ -17,18 +17,21 @@ */ package org.apache.sqoop.handler; +import java.io.IOException; +import java.util.List; +import java.util.Locale; + import org.apache.log4j.Logger; import org.apache.sqoop.audit.AuditLoggerManager; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.connector.ConnectorManager; import org.apache.sqoop.connector.spi.SqoopConnector; -import org.apache.sqoop.driver.Driver; -import org.apache.sqoop.json.LinkBean; import org.apache.sqoop.json.JsonBean; +import org.apache.sqoop.json.LinkBean; import org.apache.sqoop.json.ValidationResultBean; -import org.apache.sqoop.model.FormUtils; +import org.apache.sqoop.model.ConfigUtils; import org.apache.sqoop.model.MLink; -import org.apache.sqoop.model.MConnectionForms; +import org.apache.sqoop.model.MLinkConfig; import org.apache.sqoop.repository.Repository; import org.apache.sqoop.repository.RepositoryManager; import org.apache.sqoop.server.RequestContext; @@ -36,41 +39,37 @@ import org.apache.sqoop.server.RequestHandler; import org.apache.sqoop.server.common.ServerError; import org.apache.sqoop.utils.ClassUtils; import org.apache.sqoop.validation.Status; -import org.apache.sqoop.validation.ValidationResult; -import org.apache.sqoop.validation.ValidationRunner; +import org.apache.sqoop.validation.ConfigValidationResult; +import org.apache.sqoop.validation.ConfigValidationRunner; import org.json.simple.JSONObject; import org.json.simple.JSONValue; -import java.io.IOException; -import java.util.List; -import java.util.Locale; - /** * Connection request handler is supporting following resources: * - * GET /v1/connection/:xid - * Return details about one particular connection with id :xid or about all of + * GET /v1/link/:xid + * Return details about one particular link with id :xid or about all of * them if :xid equals to "all". * - * POST /v1/connection - * Create new connection + * POST /v1/link + * Create new link * - * PUT /v1/connection/:xid - * Update connection with id :xid. + * PUT /v1/link/:xid + * Update link with id :xid. * - * PUT /v1/connection/:xid/enable - * Enable connection with id :xid + * PUT /v1/link/:xid/enable + * Enable link with id :xid * - * PUT /v1/connection/:xid/disable - * Disable connection with id :xid + * PUT /v1/link/:xid/disable + * Disable link with id :xid * - * DELETE /v1/connection/:xid - * Remove connection with id :xid + * DELETE /v1/link/:xid + * Remove link with id :xid * * Planned resources: * - * GET /v1/connection - * Get brief list of all connections present in the system. + * GET /v1/link + * Get brief list of all links present in the system. * */ public class LinkRequestHandler implements RequestHandler { @@ -89,37 +88,37 @@ public class LinkRequestHandler implements RequestHandler { public JsonBean handleEvent(RequestContext ctx) { switch (ctx.getMethod()) { case GET: - return getConnections(ctx); + return getLink(ctx); case POST: - return createUpdateConnection(ctx, false); + return createUpdateLink(ctx, false); case PUT: if (ctx.getLastURLElement().equals(ENABLE)) { - return enableConnection(ctx, true); + return enableLink(ctx, true); } else if (ctx.getLastURLElement().equals(DISABLE)) { - return enableConnection(ctx, false); + return enableLink(ctx, false); } else { - return createUpdateConnection(ctx, true); + return createUpdateLink(ctx, true); } case DELETE: - return deleteConnection(ctx); + return deleteLink(ctx); } return null; } /** - * Delete connection from metadata repository. + * Delete link from thes repository. * * @param ctx Context object * @return Empty bean */ - private JsonBean deleteConnection(RequestContext ctx) { + private JsonBean deleteLink(RequestContext ctx) { String sxid = ctx.getLastURLElement(); long xid = Long.valueOf(sxid); AuditLoggerManager.getInstance() .logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), - "delete", "connection", sxid); + "delete", "link", sxid); Repository repository = RepositoryManager.getInstance().getRepository(); repository.deleteLink(xid); @@ -128,20 +127,15 @@ public class LinkRequestHandler implements RequestHandler { } /** - * Update or create connection metadata in repository. + * Update or create link in repository. * * @param ctx Context object * @return Validation bean object */ - private JsonBean createUpdateConnection(RequestContext ctx, boolean update) { -// Check that given ID equals with sent ID, otherwise report an error UPDATE -// String sxid = ctx.getLastURLElement(); -// long xid = Long.valueOf(sxid); + private JsonBean createUpdateLink(RequestContext ctx, boolean update) { String username = ctx.getUserName(); - LinkBean bean = new LinkBean(); - try { JSONObject json = (JSONObject) JSONValue.parse(ctx.getRequest().getReader()); @@ -152,93 +146,86 @@ public class LinkRequestHandler implements RequestHandler { "Can't read request content", e); } - // Get connection object - List<MLink> connections = bean.getLinks(); + // Get link object + List<MLink> links = bean.getLinks(); - if(connections.size() != 1) { + if(links.size() != 1) { throw new SqoopException(ServerError.SERVER_0003, - "Expected one connection metadata but got " + connections.size()); + "Expected one link but got " + links.size()); } - MLink connection = connections.get(0); + MLink link = links.get(0); // Verify that user is not trying to spoof us - MConnectionForms connectorForms = - ConnectorManager.getInstance().getConnectorMetadata(connection.getConnectorId()) - .getConnectionForms(); - MConnectionForms frameworkForms = Driver.getInstance().getDriverConfig() - .getConnectionForms(); - - if(!connectorForms.equals(connection.getConnectorPart()) - || !frameworkForms.equals(connection.getFrameworkPart())) { + MLinkConfig linkConfig = + ConnectorManager.getInstance().getConnectorConfig(link.getConnectorId()) + .getLinkConfig(); + if(!linkConfig.equals(link.getConnectorLinkConfig())) { throw new SqoopException(ServerError.SERVER_0003, - "Detected incorrect form structure"); + "Detected incorrect config structure"); } // Responsible connector for this session - SqoopConnector connector = ConnectorManager.getInstance().getConnector(connection.getConnectorId()); + SqoopConnector connector = ConnectorManager.getInstance().getConnector(link.getConnectorId()); - // We need translate forms to configuration objects - Object connectorConfig = ClassUtils.instantiate(connector.getLinkConfigurationClass()); - Object frameworkConfig = ClassUtils.instantiate(Driver.getInstance().getLinkConfigurationClass()); + // We need translate configs + Object connectorLinkConfig = ClassUtils.instantiate(connector.getLinkConfigurationClass()); - FormUtils.fromForms(connection.getConnectorPart().getForms(), connectorConfig); - FormUtils.fromForms(connection.getFrameworkPart().getForms(), frameworkConfig); + ConfigUtils.fromConfigs(link.getConnectorLinkConfig().getConfigs(), connectorLinkConfig); // Validate both parts - ValidationRunner validationRunner = new ValidationRunner(); - ValidationResult connectorValidation = validationRunner.validate(connectorConfig); - ValidationResult frameworkValidation = validationRunner.validate(frameworkConfig); + ConfigValidationRunner validationRunner = new ConfigValidationRunner(); + ConfigValidationResult connectorLinkValidation = validationRunner.validate(connectorLinkConfig); - Status finalStatus = Status.getWorstStatus(connectorValidation.getStatus(), frameworkValidation.getStatus()); + Status finalStatus = Status.getWorstStatus(connectorLinkValidation.getStatus()); // Return back validations in all cases - ValidationResultBean outputBean = new ValidationResultBean(connectorValidation, frameworkValidation); + ValidationResultBean outputBean = new ValidationResultBean(connectorLinkValidation); // If we're good enough let's perform the action if(finalStatus.canProceed()) { if(update) { AuditLoggerManager.getInstance() .logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), - "update", "connection", String.valueOf(connection.getPersistenceId())); + "update", "link", String.valueOf(link.getPersistenceId())); - connection.setLastUpdateUser(username); - RepositoryManager.getInstance().getRepository().updateLink(connection); + link.setLastUpdateUser(username); + RepositoryManager.getInstance().getRepository().updateLink(link); } else { - connection.setCreationUser(username); - connection.setLastUpdateUser(username); - RepositoryManager.getInstance().getRepository().createLink(connection); - outputBean.setId(connection.getPersistenceId()); + link.setCreationUser(username); + link.setLastUpdateUser(username); + RepositoryManager.getInstance().getRepository().createLink(link); + outputBean.setId(link.getPersistenceId()); AuditLoggerManager.getInstance() .logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), - "create", "connection", String.valueOf(connection.getPersistenceId())); + "create", "link", String.valueOf(link.getPersistenceId())); } } return outputBean; } - private JsonBean getConnections(RequestContext ctx) { + private JsonBean getLink(RequestContext ctx) { String sxid = ctx.getLastURLElement(); LinkBean bean; AuditLoggerManager.getInstance() .logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), - "get", "connection", sxid); + "get", "link", sxid); Locale locale = ctx.getAcceptLanguageHeader(); Repository repository = RepositoryManager.getInstance().getRepository(); if (sxid.equals("all")) { - List<MLink> connections = repository.findLinks(); - bean = new LinkBean(connections); + List<MLink> links = repository.findLinks(); + bean = new LinkBean(links); // Add associated resources into the bean - for( MLink connection : connections) { - long connectorId = connection.getConnectorId(); - if(!bean.hasConnectorBundle(connectorId)) { + for( MLink link : links) { + long connectorId = link.getConnectorId(); + if(!bean.hasConnectorConfigBundle(connectorId)) { bean.addConnectorConfigBundle(connectorId, ConnectorManager.getInstance().getResourceBundle(connectorId, locale)); } @@ -246,21 +233,18 @@ public class LinkRequestHandler implements RequestHandler { } else { long xid = Long.valueOf(sxid); - MLink connection = repository.findLink(xid); - long connectorId = connection.getConnectorId(); + MLink link = repository.findLink(xid); + long connectorId = link.getConnectorId(); - bean = new LinkBean(connection); + bean = new LinkBean(link); bean.addConnectorConfigBundle(connectorId, ConnectorManager.getInstance().getResourceBundle(connectorId, locale)); } - - // Sent framework resource bundle in all cases - bean.setDriverConfigBundle(Driver.getInstance().getBundle(locale)); return bean; } - private JsonBean enableConnection(RequestContext ctx, boolean enabled) { + private JsonBean enableLink(RequestContext ctx, boolean enabled) { String[] elements = ctx.getUrlElements(); String sLinkId = elements[elements.length - 2]; long linkId = Long.valueOf(sLinkId); http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java b/shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java index 97d8e6f..8188831 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java @@ -24,8 +24,8 @@ import org.apache.sqoop.common.Direction; import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MPersistableEntity; import org.apache.sqoop.shell.core.Constants; -import org.apache.sqoop.shell.utils.FormOptions; -import org.apache.sqoop.shell.utils.JobDynamicFormOptions; +import org.apache.sqoop.shell.utils.ConfigOptions; +import org.apache.sqoop.shell.utils.JobDynamicConfigOptions; import org.apache.sqoop.validation.Status; import java.io.IOException; @@ -33,7 +33,7 @@ import java.util.List; import java.util.ResourceBundle; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormFiller.*; +import static org.apache.sqoop.shell.utils.ConfigFiller.*; /** * @@ -63,11 +63,11 @@ public class CloneJobFunction extends SqoopFunction { MJob job = client.getJob(jobId); job.setPersistenceId(MPersistableEntity.PERSISTANCE_ID_DEFAULT); - ResourceBundle fromConnectorBundle = client.getConnectorConfigResourceBundle( + ResourceBundle fromConnectorBundle = client.getConnectorConfigBundle( job.getConnectorId(Direction.FROM)); - ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); - ResourceBundle toConnectorBundle = client.getConnectorConfigResourceBundle( + ResourceBundle toConnectorBundle = client.getConnectorConfigBundle( job.getConnectorId(Direction.TO)); + ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); Status status = Status.FINE; @@ -84,7 +84,7 @@ public class CloneJobFunction extends SqoopFunction { } // Fill in data from user - if(!fillJob(reader, job, fromConnectorBundle, driverConfigBundle, toConnectorBundle)) { + if(!fillJobWithBundle(reader, job, fromConnectorBundle, toConnectorBundle, driverConfigBundle)) { return null; } @@ -92,9 +92,9 @@ public class CloneJobFunction extends SqoopFunction { status = client.saveJob(job); } while(!status.canProceed()); } else { - JobDynamicFormOptions options = new JobDynamicFormOptions(); + JobDynamicConfigOptions options = new JobDynamicConfigOptions(); options.prepareOptions(job); - CommandLine line = FormOptions.parseOptions(options, 0, args, false); + CommandLine line = ConfigOptions.parseOptions(options, 0, args, false); if (fillJob(line, job)) { status = client.saveJob(job); if (!status.canProceed()) { http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/CloneLinkFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/CloneLinkFunction.java b/shell/src/main/java/org/apache/sqoop/shell/CloneLinkFunction.java index d9babe0..c1a4f55 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/CloneLinkFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/CloneLinkFunction.java @@ -23,8 +23,8 @@ import org.apache.commons.cli.OptionBuilder; import org.apache.sqoop.model.MLink; import org.apache.sqoop.model.MPersistableEntity; import org.apache.sqoop.shell.core.Constants; -import org.apache.sqoop.shell.utils.LinkDynamicFormOptions; -import org.apache.sqoop.shell.utils.FormOptions; +import org.apache.sqoop.shell.utils.LinkDynamicConfigOptions; +import org.apache.sqoop.shell.utils.ConfigOptions; import org.apache.sqoop.validation.Status; import java.io.IOException; @@ -32,7 +32,7 @@ import java.util.List; import java.util.ResourceBundle; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormFiller.*; +import static org.apache.sqoop.shell.utils.ConfigFiller.*; /** * @@ -67,8 +67,7 @@ public class CloneLinkFunction extends SqoopFunction { Status status = Status.FINE; - ResourceBundle connectorConfigBundle = client.getConnectorConfigResourceBundle(connection.getConnectorId()); - ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); + ResourceBundle linkConfigBundle = client.getConnectorConfigBundle(connection.getConnectorId()); if (isInteractive) { printlnResource(Constants.RES_PROMPT_UPDATE_LINK_CONFIG); @@ -80,17 +79,17 @@ public class CloneLinkFunction extends SqoopFunction { } // Fill in data from user - if(!fillLink(reader, connection, connectorConfigBundle, driverConfigBundle)) { + if(!fillLinkWithBundle(reader, connection, linkConfigBundle)) { return null; } status = client.saveLink(connection); } while(!status.canProceed()); } else { - LinkDynamicFormOptions options = new LinkDynamicFormOptions(); + LinkDynamicConfigOptions options = new LinkDynamicConfigOptions(); options.prepareOptions(connection); - CommandLine line = FormOptions.parseOptions(options, 0, args, false); - if (fillConnection(line, connection)) { + CommandLine line = ConfigOptions.parseOptions(options, 0, args, false); + if (fillLink(line, connection)) { status = client.saveLink(connection); if (!status.canProceed()) { printLinkValidationMessages(connection); http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java b/shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java index ccfed31..0d3d2b5 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java @@ -23,9 +23,9 @@ import org.apache.commons.cli.OptionBuilder; import org.apache.sqoop.common.Direction; import org.apache.sqoop.model.MJob; import org.apache.sqoop.shell.core.Constants; -import org.apache.sqoop.shell.utils.FormDisplayer; -import org.apache.sqoop.shell.utils.FormOptions; -import org.apache.sqoop.shell.utils.JobDynamicFormOptions; +import org.apache.sqoop.shell.utils.ConfigDisplayer; +import org.apache.sqoop.shell.utils.ConfigOptions; +import org.apache.sqoop.shell.utils.JobDynamicConfigOptions; import org.apache.sqoop.validation.Status; import java.io.IOException; @@ -33,7 +33,7 @@ import java.util.List; import java.util.ResourceBundle; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormFiller.*; +import static org.apache.sqoop.shell.utils.ConfigFiller.*; /** * Handles creation of new job objects. @@ -67,16 +67,16 @@ public class CreateJobFunction extends SqoopFunction { isInteractive); } - private Status createJob(Long fromConnectionId, Long toConnectionId, List<String> args, boolean isInteractive) throws IOException { - printlnResource(Constants.RES_CREATE_CREATING_JOB, fromConnectionId, toConnectionId); + private Status createJob(Long fromLinkId, Long toLinkId, List<String> args, boolean isInteractive) throws IOException { + printlnResource(Constants.RES_CREATE_CREATING_JOB, fromLinkId, toLinkId); ConsoleReader reader = new ConsoleReader(); - MJob job = client.createJob(fromConnectionId, toConnectionId); + MJob job = client.createJob(fromLinkId, toLinkId); // @TODO(Abe): From/To. - ResourceBundle fromConnectorBundle = client.getConnectorConfigResourceBundle( + ResourceBundle fromConfigBundle = client.getConnectorConfigBundle( job.getConnectorId(Direction.FROM)); - ResourceBundle toConnectorBundle = client.getConnectorConfigResourceBundle( + ResourceBundle toConfigBundle = client.getConnectorConfigBundle( job.getConnectorId(Direction.TO)); ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); @@ -92,7 +92,7 @@ public class CreateJobFunction extends SqoopFunction { } // Fill in data from user - if(!fillJob(reader, job, fromConnectorBundle, driverConfigBundle, toConnectorBundle)) { + if(!fillJobWithBundle(reader, job, fromConfigBundle, toConfigBundle, driverConfigBundle)) { return null; } @@ -100,9 +100,9 @@ public class CreateJobFunction extends SqoopFunction { status = client.saveJob(job); } while(!status.canProceed()); } else { - JobDynamicFormOptions options = new JobDynamicFormOptions(); + JobDynamicConfigOptions options = new JobDynamicConfigOptions(); options.prepareOptions(job); - CommandLine line = FormOptions.parseOptions(options, 0, args, false); + CommandLine line = ConfigOptions.parseOptions(options, 0, args, false); if (fillJob(line, job)) { status = client.saveJob(job); if (!status.canProceed()) { @@ -115,7 +115,7 @@ public class CreateJobFunction extends SqoopFunction { } } - FormDisplayer.displayFormWarning(job); + ConfigDisplayer.displayConfigWarning(job); printlnResource(Constants.RES_CREATE_JOB_SUCCESSFUL, status.name(), job.getPersistenceId()); return status; http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/CreateLinkFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/CreateLinkFunction.java b/shell/src/main/java/org/apache/sqoop/shell/CreateLinkFunction.java index 33d60c8..ce9988f 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/CreateLinkFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/CreateLinkFunction.java @@ -22,9 +22,9 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.OptionBuilder; import org.apache.sqoop.model.MLink; import org.apache.sqoop.shell.core.Constants; -import org.apache.sqoop.shell.utils.LinkDynamicFormOptions; -import org.apache.sqoop.shell.utils.FormDisplayer; -import org.apache.sqoop.shell.utils.FormOptions; +import org.apache.sqoop.shell.utils.LinkDynamicConfigOptions; +import org.apache.sqoop.shell.utils.ConfigDisplayer; +import org.apache.sqoop.shell.utils.ConfigOptions; import org.apache.sqoop.validation.Status; import java.io.IOException; @@ -32,7 +32,7 @@ import java.util.List; import java.util.ResourceBundle; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormFiller.*; +import static org.apache.sqoop.shell.utils.ConfigFiller.*; /** * @@ -62,11 +62,9 @@ public class CreateLinkFunction extends SqoopFunction { MLink link = client.createLink(connectorId); - ResourceBundle connectorConfigBundle = client.getConnectorConfigResourceBundle(connectorId); - ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); + ResourceBundle connectorConfigBundle = client.getConnectorConfigBundle(connectorId); Status status = Status.FINE; - if (isInteractive) { printlnResource(Constants.RES_PROMPT_FILL_LINK_CONFIG); @@ -77,7 +75,7 @@ public class CreateLinkFunction extends SqoopFunction { } // Fill in data from user - if(!fillLink(reader, link, connectorConfigBundle, driverConfigBundle)) { + if(!fillLinkWithBundle(reader, link, connectorConfigBundle)) { return null; } @@ -85,10 +83,10 @@ public class CreateLinkFunction extends SqoopFunction { status = client.saveLink(link); } while(!status.canProceed()); } else { - LinkDynamicFormOptions options = new LinkDynamicFormOptions(); + LinkDynamicConfigOptions options = new LinkDynamicConfigOptions(); options.prepareOptions(link); - CommandLine line = FormOptions.parseOptions(options, 0, args, false); - if (fillConnection(line, link)) { + CommandLine line = ConfigOptions.parseOptions(options, 0, args, false); + if (fillLink(line, link)) { status = client.saveLink(link); if (!status.canProceed()) { printLinkValidationMessages(link); @@ -100,7 +98,7 @@ public class CreateLinkFunction extends SqoopFunction { } } - FormDisplayer.displayFormWarning(link); + ConfigDisplayer.displayConfigWarning(link); printlnResource(Constants.RES_CREATE_LINK_SUCCESSFUL, status.name(), link.getPersistenceId()); return status; http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/ShowCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/ShowCommand.java b/shell/src/main/java/org/apache/sqoop/shell/ShowCommand.java index 28bc752..329b4d6 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/ShowCommand.java +++ b/shell/src/main/java/org/apache/sqoop/shell/ShowCommand.java @@ -31,7 +31,7 @@ public class ShowCommand extends SqoopCommand { .put(Constants.FN_SERVER, ShowServerFunction.class) .put(Constants.FN_VERSION, ShowVersionFunction.class) .put(Constants.FN_CONNECTOR, ShowConnectorFunction.class) - .put(Constants.FN_DRIVER_CONFIG, ShowDriverConfigFunction.class) + .put(Constants.FN_DRIVER_CONFIG, ShowDriverFunction.class) .put(Constants.FN_LINK, ShowLinkFunction.class) .put(Constants.FN_JOB, ShowJobFunction.class) .put(Constants.FN_SUBMISSION, ShowSubmissionFunction.class) http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java b/shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java index 2ba75b4..09fb195 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java @@ -31,7 +31,7 @@ import org.apache.sqoop.shell.utils.TableDisplayer; import org.apache.sqoop.validation.Status; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormDisplayer.*; +import static org.apache.sqoop.shell.utils.ConfigDisplayer.*; @SuppressWarnings("serial") public class ShowConnectorFunction extends SqoopFunction { @@ -115,7 +115,7 @@ public class ShowConnectorFunction extends SqoopFunction { connector.getVersion(), getSupportedDirections(connector) ); - displayFormMetadataDetails(connector, client.getConnectorConfigResourceBundle(connector.getPersistenceId())); + displayConnectorConfigDetails(connector, client.getConnectorConfigBundle(connector.getPersistenceId())); } /** http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/ShowDriverConfigFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/ShowDriverConfigFunction.java b/shell/src/main/java/org/apache/sqoop/shell/ShowDriverConfigFunction.java deleted file mode 100644 index e6e1004..0000000 --- a/shell/src/main/java/org/apache/sqoop/shell/ShowDriverConfigFunction.java +++ /dev/null @@ -1,60 +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.shell; - -import org.apache.commons.cli.CommandLine; -import org.apache.sqoop.model.MDriverConfig; -import org.apache.sqoop.shell.core.Constants; -import org.apache.sqoop.validation.Status; - -import java.util.ResourceBundle; - -import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormDisplayer.*; - -/** - * - */ -@SuppressWarnings("serial") -public class ShowDriverConfigFunction extends SqoopFunction { - public ShowDriverConfigFunction() { - } - - @Override - public boolean validateArgs(CommandLine line) { - if (line.getArgs().length != 0) { - printlnResource(Constants.RES_SHOW_DRIVER_CONFIG_USAGE); - return false; - } - return true; - } - - @Override - public Object executeFunction(CommandLine line, boolean isInteractive) { - showFramework(); - return Status.FINE; - } - - private void showFramework() { - MDriverConfig framework = client.getDriverConfig(); - ResourceBundle bundle = client.getDriverConfigBundle(); - - printlnResource(Constants.RES_SHOW_PROMPT_DRIVER_CONFIG_OPTS, framework.getPersistenceId()); - displayFormMetadataDetails(framework, bundle); - } -} http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/ShowDriverFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/ShowDriverFunction.java b/shell/src/main/java/org/apache/sqoop/shell/ShowDriverFunction.java new file mode 100644 index 0000000..080792b --- /dev/null +++ b/shell/src/main/java/org/apache/sqoop/shell/ShowDriverFunction.java @@ -0,0 +1,55 @@ +/** + * 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.shell; + +import static org.apache.sqoop.shell.ShellEnvironment.client; +import static org.apache.sqoop.shell.ShellEnvironment.printlnResource; +import static org.apache.sqoop.shell.utils.ConfigDisplayer.displayDriverConfigDetails; + +import org.apache.commons.cli.CommandLine; +import org.apache.sqoop.shell.core.Constants; +import org.apache.sqoop.validation.Status; + +/** + * + */ +@SuppressWarnings("serial") +public class ShowDriverFunction extends SqoopFunction { + public ShowDriverFunction() { + } + + @Override + public boolean validateArgs(CommandLine line) { + if (line.getArgs().length != 0) { + printlnResource(Constants.RES_SHOW_DRIVER_CONFIG_USAGE); + return false; + } + return true; + } + + @Override + public Object executeFunction(CommandLine line, boolean isInteractive) { + showDriver(); + return Status.FINE; + } + + private void showDriver() { + printlnResource(Constants.RES_SHOW_PROMPT_DRIVER_CONFIG_OPTS, client.getDriver().getPersistenceId()); + displayDriverConfigDetails(client.getDriverConfig(), client.getDriverConfigBundle()); + } +} http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java b/shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java index e3f1f47..0640283 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java @@ -30,7 +30,7 @@ import java.util.LinkedList; import java.util.List; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormDisplayer.*; +import static org.apache.sqoop.shell.utils.ConfigDisplayer.*; /** * @@ -124,12 +124,11 @@ public class ShowJobFunction extends SqoopFunction { job.getLinkId(Direction.FROM), job.getConnectorId(Direction.FROM)); - // Display connector part - displayForms(job.getConnectorPart(Direction.FROM).getForms(), - client.getConnectorConfigResourceBundle(job.getConnectorId(Direction.FROM))); - displayForms(job.getFrameworkPart().getForms(), + displayConfig(job.getJobConfig(Direction.FROM).getConfigs(), + client.getConnectorConfigBundle(job.getConnectorId(Direction.FROM))); + displayConfig(job.getDriverConfig().getConfigs(), client.getDriverConfigBundle()); - displayForms(job.getConnectorPart(Direction.TO).getForms(), - client.getConnectorConfigResourceBundle(job.getConnectorId(Direction.TO))); + displayConfig(job.getJobConfig(Direction.TO).getConfigs(), + client.getConnectorConfigBundle(job.getConnectorId(Direction.TO))); } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/ShowLinkFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/ShowLinkFunction.java b/shell/src/main/java/org/apache/sqoop/shell/ShowLinkFunction.java index f500b9e..f4eae33 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/ShowLinkFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/ShowLinkFunction.java @@ -29,7 +29,7 @@ import java.util.LinkedList; import java.util.List; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormDisplayer.*; +import static org.apache.sqoop.shell.utils.ConfigDisplayer.*; /** * @@ -103,26 +103,24 @@ public class ShowLinkFunction extends SqoopFunction { displayLink(link); } - private void displayLink(MLink connection) { + private void displayLink(MLink link) { DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); printlnResource(Constants.RES_SHOW_PROMPT_LINK_INFO, - connection.getPersistenceId(), - connection.getName(), - connection.getEnabled(), - connection.getCreationUser(), - formatter.format(connection.getCreationDate()), - connection.getLastUpdateUser(), - formatter.format(connection.getLastUpdateDate()) + link.getPersistenceId(), + link.getName(), + link.getEnabled(), + link.getCreationUser(), + formatter.format(link.getCreationDate()), + link.getLastUpdateUser(), + formatter.format(link.getLastUpdateDate()) ); - long connectorId = connection.getConnectorId(); + long connectorId = link.getConnectorId(); printlnResource(Constants.RES_SHOW_PROMPT_LINK_CID_INFO, connectorId); - // Display connector part - displayForms(connection.getConnectorPart().getForms(), - client.getConnectorConfigResourceBundle(connectorId)); - displayForms(connection.getFrameworkPart().getForms(), - client.getDriverConfigBundle()); + // Display link config + displayConfig(link.getConnectorLinkConfig().getConfigs(), + client.getConnectorConfigBundle(connectorId)); } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java b/shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java index 5d69c2a..0845d8e 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java @@ -25,7 +25,7 @@ import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.shell.core.ShellError; -import org.apache.sqoop.shell.utils.FormOptions; +import org.apache.sqoop.shell.utils.ConfigOptions; import static org.apache.sqoop.shell.ShellEnvironment.*; @@ -44,7 +44,7 @@ abstract public class SqoopFunction extends Options { } public Object execute(List<String> args) { - CommandLine line = FormOptions.parseOptions(this, 1, args, true); + CommandLine line = ConfigOptions.parseOptions(this, 1, args, true); try { if (validateArgs(line)) { http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java b/shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java index 96d1fd8..dd075d7 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java @@ -23,9 +23,9 @@ import org.apache.commons.cli.OptionBuilder; import org.apache.sqoop.common.Direction; import org.apache.sqoop.model.MJob; import org.apache.sqoop.shell.core.Constants; -import org.apache.sqoop.shell.utils.FormDisplayer; -import org.apache.sqoop.shell.utils.FormOptions; -import org.apache.sqoop.shell.utils.JobDynamicFormOptions; +import org.apache.sqoop.shell.utils.ConfigDisplayer; +import org.apache.sqoop.shell.utils.ConfigOptions; +import org.apache.sqoop.shell.utils.JobDynamicConfigOptions; import org.apache.sqoop.validation.Status; import java.io.IOException; @@ -33,7 +33,7 @@ import java.util.List; import java.util.ResourceBundle; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormFiller.*; +import static org.apache.sqoop.shell.utils.ConfigFiller.*; /** * @@ -57,18 +57,19 @@ public class UpdateJobFunction extends SqoopFunction { } private Status updateJob(Long jobId, List<String> args, boolean isInteractive) throws IOException { - printlnResource(Constants.RES_UPDATE_UPDATING_JOB, jobId); + printlnResource(Constants.RES_SQOOP_UPDATING_JOB, jobId); ConsoleReader reader = new ConsoleReader(); MJob job = client.getJob(jobId); - ResourceBundle fromConnectorBundle = client.getConnectorConfigResourceBundle( + ResourceBundle fromConnectorBundle = client.getConnectorConfigBundle( job.getConnectorId(Direction.FROM)); - ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); - ResourceBundle toConnectorBundle = client.getConnectorConfigResourceBundle( + ResourceBundle toConnectorBundle = client.getConnectorConfigBundle( job.getConnectorId(Direction.TO)); + ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); + Status status = Status.FINE; if (isInteractive) { @@ -81,7 +82,7 @@ public class UpdateJobFunction extends SqoopFunction { } // Fill in data from user - if(!fillJob(reader, job, fromConnectorBundle, driverConfigBundle, toConnectorBundle)) { + if(!fillJobWithBundle(reader, job, fromConnectorBundle, toConnectorBundle, driverConfigBundle)) { return status; } @@ -89,9 +90,9 @@ public class UpdateJobFunction extends SqoopFunction { status = client.updateJob(job); } while(!status.canProceed()); } else { - JobDynamicFormOptions options = new JobDynamicFormOptions(); + JobDynamicConfigOptions options = new JobDynamicConfigOptions(); options.prepareOptions(job); - CommandLine line = FormOptions.parseOptions(options, 0, args, false); + CommandLine line = ConfigOptions.parseOptions(options, 0, args, false); if (fillJob(line, job)) { status = client.updateJob(job); if (!status.canProceed()) { @@ -104,7 +105,7 @@ public class UpdateJobFunction extends SqoopFunction { } } - FormDisplayer.displayFormWarning(job); + ConfigDisplayer.displayConfigWarning(job); printlnResource(Constants.RES_UPDATE_JOB_SUCCESSFUL, status.name()); return status; http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/UpdateLinkFunction.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/UpdateLinkFunction.java b/shell/src/main/java/org/apache/sqoop/shell/UpdateLinkFunction.java index 30bb63e..d5ead38 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/UpdateLinkFunction.java +++ b/shell/src/main/java/org/apache/sqoop/shell/UpdateLinkFunction.java @@ -22,9 +22,9 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.OptionBuilder; import org.apache.sqoop.model.MLink; import org.apache.sqoop.shell.core.Constants; -import org.apache.sqoop.shell.utils.LinkDynamicFormOptions; -import org.apache.sqoop.shell.utils.FormDisplayer; -import org.apache.sqoop.shell.utils.FormOptions; +import org.apache.sqoop.shell.utils.LinkDynamicConfigOptions; +import org.apache.sqoop.shell.utils.ConfigDisplayer; +import org.apache.sqoop.shell.utils.ConfigOptions; import org.apache.sqoop.validation.Status; import java.io.IOException; @@ -32,7 +32,7 @@ import java.util.List; import java.util.ResourceBundle; import static org.apache.sqoop.shell.ShellEnvironment.*; -import static org.apache.sqoop.shell.utils.FormFiller.*; +import static org.apache.sqoop.shell.utils.ConfigFiller.*; /** * @@ -56,14 +56,13 @@ public class UpdateLinkFunction extends SqoopFunction { } private Status updateLink(Long linkId, List<String> args, boolean isInteractive) throws IOException { - printlnResource(Constants.RES_UPDATE_UPDATING_LINK, linkId); + printlnResource(Constants.RES_SQOOP_UPDATING_LINK, linkId); ConsoleReader reader = new ConsoleReader(); MLink link = client.getLink(linkId); - ResourceBundle connectorConfigBundle = client.getConnectorConfigResourceBundle(link.getConnectorId()); - ResourceBundle driverConfigBundle = client.getDriverConfigBundle(); + ResourceBundle connectorLinkConfigBundle = client.getConnectorConfigBundle(link.getConnectorId()); Status status = Status.FINE; @@ -77,7 +76,7 @@ public class UpdateLinkFunction extends SqoopFunction { } // Fill in data from user - if(!fillLink(reader, link, connectorConfigBundle, driverConfigBundle)) { + if(!fillLinkWithBundle(reader, link, connectorLinkConfigBundle)) { return null; } @@ -85,10 +84,10 @@ public class UpdateLinkFunction extends SqoopFunction { status = client.updateLink(link); } while(!status.canProceed()); } else { - LinkDynamicFormOptions options = new LinkDynamicFormOptions(); + LinkDynamicConfigOptions options = new LinkDynamicConfigOptions(); options.prepareOptions(link); - CommandLine line = FormOptions.parseOptions(options, 0, args, false); - if (fillConnection(line, link)) { + CommandLine line = ConfigOptions.parseOptions(options, 0, args, false); + if (fillLink(line, link)) { status = client.updateLink(link); if (!status.canProceed()) { printLinkValidationMessages(link); @@ -99,7 +98,7 @@ public class UpdateLinkFunction extends SqoopFunction { return null; } } - FormDisplayer.displayFormWarning(link); + ConfigDisplayer.displayConfigWarning(link); printlnResource(Constants.RES_UPDATE_LINK_SUCCESSFUL, status.name()); return status; http://git-wip-us.apache.org/repos/asf/sqoop/blob/8362c73c/shell/src/main/java/org/apache/sqoop/shell/core/Constants.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/sqoop/shell/core/Constants.java b/shell/src/main/java/org/apache/sqoop/shell/core/Constants.java index 4d3838c..a1bc5d5 100644 --- a/shell/src/main/java/org/apache/sqoop/shell/core/Constants.java +++ b/shell/src/main/java/org/apache/sqoop/shell/core/Constants.java @@ -1,7 +1,7 @@ /** * 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 + * distributed with this work for additional inconfigation * 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 @@ -316,11 +316,11 @@ public class Constants { public static final String RES_SQOOP_PROMPT_SHELL_LOADEDRC = "sqoop.prompt_shell_loadedrc"; - public static final String RES_UPDATE_UPDATING_LINK = + public static final String RES_SQOOP_UPDATING_LINK = "update.link"; public static final String RES_UPDATE_LINK_SUCCESSFUL = "update.link_successful"; - public static final String RES_UPDATE_UPDATING_JOB = + public static final String RES_SQOOP_UPDATING_JOB = "update.job"; public static final String RES_UPDATE_JOB_SUCCESSFUL = "update.job_successful"; @@ -352,35 +352,35 @@ public class Constants { public static final String RES_TABLE_HEADER_ENABLED = "table.header.enabled"; - public static final String RES_FORMDISPLAYER_CONNECTION = - "formdisplayer.link"; - public static final String RES_FORMDISPLAYER_JOB = - "formdisplayer.job"; - public static final String RES_FORMDISPLAYER_FORM = - "formdisplayer.form"; - public static final String RES_FORMDISPLAYER_NAME = - "formdisplayer.name"; - public static final String RES_FORMDISPLAYER_LABEL = - "formdisplayer.label"; - public static final String RES_FORMDISPLAYER_HELP = - "formdisplayer.help"; - public static final String RES_FORMDISPLAYER_INPUT = - "formdisplayer.input"; - public static final String RES_FORMDISPLAYER_TYPE = - "formdisplayer.type"; - public static final String RES_FORMDISPLAYER_SENSITIVE = - "formdisplayer.sensitive"; - public static final String RES_FORMDISPLAYER_SIZE = - "formdisplayer.size"; - public static final String RES_FORMDISPLAYER_POSSIBLE_VALUES = - "formdisplayer.possible_values"; - public static final String RES_FORMDISPLAYER_UNSUPPORTED_DATATYPE = - "formdisplayer.unsupported_datatype"; - public static final String RES_FORMDISPLAYER_INPUT_SENSITIVE = - "formdisplayer.input_sensitive"; - - public static final String RES_FORMDISPLAYER_FORM_WARNING = - "formdisplayer.warning_message"; + public static final String RES_CONFIG_DISPLAYER_LINK = + "config.displayer.link"; + public static final String RES_CONFIG_DISPLAYER_JOB = + "config.displayer.job"; + public static final String RES_CONFIG_DISPLAYER_CONFIG = + "config.displayer.config"; + public static final String RES_CONFIG_DISPLAYER_NAME = + "config.displayer.name"; + public static final String RES_CONFIG_DISPLAYER_LABEL = + "config.displayer.label"; + public static final String RES_CONFIG_DISPLAYER_HELP = + "config.displayer.help"; + public static final String RES_CONFIG_DISPLAYER_INPUT = + "config.displayer.input"; + public static final String RES_CONFIG_DISPLAYER_TYPE = + "config.displayer.type"; + public static final String RES_CONFIG_DISPLAYER_SENSITIVE = + "config.displayer.sensitive"; + public static final String RES_CONFIG_DISPLAYER_SIZE = + "config.displayer.size"; + public static final String RES_CONFIG_DISPLAYER_POSSIBLE_VALUES = + "config.displayer.possible_values"; + public static final String RES_CONFIG_DISPLAYER_UNSUPPORTED_DATATYPE = + "config.displayer.unsupported_datatype"; + public static final String RES_CONFIG_DISPLAYER_INPUT_SENSITIVE = + "config.displayer.input_sensitive"; + + public static final String RES_CONFIG_DISPLAYER_FORM_WARNING = + "config.displayer.warning_message"; public static final String RES_SUBMISSION_SUBMISSION_DETAIL = "submission.submission_detail";