Refactored sr app to enable rest api.

The segment routing application structure has been refactored
to the following structure :
	sr
	 ---- app
 	 ---- web

web folder contains the rest cli implementations while app folder
contains everything else. Originally I tried to split the application
in api / app / web, where api would contain all the interfaces. However,
that was not possible due to the fact that most of the classes do not implement
any interfaces and app -- api would result in circular dependencies and we would
not be able to build them.

Change-Id: Ifaaeefe2c5061c8457924ccd01678fb18966c44f
diff --git a/BUCK b/BUCK
index 420a3b3..f70eb88 100644
--- a/BUCK
+++ b/BUCK
@@ -1,33 +1,8 @@
-COMPILE_DEPS = [
-    '//lib:CORE_DEPS',
-    '//lib:JACKSON',
-    '//lib:KRYO',
-    '//lib:org.apache.karaf.shell.console',
-    '//lib:javax.ws.rs-api',
-    '//cli:onos-cli',
-    '//core/common:onos-core-common',
-    '//core/store/serializers:onos-core-serializers',
-    '//incubator/api:onos-incubator-api',
-    '//utils/rest:onlab-rest',
-    '//apps/route-service/api:onos-apps-route-service-api',
-]
-
 BUNDLES = [
-    '//apps/segmentrouting:onos-apps-segmentrouting',
-    '//apps/routing-api:onos-apps-routing-api',
+    '//apps/segmentrouting/app:onos-apps-segmentrouting-app',
+    '//apps/segmentrouting/web:onos-apps-segmentrouting-web',
 ]
 
