[ONOS-4945] PCE Json fix

Change-Id: I701ed1044c603ea60becf8ba606098e4154a7733
diff --git a/apps/pce/app/pom.xml b/apps/pce/app/pom.xml
index cf6aec9..fb3d299 100644
--- a/apps/pce/app/pom.xml
+++ b/apps/pce/app/pom.xml
@@ -68,11 +68,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.onosproject</groupId>
             <artifactId>onlab-osgi</artifactId>
             <classifier>tests</classifier>
@@ -90,11 +85,6 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onlab-rest</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
             <groupId>javax.ws.rs</groupId>
             <artifactId>jsr311-api</artifactId>
             <version>1.1.1</version>
@@ -108,31 +98,12 @@
             <artifactId>jackson-annotations</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.glassfish.jersey.containers</groupId>
-            <artifactId>jersey-container-servlet</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jersey.test-framework</groupId>
-            <artifactId>jersey-test-framework-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-            <artifactId>jersey-test-framework-provider-jetty</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.onosproject</groupId>
             <artifactId>onos-incubator-api</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.onosproject</groupId>
-            <artifactId>onlab-misc</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onosproject</groupId>
             <artifactId>onos-app-pcep-api</artifactId>
             <version>${project.version}</version>
         </dependency>
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java
index 2724e8a..42ee274 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/pceservice/DefaultPcePath.java
@@ -247,13 +247,15 @@
             // LSP type
             String lspType = tunnel.annotations().value(PcepAnnotationKeys.LSP_SIG_TYPE);
             if (lspType != null) {
-               this.lspType = LspType.values()[Integer.valueOf(lspType) - 1];
+                this.lspType = LspType.values()[LspType.valueOf(lspType).type()];
             }
+
             // Cost type
             String costType = tunnel.annotations().value(PcepAnnotationKeys.COST_TYPE);
             if (costType != null) {
-                this.costConstraint = CostConstraint.of(CostConstraint.Type.values()[Integer.valueOf(costType) - 1]);
+                this.costConstraint = CostConstraint.of(CostConstraint.Type.valueOf(costType));
             }
