Repository: lens
Updated Branches:
  refs/heads/master a5091fe0c -> d559ef2e5


http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/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 3055ce5..bde7b9b 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
@@ -53,11 +53,10 @@ import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.ql.metadata.Hive;
 
-import org.glassfish.jersey.client.ClientConfig;
 import org.glassfish.jersey.media.multipart.FormDataBodyPart;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataMultiPart;
-import org.glassfish.jersey.media.multipart.MultiPartFeature;
+import org.glassfish.jersey.test.TestProperties;
 import org.testng.Assert;
 import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeTest;
@@ -101,39 +100,31 @@ public class TestSessionResource extends LensJerseyTest {
    */
   @Override
   protected Application configure() {
+    enable(TestProperties.LOG_TRAFFIC);
+    enable(TestProperties.DUMP_ENTITY);
     return new SessionApp();
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see 
org.glassfish.jersey.test.JerseyTest#configureClient(org.glassfish.jersey.client.ClientConfig)
-   */
-  @Override
-  protected void configureClient(ClientConfig config) {
-    config.register(MultiPartFeature.class);
-  }
-
   /**
    * Test session.
    */
-  @Test
-  public void testSession() {
+  @Test(dataProvider = "mediaTypeData")
+  public void testSession(MediaType mt) {
     final WebTarget target = target().path("session");
     final FormDataMultiPart mp = new FormDataMultiPart();
 
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), "foo"));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), "bar"));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-      new LensConf(), MediaType.APPLICATION_XML_TYPE));
+      new LensConf(), mt));
 
-    final LensSessionHandle handle = target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+    final LensSessionHandle handle = target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
       LensSessionHandle.class);
     Assert.assertNotNull(handle);
 
     // get all session params
     final WebTarget paramtarget = target().path("session/params");
-    StringList sessionParams = paramtarget.queryParam("sessionid", 
handle).request().get(StringList.class);
+    StringList sessionParams = paramtarget.queryParam("sessionid", 
handle).request(mt).get(StringList.class);
     System.out.println("Session params:" + sessionParams.getElements());
     Assert.assertTrue(sessionParams.getElements().size() > 1);
     
Assert.assertTrue(sessionParams.getElements().contains("lens.session.cluster.user=testlensuser"));
@@ -142,14 +133,14 @@ public class TestSessionResource extends LensJerseyTest {
     // set hive variable
     FormDataMultiPart setpart = new FormDataMultiPart();
     setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), handle,
-      MediaType.APPLICATION_XML_TYPE));
+      mt));
     setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("key").build(), 
"hivevar:myvar"));
     setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("value").build(), "10"));
-    APIResult result = paramtarget.request().put(Entity.entity(setpart, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+    APIResult result = paramtarget.request(mt).put(Entity.entity(setpart, 
MediaType.MULTIPART_FORM_DATA_TYPE),
       APIResult.class);
     Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
     // get myvar session params
-    sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "hivevar:myvar").request()
+    sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "hivevar:myvar").request(mt)
       .get(StringList.class);
     System.out.println("Session params:" + sessionParams.getElements());
     Assert.assertEquals(sessionParams.getElements().size(), 1);
@@ -158,39 +149,39 @@ public class TestSessionResource extends LensJerseyTest {
     // set hive conf
     setpart = new FormDataMultiPart();
     setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), handle,
-      MediaType.APPLICATION_XML_TYPE));
+      mt));
     setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("key").build(), 
"hiveconf:my.conf"));
     setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("value").build(), "myvalue"));
-    result = paramtarget.request().put(Entity.entity(setpart, 
MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class);
+    result = paramtarget.request(mt).put(Entity.entity(setpart, 
MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class);
     Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
     // get the my.conf session param
-    sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "my.conf").request()
+    sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "my.conf").request(mt)
       .get(StringList.class);
     System.out.println("Session params:" + sessionParams.getElements());
     Assert.assertEquals(sessionParams.getElements().size(), 1);
     Assert.assertTrue(sessionParams.getElements().contains("my.conf=myvalue"));
     // get server params on session
     try {
-      paramtarget.queryParam("sessionid", handle).queryParam("key", 
"lens.server.persist.location").request()
+      paramtarget.queryParam("sessionid", handle).queryParam("key", 
"lens.server.persist.location").request(mt)
         .get(StringList.class);
       Assert.fail("Expected 404");
     } catch (Exception ne) {
       Assert.assertTrue(ne instanceof NotFoundException);
     }
     // get all params verbose
-    sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("verbose", true).request()
+    sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("verbose", true).request(mt)
       .get(StringList.class);
     System.out.println("Session params:" + sessionParams.getElements());
     Assert.assertTrue(sessionParams.getElements().size() > 1);
 
     // Create another session
-    final LensSessionHandle handle2 = target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+    final LensSessionHandle handle2 = 
target.request(mt).post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
       LensSessionHandle.class);
     Assert.assertNotNull(handle);
 
     // get myvar session params on handle2
     try {
-      paramtarget.queryParam("sessionid", handle2).queryParam("key", 
"hivevar:myvar").request()
+      paramtarget.queryParam("sessionid", handle2).queryParam("key", 
"hivevar:myvar").request(mt)
         .get(StringList.class);
       Assert.fail("Expected 404");
     } catch (Exception ne) {
@@ -198,7 +189,7 @@ public class TestSessionResource extends LensJerseyTest {
     }
     // get the my.conf session param on handle2
     try {
-      sessionParams = paramtarget.queryParam("sessionid", 
handle2).queryParam("key", "my.conf").request()
+      sessionParams = paramtarget.queryParam("sessionid", 
handle2).queryParam("key", "my.conf").request(mt)
         .get(StringList.class);
       System.out.println("sessionParams:" + sessionParams.getElements());
       Assert.fail("Expected 404");
@@ -207,36 +198,36 @@ public class TestSessionResource extends LensJerseyTest {
     }
 
     // close session
-    result = target.queryParam("sessionid", 
handle).request().delete(APIResult.class);
+    result = target.queryParam("sessionid", 
handle).request(mt).delete(APIResult.class);
     Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
 
     // now getting session params should return session is expired
     try {
-      sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "hivevar:myvar").request()
+      sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "hivevar:myvar").request(mt)
             .get(StringList.class);
       Assert.fail("Expected 410");
     } catch(ClientErrorException ce) {
       Assert.assertEquals(ce.getResponse().getStatus(), 410);
     }
 
