LENS-1239 : Fix test failures because of restarts in test cases
Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/fc3dc04a Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/fc3dc04a Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/fc3dc04a Branch: refs/heads/current-release-line Commit: fc3dc04acc1aff1154745fa5132cb975ac5fabb8 Parents: 0debd08 Author: Amareshwari Sriramadasu <[email protected]> Authored: Wed Jul 27 15:02:14 2016 +0530 Committer: Rajat Khandelwal <[email protected]> Committed: Wed Jul 27 15:02:14 2016 +0530 ---------------------------------------------------------------------- .../org/apache/lens/client/TestLensClient.java | 11 +- lens-client/src/test/resources/lens-site.xml | 207 +++++++++++++++++++ .../server/query/QueryExecutionServiceImpl.java | 9 +- .../org/apache/lens/server/LensJerseyTest.java | 13 +- .../apache/lens/server/LensServerTestUtil.java | 41 +++- .../apache/lens/server/TestServerRestart.java | 45 +++- .../lens/server/query/TestDuplicateQueries.java | 4 +- .../lens/server/query/TestQueryConstraints.java | 4 +- .../TestQueryIndependenceFromSessionClose.java | 11 +- .../server/session/TestSessionResource.java | 57 ----- 10 files changed, 319 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java ---------------------------------------------------------------------- diff --git a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java b/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java index c3f01d5..94a788a 100644 --- a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java +++ b/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java @@ -39,7 +39,6 @@ import org.apache.lens.client.exceptions.LensAPIException; import org.apache.lens.client.exceptions.LensClientIOException; import org.apache.lens.client.resultset.ResultSet; import org.apache.lens.server.LensAllApplicationJerseyTest; -import org.apache.lens.server.api.util.LensUtil; import org.testng.Assert; import org.testng.annotations.*; @@ -59,12 +58,6 @@ public class TestLensClient extends LensAllApplicationJerseyTest { return UriBuilder.fromUri("http://localhost/").port(getTestPort()).path("/lensapi").build(); } - @Override - public Map<String, String> getServerConfOverWrites() { - return LensUtil.getHashMap("lens.server.query.service.impl", - "org.apache.lens.server.MockQueryExecutionServiceImpl"); - } - @BeforeTest public void setUp() throws Exception { super.setUp(); @@ -276,10 +269,10 @@ public class TestLensClient extends LensAllApplicationJerseyTest { @Test public void testWaitForQueryToCompleteWithAndWithoutRetryOnTimeOut() throws LensAPIException { LensClientConfig config = createLensClientConfigWithServerUrl(); + config.set(ENABLE_SLEEP_FOR_GET_QUERY_OP, "true"); + config.setInt(LensClientConfig.READ_TIMEOUT_MILLIS, 3000); try (LensClient lensClient = new LensClient(config)) { - config.setInt(LensClientConfig.READ_TIMEOUT_MILLIS, 3000); assertTrue(lensClient.setDatabase(TEST_DB)); - lensClient.setConnectionParam(ENABLE_SLEEP_FOR_GET_QUERY_OP, "true"); //Test waitForQueryToComplete without retry on timeout QueryHandle handle = lensClient.executeQueryAsynch("cube select id,name from test_dim", "test3"); http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-client/src/test/resources/lens-site.xml ---------------------------------------------------------------------- diff --git a/lens-client/src/test/resources/lens-site.xml b/lens-client/src/test/resources/lens-site.xml new file mode 100644 index 0000000..7fe65c0 --- /dev/null +++ b/lens-client/src/test/resources/lens-site.xml @@ -0,0 +1,207 @@ +<?xml version="1.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. + +--> +<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> + +<configuration> + <property> + <name>lens.server.drivers</name> + <value>hive:org.apache.lens.driver.hive.HiveDriver,jdbc:org.apache.lens.driver.jdbc.JDBCDriver, + mock:org.apache.lens.server.common.FailingQueryDriver</value> <!--$LENS_CONF/drivers--> + </property> + + <property> + <name>lens.server.query.acceptors</name> + <value>org.apache.lens.server.query.BlahQueryAcceptor</value> + <description>Query Acceptors configured</description> + </property> + + <property> + <name>test.lens.site.key</name> + <value>gsvalue</value> + </property> + + <property> + <name>lens.server.enable.console.metrics</name> + <value>true</value> + <description>Enable metrics to be reported on console</description> + </property> + + <property> + <name>lens.server.persist.location</name> + <value>target/persist-dir</value> + </property> + + <property> + <name>lens.query.result.parent.dir</name> + <value>target/lens-results</value> + </property> + + <property> + <name>hive.server2.authentication</name> + <value>CUSTOM</value> + </property> + + <property> + <name>hive.server2.custom.authentication.class</name> + <value>org.apache.lens.server.auth.FooBarAuthenticationProvider</value> + </property> + + + <property> + <name>lens.query.enable.mail.notify</name> + <value>false</value> + <description>When a query ends, whether to notify the submitter by mail or not.</description> + </property> + + <property> + <name>lens.server.mail.from.address</name> + <value>[email protected]</value> + <description>The from field in the notifier mail to the submitter.</description> + </property> + + <property> + <name>lens.server.mail.host</name> + <value>localhost</value> + <description>SMTP Host for sending mail</description> + </property> + + <property> + <name>lens.server.mail.port</name> + <value>25000</value> + <description>SMTP Port</description> + </property> + + <property> + <name>lens.server.ws.resourcenames</name> + <value>session,metastore,query,quota,scheduler,index,log,test,savedquery</value> + <description>These JAX-RS resources would be started in the specified order when lens-server starts up</description> + </property> + + <property> + <name>lens.server.test.ws.resource.impl</name> + <value>org.apache.lens.server.TestResource</value> + <description>Implementation class for Test Resource</description> + </property> + + <property> + <name>lens.server.savedquery.ws.resource.impl</name> + <value>org.apache.lens.server.query.save.SavedQueryResource</value> + <description>Implementation class for saved query Resource</description> + </property> + + <property> + <name>lens.server.user.resolver.type</name> + <value>FIXED</value> + </property> + <property> + <name>lens.server.user.resolver.fixed.value</name> + <value>testlensuser</value> + </property> + <property> + <name>lens.server.domain</name> + <value>localhost</value> + </property> + + <property> + <!-- run every second --> + <name>lens.server.querypurger.sleep.interval</name> + <value>100</value> + </property> + + <property> + <name>lens.server.db.jdbc.url</name> + <value>jdbc:hsqldb:target/queries.db</value> + </property> + + <property> + <name>lens.server.savedquery.jdbc.dialectclass</name> + <value>org.apache.lens.server.query.save.SavedQueryDao$HSQLDialect</value> + <description>Dialect of the target DB, Default is HSQL</description> + </property> + + <property> + <name>lens.server.servicenames</name> + <value>session,query,metastore,scheduler,quota,mocknonlens,savedquery</value> + </property> + + <property> + <name>lens.server.mocknonlens.service.impl</name> + <value>org.apache.lens.server.MockNonLensService</value> + <description>Implementation class for session service</description> + </property> + + <property> + <name>lens.server.query.service.impl</name> + <value>org.apache.lens.server.MockQueryExecutionServiceImpl</value> + <description>Mock Implementation class for query service</description> + </property> + + <property> + <name>lens.server.savedquery.service.impl</name> + <value>org.apache.lens.server.query.save.SavedQueryServiceImpl</value> + <description>Implementation class for saved query service</description> + </property> + + <property> + <name>lens.server.ws.filternames</name> + <value>requestlogger,consistentState,serverMode,logging</value> + <description>These JAX-RS filters would be started in the specified order when lens-server starts up</description> + </property> + + <property> + <name>lens.server.logging.ws.filter.impl</name> + <value>org.glassfish.jersey.filter.LoggingFilter</value> + <description>Logging filter</description> + </property> + + <property> + <name>lens.server.database.resource.dir</name> + <value>target/resources</value> + </property> + + <property> + <name>lens.server.statistics.warehouse.dir</name> + <value>file://${project.build.directory}/lens/statistics/warehouse</value> + <description>Default top level location where stats are moved by the log statistics store.</description> + </property> + + <property> + <name>lens.server.estimate.timeout.millis</name> + <value>120000</value> + </property> + <property> + <name>lens.server.max.sessions.per.user</name> + <value>20</value> + <description>Number of sessions can be allowed for each user.</description> + </property> + <property> + <name>lens.server.status.update.exponential.wait.millis</name> + <value>1000</value> + <description>Number of millis that would grow exponentially for next update, incase of transient failures. + </description> + </property> + <property> + <name>lens.server.duplicate.query.allowed</name> + <value>true</value> + </property> + +</configuration> http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java index 4df2b9b..fddd3e4 100644 --- a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java +++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java @@ -2839,8 +2839,13 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE // query service will do the selection from existing drivers and update if (driverAvailable) { String selectedDriverQualifiedName = in.readUTF(); - ctx.getDriverContext().setSelectedDriver(drivers.get(selectedDriverQualifiedName)); - ctx.setDriverQuery(ctx.getSelectedDriver(), ctx.getSelectedDriverQuery()); + if (drivers.get(selectedDriverQualifiedName) != null) { + ctx.getDriverContext().setSelectedDriver(drivers.get(selectedDriverQualifiedName)); + ctx.setDriverQuery(ctx.getSelectedDriver(), ctx.getSelectedDriverQuery()); + } else { + log.info("Ignoring {} as the driver is not loaded", ctx.getQueryHandle()); + continue; + } } allQueries.put(ctx.getQueryHandle(), ctx); } http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java b/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java index a55552e..7cccf30 100644 --- a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java +++ b/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java @@ -128,6 +128,10 @@ public abstract class LensJerseyTest extends JerseyTest { config.register(LensJAXBContextResolver.class); } + /** + * This should used only on restarts and not during initial setup. + * @return Modified Server conf with over-writes + */ public final HiveConf getServerConf() { HiveConf serverConf = LensServerConf.getHiveConf(); Map<String, String> overWrites = getServerConfOverWrites(); @@ -164,7 +168,7 @@ public abstract class LensJerseyTest extends JerseyTest { createTestDatabaseResources(new String[]{DB_WITH_JARS, DB_WITH_JARS_2}, hiveConf); - LensServices.get().init(getServerConf()); + LensServices.get().init(LensServerConf.getHiveConf()); LensServices.get().start(); // Check if mock service is started @@ -226,8 +230,11 @@ public abstract class LensJerseyTest extends JerseyTest { * Restart lens server. */ protected void restartLensServer() { - HiveConf h = getServerConf(); - restartLensServer(h, false); + restartLensServer(LensServerConf.getHiveConf()); + } + + protected void restartLensServer(HiveConf conf) { + restartLensServer(conf, false); } /** http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java index b651b79..67cee57 100644 --- a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java +++ b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java @@ -30,6 +30,7 @@ import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType; +import org.apache.lens.api.APIResult; import org.apache.lens.api.LensConf; import org.apache.lens.api.LensSessionHandle; import org.apache.lens.api.query.LensQuery; @@ -136,7 +137,8 @@ public final class LensServerTestUtil { mt)); final QueryHandle handle = target.request(mt).post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), - new GenericType<LensAPIResult<QueryHandle>>() {}).getData(); + new GenericType<LensAPIResult<QueryHandle>>() { + }).getData(); // wait till the query finishes LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request(mt) @@ -302,4 +304,41 @@ public final class LensServerTestUtil { } } } + + + public static LensSessionHandle openSession(WebTarget target, final String userName, final String passwd, final + LensConf + conf, MediaType + mt) { + + final WebTarget sessionTarget = target.path("session"); + final FormDataMultiPart mp = new FormDataMultiPart(); + + mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("username").build(), userName)); + mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("password").build(), passwd)); + mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(), + conf, mt)); + + return sessionTarget.request(mt).post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), + LensSessionHandle.class); + + } + + public static void addResource(WebTarget target, final LensSessionHandle lensSessionHandle, final String + resourceType, final String resourcePath, MediaType mt) { + final WebTarget resourceTarget = target.path("session/resources"); + final FormDataMultiPart mp = new FormDataMultiPart(); + mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionHandle, + mt)); + mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("type").build(), resourceType)); + mp.bodyPart( + new FormDataBodyPart(FormDataContentDisposition.name("path").build(), resourcePath)); + APIResult result = resourceTarget.path("add").request(mt) + .put(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); + + if (!result.getStatus().equals(APIResult.Status.SUCCEEDED)) { + throw new RuntimeException("Could not add resource:" + result); + } + } + } http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java b/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java index bb57614..20aa8cb 100644 --- a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java +++ b/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java @@ -44,12 +44,15 @@ import org.apache.lens.server.api.query.QueryContext; import org.apache.lens.server.api.query.QueryExecutionService; import org.apache.lens.server.api.session.SessionService; import org.apache.lens.server.api.util.LensUtil; +import org.apache.lens.server.common.LenServerTestException; +import org.apache.lens.server.common.LensServerTestFileUtils; import org.apache.lens.server.common.TestResourceFile; import org.apache.lens.server.query.QueryExecutionServiceImpl; import org.apache.lens.server.query.TestQueryService; import org.apache.lens.server.session.HiveSessionService; import org.apache.lens.server.session.LensSessionImpl; +import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hive.service.Service; @@ -57,9 +60,7 @@ import org.glassfish.jersey.media.multipart.FormDataBodyPart; import org.glassfish.jersey.media.multipart.FormDataContentDisposition; import org.glassfish.jersey.media.multipart.FormDataMultiPart; import org.testng.Assert; -import org.testng.annotations.AfterTest; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; +import org.testng.annotations.*; import com.google.common.base.Optional; import lombok.extern.slf4j.Slf4j; @@ -99,6 +100,17 @@ public class TestServerRestart extends LensAllApplicationJerseyTest { super.tearDown(); } + @BeforeClass + public void restartBeforeClass() throws Exception { + // restart server with test configuration for tests + restartLensServer(getServerConf()); + } + + @AfterClass + public void restart() throws Exception { + // restart server with normal configuration once the tests are done. + restartLensServer(); + } /** The file created. */ private boolean fileCreated; @@ -396,7 +408,7 @@ public class TestServerRestart extends LensAllApplicationJerseyTest { assertEquals(result.getStatus(), Status.SUCCEEDED); // restart server - restartLensServer(); + restartLensServer(getServerConf()); // Check resources added again verifyParamOnRestart(restartTestSession); @@ -437,4 +449,29 @@ public class TestServerRestart extends LensAllApplicationJerseyTest { assertEquals(sessionParams.getElements().size(), 1); Assert.assertTrue(sessionParams.getElements().contains("lens.session.testRestartKey=myvalue")); } + + @Test(dataProvider = "mediaTypeData") + public void testServerMustRestartOnManualDeletionOfAddedResources(MediaType mt) + throws IOException, LensException, LenServerTestException { + + /* Begin: Setup */ + + /* Add a resource jar to current working directory */ + File jarFile = new File(TestResourceFile.TEST_RESTART_ON_RESOURCE_MOVE_JAR.getValue()); + FileUtils.touch(jarFile); + + /* Add the created resource jar to lens server */ + LensSessionHandle sessionHandle = LensServerTestUtil.openSession(target(), "foo", "bar", new LensConf(), mt); + LensServerTestUtil.addResource(target(), sessionHandle, "jar", jarFile.getPath(), mt); + + /* Delete resource jar from current working directory */ + LensServerTestFileUtils.deleteFile(jarFile); + + /* End: Setup */ + + /* Verification Steps: server should restart without exceptions */ + restartLensServer(); + HiveSessionService service = LensServices.get().getService(SessionService.NAME); + service.closeSession(sessionHandle); + } } http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java b/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java index 3e9ddb8..c72c0fb 100644 --- a/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java +++ b/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java @@ -106,6 +106,7 @@ public class TestDuplicateQueries extends LensJerseyTest { try { MediaType mt = defaultMT; log.info("Restarting lens server!"); + //restart with overridden conf restartLensServer(getServerConfLocal(), false); log.info("Restarted lens server!"); @@ -191,7 +192,8 @@ public class TestDuplicateQueries extends LensJerseyTest { } } log.info("Restarting lens server!"); - restartLensServer(super.getServerConf(), false); + // restart without overwrites + restartLensServer(); log.info("Restarted lens server!"); } } http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java index 8be1f89..e649a75 100644 --- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java +++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java @@ -99,7 +99,8 @@ public class TestQueryConstraints extends LensJerseyTest { @BeforeClass public void setupTest() throws Exception { - restartLensServer(); + // restart with overwritten conf + restartLensServer(getServerConf()); queryService = LensServices.get().getService(QueryExecutionService.NAME); metricsSvc = LensServices.get().getService(MetricsService.NAME); Map<String, String> sessionConf = new HashMap<>(); @@ -114,6 +115,7 @@ public class TestQueryConstraints extends LensJerseyTest { public void afterTest() throws Exception { dropTable(TEST_TABLE); queryService.closeSession(lensSessionId); + // bring it back without overwritten conf restartLensServer(); } http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java index d723596..202e4be 100644 --- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java +++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java @@ -125,12 +125,13 @@ public class TestQueryIndependenceFromSessionClose extends LensJerseyTest { assertFalse(((HiveDriver) driver).hasLensSession(lensSessionId)); } } + // bring it back with normal configuration + restartLensServer(); } - @Override - protected void restartLensServer() { + private void customRestartLensServer() { queryService = null; - super.restartLensServer(); + super.restartLensServer(getServerConf(), false); queryService = LensServices.get().getService(QueryExecutionService.NAME); } @@ -208,7 +209,7 @@ public class TestQueryIndependenceFromSessionClose extends LensJerseyTest { // Just 'marked' for closing assertTrue(queryService.getSession(sesssionHandle).getLensSessionPersistInfo().isMarkedForClose()); if (restartBeforeFinish) { - restartLensServer(); + customRestartLensServer(); } assertTrue(queryService.getSession(sesssionHandle).getLensSessionPersistInfo().isMarkedForClose()); assertTrue(queryService.getSession(sesssionHandle).isActive()); @@ -217,7 +218,7 @@ public class TestQueryIndependenceFromSessionClose extends LensJerseyTest { // Session should not be active assertFalse(queryService.getSession(sesssionHandle).isActive()); if (restartAfterFinish) { - restartLensServer(); + customRestartLensServer(); } assertTrue(queryService.getSession(sesssionHandle).getLensSessionPersistInfo().isMarkedForClose()); // Now, session is not active anymore http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java index 33791ea..9ebe17c 100644 --- a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java +++ b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java @@ -381,63 +381,6 @@ public class TestSessionResource extends LensJerseyTest { } @Test(dataProvider = "mediaTypeData") - public void testServerMustRestartOnManualDeletionOfAddedResources(MediaType mt) - throws IOException, LensException, LenServerTestException { - - /* Begin: Setup */ - - /* Add a resource jar to current working directory */ - File jarFile = new File(TestResourceFile.TEST_RESTART_ON_RESOURCE_MOVE_JAR.getValue()); - FileUtils.touch(jarFile); - - /* Add the created resource jar to lens server */ - LensSessionHandle sessionHandle = openSession("foo", "bar", new LensConf(), mt); - addResource(sessionHandle, "jar", jarFile.getPath(), mt); - - /* Delete resource jar from current working directory */ - LensServerTestFileUtils.deleteFile(jarFile); - - /* End: Setup */ - - /* Verification Steps: server should restart without exceptions */ - restartLensServer(); - HiveSessionService service = LensServices.get().getService(SessionService.NAME); - service.closeSession(sessionHandle); - } - - private LensSessionHandle openSession(final String userName, final String passwd, final LensConf conf, MediaType mt) { - - final WebTarget target = target().path("session"); - final FormDataMultiPart mp = new FormDataMultiPart(); - - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("username").build(), userName)); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("password").build(), passwd)); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(), - conf, mt)); - - return target.request(mt).post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), - LensSessionHandle.class); - - } - - private void addResource(final LensSessionHandle lensSessionHandle, final String resourceType, - final String resourcePath, MediaType mt) { - final WebTarget target = target().path("session/resources"); - final FormDataMultiPart mp = new FormDataMultiPart(); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionHandle, - mt)); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("type").build(), resourceType)); - mp.bodyPart( - new FormDataBodyPart(FormDataContentDisposition.name("path").build(), resourcePath)); - APIResult result = target.path("add").request(mt) - .put(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); - - if (!result.getStatus().equals(Status.SUCCEEDED)) { - throw new RuntimeException("Could not add resource:" + result); - } - } - - @Test(dataProvider = "mediaTypeData") public void testOpenSessionWithDatabase(MediaType mt) throws Exception { // TEST1 - Check if call with database parameter sets current database // Create the test DB