+
             // Bandwidth
             String bandwidth = tunnel.annotations().value(PcepAnnotationKeys.BANDWIDTH);
             if (bandwidth != null) {
diff --git a/apps/pce/pcerest/pom.xml b/apps/pce/pcerest/pom.xml
new file mode 100644
index 0000000..9f902ee
--- /dev/null
+++ b/apps/pce/pcerest/pom.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2016-2017 Open Networking Laboratory
+  ~
+  ~ Licensed 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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+              xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onosproject</groupId>
+        <artifactId>onos-pce</artifactId>
+        <version>1.7.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>onos-app-pcerest</artifactId>
+    <packaging>bundle</packaging>
+    <properties>
+        <web.context>/onos/pce</web.context>
+        <onos.app.name>org.onosproject.pcerest</onos.app.name>
+        <onos.app.title>PCE REST application</onos.app.title>
+        <onos.app.category>Utility</onos.app.category>
+        <onos.app.url>https://wiki.onosproject.org/display/ONOS/</onos.app.url>
+        <onos.app.readme>RESTCONF for PCE.</onos.app.readme>
+    </properties>
+    <description>PCE REST application</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>javax.ws.rs</groupId>
+            <artifactId>javax.ws.rs-api</artifactId>
+            <version>2.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-core-serializers</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-osgi</artifactId>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-misc</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.jersey.containers</groupId>
+            <artifactId>jersey-container-servlet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.jersey.test-framework</groupId>
+            <artifactId>jersey-test-framework-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+            <artifactId>jersey-test-framework-provider-jetty</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-rest</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-incubator-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-app-pce</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <_wab>src/main/resources/</_wab>
+                        <Bundle-SymbolicName>
+                            ${project.groupId}.${project.artifactId}
+                        </Bundle-SymbolicName>
+                        <Import-Package>
+                            *,org.glassfish.jersey.servlet
+                        </Import-Package>
+                        <Web-ContextPath>${web.context}</Web-ContextPath>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PceCodecRegistrator.java b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PceCodecRegistrator.java
similarity index 97%
rename from apps/pce/app/src/main/java/org/onosproject/pce/rest/PceCodecRegistrator.java
rename to apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PceCodecRegistrator.java
index fb4f9ed..685d330 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PceCodecRegistrator.java
+++ b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PceCodecRegistrator.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathCodec.java b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathCodec.java
similarity index 98%
rename from apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathCodec.java
rename to apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathCodec.java
index 9be32e3..034d045 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathCodec.java
+++ b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathCodec.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathWebResource.java b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathWebResource.java
similarity index 96%
rename from apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathWebResource.java
rename to apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathWebResource.java
index a54e0b2..1b7c48b 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PcePathWebResource.java
+++ b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PcePathWebResource.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import static javax.ws.rs.core.Response.Status.OK;
 import static org.onlab.util.Tools.nullIsNotFound;
@@ -69,6 +69,7 @@
      */
     @GET
     @Produces(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.APPLICATION_JSON)
     public Response queryAllPath() {
         log.debug("Query all paths.");
         Iterable<Tunnel> tunnels = get(PceService.class).queryAllPath();
@@ -92,6 +93,7 @@
     @GET
     @Path("{path_id}")
     @Produces(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.APPLICATION_JSON)
     public Response queryPath(@PathParam("path_id") String id) {
         log.debug("Query path by identifier {}.", id);
         Tunnel tunnel = nullIsNotFound(get(PceService.class).queryPath(TunnelId.valueOf(id)),
@@ -183,8 +185,10 @@
      * @param id path id
      * @return 200 OK, 404 if given identifier does not exist
      */
-    @Path("{path_id}")
     @DELETE
+    @Path("{path_id}")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.APPLICATION_JSON)
     public Response releasePath(@PathParam("path_id") String id) {
         log.debug("Deletes path by identifier {}.", id);
 
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PceWebApplication.java b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PceWebApplication.java
similarity index 95%
rename from apps/pce/app/src/main/java/org/onosproject/pce/rest/PceWebApplication.java
rename to apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PceWebApplication.java
index 3ff2dc3..09fc42a 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/rest/PceWebApplication.java
+++ b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/PceWebApplication.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import org.onlab.rest.AbstractWebApplication;
 
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/rest/package-info.java b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/package-info.java
similarity index 94%
rename from apps/pce/app/src/main/java/org/onosproject/pce/rest/package-info.java
rename to apps/pce/pcerest/src/main/java/org/onosproject/pcerest/package-info.java
index a56073c..3cc04cd 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/rest/package-info.java
+++ b/apps/pce/pcerest/src/main/java/org/onosproject/pcerest/package-info.java
@@ -17,4 +17,5 @@
 /**
  * PCE rest application.
  */
-package org.onosproject.pce.rest;
+
+package org.onosproject.pcerest;
diff --git a/apps/pce/app/src/main/webapp/WEB-INF/web.xml b/apps/pce/pcerest/src/main/resources/WEB-INF/web.xml
similarity index 88%
rename from apps/pce/app/src/main/webapp/WEB-INF/web.xml
rename to apps/pce/pcerest/src/main/resources/WEB-INF/web.xml
index 53991f5..66dc27a 100644
--- a/apps/pce/app/src/main/webapp/WEB-INF/web.xml
+++ b/apps/pce/pcerest/src/main/resources/WEB-INF/web.xml
@@ -22,10 +22,10 @@
 
     <servlet>
         <servlet-name>JAX-RS Service</servlet-name>
-        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
+        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
-            <param-value>org.onosproject.pce.rest.PceWebApplication</param-value>
+            <param-value>org.onosproject.pcerest.PceWebApplication</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/rest/MockPceCodecContext.java b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/MockPceCodecContext.java
similarity index 97%
rename from apps/pce/app/src/test/java/org/onosproject/pce/rest/MockPceCodecContext.java
rename to apps/pce/pcerest/src/test/java/org/onosproject/pcerest/MockPceCodecContext.java
index f4704de..07b94fc 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/rest/MockPceCodecContext.java
+++ b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/MockPceCodecContext.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import org.onosproject.codec.CodecContext;
 import org.onosproject.codec.CodecService;
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/rest/PcePathCodecTest.java b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathCodecTest.java
similarity index 98%
rename from apps/pce/app/src/test/java/org/onosproject/pce/rest/PcePathCodecTest.java
rename to apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathCodecTest.java
index 9f970d3..b8d69c5 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/rest/PcePathCodecTest.java
+++ b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathCodecTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/rest/PcePathResourceTest.java b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathResourceTest.java
similarity index 98%
rename from apps/pce/app/src/test/java/org/onosproject/pce/rest/PcePathResourceTest.java
rename to apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathResourceTest.java
index e287c32..a61a294 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/rest/PcePathResourceTest.java
+++ b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PcePathResourceTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.createMock;
@@ -160,8 +160,8 @@
 
        // Annotations
        DefaultAnnotations.Builder builderAnn = DefaultAnnotations.builder();
-       builderAnn.set(PcepAnnotationKeys.LSP_SIG_TYPE, "2");
-       builderAnn.set(PcepAnnotationKeys.COST_TYPE, "2");
+       builderAnn.set(PcepAnnotationKeys.LSP_SIG_TYPE, "WITH_SIGNALLING");
+       builderAnn.set(PcepAnnotationKeys.COST_TYPE, "COST");
        builderAnn.set(PcepAnnotationKeys.BANDWIDTH, "200");
 
        // Tunnel
diff --git a/apps/pce/app/src/test/java/org/onosproject/pce/rest/PceResourceTest.java b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PceResourceTest.java
similarity index 96%
rename from apps/pce/app/src/test/java/org/onosproject/pce/rest/PceResourceTest.java
rename to apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PceResourceTest.java
index 5f39c62..18fa46b 100644
--- a/apps/pce/app/src/test/java/org/onosproject/pce/rest/PceResourceTest.java
+++ b/apps/pce/pcerest/src/test/java/org/onosproject/pcerest/PceResourceTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onosproject.pce.rest;
+package org.onosproject.pcerest;
 
 import org.glassfish.jersey.server.ResourceConfig;
 import org.glassfish.jersey.test.JerseyTest;
diff --git a/apps/pce/app/src/test/resources/org/onosproject/pce/rest/pcePath.json b/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/pcePath.json
similarity index 100%
rename from apps/pce/app/src/test/resources/org/onosproject/pce/rest/pcePath.json
rename to apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/pcePath.json
diff --git a/apps/pce/app/src/test/resources/org/onosproject/pce/rest/post-PcePath.json b/apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/post-PcePath.json
similarity index 100%
rename from apps/pce/app/src/test/resources/org/onosproject/pce/rest/post-PcePath.json
rename to apps/pce/pcerest/src/test/resources/org/onosproject/pcerest/post-PcePath.json
diff --git a/apps/pce/pom.xml b/apps/pce/pom.xml
index 248cf68..ec444fd 100644
--- a/apps/pce/pom.xml
+++ b/apps/pce/pom.xml
@@ -32,6 +32,7 @@
     <modules>
         <module>app</module>
         <module>pceweb</module>
+        <module>pcerest</module>
     </modules>
 
 </project>