sqoop-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From co...@apache.org
Subject sqoop git commit: SQOOP-2762: Sqoop2: Provide test infrastructure base class for connector loading tests (Dian Fu via Colin Ma)
Date Fri, 29 Jan 2016 08:11:00 GMT
Repository: sqoop
Updated Branches:
  refs/heads/sqoop2 25d236c31 -> 66a86353c


SQOOP-2762: Sqoop2: Provide test infrastructure base class for connector loading tests
 (Dian Fu via Colin Ma)


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

Branch: refs/heads/sqoop2
Commit: 66a86353ca2dd766a6ab005e28e3e5666436785d
Parents: 25d236c
Author: Colin Ma <colin@apache.org>
Authored: Fri Jan 29 15:48:26 2016 +0800
Committer: Colin Ma <colin@apache.org>
Committed: Fri Jan 29 15:48:26 2016 +0800

----------------------------------------------------------------------
 .../mapreduce/MapreduceExecutionEngine.java     |   7 +
 .../java/org/apache/sqoop/job/mr/MRUtils.java   |   4 +
 .../sqoop/test/testcases/ConnectorTestCase.java | 285 -------------------
 .../sqoop/test/testcases/JettyTestCase.java     | 274 ------------------
 .../BlacklistedConnectorTest.java               |  35 +--
 .../connectorloading/ClasspathTest.java         |  27 +-
 .../ConnectorClasspathIsolationTest.java        |  25 +-
 7 files changed, 64 insertions(+), 593 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sqoop/blob/66a86353/execution/mapreduce/src/main/java/org/apache/sqoop/execution/mapreduce/MapreduceExecutionEngine.java
----------------------------------------------------------------------
diff --git a/execution/mapreduce/src/main/java/org/apache/sqoop/execution/mapreduce/MapreduceExecutionEngine.java
b/execution/mapreduce/src/main/java/org/apache/sqoop/execution/mapreduce/MapreduceExecutionEngine.java
index d6f0ff7..e14a283 100644
--- a/execution/mapreduce/src/main/java/org/apache/sqoop/execution/mapreduce/MapreduceExecutionEngine.java
+++ b/execution/mapreduce/src/main/java/org/apache/sqoop/execution/mapreduce/MapreduceExecutionEngine.java
@@ -26,6 +26,7 @@ import org.apache.sqoop.job.MRJobConstants;
 import org.apache.sqoop.job.etl.From;
 import org.apache.sqoop.job.etl.To;
 import org.apache.sqoop.job.io.SqoopWritable;
+import org.apache.sqoop.job.mr.MRUtils;
 import org.apache.sqoop.job.mr.SqoopInputFormat;
 import org.apache.sqoop.job.mr.SqoopMapper;
 import org.apache.sqoop.job.mr.SqoopNullOutputFormat;
@@ -101,4 +102,10 @@ public class MapreduceExecutionEngine extends ExecutionEngine {
     // Guava
     jobrequest.addJarForClass(ThreadFactoryBuilder.class);
   }
