Change GUI and GUI2 to be apps rather than core features

Change-Id: I862e5bdbccc29fd78716159e168e7a14bc5053e1
diff --git a/tools/build/bazel/modules.bzl b/tools/build/bazel/modules.bzl
index 8d13e45..2820cb9 100644
--- a/tools/build/bazel/modules.bzl
+++ b/tools/build/bazel/modules.bzl
@@ -71,8 +71,6 @@
     "//providers/general/device:onos-providers-general-device",
     "//providers/p4runtime/packet:onos-providers-p4runtime-packet",
     "//web/api:onos-rest",
-    "//web/gui2:onos-gui2",
-    "//web/gui:onos-gui",
     "//core/protobuf/models/proto:onos-core-protobuf-models-proto",
     "//core/protobuf/models:onos-core-protobuf-models",
 ]
@@ -248,7 +246,8 @@
     "//apps/imr:onos-apps-imr-oar",
     "//apps/nodemetrics:onos-apps-nodemetrics-oar",
     "//apps/inbandtelemetry:onos-apps-inbandtelemetry-oar",
-    # "//web/gui2:onos-web-gui2-oar",
+    "//web/gui2:onos-web-gui2-oar",
+    "//web/gui:onos-web-gui-oar",
     "//apps/workflow:onos-apps-workflow-oar",
     "//apps/workflow/ofoverlay:onos-apps-workflow-ofoverlay-oar",
 ]
@@ -308,8 +307,6 @@
     "//tools/package/features:onos-core",
     "//tools/package/features:onos-cli",
     "//tools/package/features:onos-rest",
-    "//tools/package/features:onos-gui",
-    "//tools/package/features:onos-gui2",
     # "//tools/package/features:onos-security",
 ]
 
diff --git a/tools/dev/mininet/onos.py b/tools/dev/mininet/onos.py
index f8a0d03..6027180 100755
--- a/tools/dev/mininet/onos.py
+++ b/tools/dev/mininet/onos.py
@@ -99,7 +99,7 @@
     environ[ 'ONOS_USER' ] = defaultUser()
     ONOS_USER = sd( 'ONOS_USER', defaultUser() )
     ONOS_APPS = sd( 'ONOS_APPS',
-                     'drivers,openflow,fwd,proxyarp,mobility' )
+                     'gui,drivers,openflow,fwd,proxyarp,mobility' )
     JAVA_OPTS = sd( 'JAVA_OPTS', '-Xms128m -Xmx512m' )
     # ONOS_WEB_{USER,PASS} isn't respected by onos-karaf:
     environ.update( ONOS_WEB_USER='karaf', ONOS_WEB_PASS='karaf' )
diff --git a/tools/dev/vagrant/ansible/roles/onos-install/templates/one_node_cell.j2 b/tools/dev/vagrant/ansible/roles/onos-install/templates/one_node_cell.j2
index 31bb455..555c099 100644
--- a/tools/dev/vagrant/ansible/roles/onos-install/templates/one_node_cell.j2
+++ b/tools/dev/vagrant/ansible/roles/onos-install/templates/one_node_cell.j2
@@ -1,5 +1,5 @@
 export ONOS_NIC="{{ onos_nic }}"
 export OCI="{{ lxc.lxc_one.ip }}"
 export OC1="{{ lxc.lxc_one.ip }}"
-export ONOS_APPS="drivers,openflow"
-export ONOS_USER="sdn"
\ No newline at end of file
+export ONOS_APPS="gui,drivers,openflow"
+export ONOS_USER="sdn"
diff --git a/tools/dev/vagrant/ansible/roles/onos-install/templates/three_node_cell.j2 b/tools/dev/vagrant/ansible/roles/onos-install/templates/three_node_cell.j2
index 9f5616c..bd9c0ef 100644
--- a/tools/dev/vagrant/ansible/roles/onos-install/templates/three_node_cell.j2
+++ b/tools/dev/vagrant/ansible/roles/onos-install/templates/three_node_cell.j2
@@ -3,5 +3,5 @@
 export OC1="{{ lxc.lxc_one.ip }}"
 export OC2="{{ lxc.lxc_two.ip }}"
 export OC3="{{ lxc.lxc_three.ip }}"