-    result = target.queryParam("sessionid", 
handle2).request().delete(APIResult.class);
+    result = target.queryParam("sessionid", 
handle2).request(mt).delete(APIResult.class);
     Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
   }
 
   /**
    * Test resource.
    */
-  @Test
-  public void testResource() {
+  @Test(dataProvider = "mediaTypeData")
+  public void testResource(MediaType mt) {
     final WebTarget target = target().path("session");
     final FormDataMultiPart mp = new FormDataMultiPart();
 
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), "foo"));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), "bar"));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-      new LensConf(), MediaType.APPLICATION_XML_TYPE));
+      new LensConf(), mt));
 
-    final LensSessionHandle handle = target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+    final LensSessionHandle handle = target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
       LensSessionHandle.class);
     Assert.assertNotNull(handle);
 
@@ -245,37 +236,38 @@ public class TestSessionResource extends LensJerseyTest {
     final WebTarget resourcetarget = target().path("session/resources");
     final FormDataMultiPart mp1 = new FormDataMultiPart();
     mp1.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), handle,
-      MediaType.APPLICATION_XML_TYPE));
+      mt));
     mp1.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("type").build(), "file"));
     mp1.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("path").build(),
         lensSiteFilePath));
-    APIResult result = resourcetarget.path("add").request()
+    APIResult result = resourcetarget.path("add").request(mt)
       .put(Entity.entity(mp1, MediaType.MULTIPART_FORM_DATA_TYPE), 
APIResult.class);
     Assert.assertEquals(result.getStatus(), Status.SUCCEEDED);
 
     // list all resources
-    StringList listResources = 
resourcetarget.path("list").queryParam("sessionid", handle).request()
+    StringList listResources = 
resourcetarget.path("list").queryParam("sessionid", handle).request(mt)
       .get(StringList.class);
     Assert.assertEquals(listResources.getElements().size(), 1);
 
     // delete the resource
     final FormDataMultiPart mp2 = new FormDataMultiPart();
     mp2.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), handle,
-      MediaType.APPLICATION_XML_TYPE));
+      mt));
     mp2.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("type").build(), "file"));
     mp2.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("path").build(),
         lensSiteFilePath));
-    result = resourcetarget.path("delete").request()
+    result = resourcetarget.path("delete").request(mt)
       .put(Entity.entity(mp2, MediaType.MULTIPART_FORM_DATA_TYPE), 
APIResult.class);
     Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
 
     // list all resources
     StringList listResourcesAfterDeletion = 
resourcetarget.path("list").queryParam("sessionid", handle)
-      .request().get(StringList.class);
-    Assert.assertNull(listResourcesAfterDeletion.getElements());
+      .request(mt).get(StringList.class);
+    Assert.assertTrue(listResourcesAfterDeletion.getElements() == null
+      || listResourcesAfterDeletion.getElements().isEmpty());
 
     // close session
-    result = target.queryParam("sessionid", 
handle).request().delete(APIResult.class);
+    result = target.queryParam("sessionid", 
handle).request(mt).delete(APIResult.class);
     Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
   }
 
@@ -284,8 +276,8 @@ public class TestSessionResource extends LensJerseyTest {
    *
    * @throws org.apache.lens.server.api.error.LensException the lens exception
    */
-  @Test
-  public void testAuxJars() throws LensException, IOException, 
LenServerTestException {
+  @Test(dataProvider = "mediaTypeData")
+  public void testAuxJars(MediaType mt) throws LensException, IOException, 
LenServerTestException {
     final WebTarget target = target().path("session");
     final FormDataMultiPart mp = new FormDataMultiPart();
     final LensConf sessionconf = new LensConf();
@@ -299,11 +291,9 @@ public class TestSessionResource extends LensJerseyTest {
       mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), "foo"));
       mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), "bar"));
       mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-        sessionconf, MediaType.APPLICATION_XML_TYPE));
-      mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-        new LensConf(), MediaType.APPLICATION_XML_TYPE));
+        sessionconf, mt));
 
-      final LensSessionHandle handle = target.request()
+      final LensSessionHandle handle = target.request(mt)
         .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), 
LensSessionHandle.class);
       Assert.assertNotNull(handle);
 
@@ -320,13 +310,13 @@ public class TestSessionResource extends LensJerseyTest {
 
       final WebTarget resourcetarget = target().path("session/resources");
       // list all resources
-      StringList listResources = 
resourcetarget.path("list").queryParam("sessionid", handle).request()
+      StringList listResources = 
resourcetarget.path("list").queryParam("sessionid", handle).request(mt)
         .get(StringList.class);
       Assert.assertEquals(listResources.getElements().size(), 1);
       
Assert.assertTrue(listResources.getElements().get(0).contains(jarFileName));
 
       // close session
-      APIResult result = target.queryParam("sessionid", 
handle).request().delete(APIResult.class);
+      APIResult result = target.queryParam("sessionid", 
handle).request(mt).delete(APIResult.class);
       Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
     } finally {
       LensServerTestFileUtils.deleteFile(jarFile);
@@ -336,22 +326,23 @@ public class TestSessionResource extends LensJerseyTest {
   /**
    * Test wrong auth.
    */
-  @Test
-  public void testWrongAuth() {
+  @Test(dataProvider = "mediaTypeData")
+  public void testWrongAuth(MediaType mt) {
     final WebTarget target = target().path("session");
     final FormDataMultiPart mp = new FormDataMultiPart();
 
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), "a"));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), "b"));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-      new LensConf(), MediaType.APPLICATION_XML_TYPE));
+      new LensConf(), mt));
 
-    final Response handle = target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE));
+    final Response handle = target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE));
     Assert.assertEquals(handle.getStatus(), 401);
   }
 
