[ONOS-4042] Bump up Jersey from 1.19 to 2.22.2

- Fix unit test errors of web/api
- Fix default page redirection problem
- Fix compilation errors of web/gui
- Fix configuration of aaa, acl, cordfabric, cord-gui, dhcp, mfwd,
  olt, openstack, segmentrouting, vtn, virtualbng, xos-integration
- Fix unit test errors of cpman, vtn, acl, faultmanagement
- Fix compilation errors of openstack, virtualbng, xos-integration,
  REST SB controller
- Rearrange features.xml to resolve bundle dependencies
- Remove all of stale Jersey 1.x libraries
- Rearrange web.xml to point new Jersey 2.x servlet

Change-Id: Ic17f461ede0aa36fa8d470546d8069152dc1d134
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/ClassifierResourceTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/ClassifierResourceTest.java
index 789ae89..310cb41 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/ClassifierResourceTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/ClassifierResourceTest.java
@@ -15,16 +15,9 @@
  */
 package org.onosproject.vtnweb.resources;
 
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.junit.Assert.assertThat;
-import static org.onosproject.net.NetTestTools.device;
-import static org.onosproject.net.NetTestTools.did;
-
 import com.eclipsesource.json.Json;
+import com.eclipsesource.json.JsonObject;
+import com.google.common.collect.ImmutableList;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -37,9 +30,17 @@
 import org.onosproject.vtnrsc.classifier.ClassifierService;
 import org.onosproject.vtnweb.web.SfcCodecContext;
 
-import com.eclipsesource.json.JsonObject;
-import com.google.common.collect.ImmutableList;
-import com.sun.jersey.api.client.WebResource;
+import javax.ws.rs.client.WebTarget;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.onosproject.net.NetTestTools.device;
+import static org.onosproject.net.NetTestTools.did;
+
 /**
  * Unit tests for classifier REST APIs.
  */
@@ -75,8 +76,8 @@
 
         expect(classifierService.getClassifiers()).andReturn(null).anyTimes();
         replay(classifierService);
-        final WebResource rs = resource();
-        final String response = rs.path("classifiers").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("classifiers").request().get(String.class);
         assertThat(response, is("{\"classifiers\":[]}"));
     }
 
@@ -92,8 +93,8 @@
         expect(classifierService.getClassifiers()).andReturn(ImmutableList.of(devId1)).anyTimes();
         replay(classifierService);
 
-        final WebResource rs = resource();
-        final String response = rs.path("classifiers").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("classifiers").request().get(String.class);
         final JsonObject result = Json.parse(response).asObject();
         assertThat(result, notNullValue());
     }
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java
index 1242907..4ce8e7b 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/FlowClassifierResourceTest.java
@@ -15,25 +15,8 @@
  */
 package org.onosproject.vtnweb.resources;
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.HashSet;
-import java.util.Objects;
-import java.util.Set;
-
-import javax.ws.rs.core.MediaType;
-
 import com.eclipsesource.json.Json;
+import com.eclipsesource.json.JsonObject;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -49,10 +32,26 @@
 import org.onosproject.vtnrsc.flowclassifier.FlowClassifierService;
 import org.onosproject.vtnweb.web.SfcCodecContext;
 
-import com.eclipsesource.json.JsonObject;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.api.client.WebResource;
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
 /**
  * Unit tests for flow classifier REST APIs.
  */
@@ -219,8 +218,8 @@
 
         expect(flowClassifierService.getFlowClassifiers()).andReturn(null).anyTimes();
         replay(flowClassifierService);
-        final WebResource rs = resource();
-        final String response = rs.path("flow_classifiers").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("flow_classifiers").request().get(String.class);
         assertThat(response, is("{\"flow_classifiers\":[]}"));
     }
 
@@ -237,8 +236,9 @@
         expect(flowClassifierService.getFlowClassifier(anyObject())).andReturn(flowClassifier1).anyTimes();
         replay(flowClassifierService);
 
-        final WebResource rs = resource();
-        final String response = rs.path("flow_classifiers/4a334cd4-fe9c-4fae-af4b-321c5e2eb051").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("flow_classifiers/4a334cd4-fe9c-4fae-af4b-321c5e2eb051")
+                                  .request().get(String.class);
         final JsonObject result = Json.parse(response).asObject();
         assertThat(result, notNullValue());
     }
@@ -251,13 +251,14 @@
         expect(flowClassifierService.getFlowClassifier(anyObject()))
         .andReturn(null).anyTimes();
         replay(flowClassifierService);