-TEST_DEPS = [
-    '//lib:TEST_ADAPTERS',
-    '//incubator/api:onos-incubator-api-tests',
-    '//apps/route-service/api:onos-apps-route-service-api-tests',
-]
-
-osgi_jar_with_tests (
-    deps = COMPILE_DEPS,
-    test_deps = TEST_DEPS,
-)
-
 onos_app (
     title = 'Segment Routing',
     category = 'Traffic Steering',
diff --git a/app/BUCK b/app/BUCK
new file mode 100644
index 0000000..9674f76
--- /dev/null
+++ b/app/BUCK
@@ -0,0 +1,22 @@
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//lib:JACKSON',
+    '//lib:KRYO',
+    '//lib:org.apache.karaf.shell.console',
+    '//cli:onos-cli',
+    '//core/common:onos-core-common',
+    '//core/store/serializers:onos-core-serializers',
+    '//incubator/api:onos-incubator-api',
+    '//apps/route-service/api:onos-apps-route-service-api',
+]
+
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//incubator/api:onos-incubator-api-tests',
+    '//apps/route-service/api:onos-apps-route-service-api-tests',
+]
+
+osgi_jar_with_tests (
+    deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
+)
diff --git a/src/main/java/org/onosproject/segmentrouting/AppConfigHandler.java b/app/src/main/java/org/onosproject/segmentrouting/AppConfigHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/AppConfigHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/AppConfigHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/ArpHandler.java b/app/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/ArpHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java b/app/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/DefaultTunnel.java b/app/src/main/java/org/onosproject/segmentrouting/DefaultTunnel.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/DefaultTunnel.java
rename to app/src/main/java/org/onosproject/segmentrouting/DefaultTunnel.java
diff --git a/src/main/java/org/onosproject/segmentrouting/EcmpShortestPathGraph.java b/app/src/main/java/org/onosproject/segmentrouting/EcmpShortestPathGraph.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/EcmpShortestPathGraph.java
rename to app/src/main/java/org/onosproject/segmentrouting/EcmpShortestPathGraph.java
diff --git a/src/main/java/org/onosproject/segmentrouting/HostHandler.java b/app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/HostHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/HostHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java b/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/IpHandler.java b/app/src/main/java/org/onosproject/segmentrouting/IpHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/IpHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/IpHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/LinkHandler.java b/app/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/LinkHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/McastHandler.java b/app/src/main/java/org/onosproject/segmentrouting/McastHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/McastHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/McastHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/Policy.java b/app/src/main/java/org/onosproject/segmentrouting/Policy.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/Policy.java
rename to app/src/main/java/org/onosproject/segmentrouting/Policy.java
diff --git a/src/main/java/org/onosproject/segmentrouting/PolicyHandler.java b/app/src/main/java/org/onosproject/segmentrouting/PolicyHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/PolicyHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/PolicyHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/PortAuthTracker.java b/app/src/main/java/org/onosproject/segmentrouting/PortAuthTracker.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/PortAuthTracker.java
rename to app/src/main/java/org/onosproject/segmentrouting/PortAuthTracker.java
diff --git a/src/main/java/org/onosproject/segmentrouting/RouteHandler.java b/app/src/main/java/org/onosproject/segmentrouting/RouteHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/RouteHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/RouteHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java b/app/src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java
rename to app/src/main/java/org/onosproject/segmentrouting/RoutingRulePopulator.java
diff --git a/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
rename to app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
diff --git a/src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourDispatcher.java b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourDispatcher.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourDispatcher.java
rename to app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourDispatcher.java
diff --git a/src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourHandler.java b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingNeighbourHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java
rename to app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingService.java
diff --git a/src/main/java/org/onosproject/segmentrouting/Tunnel.java b/app/src/main/java/org/onosproject/segmentrouting/Tunnel.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/Tunnel.java
rename to app/src/main/java/org/onosproject/segmentrouting/Tunnel.java
diff --git a/src/main/java/org/onosproject/segmentrouting/TunnelHandler.java b/app/src/main/java/org/onosproject/segmentrouting/TunnelHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/TunnelHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/TunnelHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/TunnelPolicy.java b/app/src/main/java/org/onosproject/segmentrouting/TunnelPolicy.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/TunnelPolicy.java
rename to app/src/main/java/org/onosproject/segmentrouting/TunnelPolicy.java
diff --git a/src/main/java/org/onosproject/segmentrouting/XConnectHandler.java b/app/src/main/java/org/onosproject/segmentrouting/XConnectHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/XConnectHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/XConnectHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/DeviceSubnetListCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/DeviceSubnetListCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/DeviceSubnetListCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/DeviceSubnetListCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/EcmpGraphCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/EcmpGraphCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/EcmpGraphCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/EcmpGraphCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/LinkStateCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/LinkStateCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/LinkStateCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/LinkStateCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/McastNextListCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/McastNextListCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/McastNextListCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/McastNextListCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/McastTreeListCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/McastTreeListCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/McastTreeListCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/McastTreeListCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/NextHopCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/NextHopCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/NextHopCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/NextHopCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/PolicyAddCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/PolicyAddCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/PolicyAddCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/PolicyAddCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/PolicyListCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/PolicyListCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/PolicyListCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/PolicyListCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/PolicyRemoveCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/PolicyRemoveCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/PolicyRemoveCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/PolicyRemoveCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/PseudowireAddCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireAddCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/PseudowireAddCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireAddCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/PseudowireIdCompleter.java b/app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireIdCompleter.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/PseudowireIdCompleter.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireIdCompleter.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/PseudowireListCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireListCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/PseudowireListCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireListCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/PseudowireRemoveCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireRemoveCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/PseudowireRemoveCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/PseudowireRemoveCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/RerouteNetworkCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/RerouteNetworkCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/RerouteNetworkCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/RerouteNetworkCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/TunnelAddCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/TunnelAddCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/TunnelAddCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/TunnelAddCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/TunnelListCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/TunnelListCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/TunnelListCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/TunnelListCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/TunnelRemoveCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/TunnelRemoveCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/TunnelRemoveCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/TunnelRemoveCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/VerifyGroupsCommand.java b/app/src/main/java/org/onosproject/segmentrouting/cli/VerifyGroupsCommand.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/VerifyGroupsCommand.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/VerifyGroupsCommand.java
diff --git a/src/main/java/org/onosproject/segmentrouting/cli/package-info.java b/app/src/main/java/org/onosproject/segmentrouting/cli/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/cli/package-info.java
rename to app/src/main/java/org/onosproject/segmentrouting/cli/package-info.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/BlockedPortsConfig.java b/app/src/main/java/org/onosproject/segmentrouting/config/BlockedPortsConfig.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/BlockedPortsConfig.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/BlockedPortsConfig.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/DeviceConfigNotFoundException.java b/app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfigNotFoundException.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/DeviceConfigNotFoundException.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfigNotFoundException.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java b/app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java b/app/src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/DeviceProperties.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/PwaasConfig.java b/app/src/main/java/org/onosproject/segmentrouting/config/PwaasConfig.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/PwaasConfig.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/PwaasConfig.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfig.java b/app/src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfig.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfig.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfig.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfig.java b/app/src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfig.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfig.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfig.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/XConnectConfig.java b/app/src/main/java/org/onosproject/segmentrouting/config/XConnectConfig.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/XConnectConfig.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/XConnectConfig.java
diff --git a/src/main/java/org/onosproject/segmentrouting/config/package-info.java b/app/src/main/java/org/onosproject/segmentrouting/config/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/config/package-info.java
rename to app/src/main/java/org/onosproject/segmentrouting/config/package-info.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/DestinationSet.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/DestinationSet.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/DestinationSet.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/DestinationSet.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/GroupBucketIdentifier.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/GroupBucketIdentifier.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/GroupBucketIdentifier.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/GroupBucketIdentifier.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/NextNeighbors.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/NextNeighbors.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/NextNeighbors.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/NextNeighbors.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupHandler.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupIdentifier.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupIdentifier.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupIdentifier.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupIdentifier.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupParams.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupParams.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupParams.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/PolicyGroupParams.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/RandomDestinationSet.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/RandomDestinationSet.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/RandomDestinationSet.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/RandomDestinationSet.java
diff --git a/src/main/java/org/onosproject/segmentrouting/grouphandler/package-info.java b/app/src/main/java/org/onosproject/segmentrouting/grouphandler/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/grouphandler/package-info.java
rename to app/src/main/java/org/onosproject/segmentrouting/grouphandler/package-info.java
diff --git a/src/main/java/org/onosproject/segmentrouting/package-info.java b/app/src/main/java/org/onosproject/segmentrouting/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/package-info.java
rename to app/src/main/java/org/onosproject/segmentrouting/package-info.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2Tunnel.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2Tunnel.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2Tunnel.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2Tunnel.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelDescription.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelDescription.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelDescription.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelDescription.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelHandler.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelPolicy.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelPolicy.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelPolicy.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/DefaultL2TunnelPolicy.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/L2Mode.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/L2Tunnel.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/L2Tunnel.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/L2Tunnel.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/L2Tunnel.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelDescription.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelDescription.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelDescription.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelDescription.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelHandler.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelPolicy.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelPolicy.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelPolicy.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/L2TunnelPolicy.java
diff --git a/src/main/java/org/onosproject/segmentrouting/pwaas/package-info.java b/app/src/main/java/org/onosproject/segmentrouting/pwaas/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/pwaas/package-info.java
rename to app/src/main/java/org/onosproject/segmentrouting/pwaas/package-info.java
diff --git a/src/main/java/org/onosproject/segmentrouting/storekey/DestinationSetNextObjectiveStoreKey.java b/app/src/main/java/org/onosproject/segmentrouting/storekey/DestinationSetNextObjectiveStoreKey.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/storekey/DestinationSetNextObjectiveStoreKey.java
rename to app/src/main/java/org/onosproject/segmentrouting/storekey/DestinationSetNextObjectiveStoreKey.java
diff --git a/src/main/java/org/onosproject/segmentrouting/storekey/McastStoreKey.java b/app/src/main/java/org/onosproject/segmentrouting/storekey/McastStoreKey.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/storekey/McastStoreKey.java
rename to app/src/main/java/org/onosproject/segmentrouting/storekey/McastStoreKey.java
diff --git a/src/main/java/org/onosproject/segmentrouting/storekey/PortNextObjectiveStoreKey.java b/app/src/main/java/org/onosproject/segmentrouting/storekey/PortNextObjectiveStoreKey.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/storekey/PortNextObjectiveStoreKey.java
rename to app/src/main/java/org/onosproject/segmentrouting/storekey/PortNextObjectiveStoreKey.java
diff --git a/src/main/java/org/onosproject/segmentrouting/storekey/VlanNextObjectiveStoreKey.java b/app/src/main/java/org/onosproject/segmentrouting/storekey/VlanNextObjectiveStoreKey.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/storekey/VlanNextObjectiveStoreKey.java
rename to app/src/main/java/org/onosproject/segmentrouting/storekey/VlanNextObjectiveStoreKey.java
diff --git a/src/main/java/org/onosproject/segmentrouting/storekey/XConnectStoreKey.java b/app/src/main/java/org/onosproject/segmentrouting/storekey/XConnectStoreKey.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/storekey/XConnectStoreKey.java
rename to app/src/main/java/org/onosproject/segmentrouting/storekey/XConnectStoreKey.java
diff --git a/src/main/java/org/onosproject/segmentrouting/storekey/package-info.java b/app/src/main/java/org/onosproject/segmentrouting/storekey/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/storekey/package-info.java
rename to app/src/main/java/org/onosproject/segmentrouting/storekey/package-info.java
diff --git a/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/app/src/main/resources/OSGI-INF/blueprint/shell-config.xml
similarity index 100%
rename from src/main/resources/OSGI-INF/blueprint/shell-config.xml
rename to app/src/main/resources/OSGI-INF/blueprint/shell-config.xml
diff --git a/src/test/java/org/onosproject/segmentrouting/AugmentedPortAuthTracker.java b/app/src/test/java/org/onosproject/segmentrouting/AugmentedPortAuthTracker.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/AugmentedPortAuthTracker.java
rename to app/src/test/java/org/onosproject/segmentrouting/AugmentedPortAuthTracker.java
diff --git a/src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java b/app/src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/HostHandlerTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockBridgingTableKey.java b/app/src/test/java/org/onosproject/segmentrouting/MockBridgingTableKey.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockBridgingTableKey.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockBridgingTableKey.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockBridgingTableValue.java b/app/src/test/java/org/onosproject/segmentrouting/MockBridgingTableValue.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockBridgingTableValue.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockBridgingTableValue.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockDefaultRoutingHandler.java b/app/src/test/java/org/onosproject/segmentrouting/MockDefaultRoutingHandler.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockDefaultRoutingHandler.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockDefaultRoutingHandler.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockDevice.java b/app/src/test/java/org/onosproject/segmentrouting/MockDevice.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockDevice.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockDevice.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockDeviceService.java b/app/src/test/java/org/onosproject/segmentrouting/MockDeviceService.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockDeviceService.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockDeviceService.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockFlowObjectiveService.java b/app/src/test/java/org/onosproject/segmentrouting/MockFlowObjectiveService.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockFlowObjectiveService.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockFlowObjectiveService.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockHostService.java b/app/src/test/java/org/onosproject/segmentrouting/MockHostService.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockHostService.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockHostService.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java b/app/src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockInterfaceService.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockLinkHandler.java b/app/src/test/java/org/onosproject/segmentrouting/MockLinkHandler.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockLinkHandler.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockLinkHandler.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockLocationProbingService.java b/app/src/test/java/org/onosproject/segmentrouting/MockLocationProbingService.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockLocationProbingService.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockLocationProbingService.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockMastershipService.java b/app/src/test/java/org/onosproject/segmentrouting/MockMastershipService.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockMastershipService.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockMastershipService.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java b/app/src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockNetworkConfigRegistry.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockRouteService.java b/app/src/test/java/org/onosproject/segmentrouting/MockRouteService.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockRouteService.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockRouteService.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockRoutingRulePopulator.java b/app/src/test/java/org/onosproject/segmentrouting/MockRoutingRulePopulator.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockRoutingRulePopulator.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockRoutingRulePopulator.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockRoutingTableKey.java b/app/src/test/java/org/onosproject/segmentrouting/MockRoutingTableKey.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockRoutingTableKey.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockRoutingTableKey.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockRoutingTableValue.java b/app/src/test/java/org/onosproject/segmentrouting/MockRoutingTableValue.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockRoutingTableValue.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockRoutingTableValue.java
diff --git a/src/test/java/org/onosproject/segmentrouting/MockSegmentRoutingManager.java b/app/src/test/java/org/onosproject/segmentrouting/MockSegmentRoutingManager.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/MockSegmentRoutingManager.java
rename to app/src/test/java/org/onosproject/segmentrouting/MockSegmentRoutingManager.java
diff --git a/src/test/java/org/onosproject/segmentrouting/PortAuthTrackerTest.java b/app/src/test/java/org/onosproject/segmentrouting/PortAuthTrackerTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/PortAuthTrackerTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/PortAuthTrackerTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/PwaasConfigTest.java b/app/src/test/java/org/onosproject/segmentrouting/PwaasConfigTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/PwaasConfigTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/PwaasConfigTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/RouteHandlerTest.java b/app/src/test/java/org/onosproject/segmentrouting/RouteHandlerTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/RouteHandlerTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/RouteHandlerTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/config/BlockedPortsConfigTest.java b/app/src/test/java/org/onosproject/segmentrouting/config/BlockedPortsConfigTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/config/BlockedPortsConfigTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/config/BlockedPortsConfigTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfigTest.java b/app/src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfigTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfigTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingAppConfigTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfigTest.java b/app/src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfigTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfigTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/config/SegmentRoutingDeviceConfigTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/config/XConnectConfigTest.java b/app/src/test/java/org/onosproject/segmentrouting/config/XConnectConfigTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/config/XConnectConfigTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/config/XConnectConfigTest.java
diff --git a/src/test/java/org/onosproject/segmentrouting/grouphandler/DestinationSetTest.java b/app/src/test/java/org/onosproject/segmentrouting/grouphandler/DestinationSetTest.java
similarity index 100%
rename from src/test/java/org/onosproject/segmentrouting/grouphandler/DestinationSetTest.java
rename to app/src/test/java/org/onosproject/segmentrouting/grouphandler/DestinationSetTest.java
diff --git a/src/test/resources/app-ecmp.json b/app/src/test/resources/app-ecmp.json
similarity index 100%
rename from src/test/resources/app-ecmp.json
rename to app/src/test/resources/app-ecmp.json
diff --git a/src/test/resources/app-invalid.json b/app/src/test/resources/app-invalid.json
similarity index 100%
rename from src/test/resources/app-invalid.json
rename to app/src/test/resources/app-invalid.json
diff --git a/src/test/resources/app.json b/app/src/test/resources/app.json
similarity index 100%
rename from src/test/resources/app.json
rename to app/src/test/resources/app.json
diff --git a/src/test/resources/blocked-ports-alt.json b/app/src/test/resources/blocked-ports-alt.json
similarity index 100%
rename from src/test/resources/blocked-ports-alt.json
rename to app/src/test/resources/blocked-ports-alt.json
diff --git a/src/test/resources/blocked-ports.json b/app/src/test/resources/blocked-ports.json
similarity index 100%
rename from src/test/resources/blocked-ports.json
rename to app/src/test/resources/blocked-ports.json
diff --git a/src/test/resources/device-invalid.json b/app/src/test/resources/device-invalid.json
similarity index 100%
rename from src/test/resources/device-invalid.json
rename to app/src/test/resources/device-invalid.json
diff --git a/src/test/resources/device-ipv6.json b/app/src/test/resources/device-ipv6.json
similarity index 100%
rename from src/test/resources/device-ipv6.json
rename to app/src/test/resources/device-ipv6.json
diff --git a/src/test/resources/device-pair.json b/app/src/test/resources/device-pair.json
similarity index 100%
rename from src/test/resources/device-pair.json
rename to app/src/test/resources/device-pair.json
diff --git a/src/test/resources/device.json b/app/src/test/resources/device.json
similarity index 100%
rename from src/test/resources/device.json
rename to app/src/test/resources/device.json
diff --git a/src/test/resources/pwaas-conflicting-vlan.json b/app/src/test/resources/pwaas-conflicting-vlan.json
similarity index 100%
rename from src/test/resources/pwaas-conflicting-vlan.json
rename to app/src/test/resources/pwaas-conflicting-vlan.json
diff --git a/src/test/resources/pwaas-invalid-mode.json b/app/src/test/resources/pwaas-invalid-mode.json
similarity index 100%
rename from src/test/resources/pwaas-invalid-mode.json
rename to app/src/test/resources/pwaas-invalid-mode.json
diff --git a/src/test/resources/pwaas-invalid-pwlabel.json b/app/src/test/resources/pwaas-invalid-pwlabel.json
similarity index 100%
rename from src/test/resources/pwaas-invalid-pwlabel.json
rename to app/src/test/resources/pwaas-invalid-pwlabel.json
diff --git a/src/test/resources/pwaas-invalid-vlan.json b/app/src/test/resources/pwaas-invalid-vlan.json
similarity index 100%
rename from src/test/resources/pwaas-invalid-vlan.json
rename to app/src/test/resources/pwaas-invalid-vlan.json
diff --git a/src/test/resources/pwaas.json b/app/src/test/resources/pwaas.json
similarity index 100%
rename from src/test/resources/pwaas.json
rename to app/src/test/resources/pwaas.json
diff --git a/src/test/resources/xconnect-invalid.json b/app/src/test/resources/xconnect-invalid.json
similarity index 100%
rename from src/test/resources/xconnect-invalid.json
rename to app/src/test/resources/xconnect-invalid.json
diff --git a/src/test/resources/xconnect.json b/app/src/test/resources/xconnect.json
similarity index 100%
rename from src/test/resources/xconnect.json
rename to app/src/test/resources/xconnect.json
diff --git a/web/BUCK b/web/BUCK
new file mode 100644
index 0000000..bf6864c
--- /dev/null
+++ b/web/BUCK
@@ -0,0 +1,16 @@
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//lib:JACKSON',
+    '//lib:javax.ws.rs-api',
+    '//utils/rest:onlab-rest',
+    '//apps/segmentrouting/app:onos-apps-segmentrouting-app',
+]
+
+osgi_jar_with_tests (
+    deps = COMPILE_DEPS,
+    web_context = '/onos/segmentrouting',
+    api_title = 'Segment Routing Rest Server',
+    api_version = '1.0',
+    api_description = 'REST API for Segment Routing Application',
+    api_package = 'org.onosproject.segmentrouting.web',
+)
diff --git a/web/src/main/java/org/onosproject/segmentrouting/package-info.java b/web/src/main/java/org/onosproject/segmentrouting/package-info.java
new file mode 100644
index 0000000..ff9555e
--- /dev/null
+++ b/web/src/main/java/org/onosproject/segmentrouting/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2015-present Open Networking Foundation
+ *
+ * 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.
+ */
+
+/**
+ * Segment routing application components.
+ */
+package org.onosproject.segmentrouting.web;
\ No newline at end of file
diff --git a/src/main/java/org/onosproject/segmentrouting/web/PolicyCodec.java b/web/src/main/java/org/onosproject/segmentrouting/web/PolicyCodec.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/web/PolicyCodec.java
rename to web/src/main/java/org/onosproject/segmentrouting/web/PolicyCodec.java
diff --git a/src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java b/web/src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java
rename to web/src/main/java/org/onosproject/segmentrouting/web/PolicyWebResource.java
diff --git a/src/main/java/org/onosproject/segmentrouting/web/TunnelCodec.java b/web/src/main/java/org/onosproject/segmentrouting/web/TunnelCodec.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/web/TunnelCodec.java
rename to web/src/main/java/org/onosproject/segmentrouting/web/TunnelCodec.java
diff --git a/src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java b/web/src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java
rename to web/src/main/java/org/onosproject/segmentrouting/web/TunnelWebResource.java
diff --git a/src/main/java/org/onosproject/segmentrouting/web/package-info.java b/web/src/main/java/org/onosproject/segmentrouting/web/package-info.java
similarity index 100%
rename from src/main/java/org/onosproject/segmentrouting/web/package-info.java
rename to web/src/main/java/org/onosproject/segmentrouting/web/package-info.java
diff --git a/src/main/webapp/WEB-INF/web.xml b/web/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from src/main/webapp/WEB-INF/web.xml
rename to web/src/main/webapp/WEB-INF/web.xml