-  @Test
-  public void testServerMustRestartOnManualDeletionOfAddedResources() throws 
IOException, LenServerTestException {
+  @Test(dataProvider = "mediaTypeData")
+  public void testServerMustRestartOnManualDeletionOfAddedResources(MediaType 
mt)
+    throws IOException, LenServerTestException {
 
     /* Begin: Setup */
 
@@ -360,8 +351,8 @@ public class TestSessionResource extends LensJerseyTest {
     FileUtils.touch(jarFile);
 
     /* Add the created resource jar to lens server */
-    LensSessionHandle sessionHandle = openSession("foo", "bar", new 
LensConf());
-    addResource(sessionHandle, "jar", jarFile.getPath());
+    LensSessionHandle sessionHandle = openSession("foo", "bar", new 
LensConf(), mt);
+    addResource(sessionHandle, "jar", jarFile.getPath(), mt);
 
     /* Delete resource jar from current working directory */
     LensServerTestFileUtils.deleteFile(jarFile);
@@ -372,7 +363,7 @@ public class TestSessionResource extends LensJerseyTest {
     restartLensServer();
   }
 
-  private LensSessionHandle openSession(final String userName, final String 
passwd, final LensConf conf) {
+  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();
@@ -380,23 +371,23 @@ public class TestSessionResource extends LensJerseyTest {
     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, MediaType.APPLICATION_XML_TYPE));
+      conf, mt));
 
-    return target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+    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) {
+    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,
-      MediaType.APPLICATION_XML_TYPE));
+      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()
+    APIResult result = target.path("add").request(mt)
       .put(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), 
APIResult.class);
 
     if (!result.getStatus().equals(Status.SUCCEEDED)) {
@@ -404,8 +395,8 @@ public class TestSessionResource extends LensJerseyTest {
     }
   }
 
-  @Test
-  public void testOpenSessionWithDatabase() throws Exception {
+  @Test(dataProvider = "mediaTypeData")
+  public void testOpenSessionWithDatabase(MediaType mt) throws Exception {
     // TEST1 - Check if call with database parameter sets current database
     // Create the test DB
     Hive hive = Hive.get(new HiveConf());
@@ -421,9 +412,9 @@ public class TestSessionResource extends LensJerseyTest {
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), "bar"));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("database").build(), 
testDbName));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-      new LensConf(), MediaType.APPLICATION_XML_TYPE));
+      new LensConf(), mt));
 
-    final LensSessionHandle handle = target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+    final LensSessionHandle handle = target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
       LensSessionHandle.class);
     Assert.assertNotNull(handle);
 
@@ -441,11 +432,11 @@ public class TestSessionResource extends LensJerseyTest {
     form2.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), "bar"));
     form2.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("database").build(), 
invalidDB));
     form2.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-      new LensConf(), MediaType.APPLICATION_XML_TYPE));
+      new LensConf(), mt));
 
     try {
-      final LensSessionHandle handle2 = 
target.request().post(Entity.entity(form2, MediaType.MULTIPART_FORM_DATA_TYPE),
-        LensSessionHandle.class);
+      final LensSessionHandle handle2 = 
target.request(mt).post(Entity.entity(form2,
+          MediaType.MULTIPART_FORM_DATA_TYPE), LensSessionHandle.class);
       Assert.fail("Expected above call to fail with not found exception");
     } catch (NotFoundException nfe) {
       // PASS
@@ -455,8 +446,8 @@ public class TestSessionResource extends LensJerseyTest {
   /**
    * Test acquire and release behaviour for closed sessions
    */
-  @Test
-  public void testAcquireReleaseClosedSession() throws Exception {
+  @Test(dataProvider = "mediaTypeData")
+  public void testAcquireReleaseClosedSession(MediaType mt) throws Exception {
     HiveSessionService sessionService = 
LensServices.get().getService(SessionService.NAME);
 
     LensSessionHandle sessionHandle = 
sessionService.openSession("foo@localhost", "bar", new HashMap<String, 
String>());
@@ -485,39 +476,39 @@ public class TestSessionResource extends LensJerseyTest {
     }
   }
 
-  private FormDataMultiPart getMultiFormData(String username, String password) 
{
+  private FormDataMultiPart getMultiFormData(String username, String password, 
MediaType mt) {
     final FormDataMultiPart mp = new FormDataMultiPart();
 
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), 
username));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), 
password));
     mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-        new LensConf(), MediaType.APPLICATION_XML_TYPE));
+        new LensConf(), mt));
     return mp;
   }
 