-        WebResource rs = resource();
+        WebTarget wt = target();
         try {
-            rs.path("flow_classifiers/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae").get(String.class);
+            wt.path("flow_classifiers/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae")
+                    .request().get(String.class);
             fail("Fetch of non-existent flow classifier did not throw an exception");
-        } catch (UniformInterfaceException ex) {
+        } catch (NotFoundException ex) {
             assertThat(ex.getMessage(),
-                       containsString("returned a response status of"));
+                       containsString("HTTP 404 Not Found"));
         }
     }
 
@@ -271,12 +272,12 @@
         .andReturn(true).anyTimes();
         replay(flowClassifierService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
         InputStream jsonStream = FlowClassifierResourceTest.class.getResourceAsStream("post-FlowClassifier.json");
 
-        ClientResponse response = rs.path("flow_classifiers")
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .post(ClientResponse.class, jsonStream);
+        Response response = wt.path("flow_classifiers")
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .post(Entity.json(jsonStream));
         assertThat(response.getStatus(), is(HttpURLConnection.HTTP_OK));
     }
 
@@ -289,13 +290,13 @@
         .andReturn(true).anyTimes();
         replay(flowClassifierService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
 
         String location = "flow_classifiers/4a334cd4-fe9c-4fae-af4b-321c5e2eb051";
 
-        ClientResponse deleteResponse = rs.path(location)
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .delete(ClientResponse.class);
+        Response deleteResponse = wt.path(location)
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .delete();
         assertThat(deleteResponse.getStatus(),
                    is(HttpURLConnection.HTTP_NO_CONTENT));
     }
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortChainResourceTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortChainResourceTest.java
index b4447f1..6fa7933 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortChainResourceTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortChainResourceTest.java
@@ -15,26 +15,10 @@
  */
 package org.onosproject.vtnweb.resources;
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
-
-import javax.ws.rs.core.MediaType;
-
+import com.eclipsesource.json.Json;
+import com.eclipsesource.json.JsonObject;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -53,13 +37,28 @@
 import org.onosproject.vtnrsc.portchain.PortChainService;
 import org.onosproject.vtnweb.web.SfcCodecContext;
 
-import com.eclipsesource.json.Json;
-import com.eclipsesource.json.JsonObject;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.api.client.WebResource;
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
 
 /**
  * Unit tests for port chain REST APIs.
@@ -203,8 +202,8 @@
 
         expect(portChainService.getPortChains()).andReturn(null).anyTimes();
         replay(portChainService);
-        final WebResource rs = resource();
-        final String response = rs.path("port_chains").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("port_chains").request().get(String.class);
         assertThat(response, is("{\"port_chains\":[]}"));
     }
 
@@ -221,8 +220,9 @@
         expect(portChainService.getPortChain(anyObject())).andReturn(portChain1).anyTimes();
         replay(portChainService);
 
-        final WebResource rs = resource();
-        final String response = rs.path("port_chains/1278dcd4-459f-62ed-754b-87fc5e4a6751").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("port_chains/1278dcd4-459f-62ed-754b-87fc5e4a6751")
+                .request().get(String.class);
         final JsonObject result = Json.parse(response).asObject();
         assertThat(result, notNullValue());
     }
@@ -235,13 +235,14 @@
         expect(portChainService.getPortChain(anyObject()))
         .andReturn(null).anyTimes();
         replay(portChainService);
-        WebResource rs = resource();
+        WebTarget wt = target();
         try {
-            rs.path("port_chains/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae").get(String.class);
+            wt.path("port_chains/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae")
+                    .request().get(String.class);
             fail("Fetch of non-existent port chain did not throw an exception");
-        } catch (UniformInterfaceException ex) {
+        } catch (NotFoundException ex) {
             assertThat(ex.getMessage(),
-                       containsString("returned a response status of"));
+                       containsString("HTTP 404 Not Found"));
         }
     }
 
@@ -255,12 +256,12 @@
         .andReturn(true).anyTimes();
         replay(portChainService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
         InputStream jsonStream = PortChainResourceTest.class.getResourceAsStream("post-PortChain.json");
 
-        ClientResponse response = rs.path("port_chains")
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .post(ClientResponse.class, jsonStream);
+        Response response = wt.path("port_chains")
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .post(Entity.json(jsonStream));
         assertThat(response.getStatus(), is(HttpURLConnection.HTTP_OK));
     }
 
@@ -273,13 +274,13 @@
         .andReturn(true).anyTimes();
         replay(portChainService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
 
         String location = "port_chains/1278dcd4-459f-62ed-754b-87fc5e4a6751";
 
-        ClientResponse deleteResponse = rs.path(location)
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .delete(ClientResponse.class);
+        Response deleteResponse = wt.path(location)
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .delete();
         assertThat(deleteResponse.getStatus(),
                    is(HttpURLConnection.HTTP_NO_CONTENT));
     }
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairGroupResourceTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairGroupResourceTest.java
index 9b7c987..b631def 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairGroupResourceTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairGroupResourceTest.java
@@ -15,25 +15,10 @@
  */
 package org.onosproject.vtnweb.resources;
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
-
-import javax.ws.rs.core.MediaType;
-
+import com.eclipsesource.json.Json;
+import com.eclipsesource.json.JsonObject;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -48,13 +33,27 @@
 import org.onosproject.vtnrsc.portpairgroup.PortPairGroupService;
 import org.onosproject.vtnweb.web.SfcCodecContext;
 