+
+  @Override
+  public void destroy() {
+    super.destroy();
+    MRUtils.destroy();
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/66a86353/execution/mapreduce/src/main/java/org/apache/sqoop/job/mr/MRUtils.java
----------------------------------------------------------------------
diff --git a/execution/mapreduce/src/main/java/org/apache/sqoop/job/mr/MRUtils.java b/execution/mapreduce/src/main/java/org/apache/sqoop/job/mr/MRUtils.java
index 3e55778..5f685b5 100644
--- a/execution/mapreduce/src/main/java/org/apache/sqoop/job/mr/MRUtils.java
+++ b/execution/mapreduce/src/main/java/org/apache/sqoop/job/mr/MRUtils.java
@@ -92,4 +92,8 @@ public final class MRUtils {
 
     throw new SqoopException(MRExecutionError.MAPRED_EXEC_0026, connectorName);
   }
+
+  public static synchronized void destroy() {
+    connectorClassLoaderInited = false;
+  }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/66a86353/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
----------------------------------------------------------------------
diff --git a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java b/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
deleted file mode 100644
index f071786..0000000
--- a/test/src/main/java/org/apache/sqoop/test/testcases/ConnectorTestCase.java
+++ /dev/null
@@ -1,285 +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.test.testcases;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotSame;
-
-import org.apache.log4j.Logger;
-import org.apache.sqoop.client.SubmissionCallback;
-import org.apache.sqoop.common.test.asserts.ProviderAsserts;
-import org.apache.sqoop.common.test.db.DatabaseProvider;
-import org.apache.sqoop.common.test.db.DatabaseProviderFactory;
-import org.apache.sqoop.common.test.db.TableName;
-import org.apache.sqoop.connector.hdfs.configuration.ToFormat;
-import org.apache.sqoop.model.MConfigList;
-import org.apache.sqoop.model.MJob;
-import org.apache.sqoop.model.MLink;
-import org.apache.sqoop.model.MPersistableEntity;
-import org.apache.sqoop.model.MSubmission;
-import org.apache.sqoop.submission.SubmissionStatus;
-import org.apache.sqoop.test.data.Cities;
-import org.apache.sqoop.test.data.ShortStories;
-import org.apache.sqoop.test.data.UbuntuReleases;
-import org.apache.sqoop.test.utils.SqoopUtils;
-import org.apache.sqoop.validation.Status;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeSuite;
-
-/**
- * Base test case suitable for connector testing.
- *
- * In addition to Jetty based test case it will also create and initialize
- * the database provider prior every test execution.
- */
-@edu.umd.cs.findbugs.annotations.SuppressWarnings({"MS_PKGPROTECT", "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"})
-abstract public class  ConnectorTestCase extends JettyTestCase {
-
-  private static final Logger LOG = Logger.getLogger(ConnectorTestCase.class);
-
-  protected static DatabaseProvider provider;
-
-  /**
-   * Default submission callbacks that are printing various status about the submission.
-   */
-  protected static final SubmissionCallback DEFAULT_SUBMISSION_CALLBACKS = new SubmissionCallback()
{
-    @Override
-    public void submitted(MSubmission submission) {
-      LOG.info("Submission submitted: " + submission);
-    }
-
-    @Override
-    public void updated(MSubmission submission) {
-      LOG.info("Submission updated: " + submission);
-    }
-
-    @Override
-    public void finished(MSubmission submission) {
-      LOG.info("Submission finished: " + submission);
-    }
-  };
-
-  @BeforeSuite(alwaysRun = true)
-  public void startProvider() throws Exception {
-    provider = DatabaseProviderFactory.getProvider(System.getProperties());
-    LOG.info("Starting database provider: " + provider.getClass().getName());
-    provider.start();
-  }
-
-  @AfterSuite(alwaysRun = true)
-  public void stopProvider() {
-    LOG.info("Stopping database provider: " + provider.getClass().getName());
-    provider.stop();
-  }
-
-  public TableName getTableName() {
-    return new TableName(getClass().getSimpleName());
-  }
-
-  protected void createTable(String primaryKey, String ...columns) {
-    provider.createTable(getTableName(), primaryKey, columns);
-  }
-
-  protected void dropTable() {
-    provider.dropTable(getTableName());
-  }
-
-  protected void insertRow(Object ...values) {
-    provider.insertRow(getTableName(), values);
-  }
-
-  protected long rowCount() {
-    return provider.rowCount(getTableName());
-  }
-
-  protected void dumpTable() {
-    provider.dumpTable(getTableName());
-  }
-
-  /**
-   * Fill link config based on currently active provider.
-   *
-   * @param link MLink object to fill
-   */
-  protected void fillRdbmsLinkConfig(MLink link) {
-    MConfigList configs = link.getConnectorLinkConfig();
-    configs.getStringInput("linkConfig.jdbcDriver").setValue(provider.getJdbcDriver());
-    configs.getStringInput("linkConfig.connectionString").setValue(provider.getConnectionUrl());
-    configs.getStringInput("linkConfig.username").setValue(provider.getConnectionUsername());
-    configs.getStringInput("linkConfig.password").setValue(provider.getConnectionPassword());
-  }
-
-  protected void fillRdbmsFromConfig(MJob job, String partitionColumn) {
-    MConfigList fromConfig = job.getFromJobConfig();
-    fromConfig.getStringInput("fromJobConfig.tableName").setValue(getTableName().getTableName());
-    fromConfig.getStringInput("fromJobConfig.partitionColumn").setValue(partitionColumn);
-  }
-
-  protected void fillRdbmsToConfig(MJob job) {
-    MConfigList toConfig = job.getToJobConfig();
-    toConfig.getStringInput("toJobConfig.tableName").setValue(getTableName().getTableName());
-  }
-
-  protected void fillHdfsLink(MLink link) {
-    MConfigList configs = link.getConnectorLinkConfig();
-    configs.getStringInput("linkConfig.confDir").setValue(getCluster().getConfigurationPath());
-  }
-
-  /**
-   * Fill TO config with specific storage and output type.
-   *
-   * @param job MJob object to fill
-   * @param output Output type that should be set
-   */
-  protected void fillHdfsToConfig(MJob job, ToFormat output) {
-    MConfigList toConfig = job.getToJobConfig();
-    toConfig.getEnumInput("toJobConfig.outputFormat").setValue(output);
-    toConfig.getStringInput("toJobConfig.outputDirectory").setValue(getMapreduceDirectory());
-  }
-
-  /**
-   * Fill FROM config
-   *
-   * @param job MJob object to fill
-   */
-  protected void fillHdfsFromConfig(MJob job) {
-    MConfigList fromConfig = job.getFromJobConfig();
-    fromConfig.getStringInput("fromJobConfig.inputDirectory").setValue(getMapreduceDirectory());
-  }
-
-  /**
-   * Fill Driver config
-   * @param job
-   */
-  protected void fillDriverConfig(MJob job) {
-    job.getDriverConfig().getStringInput("throttlingConfig.numExtractors").setValue("3");
-  }
-
-
-  /**
-   * Create table cities.
-   */
-  protected void createTableCities() {
-    new Cities(provider, getTableName()).createTables();
-  }
-
-  /**
-   * Create table cities and load few rows.
-   */
-  protected void createAndLoadTableCities() {
-    new Cities(provider, getTableName()).createTables().loadBasicData();
-  }
-
-  /**
-   * Create table for ubuntu releases.
-   */
-  protected void createTableUbuntuReleases() {
-    new UbuntuReleases(provider, getTableName()).createTables();
-  }
-
-  /**
-   * Create table for ubuntu releases.
-   */
-  protected void createAndLoadTableUbuntuReleases() {
-    new UbuntuReleases(provider, getTableName()).createTables().loadBasicData();
-  }
-
-  /**
-   * Create table for short stories.
-   */
-  protected void createTableShortStories() {
-    new ShortStories(provider, getTableName()).createTables();
-  }
-
-  /**
-   * Create table for short stories.
-   */
-  protected void createAndLoadTableShortStories() {
-    new ShortStories(provider, getTableName()).createTables().loadBasicData();
-  }
-
-  /**
-   * Assert row in testing table.
-   *
-   * @param conditions Conditions in config that are expected by the database provider
-   * @param values Values that are expected in the table (with corresponding types)
-   */
-  protected void assertRow(Object[] conditions, Object ...values) {
-    ProviderAsserts.assertRow(provider, getTableName(), conditions, values);
-  }
-
-  /**
-   * Assert row in table "cities".
-   *
-   * @param values Values that are expected
-   */
-  protected void assertRowInCities(Object... values) {
-    assertRow(new Object[]{"id", values[0]}, values);
-  }
-
-  /**
-   * Create link.
-   *
-   * With asserts to make sure that it was created correctly.
-   *
-   * @param link
-   */
-  protected void saveLink(MLink link) {
-    SqoopUtils.fillObjectName(link);
-    assertEquals(getClient().saveLink(link), Status.OK);
-  }
-
- /**
-   * Create job.
-   *
-   * With asserts to make sure that it was created correctly.
-   *
-   * @param job
-   */
- protected void saveJob(MJob job) {
-   SqoopUtils.fillObjectName(job);
-   assertEquals(getClient().saveJob(job), Status.OK);
-  }
-
-  /**
-   * Run job with given job name.
-   *
-   * @param jobName Job Name
-   * @throws Exception
-   */
-  protected void executeJob(String jobName) throws Exception {
-    MSubmission finalSubmission = getClient().startJob(jobName, DEFAULT_SUBMISSION_CALLBACKS,
100);
-
-    if(finalSubmission.getStatus().isFailure()) {
-      LOG.error("Submission has failed: " + finalSubmission.getError().getErrorSummary());
-      LOG.error("Corresponding error details: " + finalSubmission.getError().getErrorDetails());
-    }
-    assertEquals(finalSubmission.getStatus(), SubmissionStatus.SUCCEEDED,
-            "Submission finished with error: " + finalSubmission.getError().getErrorSummary());
-  }
-
-  /**
-   * Run given job.
-   *
-   * @param job Job object
-   * @throws Exception
-   */
-  protected void executeJob(MJob job) throws Exception {
-    executeJob(job.getName());
-  }
-}

http://git-wip-us.apache.org/repos/asf/sqoop/blob/66a86353/test/src/main/java/org/apache/sqoop/test/testcases/JettyTestCase.java
----------------------------------------------------------------------
diff --git a/test/src/main/java/org/apache/sqoop/test/testcases/JettyTestCase.java b/test/src/main/java/org/apache/sqoop/test/testcases/JettyTestCase.java
deleted file mode 100644
index d4ca396..0000000
--- a/test/src/main/java/org/apache/sqoop/test/testcases/JettyTestCase.java
+++ /dev/null
@@ -1,274 +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.test.testcases;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.log4j.Logger;
-import org.apache.sqoop.client.SqoopClient;
-import org.apache.sqoop.test.asserts.HdfsAsserts;
-import org.apache.sqoop.test.hadoop.HadoopMiniClusterRunner;
-import org.apache.sqoop.test.hadoop.HadoopRunner;
-import org.apache.sqoop.test.hadoop.HadoopRunnerFactory;
-import org.apache.sqoop.test.kdc.KdcRunner;
-import org.apache.sqoop.test.kdc.KdcRunnerFactory;
-import org.apache.sqoop.test.kdc.MiniKdcRunner;
-import org.apache.sqoop.test.minicluster.JettySqoopMiniCluster;
-import org.apache.sqoop.test.minicluster.SqoopMiniCluster;
-import org.apache.sqoop.test.minicluster.SqoopMiniClusterFactory;
-import org.apache.sqoop.test.utils.HdfsUtils;
-import org.testng.ITest;
-import org.testng.ITestContext;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.BeforeSuite;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-
-/**
- * Basic test case that will bootstrap Sqoop server running in embedded Jetty
- * process.
- */
-@edu.umd.cs.findbugs.annotations.SuppressWarnings({"MS_PKGPROTECT", "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"})
-abstract public class JettyTestCase implements ITest {
-  private static final Logger LOG = Logger.getLogger(JettyTestCase.class);
-
-  public String methodName;
-
-  /**
-   * Temporary base path that will be used for tests.
-   *
-   * By default we will take a look for sqoop.integration.tmpdir property that is
-   * filled up by maven. If the test is not started from maven (IDE) we will
-   * pick up configured java.io.tmpdir value. The last results is /tmp/ directory
-   * in case that no property is set.
-   */
-  protected static final String TMP_PATH_BASE =
-    System.getProperty("sqoop.integration.tmpdir", System.getProperty("java.io.tmpdir", "/tmp"))
+ "/sqoop-cargo-tests";
-
-  /**
-   * Temporary directory that will be used by the test.
-   *
-   * We will take TMP_PATH_BASE and append the test suite. For example:
-   *
-   * TMP_PATH_BASE/TestConnectorsSuite
-   */
-  private static String tmpPath;
-
-  /**
-   * Hadoop cluster
-   */
-  protected static HadoopRunner hadoopCluster;
-
-  /**
-   * Hadoop client
-   */
-  protected static FileSystem hdfsClient;
-
-  /**
-   * Jetty based Sqoop mini cluster
-   */
-  private static SqoopMiniCluster cluster;
-
-  /**
-   * Sqoop client API.
-   */
-  private static SqoopClient client;
-
-  /**
-   * Kdc
-   */
-  private static KdcRunner kdc;
-
-  /**
-   * Use the method name as the test name
-   */
-  public String getTestName() {
-    return methodName;
-  }
-
-  @BeforeMethod(alwaysRun = true)
-  public void setupMehodNameAndOutputPath(Method method) throws Exception {
-    methodName = method.getName();
-    hdfsClient.delete(new Path(getMapreduceDirectory()), true);
-  }
-
-  @BeforeSuite(alwaysRun = true)
-  public void setupSuite(ITestContext context) throws Exception {
-    tmpPath = HdfsUtils.joinPathFragments(TMP_PATH_BASE, context.getSuite().getName());
-
-    LOG.debug("Temporary Directory: " + getTemporaryPath());
-    FileUtils.deleteDirectory(new File(getTemporaryPath()));
-
-    startKdc();
-    startHadoop();
-    startSqoop();
-  }
-
-  @AfterSuite(alwaysRun = true)
-  public void tearDownSuite() throws Exception {
-    stopSqoop();
-    stopHadoop();
-    stopKdc();
-  }
-
-  protected void startKdc() throws Exception {
-    kdc = KdcRunnerFactory.getKdc(System.getProperties(), MiniKdcRunner.class);
-    kdc.setTemporaryPath(getTemporaryPath());
-    kdc.start();
-  }
-
-  protected void stopKdc() throws Exception {
-    kdc.stop();
-  }
-
-  protected void startHadoop() throws Exception {
-    // Start Hadoop Clusters
-    hadoopCluster = HadoopRunnerFactory.getHadoopCluster(System.getProperties(), HadoopMiniClusterRunner.class);
-    hadoopCluster.setTemporaryPath(getTemporaryPath());
-    hadoopCluster.setConfiguration(hadoopCluster.prepareConfiguration(new JobConf()));
-    hadoopCluster.start();
-
-    // Initialize Hdfs Client
-    hdfsClient = FileSystem.get(hadoopCluster.getConfiguration());
-    LOG.debug("HDFS Client: " + hdfsClient);
-  }
-
-  protected void startSqoop() throws Exception {
-    // Start server
-    cluster = createSqoopMiniCluster();
-    cluster.start();
-
-    // Initialize Sqoop Client API
-    setClient(new SqoopClient(getServerUrl()));
-  }
-
-  protected void stopSqoop() throws Exception {
-    if (cluster != null) {
-      cluster.stop();
-    }
-  }
-
-  protected void stopHadoop() throws Exception {
-    hadoopCluster.stop();
-  }
-
-  /**
-   * Create Sqoop MiniCluster instance that should be used for this test.
-   *
-   * @return New instance of test mini cluster
-   */
-  public SqoopMiniCluster createSqoopMiniCluster() throws Exception {
-    return SqoopMiniClusterFactory.getSqoopMiniCluster(System.getProperties(), JettySqoopMiniCluster.class,
-      getSqoopMiniClusterTemporaryPath(), hadoopCluster.getConfiguration(), kdc);
-  }
-
-  /**
-   * Return SqoopClient configured to talk to testing server.
-   *
-   * @return
-   */
-  public static SqoopClient getClient() {
-    return client;
-  }
-
-  public static void setClient(SqoopClient sqoopClient) throws Exception {
-    client = sqoopClient;
-    kdc.authenticateWithSqoopServer(sqoopClient);
-  }
-
-  public static SqoopMiniCluster getCluster() {
-    return cluster;
-  }
-
-  public static void setCluster(JettySqoopMiniCluster sqoopMiniClusterluster) {
-    cluster = sqoopMiniClusterluster;
-  }
-
-  public static String getTemporaryPath() {
-    return tmpPath;
-  }
-
-  public static String getSqoopMiniClusterTemporaryPath() {
-    return HdfsUtils.joinPathFragments(getTemporaryPath(), "sqoop-mini-cluster");
-  }
-
-  /**
-   * Return testing server URL
-   *
-   * @return
-   */
-  public static String getServerUrl() {
-    return cluster.getServerUrl();
-  }
-
-  /**
-   * Return mapreduce base directory.
-   *
-   * @return
-   */
-  public String getMapreduceDirectory() {
-    return HdfsUtils.joinPathFragments(hadoopCluster.getTestDirectory(), getClass().getName(),
getTestName());
-  }
-
-  /**
-   * Assert that execution has generated following lines.
-   *
-   * As the lines can be spread between multiple files the ordering do not make
-   * a difference.
-   *
-   * @param lines
-   * @throws IOException
-   */
-  protected void assertTo(String... lines) throws IOException {
-    // TODO(VB): fix this to be not directly dependent on hdfs/MR
-    HdfsAsserts.assertMapreduceOutput(hdfsClient, getMapreduceDirectory(), lines);
-  }
-
-  /**
-   * Verify number of TO files.
-   *
-   * @param expectedFiles Expected number of files
-   */
-  protected void assertToFiles(int expectedFiles) throws IOException {
-    // TODO(VB): fix this to be not directly dependent on hdfs/MR
-    HdfsAsserts.assertMapreduceOutputFiles(hdfsClient, getMapreduceDirectory(), expectedFiles);
-  }
-
-  /**
-   * Create FROM file with specified content.
-   *
-   * @param filename Input file name
-   * @param lines Individual lines that should be written into the file
-   * @throws IOException
-   */
-  protected void createFromFile(String filename, String...lines) throws IOException {
-    createFromFile(hdfsClient, filename, lines);
-  }
-
-  /**
-   * Create file on given HDFS instance with given lines
-   */
-  protected void createFromFile(FileSystem hdfsClient, String filename, String...lines) throws
IOException {
-    HdfsUtils.createFile(hdfsClient, HdfsUtils.joinPathFragments(getMapreduceDirectory(),
filename), lines);
-  }
-}

http://git-wip-us.apache.org/repos/asf/sqoop/blob/66a86353/test/src/test/java/org/apache/sqoop/integration/connectorloading/BlacklistedConnectorTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/connectorloading/BlacklistedConnectorTest.java
b/test/src/test/java/org/apache/sqoop/integration/connectorloading/BlacklistedConnectorTest.java
index 66c20a1..1c7a483 100644
--- a/test/src/test/java/org/apache/sqoop/integration/connectorloading/BlacklistedConnectorTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/connectorloading/BlacklistedConnectorTest.java
@@ -18,20 +18,26 @@
 package org.apache.sqoop.integration.connectorloading;
 
 import org.apache.hadoop.conf.Configuration;
-import org.apache.sqoop.client.SqoopClient;
 import org.apache.sqoop.common.SqoopException;
 import org.apache.sqoop.core.ConfigurationConstants;
+import org.apache.sqoop.test.infrastructure.Infrastructure;
+import org.apache.sqoop.test.infrastructure.SqoopTestCase;
+import org.apache.sqoop.test.infrastructure.providers.KdcInfrastructureProvider;
 import org.apache.sqoop.test.minicluster.JettySqoopMiniCluster;
-import org.apache.sqoop.test.testcases.ConnectorTestCase;
+import org.apache.sqoop.test.minicluster.SqoopMiniCluster;
 import org.apache.sqoop.test.utils.HdfsUtils;
 import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import java.util.HashMap;
 import java.util.Map;
 
 @Test(groups = "no-real-cluster")
-public class BlacklistedConnectorTest extends ConnectorTestCase {
+@Infrastructure(dependencies = {KdcInfrastructureProvider.class})
+public class BlacklistedConnectorTest extends SqoopTestCase {
+  private SqoopMiniCluster sqoopMiniCluster;
+
   public static class DerbySqoopMiniCluster extends JettySqoopMiniCluster {
     public DerbySqoopMiniCluster(String temporaryPath, Configuration configuration) throws
Exception {
       super(temporaryPath, configuration);
@@ -46,33 +52,30 @@ public class BlacklistedConnectorTest extends ConnectorTestCase {
     }
   }
 
+  @BeforeMethod(dependsOnMethods = { "init" })
   public void startSqoopMiniCluster() throws Exception {
     // And use them for new Derby repo instance
-    setCluster(new DerbySqoopMiniCluster(HdfsUtils.joinPathFragments(super
-      .getSqoopMiniClusterTemporaryPath(), getTestName()), hadoopCluster.getConfiguration()));
+    sqoopMiniCluster = new DerbySqoopMiniCluster(HdfsUtils.joinPathFragments(super
+        .getTemporaryPath(), getTestName()), getHadoopConf());
+    KdcInfrastructureProvider kdcProvider = getInfrastructureProvider(KdcInfrastructureProvider.class);
+    if (kdcProvider != null) {
+      sqoopMiniCluster.setKdc(kdcProvider.getInstance());
+    }
 
     // Start server
-    getCluster().start();
+    sqoopMiniCluster.start();
 
     // Initialize Sqoop Client API
-    setClient(new SqoopClient(getServerUrl()));
+    initSqoopClient(sqoopMiniCluster.getServerUrl());
   }
 
   @Test(expectedExceptions = {SqoopException.class})
   public void testCreateLinkWithNonexistantConnector() throws Exception {
-    startSqoopMiniCluster();
     getClient().createLink("generic-jdbc-connector");
   }
 
   @AfterMethod
   public void stopCluster() throws Exception {
-    if (getCluster() != null) {
-      getCluster().stop();
-    }
-  }
-
-  @Override
-  public void startSqoop() throws Exception {
-    // Do nothing so that Sqoop isn't started before Suite.
+    sqoopMiniCluster.stop();
   }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/66a86353/test/src/test/java/org/apache/sqoop/integration/connectorloading/ClasspathTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/connectorloading/ClasspathTest.java
b/test/src/test/java/org/apache/sqoop/integration/connectorloading/ClasspathTest.java
index 4aed991..5e49064 100644
--- a/test/src/test/java/org/apache/sqoop/integration/connectorloading/ClasspathTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/connectorloading/ClasspathTest.java
@@ -19,13 +19,16 @@
 package org.apache.sqoop.integration.connectorloading;
 
 import org.apache.hadoop.conf.Configuration;
-import org.apache.sqoop.client.SqoopClient;
 import org.apache.sqoop.core.ConfigurationConstants;
 import org.apache.sqoop.model.MDriverConfig;
 import org.apache.sqoop.model.MJob;
 import org.apache.sqoop.model.MLink;
+import org.apache.sqoop.test.infrastructure.Infrastructure;
+import org.apache.sqoop.test.infrastructure.SqoopTestCase;
+import org.apache.sqoop.test.infrastructure.providers.DatabaseInfrastructureProvider;
+import org.apache.sqoop.test.infrastructure.providers.KdcInfrastructureProvider;
 import org.apache.sqoop.test.minicluster.JettySqoopMiniCluster;
-import org.apache.sqoop.test.testcases.ConnectorTestCase;
+import org.apache.sqoop.test.minicluster.SqoopMiniCluster;
 import org.apache.sqoop.test.utils.ConnectorUtils;
 import org.apache.sqoop.test.utils.HdfsUtils;
 import org.testng.annotations.AfterMethod;
@@ -38,7 +41,8 @@ import java.util.List;
 import java.util.Map;
 
 @Test(groups = "no-real-cluster")
-public class ClasspathTest extends ConnectorTestCase {
+@Infrastructure(dependencies = {KdcInfrastructureProvider.class, DatabaseInfrastructureProvider.class})
+public class ClasspathTest extends SqoopTestCase {
 
   private static final String TEST_CONNECTOR_JAR_NAME = "test-connector.jar";
   private static final String TEST_DEPENDENCY_JAR_NAME = "test-dependency.jar";
@@ -61,6 +65,7 @@ public class ClasspathTest extends ConnectorTestCase {
   };
 
   private ClassLoader classLoader;
+  private SqoopMiniCluster sqoopMiniCluster;
 
   public static class DerbySqoopMiniCluster extends JettySqoopMiniCluster {
 
@@ -91,13 +96,18 @@ public class ClasspathTest extends ConnectorTestCase {
 
   public void startSqoopMiniCluster(String extraClasspath, String jobExtraClasspath) throws
Exception {
     // And use them for new Derby repo instance
-    setCluster(new DerbySqoopMiniCluster(HdfsUtils.joinPathFragments(super.getSqoopMiniClusterTemporaryPath(),
getTestName()), hadoopCluster.getConfiguration(), extraClasspath, jobExtraClasspath));
+    sqoopMiniCluster = new DerbySqoopMiniCluster(HdfsUtils.joinPathFragments
+        (super.getTemporaryPath(), getTestName()), getHadoopConf(), extraClasspath, jobExtraClasspath);
+    KdcInfrastructureProvider kdcProvider = getInfrastructureProvider(KdcInfrastructureProvider.class);
+    if (kdcProvider != null) {
+      sqoopMiniCluster.setKdc(kdcProvider.getInstance());
+    }
 
     // Start server
-    getCluster().start();
+    sqoopMiniCluster.start();
 
     // Initialize Sqoop Client API
-    setClient(new SqoopClient(getServerUrl()));
+    initSqoopClient(sqoopMiniCluster.getServerUrl());
   }
 
   @BeforeMethod
@@ -185,8 +195,7 @@ public class ClasspathTest extends ConnectorTestCase {
     return driverConfig;
   }
 
-  @Override
-  public void startSqoop() throws Exception {
-    // Do nothing so that Sqoop isn't started before Suite.
+  private void stopSqoop() throws Exception {
+    sqoopMiniCluster.stop();
   }
 }

http://git-wip-us.apache.org/repos/asf/sqoop/blob/66a86353/test/src/test/java/org/apache/sqoop/integration/connectorloading/ConnectorClasspathIsolationTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/sqoop/integration/connectorloading/ConnectorClasspathIsolationTest.java
b/test/src/test/java/org/apache/sqoop/integration/connectorloading/ConnectorClasspathIsolationTest.java
index 295e049..bbbf749 100644
--- a/test/src/test/java/org/apache/sqoop/integration/connectorloading/ConnectorClasspathIsolationTest.java
+++ b/test/src/test/java/org/apache/sqoop/integration/connectorloading/ConnectorClasspathIsolationTest.java
@@ -24,13 +24,15 @@ import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.sqoop.client.SqoopClient;
 import org.apache.sqoop.core.ConfigurationConstants;
 import org.apache.sqoop.model.MDriverConfig;
 import org.apache.sqoop.model.MJob;
 import org.apache.sqoop.model.MLink;
+import org.apache.sqoop.test.infrastructure.Infrastructure;
+import org.apache.sqoop.test.infrastructure.SqoopTestCase;
+import org.apache.sqoop.test.infrastructure.providers.KdcInfrastructureProvider;
 import org.apache.sqoop.test.minicluster.JettySqoopMiniCluster;
-import org.apache.sqoop.test.testcases.ConnectorTestCase;
+import org.apache.sqoop.test.minicluster.SqoopMiniCluster;
 import org.apache.sqoop.test.utils.ConnectorUtils;
 import org.apache.sqoop.test.utils.HdfsUtils;
 import org.testng.annotations.AfterMethod;
@@ -38,7 +40,8 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 @Test(groups = "no-real-cluster")
-public class ConnectorClasspathIsolationTest extends ConnectorTestCase {
+@Infrastructure(dependencies = {KdcInfrastructureProvider.class})
+public class ConnectorClasspathIsolationTest extends SqoopTestCase {
 
   private static final String TEST_FROM_CONNECTOR_JAR_NAME = "test-from-connector.jar";
   private static final String TEST_TO_CONNECTOR_JAR_NAME = "test-to-connector.jar";
@@ -82,6 +85,7 @@ public class ConnectorClasspathIsolationTest extends ConnectorTestCase {
   };
 
   private ClassLoader classLoader;
+  private SqoopMiniCluster sqoopMiniCluster;
 
   public static class DerbySqoopMiniCluster extends JettySqoopMiniCluster {
 
@@ -106,13 +110,17 @@ public class ConnectorClasspathIsolationTest extends ConnectorTestCase
{
 
   public void startSqoopMiniCluster(String extraClasspath) throws Exception {
     // And use them for new Derby repo instance
-    setCluster(new DerbySqoopMiniCluster(HdfsUtils.joinPathFragments(super.getSqoopMiniClusterTemporaryPath(),
getTestName()), hadoopCluster.getConfiguration(), extraClasspath));
+    sqoopMiniCluster = new DerbySqoopMiniCluster(HdfsUtils.joinPathFragments(super.getTemporaryPath(),
getTestName()), getHadoopConf(), extraClasspath);
+    KdcInfrastructureProvider kdcProvider = getInfrastructureProvider(KdcInfrastructureProvider.class);
+    if (kdcProvider != null) {
+      sqoopMiniCluster.setKdc(kdcProvider.getInstance());
+    }
 
     // Start server
-    getCluster().start();
+    sqoopMiniCluster.start();
 
     // Initialize Sqoop Client API
-    setClient(new SqoopClient(getServerUrl()));
+    initSqoopClient(sqoopMiniCluster.getServerUrl());
   }
 
   @BeforeMethod
@@ -175,8 +183,7 @@ public class ConnectorClasspathIsolationTest extends ConnectorTestCase
{
     return driverConfig;
   }
 
-  @Override
-  public void startSqoop() throws Exception {
-    // Do nothing so that Sqoop isn't started before Suite.
+  private void stopSqoop() throws Exception {
+    sqoopMiniCluster.stop();
   }
 }


Mime
View raw message