-export ONOS_APPS="drivers,openflow"
-export ONOS_USER="sdn"
\ No newline at end of file
+export ONOS_APPS="gui,drivers,openflow"
+export ONOS_USER="sdn"
diff --git a/tools/package/etc/org.apache.karaf.features.cfg b/tools/package/etc/org.apache.karaf.features.cfg
index ce01413..550df84 100644
--- a/tools/package/etc/org.apache.karaf.features.cfg
+++ b/tools/package/etc/org.apache.karaf.features.cfg
@@ -56,8 +56,7 @@
     (onos-api/$ONOS_VERSION, \
     onos-core/$ONOS_VERSION, \
     onos-cli/$ONOS_VERSION, \
-    onos-rest/$ONOS_VERSION, \
-    onos-gui/$ONOS_VERSION)
+    onos-rest/$ONOS_VERSION)
 
 
 #
diff --git a/tools/test/bin/onos-check-apps b/tools/test/bin/onos-check-apps
index 1fd7546..8057adf 100755
--- a/tools/test/bin/onos-check-apps
+++ b/tools/test/bin/onos-check-apps
@@ -26,7 +26,7 @@
 
     # Normalize the expected apps
     apps=${2:-$ONOS_APPS}
-    apps=${apps:-drivers,openflow}
+    apps=${apps:-gui,drivers,openflow}
     (for app in ${apps//,/ }; do echo ${appnameextra}${app}; done) | sort > $aux.2
 
     # Check for differences
diff --git a/tools/test/bin/onos-config b/tools/test/bin/onos-config
index 6c9ad04..d1f6e89 100755
--- a/tools/test/bin/onos-config
+++ b/tools/test/bin/onos-config
@@ -36,7 +36,7 @@
 export ONOS_BOOT_FEATURES="${ONOS_BOOT_FEATURES:-webconsole,onos-api,onos-core,onos-incubator,onos-cli,onos-rest,onos-gui}"
 
 # ONOS builtin apps and providers ignited by default
-export ONOS_APPS="${ONOS_APPS:-drivers,openflow}"
+export ONOS_APPS="${ONOS_APPS:-gui,drivers,openflow}"
 
 ssh -tt $remote "
     echo \"onos.ip = \$(sudo ifconfig | grep $ONOS_NIC | cut -d: -f2 | cut -d\\  -f1)\" \
diff --git a/tools/test/cells/beast b/tools/test/cells/beast
index a4a161d..6f5de2b 100644
--- a/tools/test/cells/beast
+++ b/tools/test/cells/beast
@@ -18,4 +18,4 @@
 # IP address of Mininet
 export OCN=10.192.19.69
 
-export ONOS_APPS="drivers,null,intentperf"
+export ONOS_APPS="gui,drivers,null,intentperf"
diff --git a/tools/test/cells/beast-1 b/tools/test/cells/beast-1
index 27ef405..eb20452 100644
--- a/tools/test/cells/beast-1
+++ b/tools/test/cells/beast-1
@@ -12,4 +12,4 @@
 # IP address of Mininet
 export OCN=10.192.19.69
 
-export ONOS_APPS="drivers,null,intentperf"
+export ONOS_APPS="gui,drivers,null,intentperf"
diff --git a/tools/test/cells/beast-3 b/tools/test/cells/beast-3
index fc39f70..d736da7 100644
--- a/tools/test/cells/beast-3
+++ b/tools/test/cells/beast-3
@@ -14,4 +14,4 @@
 # IP address of Mininet
 export OCN=10.192.19.69
 
-export ONOS_APPS="drivers,null,intentperf"
+export ONOS_APPS="gui,drivers,null,intentperf"
diff --git a/tools/test/cells/beast-5 b/tools/test/cells/beast-5
index 0c84dbb..a11c2b0 100644
--- a/tools/test/cells/beast-5
+++ b/tools/test/cells/beast-5
@@ -16,4 +16,4 @@
 # IP address of Mininet
 export OCN=10.192.19.69
 
-export ONOS_APPS="drivers,null,intentperf"
+export ONOS_APPS="gui,drivers,null,intentperf"
diff --git a/tools/test/cells/demo b/tools/test/cells/demo
index 6211ed9..73137dc 100644
--- a/tools/test/cells/demo
+++ b/tools/test/cells/demo
@@ -6,6 +6,6 @@
 export OC3="10.0.3.103"
 export OCN="10.0.3.1"
 
-export ONOS_APPS=drivers,openflow,proxyarp
+export ONOS_APPS=gui,drivers,openflow,proxyarp
 
 alias sshnet="ssh onos@$OCN"
diff --git a/tools/test/cells/demo-eu b/tools/test/cells/demo-eu
index 414fddd..0f7e8ef 100644
--- a/tools/test/cells/demo-eu
+++ b/tools/test/cells/demo-eu
@@ -6,7 +6,7 @@
 export OC3="10.100.198.203"
 export OCN="10.100.198.200"
 export ONOS_NIC="10.100.198.*"
-export ONOS_APPS=drivers,openflow,proxyarp,mobility,mlb,pathpainter
+export ONOS_APPS=gui,drivers,openflow,proxyarp,mobility,mlb,pathpainter
 export ONOS_GROUP=sdn
 export ONOS_SCENARIOS=$ONOS/tools/test/scenarios
 export ONOS_TOPO=geant
diff --git a/tools/test/cells/ec2 b/tools/test/cells/ec2
index 3d64be2..842f59d 100644
--- a/tools/test/cells/ec2
+++ b/tools/test/cells/ec2
@@ -15,4 +15,4 @@
 export OC6=192.168.200.106
 export OC7=192.168.200.107
 
-export ONOS_APPS="drivers,null,intentperf"
+export ONOS_APPS="gui,drivers,null,intentperf"
diff --git a/tools/test/cells/local b/tools/test/cells/local
index c9a1b1b..5310495 100644
--- a/tools/test/cells/local
+++ b/tools/test/cells/local
@@ -7,4 +7,4 @@
 export OCC2="192.168.56.102"
 export OCN="192.168.56.103"
 
-export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
+export ONOS_APPS="gui,drivers,openflow,fwd,proxyarp,mobility"
diff --git a/tools/test/cells/office b/tools/test/cells/office
index 09405f3..1a03ee2 100644
--- a/tools/test/cells/office
+++ b/tools/test/cells/office
@@ -3,4 +3,4 @@
 export ONOS_NIC="10.1.10.*"
 export OC1="10.1.10.223"
 
-export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
+export ONOS_APPS="gui,drivers,openflow,fwd,proxyarp,mobility"
diff --git a/tools/test/cells/sdnip-pmox b/tools/test/cells/sdnip-pmox
index e95b7e7..3e0bed9 100644
--- a/tools/test/cells/sdnip-pmox
+++ b/tools/test/cells/sdnip-pmox
@@ -5,4 +5,4 @@
 export OC2="10.128.4.66"
 export OC3="10.128.4.67"
 
-export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility,config,sdnip"
+export ONOS_APPS="gui,drivers,openflow,fwd,proxyarp,mobility,config,sdnip"
diff --git a/tools/test/cells/simon-single b/tools/test/cells/simon-single
index 8e15a2b..7ce6ec1 100644
--- a/tools/test/cells/simon-single
+++ b/tools/test/cells/simon-single
@@ -4,4 +4,4 @@
 export OC1="192.168.36.1"
 export OCN="192.168.36.101"
 
-export ONOS_APPS="drivers,openflow,fwd,drivermatrix,null"
+export ONOS_APPS="gui,drivers,openflow,fwd,drivermatrix,null"
diff --git a/tools/test/cells/simon-uk b/tools/test/cells/simon-uk
index 703be03..6fae098 100644
--- a/tools/test/cells/simon-uk
+++ b/tools/test/cells/simon-uk
@@ -39,7 +39,7 @@
 export ONOS_USER=sdn
 
 ## the apps we want activated at startup
-export ONOS_APPS="drivers,openflow,proxyarp,drivermatrix,mlb"
+export ONOS_APPS="gui,drivers,openflow,proxyarp,drivermatrix,mlb"
 
 ## mininet VM
 export OCN="192.168.56.99"
diff --git a/tools/test/cells/simon-uk4 b/tools/test/cells/simon-uk4
index 58ea829..5f81f64 100644
--- a/tools/test/cells/simon-uk4
+++ b/tools/test/cells/simon-uk4
@@ -37,7 +37,7 @@
 export ONOS_USER=sdn
 
 ## the apps we want activated at startup
-export ONOS_APPS="drivers,openflow,proxyarp,drivermatrix,mlb"
+export ONOS_APPS="gui,drivers,openflow,proxyarp,drivermatrix,mlb"
 
 ## mininet VM
 export OCN="192.168.56.99"
diff --git a/tools/test/cells/single b/tools/test/cells/single
index dd03e49..1c20c21 100644
--- a/tools/test/cells/single
+++ b/tools/test/cells/single
@@ -4,4 +4,4 @@
 export OC1="192.168.56.101"
 export OCN="192.168.56.103"
 
-export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
+export ONOS_APPS="gui,drivers,openflow,fwd,proxyarp,mobility"
diff --git a/tools/test/cells/single_optical b/tools/test/cells/single_optical
index ac4fc27..f95c3bd 100644
--- a/tools/test/cells/single_optical
+++ b/tools/test/cells/single_optical
@@ -4,4 +4,4 @@
 export OC1="192.168.56.101"
 export OCN="192.168.56.103"
 
-export ONOS_APPS="drivers,drivers.optical,openflow,fwd,proxyarp,mobility,optical"
+export ONOS_APPS="gui,drivers,drivers.optical,openflow,fwd,proxyarp,mobility,optical"
diff --git a/tools/test/cells/triple b/tools/test/cells/triple
index 4247122..2d882d9 100644
--- a/tools/test/cells/triple
+++ b/tools/test/cells/triple
@@ -6,4 +6,4 @@
 export OC3="192.168.56.104"
 export OCN="192.168.56.103"
 
-export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
+export ONOS_APPS="gui,drivers,openflow,fwd,proxyarp,mobility"
diff --git a/tools/test/cells/tutorial b/tools/test/cells/tutorial
index 4e06eed..6daf0c6 100644
--- a/tools/test/cells/tutorial
+++ b/tools/test/cells/tutorial
@@ -6,4 +6,4 @@
 export OC3="10.0.3.103"
 export OCN="10.0.3.1"
 
-export ONOS_APPS=drivers,openflow,proxyarp
+export ONOS_APPS=gui,drivers,openflow,proxyarp
diff --git a/tools/test/cells/vagrant b/tools/test/cells/vagrant
index e851733..b4c495e 100644
--- a/tools/test/cells/vagrant
+++ b/tools/test/cells/vagrant
@@ -3,7 +3,7 @@
 export OC2=10.100.198.202
 export OC3=10.100.198.203
 export OCN=10.100.198.100
-export ONOS_APPS=drivers,openflow,proxyarp
+export ONOS_APPS=gui,drivers,openflow,proxyarp
 export ONOS_NIC=10.100.198.*
 export ONOS_SCENARIOS=$ONOS_ROOT/tools/test/scenarios
 export ONOS_USER=ubuntu
diff --git a/tools/test/cells/virtual b/tools/test/cells/virtual
index aa6589e..1657da1 100644
--- a/tools/test/cells/virtual
+++ b/tools/test/cells/virtual
@@ -6,8 +6,8 @@
 export OC3="192.168.56.103"
 export OCN="192.168.56.100"
 
-export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
+export ONOS_APPS="gui,drivers,openflow,fwd,proxyarp,mobility"
 
 export ONOS_USER=sdn
 export ONOS_WEB_PASS=sdnrocks
-export ONOS_WEB_USER=onos
\ No newline at end of file
+export ONOS_WEB_USER=onos
diff --git a/tools/test/scenarios/drivers-test.xml b/tools/test/scenarios/drivers-test.xml
index a571093..9ec8c6c 100644
--- a/tools/test/scenarios/drivers-test.xml
+++ b/tools/test/scenarios/drivers-test.xml
@@ -34,7 +34,7 @@
         <group name="DriversTest.Check-Fujitsu-App-Activated" requires="DriversTest.ActivateFujitsuDriverApp">
             <parallel var="${OC#}">
                 <step name="DriversTest.Check-Fujitsu-App-Activated-${#}"
-                      exec="onos-check-apps ${OC#} drivers,openflow,proxyarp,dhcp,fujitsu includes"/>
+                      exec="onos-check-apps ${OC#} gui,drivers,openflow,proxyarp,dhcp,fujitsu includes"/>
             </parallel>
         </group>
         -->
diff --git a/tools/test/scenarios/net-activate-fwd.xml b/tools/test/scenarios/net-activate-fwd.xml
index bad7e22..22be520 100644
--- a/tools/test/scenarios/net-activate-fwd.xml
+++ b/tools/test/scenarios/net-activate-fwd.xml
@@ -21,7 +21,7 @@
                requires="Activate-Fwd-Apps">
             <parallel var="${OC#}">
                 <step name="Check-Fwd-Apps-Activated-${#}"
-                      exec="onos-check-apps ${#} drivers,openflow,proxyarp,fwd includes"/>
+                      exec="onos-check-apps ${#} gui,drivers,openflow,proxyarp,fwd includes"/>
             </parallel>
         </group>
 
diff --git a/tools/test/scenarios/net-setup-odtn.xml b/tools/test/scenarios/net-setup-odtn.xml
index 78987a2..9b6aa08 100644
--- a/tools/test/scenarios/net-setup-odtn.xml
+++ b/tools/test/scenarios/net-setup-odtn.xml
@@ -57,7 +57,7 @@
         <group name="ODTN-Net-Setup.Verify-Apps" requires="ODTN-Net-Setup.Activate-Apps" delay="40">
             <parallel var="${OC#}">
                 <step name="Check-Apps-${#}" exec="onos-check-apps ${OC#} optical-model,yang,config,configsync,faultmanagement,
-                netconf,configsync-netconf,drivers,drivers.netconf,drivers.optical,restconf,protocols.restconfserver,
+                netconf,configsync-netconf,gui,drivers,drivers.netconf,drivers.optical,restconf,protocols.restconfserver,
                 odtn-api,drivers.odtn-driver,odtn-service,models.tapi,models.ietf,models.openconfig,models.openconfig-infinera,
                 models.openconfig-odtn includes"
                       requires="ODTN-Net-Setup.Activate-Apps"/>
diff --git a/tools/test/scenarios/netcfg.xml b/tools/test/scenarios/netcfg.xml
index cfea399..b0ab4c1 100644
--- a/tools/test/scenarios/netcfg.xml
+++ b/tools/test/scenarios/netcfg.xml
@@ -26,7 +26,7 @@
         <group name="Netcfg.Check-Dhcp-App-Activated" requires="Netcfg.Activate-Dhcp">
             <parallel var="${OC#}">
                 <step name="Netcfg.Check-Dhcp-App-Activated-${#}"
-                      exec="onos-check-apps ${OC#} drivers,openflow,proxyarp,dhcp includes"/>
+                      exec="onos-check-apps ${OC#} gui,drivers,openflow,proxyarp,dhcp includes"/>
                 <step name="Netcfg.Check-Dhcp-Component-Active-${#}"
                       exec="onos-check-component ${OC#} org.onosproject.dhcp.impl.DhcpManager ACTIVE"/>
             </parallel>
diff --git a/tools/test/scenarios/yang-live-compile.xml b/tools/test/scenarios/yang-live-compile.xml
index baca2fe..3975a5e 100644
--- a/tools/test/scenarios/yang-live-compile.xml
+++ b/tools/test/scenarios/yang-live-compile.xml
@@ -17,7 +17,7 @@
     <group name="YANG-Live-Compile">
         <step name="Activate-YANG-Runtime" exec="onos ${OC1} app activate org.onosproject.yang"/>
         <step name="Pre-Cleanup-YANG-Model" exec="onos ${OC1} app uninstall l3vpn" env="~"/>
-        <step name="Check-YANG-Runtime" exec="onos-check-apps ${OC1} drivers,yang includes"
+        <step name="Check-YANG-Runtime" exec="onos-check-apps ${OC1} gui,drivers,yang includes"
               requires="Activate-YANG-Runtime"/>
         <step name="Compile-YANG-Model" exec="onos-compile-yang ${OC1} ${ONOS_ROOT}/tools/test/configs/yang"
               requires="Check-YANG-Runtime,Pre-Cleanup-YANG-Model"/>
@@ -29,7 +29,7 @@
                 <step name="Verify-Model-Component-${#}"
                       exec="onos-check-component ${OC#} yang.YangModelRegistrator ACTIVE"/>
                 <step name="Verify-YANG-Apps-${#}"
-                      exec="onos-check-apps ${OC#} drivers,yang,l3vpn includes"/>
+                      exec="onos-check-apps ${OC#} gui,drivers,yang,l3vpn includes"/>
             </parallel>
         </group>
 
diff --git a/tools/test/scenarios/yang-smoke.xml b/tools/test/scenarios/yang-smoke.xml
index ac9b86b..c1e3873 100644
--- a/tools/test/scenarios/yang-smoke.xml
+++ b/tools/test/scenarios/yang-smoke.xml
@@ -21,7 +21,7 @@
                requires="Activate-YANG-Apps">
             <parallel var="${OC#}">
                 <step name="Check-YANG-Apps-Activated-${#}"
-                      exec="onos-check-apps ${#} drivers,yang,yang-gui,models.openroadm includes"/>
+                      exec="onos-check-apps ${#} gui,drivers,yang,yang-gui,models.openroadm includes"/>
             </parallel>
         </group>
         <step name="Verify-Models" exec="onos ${OC1} models | grep org-openroadm-interfaces"
diff --git a/web/gui/BUILD b/web/gui/BUILD
index ab4d983..31c83e1 100644
--- a/web/gui/BUILD
+++ b/web/gui/BUILD
@@ -241,7 +241,7 @@
 """
 
 genrule(
-    name = "onos-gui",
+    name = "onos-web-gui",
     srcs = [
         ":_onos-gui-npm-build",
         ":onos-gui-jar",
@@ -266,3 +266,11 @@
     output_to_bindir = 1,
     visibility = ["//visibility:public"],
 )
+
+onos_app(
+    category = "Graphical User Interface",
+    description = "ONOS GUI - the original ONOS GUI based " +
+                  "on the latest AngularJS - new development should be on GUI2",
+    title = "ONOS Legacy GUI",
+    url = "http://onosproject.org",
+)
diff --git a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.spec.ts b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.spec.ts
index 37a0cbd..2c31610 100644
--- a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.spec.ts
+++ b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.spec.ts
@@ -71,7 +71,7 @@
         windowMock.location.port = p;
         windowMock.location.protocol = prot;
         windowMock.location.href = prot + '://' + h + ':' + p +
-            ctx + '/onos/ui2/';
+            ctx + '/onos/ui/';
     }
 
     it('should define UrlFnService', () => {
@@ -87,37 +87,37 @@
 
     it('should return the correct (http) RS url', () => {
         setLoc('http', 'foo', '123');
-        expect(ufs.rsUrl('path')).toEqual('http://foo:123/onos/ui2/rs/path');
+        expect(ufs.rsUrl('path')).toEqual('http://foo:123/onos/ui/rs/path');
     });
 
     it('should return the correct (https) RS url', () => {
         setLoc('https', 'foo', '123');
-        expect(ufs.rsUrl('path')).toEqual('https://foo:123/onos/ui2/rs/path');
+        expect(ufs.rsUrl('path')).toEqual('https://foo:123/onos/ui/rs/path');
     });
 
     it('should return the correct (ws) WS url', () => {
         setLoc('http', 'foo', '123');
-        expect(ufs.wsUrl('path')).toEqual('ws://foo:123/onos/ui2/websock/path');
+        expect(ufs.wsUrl('path')).toEqual('ws://foo:123/onos/ui/websock/path');
     });
 
     it('should return the correct (wss) WS url', () => {
         setLoc('https', 'foo', '123');
-        expect(ufs.wsUrl('path')).toEqual('wss://foo:123/onos/ui2/websock/path');
+        expect(ufs.wsUrl('path')).toEqual('wss://foo:123/onos/ui/websock/path');
     });
 
     it('should allow us to define an alternate WS port', () => {
         setLoc('http', 'foo', '123');
-        expect(ufs.wsUrl('xyyzy', '456')).toEqual('ws://foo:456/onos/ui2/websock/xyyzy');
+        expect(ufs.wsUrl('xyyzy', '456')).toEqual('ws://foo:456/onos/ui/websock/xyyzy');
     });
 
     it('should allow us to define an alternate host', () => {
         setLoc('http', 'foo', '123');
-        expect(ufs.wsUrl('core', '456', 'bar')).toEqual('ws://bar:456/onos/ui2/websock/core');
+        expect(ufs.wsUrl('core', '456', 'bar')).toEqual('ws://bar:456/onos/ui/websock/core');
     });
 
     it('should allow us to inject an app context', () => {
         setLoc('http', 'foo', '123', '/my/app');
-        expect(ufs.wsUrl('path')).toEqual('ws://foo:123/my/app/onos/ui2/websock/path');
+        expect(ufs.wsUrl('path')).toEqual('ws://foo:123/my/app/onos/ui/websock/path');
     });
 
 });
diff --git a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.ts b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.ts
index 12ca11c..a7576c0 100644
--- a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.ts
+++ b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/urlfn.service.ts
@@ -16,7 +16,7 @@
 import { Injectable, Inject } from '@angular/core';
 import { LogService } from '../log.service';
 
-const UICONTEXT = '/onos/ui2/';
+const UICONTEXT = '/onos/ui/';
 const RSSUFFIX = UICONTEXT + 'rs/';
 const WSSUFFIX = UICONTEXT + 'websock/';
 
diff --git a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/websocket.service.spec.ts b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/websocket.service.spec.ts
index 6c6ade8..7695e13 100644
--- a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/websocket.service.spec.ts
+++ b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/remote/websocket.service.spec.ts
@@ -64,8 +64,8 @@
                 port: '80',
                 protocol: 'http',
                 search: { debug: 'true'},
-                href: 'ws://foo:123/onos/ui2/websock/path',
-                absUrl: 'ws://foo:123/onos/ui2/websock/path'
+                href: 'ws://foo:123/onos/ui/websock/path',
+                absUrl: 'ws://foo:123/onos/ui/websock/path'
             }
         };
         fs = new FnService(ar, logSpy, windowMock);
@@ -108,13 +108,13 @@
 
     it('should use the appropriate URL, createWebsocket', () => {
         const url = wss.createWebSocket();
-        expect(url).toEqual('ws://foo:80/onos/ui2/websock/core');
+        expect(url).toEqual('ws://foo:80/onos/ui/websock/core');
     });
 
     it('should use the appropriate URL with modified port, createWebsocket',
         () => {
             const url = wss.createWebSocket(<WsOptions>{ wsport: 1243 });
-            expect(url).toEqual('ws://foo:1243/onos/ui2/websock/core');
+            expect(url).toEqual('ws://foo:1243/onos/ui/websock/core');
     });
 
     it('should verify websocket event handlers, createWebsocket', () => {
diff --git a/web/gui2/BUILD b/web/gui2/BUILD
index 2e62895..16f4280 100644
--- a/web/gui2/BUILD
+++ b/web/gui2/BUILD
@@ -153,7 +153,7 @@
           " npm -v >> ../../$(location onos-gui2-ng-build-prod.log) &&" +
           " ng version >> ../../$(location onos-gui2-ng-build-prod.log) &&" +
           " ng build --extract-css --prod --preserve-symlinks" +
-          "   --base-href /onos/ui2/ --deploy-url /onos/ui2/ >> $$ROOT/$(location onos-gui2-ng-build-prod.log) 2>&1 ||" +
+          "   --base-href /onos/ui/ --deploy-url /onos/ui/ >> $$ROOT/$(location onos-gui2-ng-build-prod.log) 2>&1 ||" +
           " if [ $$? -eq 0 ]; then echo 'Successfully ran build';" +
           " else " +
           "   echo 'Error running \'ng build\' on \'//web/gui2:_onos-gui2-ng-build\'. \\\n" +
@@ -327,7 +327,7 @@
     ],
     suppress_checkstyle = True,
     test_deps = TEST_DEPS,
-    web_context = "/onos/ui2",
+    web_context = "/onos/ui",
     deps = COMPILE_DEPS,
 )
 
@@ -336,7 +336,7 @@
 """
 
 genrule(
-    name = "onos-gui2",
+    name = "onos-web-gui2",
     srcs = [
         ":_onos-gui2-ng-build",
         ":_onos-gui2-base-jar",
@@ -381,3 +381,11 @@
         "@bazel_tools//tools/bash/runfiles",
     ],
 )
+
+onos_app(
+    category = "Graphical User Interface",
+    description = "ONOS GUI2 - a reengineered version of the original ONOS GUI " +
+                  "based on the latest Angular framework components",
+    title = "ONOS GUI2",
+    url = "http://onosproject.org",
+)
diff --git a/web/gui2/src/main/java/org/onosproject/ui/impl/gui2/LogoutResource.java b/web/gui2/src/main/java/org/onosproject/ui/impl/gui2/LogoutResource.java
index 19c606d..ad96c1f 100644
--- a/web/gui2/src/main/java/org/onosproject/ui/impl/gui2/LogoutResource.java
+++ b/web/gui2/src/main/java/org/onosproject/ui/impl/gui2/LogoutResource.java
@@ -39,7 +39,7 @@
     public Response logout() throws IOException, URISyntaxException {
         servletRequest.getSession().invalidate();
         String url = servletRequest.getRequestURL().toString();
-        url = url.replaceFirst("/onos/ui2/.*", "/onos/ui2/login.html");
+        url = url.replaceFirst("/onos/ui/.*", "/onos/ui/login.html");
         return Response.temporaryRedirect(new URI(url)).build();
     }