-import com.eclipsesource.json.Json;
-import com.eclipsesource.json.JsonObject;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.api.client.WebResource;
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
 /**
  * Unit tests for port pair group REST APIs.
  */
@@ -163,8 +162,8 @@
 
         expect(portPairGroupService.getPortPairGroups()).andReturn(null).anyTimes();
         replay(portPairGroupService);
-        final WebResource rs = resource();
-        final String response = rs.path("port_pair_groups").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("port_pair_groups").request().get(String.class);
         assertThat(response, is("{\"port_pair_groups\":[]}"));
     }
 
@@ -181,8 +180,9 @@
         expect(portPairGroupService.getPortPairGroup(anyObject())).andReturn(portPairGroup1).anyTimes();
         replay(portPairGroupService);
 
-        final WebResource rs = resource();
-        final String response = rs.path("port_pair_groups/4512d643-24fc-4fae-af4b-321c5e2eb3d1").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("port_pair_groups/4512d643-24fc-4fae-af4b-321c5e2eb3d1")
+                .request().get(String.class);
         final JsonObject result = Json.parse(response).asObject();
         assertThat(result, notNullValue());
     }
@@ -195,13 +195,14 @@
         expect(portPairGroupService.getPortPairGroup(anyObject()))
         .andReturn(null).anyTimes();
         replay(portPairGroupService);
-        WebResource rs = resource();
+        WebTarget wt = target();
         try {
-            rs.path("port_pair_groups/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae").get(String.class);
+            wt.path("port_pair_groups/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae")
+                    .request().get(String.class);
             fail("Fetch of non-existent port pair group did not throw an exception");
-        } catch (UniformInterfaceException ex) {
+        } catch (NotFoundException ex) {
             assertThat(ex.getMessage(),
-                       containsString("returned a response status of"));
+                       containsString("HTTP 404 Not Found"));
         }
     }
 
@@ -215,12 +216,12 @@
         .andReturn(true).anyTimes();
         replay(portPairGroupService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
         InputStream jsonStream = PortPairGroupResourceTest.class.getResourceAsStream("post-PortPairGroup.json");
 
-        ClientResponse response = rs.path("port_pair_groups")
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .post(ClientResponse.class, jsonStream);
+        Response response = wt.path("port_pair_groups")
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .post(Entity.json(jsonStream));
         assertThat(response.getStatus(), is(HttpURLConnection.HTTP_OK));
     }
 
@@ -233,13 +234,13 @@
         .andReturn(true).anyTimes();
         replay(portPairGroupService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
 
         String location = "port_pair_groups/4512d643-24fc-4fae-af4b-321c5e2eb3d1";
 
-        ClientResponse deleteResponse = rs.path(location)
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .delete(ClientResponse.class);
+        Response deleteResponse = wt.path(location)
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .delete();
         assertThat(deleteResponse.getStatus(),
                    is(HttpURLConnection.HTTP_NO_CONTENT));
     }
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairResourceTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairResourceTest.java
index c4b02ed..e436bbe 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairResourceTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/PortPairResourceTest.java
@@ -15,25 +15,8 @@
  */
 package org.onosproject.vtnweb.resources;
 
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.HashSet;
-import java.util.Objects;
-import java.util.Set;
-
-import javax.ws.rs.core.MediaType;
-
 import com.eclipsesource.json.Json;
+import com.eclipsesource.json.JsonObject;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -47,10 +30,26 @@
 import org.onosproject.vtnrsc.portpair.PortPairService;
 import org.onosproject.vtnweb.web.SfcCodecContext;
 
-import com.eclipsesource.json.JsonObject;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.api.client.WebResource;
+import javax.ws.rs.NotFoundException;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
 /**
  * Unit tests for port pair REST APIs.
  */