-  @Test
-  public void testSessionEvents() {
+  @Test(dataProvider = "mediaTypeData")
+  public void testSessionEvents(MediaType mt) {
     final WebTarget target = target().path("session");
-    FormDataMultiPart mp = getMultiFormData("foo", "bar");
+    FormDataMultiPart mp = getMultiFormData("foo", "bar", mt);
 
-    LensSessionHandle lensSessionHandle = target.request().post(
+    LensSessionHandle lensSessionHandle = target.request(mt).post(
         Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), 
LensSessionHandle.class);
     Assert.assertTrue(lensSessionHandle != null);
     Assert.assertTrue(metricsSvc.getTotalOpenedSessions() >= 1);
     Assert.assertTrue(metricsSvc.getActiveSessions() >= 1);
 
-    LensSessionHandle lensSessionHandle1 = target.request().post(
+    LensSessionHandle lensSessionHandle1 = target.request(mt).post(
         Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), 
LensSessionHandle.class);
     Assert.assertTrue(lensSessionHandle1 != null);
     Assert.assertTrue(metricsSvc.getTotalOpenedSessions() >= 2);
     Assert.assertTrue(metricsSvc.getActiveSessions() >= 2);
 
-    APIResult result = target.queryParam("sessionid", 
lensSessionHandle).request().delete(APIResult.class);
+    APIResult result = target.queryParam("sessionid", 
lensSessionHandle).request(mt).delete(APIResult.class);
     Assert.assertTrue(metricsSvc.getTotalOpenedSessions() >= 1);
     Assert.assertTrue(metricsSvc.getTotalClosedSessions() >= 1);
     Assert.assertTrue(metricsSvc.getActiveSessions() >= 1);
 
-    result = target.queryParam("sessionid", 
lensSessionHandle1).request().delete(APIResult.class);
+    result = target.queryParam("sessionid", 
lensSessionHandle1).request(mt).delete(APIResult.class);
     Assert.assertTrue(metricsSvc.getTotalClosedSessions() >= 2);
   }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/ui/TestSessionUIResource.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/ui/TestSessionUIResource.java
 
b/lens-server/src/test/java/org/apache/lens/server/ui/TestSessionUIResource.java
index 6f7c216..be87e65 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/ui/TestSessionUIResource.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/ui/TestSessionUIResource.java
@@ -28,11 +28,9 @@ import org.apache.lens.api.LensConf;
 import org.apache.lens.api.LensSessionHandle;
 import org.apache.lens.server.LensJerseyTest;
 
-import org.glassfish.jersey.client.ClientConfig;
 import org.glassfish.jersey.media.multipart.FormDataBodyPart;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataMultiPart;
-import org.glassfish.jersey.media.multipart.MultiPartFeature;
 import org.testng.Assert;
 import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeTest;
@@ -74,16 +72,6 @@ public class TestSessionUIResource extends LensJerseyTest {
     return new UIApp();
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see 
org.glassfish.jersey.test.JerseyTest#configureClient(org.glassfish.jersey.client.ClientConfig)
-   */
-  @Override
-  protected void configureClient(ClientConfig config) {
-    config.register(MultiPartFeature.class);
-  }
-
   private FormDataMultiPart getMultiFormData(String username, String password) 
{
     final FormDataMultiPart mp = new FormDataMultiPart();
 

http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 746204e..349b71c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,8 +38,8 @@
     <servlet3.version>3.0.1</servlet3.version>
     <servlet.api.version>2.5</servlet.api.version>
     <jsp.api.version>2.0</jsp.api.version>
-    <ws.rs.version>2.0</ws.rs.version>
-    <jaxb.api.version>2.2.11</jaxb.api.version>
+    <ws.rs.version>2.0.1</ws.rs.version>
+    <jaxb.api.version>2.2.12</jaxb.api.version>
     <javax.mail.version>1.4</javax.mail.version>
 
     <!-- hadoop stack -->
@@ -71,8 +71,8 @@
     <libthrift.version>0.9.0</libthrift.version>
 
     <jetty.version>6.1.26</jetty.version>
-    <jersey.version>2.3.1</jersey.version>
-    <grizzly.version>2.3.6</grizzly.version>
+    <jersey.version>2.22.1</jersey.version>
+    <grizzly.version>2.3.23</grizzly.version>
     <metrics.version>3.0.2</metrics.version>
     <subethasmtp.version>3.1.7</subethasmtp.version>
     <liquibase.version>3.0.7</liquibase.version>
@@ -963,6 +963,10 @@
             <artifactId>jersey-server</artifactId>
           </exclusion>
           <exclusion>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-client</artifactId>
+          </exclusion>
+          <exclusion>
             <groupId>tomcat</groupId>
             <artifactId>jasper-compiler</artifactId>
           </exclusion>
@@ -1293,6 +1297,11 @@
       </dependency>
       <dependency>
         <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-jaxb</artifactId>
+        <version>${jersey.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
         <artifactId>jersey-media-multipart</artifactId>
         <version>${jersey.version}</version>
       </dependency>

http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/src/site/apt/admin/config.apt
----------------------------------------------------------------------
diff --git a/src/site/apt/admin/config.apt b/src/site/apt/admin/config.apt
index 703abb3..fb15d83 100644
--- a/src/site/apt/admin/config.apt
+++ b/src/site/apt/admin/config.apt
@@ -123,130 +123,134 @@ Lens server configuration
 *--+--+---+--+
 |48|lens.server.mode|OPEN|The mode in which server should run. Allowed values 
are OPEN, READ_ONLY, METASTORE_READONLY, METASTORE_NODROP. OPEN mode will allow 
all requests. READ_ONLY mode will allow all requests on session resouce and 
only GET requests on all other resources. METASTORE_READONLY will allow GET on 
metastore and all other requests in other services. METASTORE_NODROP will not 
allow DELETE on metastore, will allow all other requests.|
 *--+--+---+--+
-|49|lens.server.multipart.ws.feature.impl|org.glassfish.jersey.media.multipart.MultiPartFeature|Implementation
 class for query scheduler resource|
+|49|lens.server.moxyjson.ws.feature.impl|org.glassfish.jersey.moxy.json.MoxyJsonFeature|Enable
 Moxy json feature|
 *--+--+---+--+
-|50|lens.server.persist.location|file:///tmp/lensserver|The directory in which 
lens server will persist its state when it is going down. The location be on 
any Hadoop compatible file system. Server will read from the location when it 
is restarted and recovery is enabled. So, Server should have both read and 
write permissions to the location|
+|50|lens.server.moxyjsonconfigresovler.ws.feature.impl|org.apache.lens.api.util.MoxyJsonConfigurationContextResolver|Moxy
 json configuration resolver|
 *--+--+---+--+
-|51|lens.server.query.acceptors| |Query Acceptors configured. Query acceptors 
are consulted first, before anything happens for the given query. They can 
either return null or return a messaging indicating why the given query 
shouldn't be accepted. These can be used to filter out queries at the earliest.|
+|51|lens.server.multipart.ws.feature.impl|org.glassfish.jersey.media.multipart.MultiPartFeature|Implementation
 class for query scheduler resource|
 *--+--+---+--+
-|52|lens.server.query.launching.constraint.factories|org.apache.lens.server.query.constraint.TotalQueryCostCeilingConstraintFactory|Factories
 used to instantiate constraints enforced on queries by lens. Every Factory 
should be an implementation of 
org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create 
an implementation of 
org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint. A query 
will be launched only if all constraints pass.|
+|52|lens.server.persist.location|file:///tmp/lensserver|The directory in which 
lens server will persist its state when it is going down. The location be on 
any Hadoop compatible file system. Server will read from the location when it 
is restarted and recovery is enabled. So, Server should have both read and 
write permissions to the location|
 *--+--+---+--+
-|53|lens.server.query.phase1.rewriters| |Query phase 1 rewriters. This is to 
convert user query to cube query. The resulting cube query will be passed for 
validation and rewriting to hql query.\ |
+|53|lens.server.query.acceptors| |Query Acceptors configured. Query acceptors 
are consulted first, before anything happens for the given query. They can 
either return null or return a messaging indicating why the given query 
shouldn't be accepted. These can be used to filter out queries at the earliest.|
+*--+--+---+--+
+|54|lens.server.query.launching.constraint.factories|org.apache.lens.server.query.constraint.TotalQueryCostCeilingConstraintFactory|Factories
 used to instantiate constraints enforced on queries by lens. Every Factory 
should be an implementation of 
org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create 
an implementation of 
org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint. A query 
will be launched only if all constraints pass.|
+*--+--+---+--+
+|55|lens.server.query.phase1.rewriters| |Query phase 1 rewriters. This is to 
convert user query to cube query. The resulting cube query will be passed for 
validation and rewriting to hql query.\ |
 |  |                                  | |Use cases will be to use extra 
intelligence to convert user query to optimized cube query.                     
                                         \ |
 |  |                                  | |Or define shortcuts for certain 
frequently used queries :)                                                      
                                          |
 *--+--+---+--+
-|54|lens.server.query.resultset.retention|1 day|Lens query resultset retention 
period. Default 1 day|
+|56|lens.server.query.resultset.retention|1 day|Lens query resultset retention 
period. Default 1 day|
 *--+--+---+--+
-|55|lens.server.query.service.impl|org.apache.lens.server.query.QueryExecutionServiceImpl|Implementation
 class for query execution service|
+|57|lens.server.query.service.impl|org.apache.lens.server.query.QueryExecutionServiceImpl|Implementation
 class for query execution service|
 *--+--+---+--+
-|56|lens.server.query.state.logger.enabled|true|Disable or enable the query 
state logger with this config. The location for the logger can be specified in 
logback xml for the class 
org.apache.lens.server.query.QueryExecutionServiceImpl.QueryStatusLogger|
+|58|lens.server.query.state.logger.enabled|true|Disable or enable the query 
state logger with this config. The location for the logger can be specified in 
logback xml for the class 
org.apache.lens.server.query.QueryExecutionServiceImpl.QueryStatusLogger|
 *--+--+---+--+
-|57|lens.server.query.ws.resource.impl|org.apache.lens.server.query.QueryServiceResource|Implementation
 class for Query Resource|
+|59|lens.server.query.ws.resource.impl|org.apache.lens.server.query.QueryServiceResource|Implementation
 class for Query Resource|
 *--+--+---+--+
-|58|lens.server.querypurger.sleep.interval|10000|The interval(milliseconds) 
with which purger to run periodically. Default 10 sec.|
+|60|lens.server.querypurger.sleep.interval|10000|The interval(milliseconds) 
with which purger to run periodically. Default 10 sec.|
 *--+--+---+--+
-|59|lens.server.quota.service.impl|org.apache.lens.server.quota.QuotaServiceImpl|Implementation
 class for quota service|
+|61|lens.server.quota.service.impl|org.apache.lens.server.quota.QuotaServiceImpl|Implementation
 class for quota service|
 *--+--+---+--+
-|60|lens.server.quota.ws.resource.impl|org.apache.lens.server.quota.QuotaResource|Implementation
 class for Quota Resource|
+|62|lens.server.quota.ws.resource.impl|org.apache.lens.server.quota.QuotaResource|Implementation
 class for Quota Resource|
 *--+--+---+--+
-|61|lens.server.recover.onrestart|true|If the flag is enabled, all the 
services will be started from last saved state, if disabled all the services 
will start afresh|
+|63|lens.server.recover.onrestart|true|If the flag is enabled, all the 
services will be started from last saved state, if disabled all the services 
will start afresh|
 *--+--+---+--+
-|62|lens.server.restart.enabled|true|If flag is enabled, all the services will 
be persisted to persistent location passed.|
+|64|lens.server.restart.enabled|true|If flag is enabled, all the services will 
be persisted to persistent location passed.|
 *--+--+---+--+
-|63|lens.server.resultset.purge.enabled|false|Whether to purge the query 
results|
+|65|lens.server.resultset.purge.enabled|false|Whether to purge the query 
results|
 *--+--+---+--+
-|64|lens.server.resultsetpurger.sleep.interval.secs|3600|Periodicity for Query 
result purger runs. Default 1 hour.|
+|66|lens.server.resultsetpurger.sleep.interval.secs|3600|Periodicity for Query 
result purger runs. Default 1 hour.|
 *--+--+---+--+
-|65|lens.server.savedquery.jdbc.dialectclass|org.apache.lens.server.query.save.SavedQueryDao$HSQLDialect|Dialect
 of the target DB, Default is HSQL. Override with the target DB used.|
+|67|lens.server.savedquery.jdbc.dialectclass|org.apache.lens.server.query.save.SavedQueryDao$HSQLDialect|Dialect
 of the target DB, Default is HSQL. Override with the target DB used.|
 *--+--+---+--+
-|66|lens.server.savedquery.list.default.count|20|Key denoting the default 
fetch value of saved query list api.|
+|68|lens.server.savedquery.list.default.count|20|Key denoting the default 
fetch value of saved query list api.|
 *--+--+---+--+
-|67|lens.server.savedquery.list.default.offset|0|Key denoting the default 
start value of saved query list api.|
+|69|lens.server.savedquery.list.default.offset|0|Key denoting the default 
start value of saved query list api.|
 *--+--+---+--+
-|68|lens.server.savedquery.service.impl|org.apache.lens.server.query.save.SavedQueryServiceImpl|Implementation
 class for saved query service|
+|70|lens.server.savedquery.service.impl|org.apache.lens.server.query.save.SavedQueryServiceImpl|Implementation
 class for saved query service|
 *--+--+---+--+
-|69|lens.server.savedquery.ws.resource.impl|org.apache.lens.server.query.save.SavedQueryResource|Implementation
 class for Saved query Resource|
+|71|lens.server.savedquery.ws.resource.impl|org.apache.lens.server.query.save.SavedQueryResource|Implementation
 class for Saved query Resource|
 *--+--+---+--+
-|70|lens.server.scheduler.service.impl|org.apache.lens.server.scheduler.SchedulerServiceImpl|Implementation
 class for query scheduler service|
+|72|lens.server.scheduler.service.impl|org.apache.lens.server.scheduler.SchedulerServiceImpl|Implementation
 class for query scheduler service|
 *--+--+---+--+
-|71|lens.server.scheduler.ws.resource.impl|org.apache.lens.server.scheduler.ScheduleResource|Implementation
 class for query scheduler resource|
+|73|lens.server.scheduler.ws.resource.impl|org.apache.lens.server.scheduler.ScheduleResource|Implementation
 class for query scheduler resource|
 *--+--+---+--+
-|72|lens.server.scheduling.queue.poll.interval.millisec|2000|The interval at 
which submission thread will poll scheduling queue to fetch the next query for 
submission. If value is less than equal to 0, then it would mean that thread 
will continuosly poll without sleeping. The interval has to be given in 
milliseconds.|
+|74|lens.server.scheduling.queue.poll.interval.millisec|2000|The interval at 
which submission thread will poll scheduling queue to fetch the next query for 
submission. If value is less than equal to 0, then it would mean that thread 
will continuosly poll without sleeping. The interval has to be given in 
milliseconds.|
 *--+--+---+--+
-|73|lens.server.serverMode.ws.filter.impl|org.apache.lens.server.ServerModeFilter|Implementation
 class for ServerMode Filter|
+|75|lens.server.serverMode.ws.filter.impl|org.apache.lens.server.ServerModeFilter|Implementation
 class for ServerMode Filter|
 *--+--+---+--+
-|74|lens.server.service.provider.factory|org.apache.lens.server.ServiceProviderFactoryImpl|Service
 provider factory implementation class. This parameter is used to lookup the 
factory implementation class name that would provide an instance of 
ServiceProvider. Users should instantiate the class to obtain its instance. 
Example -- Class spfClass = 
conf.getClass("lens.server.service.provider.factory", null, 
ServiceProviderFactory.class); ServiceProviderFactory spf = 
spfClass.newInstance(); ServiceProvider serviceProvider = 
spf.getServiceProvider(); -- This is not supposed to be overridden by users.|
+|76|lens.server.service.provider.factory|org.apache.lens.server.ServiceProviderFactoryImpl|Service
 provider factory implementation class. This parameter is used to lookup the 
factory implementation class name that would provide an instance of 
ServiceProvider. Users should instantiate the class to obtain its instance. 
Example -- Class spfClass = 
conf.getClass("lens.server.service.provider.factory", null, 
ServiceProviderFactory.class); ServiceProviderFactory spf = 
spfClass.newInstance(); ServiceProvider serviceProvider = 
spf.getServiceProvider(); -- This is not supposed to be overridden by users.|
 *--+--+---+--+
-|75|lens.server.servicenames|session,query,metastore,scheduler,quota|These 
services would be started in the specified order when lens-server starts up|
+|77|lens.server.servicenames|session,query,metastore,scheduler,quota|These 
services would be started in the specified order when lens-server starts up|
 *--+--+---+--+
-|76|lens.server.session.expiry.service.interval.secs|3600|Interval at which 
lens session expiry service runs|
+|78|lens.server.session.expiry.service.interval.secs|3600|Interval at which 
lens session expiry service runs|
 *--+--+---+--+
-|77|lens.server.session.service.impl|org.apache.lens.server.session.HiveSessionService|Implementation
 class for session service|
+|79|lens.server.session.service.impl|org.apache.lens.server.session.HiveSessionService|Implementation
 class for session service|
 *--+--+---+--+
-|78|lens.server.session.timeout.seconds|86400|Lens session timeout in 
seconds.If there is no activity on the session for this period then the session 
will be closed.Default timeout is one day.|
+|80|lens.server.session.timeout.seconds|86400|Lens session timeout in 
seconds.If there is no activity on the session for this period then the session 
will be closed.Default timeout is one day.|
 *--+--+---+--+
-|79|lens.server.session.ws.resource.impl|org.apache.lens.server.session.SessionResource|Implementation
 class for Session Resource|
+|81|lens.server.session.ws.resource.impl|org.apache.lens.server.session.SessionResource|Implementation
 class for Session Resource|
 *--+--+---+--+
-|80|lens.server.snapshot.interval|300000|Snapshot interval time in miliseconds 
for saving lens server state.|
+|82|lens.server.snapshot.interval|300000|Snapshot interval time in miliseconds 
for saving lens server state.|
 *--+--+---+--+
-|81|lens.server.state.persist.out.stream.buffer.size|1048576|Output Stream 
Buffer Size used in writing lens server state to file system. Size is in bytes.|
+|83|lens.server.state.persist.out.stream.buffer.size|1048576|Output Stream 
Buffer Size used in writing lens server state to file system. Size is in bytes.|
 *--+--+---+--+
-|82|lens.server.statistics.db|lensstats|Database to which statistics tables 
are created and partitions are added.|
+|84|lens.server.statistics.db|lensstats|Database to which statistics tables 
are created and partitions are added.|
 *--+--+---+--+
-|83|lens.server.statistics.log.rollover.interval|3600000|Default rate which 
log statistics store scans for rollups in milliseconds.|
+|85|lens.server.statistics.log.rollover.interval|3600000|Default rate which 
log statistics store scans for rollups in milliseconds.|
 *--+--+---+--+
-|84|lens.server.statistics.store.class|org.apache.lens.server.stats.store.log.LogStatisticsStore|Default
 implementation of class used to persist Lens Statistics.|
+|86|lens.server.statistics.store.class|org.apache.lens.server.stats.store.log.LogStatisticsStore|Default
 implementation of class used to persist Lens Statistics.|
 *--+--+---+--+
-|85|lens.server.statistics.warehouse.dir|file:///tmp/lens/statistics/warehouse|Default
 top level location where stats are moved by the log statistics store.|
+|87|lens.server.statistics.warehouse.dir|file:///tmp/lens/statistics/warehouse|Default
 top level location where stats are moved by the log statistics store.|
 *--+--+---+--+
-|86|lens.server.total.query.cost.ceiling.per.user|-1.0|A query submitted by 
user will be launched only if total query cost of all current launched queries 
of user is less than or equal to total query cost ceiling defined by this 
property. This configuration value is only useful when 
TotalQueryCostCeilingConstraint is enabled by using 
org.apache.lens.server.query.constraint.TotalQueryCostCeilingConstraintFactory 
as one of the factories in lens.server.query.constraint.factories property. 
Default is -1.0 which means that there is no limit on the total query cost of 
launched queries submitted by a user.|
+|88|lens.server.total.query.cost.ceiling.per.user|-1.0|A query submitted by 
user will be launched only if total query cost of all current launched queries 
of user is less than or equal to total query cost ceiling defined by this 
property. This configuration value is only useful when 
TotalQueryCostCeilingConstraint is enabled by using 
org.apache.lens.server.query.constraint.TotalQueryCostCeilingConstraintFactory 
as one of the factories in lens.server.query.constraint.factories property. 
Default is -1.0 which means that there is no limit on the total query cost of 
launched queries submitted by a user.|
 *--+--+---+--+
-|87|lens.server.ui.base.uri|http://0.0.0.0:19999/|The base url for the Lens UI 
Server|
+|89|lens.server.ui.base.uri|http://0.0.0.0:19999/|The base url for the Lens UI 
Server|
 *--+--+---+--+
-|88|lens.server.ui.enable|true|Bringing up the ui server is optional. By 
default it brings up UI server.|
+|90|lens.server.ui.enable|true|Bringing up the ui server is optional. By 
default it brings up UI server.|
 *--+--+---+--+
-|89|lens.server.ui.enable.caching|true|Set this to false to disable static 
file caching in the UI server|
+|91|lens.server.ui.enable.caching|true|Set this to false to disable static 
file caching in the UI server|
 *--+--+---+--+
-|90|lens.server.ui.static.dir|webapp/lens-server/static|The base directory to 
server UI static files from|
+|92|lens.server.ui.static.dir|webapp/lens-server/static|The base directory to 
server UI static files from|
 *--+--+---+--+
-|91|lens.server.user.resolver.custom.class|full.package.name.Classname|Required
 for CUSTOM user resolver. In case the provided implementations are not 
sufficient for user config resolver, a custom classname can be provided. Class 
should extend org.apache.lens.server.user.UserConfigLoader|
+|93|lens.server.user.resolver.custom.class|full.package.name.Classname|Required
 for CUSTOM user resolver. In case the provided implementations are not 
sufficient for user config resolver, a custom classname can be provided. Class 
should extend org.apache.lens.server.user.UserConfigLoader|
 *--+--+---+--+
-|92|lens.server.user.resolver.db.keys|lens.session.cluster.user,mapred.job.queue.name|Required
 for DATABASE and LDAP_BACKED_DATABASE user resolvers. For database based user 
config loaders, the conf keys that will be loaded from database.|
+|94|lens.server.user.resolver.db.keys|lens.session.cluster.user,mapred.job.queue.name|Required
 for DATABASE and LDAP_BACKED_DATABASE user resolvers. For database based user 
config loaders, the conf keys that will be loaded from database.|
 *--+--+---+--+
-|93|lens.server.user.resolver.db.query|select clusteruser,queue from 
user_config_table where username=?|Required for DATABASE and 
LDAP_BACKED_DATABASE user resolvers. For database based user config loader, 
this query will be run with single argument = logged in user and the result 
columns will be assigned to lens.server.user.resolver.db.keys in order. For 
ldap backed database resolver, the argument to this query will be the 
intermediate values obtained from ldap.|
+|95|lens.server.user.resolver.db.query|select clusteruser,queue from 
user_config_table where username=?|Required for DATABASE and 
LDAP_BACKED_DATABASE user resolvers. For database based user config loader, 
this query will be run with single argument = logged in user and the result 
columns will be assigned to lens.server.user.resolver.db.keys in order. For 
ldap backed database resolver, the argument to this query will be the 
intermediate values obtained from ldap.|
 *--+--+---+--+
-|94|lens.server.user.resolver.fixed.value| |Required for FIXED user resolver. 
when lens.server.user.resolver.type=FIXED, This will be the value cluster user 
will resolve to.|
+|96|lens.server.user.resolver.fixed.value| |Required for FIXED user resolver. 
when lens.server.user.resolver.type=FIXED, This will be the value cluster user 
will resolve to.|
 *--+--+---+--+
-|95|lens.server.user.resolver.ldap.bind.dn| |Required for LDAP_BACKED_DATABASE 
user resolvers. ldap dn for admin binding example: 
CN=company-it-admin,ou=service-account,ou=company-service-account,dc=dc1,dc=com...|
+|97|lens.server.user.resolver.ldap.bind.dn| |Required for LDAP_BACKED_DATABASE 
user resolvers. ldap dn for admin binding example: 
CN=company-it-admin,ou=service-account,ou=company-service-account,dc=dc1,dc=com...|
 *--+--+---+--+
-|96|lens.server.user.resolver.ldap.bind.password| |Required for 
LDAP_BACKED_DATABASE user resolvers. ldap password for admin binding above|
+|98|lens.server.user.resolver.ldap.bind.password| |Required for 
LDAP_BACKED_DATABASE user resolvers. ldap password for admin binding above|
 *--+--+---+--+
-|97|lens.server.user.resolver.ldap.fields|department|Required for 
LDAP_BACKED_DATABASE user resolvers. list of fields to be obtained from ldap. 
These will be cached by the intermediate db.|
+|99|lens.server.user.resolver.ldap.fields|department|Required for 
LDAP_BACKED_DATABASE user resolvers. list of fields to be obtained from ldap. 
These will be cached by the intermediate db.|
 *--+--+---+--+
-|98|lens.server.user.resolver.ldap.intermediate.db.delete.sql|delete from 
user_department where username=?|Required for LDAP_BACKED_DATABASE user 
resolvers. query to delete intermediate values from database backing ldap as 
cache. one argument: logged in user.|
+|100|lens.server.user.resolver.ldap.intermediate.db.delete.sql|delete from 
user_department where username=?|Required for LDAP_BACKED_DATABASE user 
resolvers. query to delete intermediate values from database backing ldap as 
cache. one argument: logged in user.|
 *--+--+---+--+
-|99|lens.server.user.resolver.ldap.intermediate.db.insert.sql|insert into 
user_department (username, department, expiry) values (?, ?, ?)|Required for 
LDAP_BACKED_DATABASE user resolvers. query to insert intermediate values from 
database backing ldap as cache. arguments: first logged in user, then all 
intermediate values, then current time + expiration time|
+|101|lens.server.user.resolver.ldap.intermediate.db.insert.sql|insert into 
user_department (username, department, expiry) values (?, ?, ?)|Required for 
LDAP_BACKED_DATABASE user resolvers. query to insert intermediate values from 
database backing ldap as cache. arguments: first logged in user, then all 
intermediate values, then current time + expiration time|
 *--+--+---+--+
-|100|lens.server.user.resolver.ldap.intermediate.db.query|select department 
from user_department where username=? and expiry>?|Required for 
LDAP_BACKED_DATABASE user resolvers. query to obtain intermediate values from 
database backing ldap as cache. two arguments: logged in user and current time.|
+|102|lens.server.user.resolver.ldap.intermediate.db.query|select department 
from user_department where username=? and expiry>?|Required for 
LDAP_BACKED_DATABASE user resolvers. query to obtain intermediate values from 
database backing ldap as cache. two arguments: logged in user and current time.|
 *--+--+---+--+
-|101|lens.server.user.resolver.ldap.search.base| |Required for 
LDAP_BACKED_DATABASE user resolvers. for searching intermediate values for a 
user, the search keys. example: cn=users,dc=dc1,dc=dc2...|
+|103|lens.server.user.resolver.ldap.search.base| |Required for 
LDAP_BACKED_DATABASE user resolvers. for searching intermediate values for a 
user, the search keys. example: cn=users,dc=dc1,dc=dc2...|
 *--+--+---+--+
-|102|lens.server.user.resolver.ldap.search.filter|(&(objectClass=user)(sAMAccountName=%s))|Required
 for LDAP_BACKED_DATABASE user resolvers. filter pattern for ldap search|
+|104|lens.server.user.resolver.ldap.search.filter|(&(objectClass=user)(sAMAccountName=%s))|Required
 for LDAP_BACKED_DATABASE user resolvers. filter pattern for ldap search|
 *--+--+---+--+
-|103|lens.server.user.resolver.ldap.url| |Required for LDAP_BACKED_DATABASE 
user resolvers. ldap url to connect to.|
+|105|lens.server.user.resolver.ldap.url| |Required for LDAP_BACKED_DATABASE 
user resolvers. ldap url to connect to.|
 *--+--+---+--+
-|104|lens.server.user.resolver.propertybased.filename|/path/to/propertyfile|Required
 for PROPERTYBASED user resolver. when lens.server.user.resolver.type is 
PROPERTYBASED, then this file will be read and parsed to determine cluster 
user. Each line should contain username followed by DOT followed by property 
full name followed by equal-to sign and followed by value. example schema of 
the file is: user1.lens.server.cluster.user=clusteruser1 
user1.mapred.job.queue.name=queue1 
*.lens.server.cluster.user=defaultclusteruser *.mapred.job.queue.name=default|
+|106|lens.server.user.resolver.propertybased.filename|/path/to/propertyfile|Required
 for PROPERTYBASED user resolver. when lens.server.user.resolver.type is 
PROPERTYBASED, then this file will be read and parsed to determine cluster 
user. Each line should contain username followed by DOT followed by property 
full name followed by equal-to sign and followed by value. example schema of 
the file is: user1.lens.server.cluster.user=clusteruser1 
user1.mapred.job.queue.name=queue1 
*.lens.server.cluster.user=defaultclusteruser *.mapred.job.queue.name=default|
 *--+--+---+--+
-|105|lens.server.user.resolver.type|FIXED|Type of user config resolver. 
allowed values are FIXED, PROPERTYBASED, DATABASE, LDAP_BACKED_DATABASE, 
CUSTOM.|
+|107|lens.server.user.resolver.type|FIXED|Type of user config resolver. 
allowed values are FIXED, PROPERTYBASED, DATABASE, LDAP_BACKED_DATABASE, 
CUSTOM.|
 *--+--+---+--+
-|106|lens.server.waiting.queries.selection.policy.factories|org.apache.lens.server.query.collect.UserSpecificWaitingQueriesSelectionPolicyFactory|Factories
 used to instantiate waiting queries selection policies. Every factory should 
be an implementation of 
org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create 
an implementation of 
org.apache.lens.server.api.query.collect.WaitingQueriesSelectionPolicy.|
+|108|lens.server.waiting.queries.selection.policy.factories|org.apache.lens.server.query.collect.UserSpecificWaitingQueriesSelectionPolicyFactory|Factories
 used to instantiate waiting queries selection policies. Every factory should 
be an implementation of 
org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create 
an implementation of 
org.apache.lens.server.api.query.collect.WaitingQueriesSelectionPolicy.|
 *--+--+---+--+
-|107|lens.server.ws.featurenames|multipart|These JAX-RS Feature(s) would be 
started in the specified order when lens-server starts up|
+|109|lens.server.ws.featurenames|multipart,moxyjson,moxyjsonconfigresovler|These
 JAX-RS Feature(s) would be started in the specified order when lens-server 
starts up|
 *--+--+---+--+
-|108|lens.server.ws.filternames|authentication,consistentState,serverMode|These
 JAX-RS filters would be started in the specified order when lens-server starts 
up|
+|110|lens.server.ws.filternames|authentication,consistentState,serverMode|These
 JAX-RS filters would be started in the specified order when lens-server starts 
up|
 *--+--+---+--+
-|109|lens.server.ws.listenernames|appevent|These listeners would be called in 
the specified order when lens-server starts up|
+|111|lens.server.ws.listenernames|appevent|These listeners would be called in 
the specified order when lens-server starts up|
 *--+--+---+--+
-|110|lens.server.ws.resourcenames|session,metastore,query,quota,scheduler,index,log|These
 JAX-RS resources would be started in the specified order when lens-server 
starts up|
+|112|lens.server.ws.resourcenames|session,metastore,query,quota,scheduler,index,log|These
 JAX-RS resources would be started in the specified order when lens-server 
starts up|
 *--+--+---+--+
 The configuration parameters and their default values

Reply via email to