@@ -155,8 +154,8 @@
 
         expect(portPairService.getPortPairs()).andReturn(null).anyTimes();
         replay(portPairService);
-        final WebResource rs = resource();
-        final String response = rs.path("port_pairs").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("port_pairs").request().get(String.class);
         assertThat(response, is("{\"port_pairs\":[]}"));
     }
 
@@ -173,8 +172,9 @@
         expect(portPairService.getPortPair(anyObject())).andReturn(portPair1).anyTimes();
         replay(portPairService);
 
-        final WebResource rs = resource();
-        final String response = rs.path("port_pairs/78dcd363-fc23-aeb6-f44b-56dc5e2fb3ae").get(String.class);
+        final WebTarget wt = target();
+        final String response = wt.path("port_pairs/78dcd363-fc23-aeb6-f44b-56dc5e2fb3ae")
+                .request().get(String.class);
         final JsonObject result = Json.parse(response).asObject();
         assertThat(result, notNullValue());
     }
@@ -187,13 +187,14 @@
         expect(portPairService.getPortPair(anyObject()))
         .andReturn(null).anyTimes();
         replay(portPairService);
-        WebResource rs = resource();
+        WebTarget wt = target();
         try {
-            rs.path("port_pairs/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae").get(String.class);
+            wt.path("port_pairs/78dcd363-fc23-aeb6-f44b-56dc5aafb3ae")
+                    .request().get(String.class);
             fail("Fetch of non-existent port pair did not throw an exception");
-        } catch (UniformInterfaceException ex) {
+        } catch (NotFoundException ex) {
             assertThat(ex.getMessage(),
-                       containsString("returned a response status of"));
+                       containsString("HTTP 404 Not Found"));
         }
     }
 
@@ -207,12 +208,12 @@
         .andReturn(true).anyTimes();
         replay(portPairService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
         InputStream jsonStream = PortPairResourceTest.class.getResourceAsStream("post-PortPair.json");
 
-        ClientResponse response = rs.path("port_pairs")
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .post(ClientResponse.class, jsonStream);
+        Response response = wt.path("port_pairs")
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .post(Entity.json(jsonStream));
         assertThat(response.getStatus(), is(HttpURLConnection.HTTP_OK));
     }
 
@@ -225,13 +226,13 @@
         .andReturn(true).anyTimes();
         replay(portPairService);
 
-        WebResource rs = resource();
+        WebTarget wt = target();
 
         String location = "port_pairs/78dcd363-fc23-aeb6-f44b-56dc5e2fb3ae";
 
-        ClientResponse deleteResponse = rs.path(location)
-                .type(MediaType.APPLICATION_JSON_TYPE)
-                .delete(ClientResponse.class);
+        Response deleteResponse = wt.path(location)
+                .request(MediaType.APPLICATION_JSON_TYPE)
+                .delete();
         assertThat(deleteResponse.getStatus(),
                    is(HttpURLConnection.HTTP_NO_CONTENT));
     }
diff --git a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/VtnResourceTest.java b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/VtnResourceTest.java
index 4b95844..af9c15b 100644
--- a/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/VtnResourceTest.java
+++ b/apps/vtn/vtnweb/src/test/java/org/onosproject/vtnweb/resources/VtnResourceTest.java
@@ -15,12 +15,8 @@
  */
 package org.onosproject.vtnweb.resources;
 
-import java.io.IOException;
-import java.net.ServerSocket;
-
-import com.sun.jersey.test.framework.AppDescriptor;
-import com.sun.jersey.test.framework.JerseyTest;
-import com.sun.jersey.test.framework.WebAppDescriptor;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.test.JerseyTest;
 
 /**
  * Base class for VTN REST API tests.  Performs common configuration operations.
@@ -28,27 +24,9 @@
 public class VtnResourceTest extends JerseyTest {
 
     /**
-     * Assigns an available port for the test.
-     *
-     * @param defaultPort If a port cannot be determined, this one is used.
-     * @return free port
+     * Creates a new web-resource test.
      */
-    @Override
-    public int getPort(int defaultPort) {
-        try {
-            ServerSocket socket = new ServerSocket(0);
-            socket.setReuseAddress(true);
-            int port = socket.getLocalPort();
-            socket.close();
-            return port;
-        } catch (IOException ioe) {
-            return defaultPort;
-        }
+    public VtnResourceTest() {
+        super(ResourceConfig.forApplicationClass(VtnWebApplication.class));
     }
-
-    @Override
-    public AppDescriptor configure() {
-        return new WebAppDescriptor.Builder("org.onosproject.vtnweb.resources").build();
-    }
-
 }