Committed by
Gerrit Code Review
Apps-- added onos.app.title property to applications.
Change-Id: Id845390ee0bee5b871c0ce9f47b2ce98fbcf26b9
Showing
63 changed files
with
192 additions
and
55 deletions
... | @@ -40,6 +40,7 @@ | ... | @@ -40,6 +40,7 @@ |
40 | <properties> | 40 | <properties> |
41 | <onos.app.name>org.onosproject.acl</onos.app.name> | 41 | <onos.app.name>org.onosproject.acl</onos.app.name> |
42 | <onos.app.origin>DLUT</onos.app.origin> | 42 | <onos.app.origin>DLUT</onos.app.origin> |
43 | + <onos.app.title>ONOS ACL App</onos.app.title> | ||
43 | <onos.app.category>default</onos.app.category> | 44 | <onos.app.category>default</onos.app.category> |
44 | <onos.app.url>http://onosproject.org</onos.app.url> | 45 | <onos.app.url>http://onosproject.org</onos.app.url> |
45 | <onos.app.readme>ONOS ACL application.</onos.app.readme> | 46 | <onos.app.readme>ONOS ACL application.</onos.app.readme> | ... | ... |
... | @@ -34,6 +34,7 @@ | ... | @@ -34,6 +34,7 @@ |
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.cip</onos.app.name> | 35 | <onos.app.name>org.onosproject.cip</onos.app.name> |
36 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
37 | + <onos.app.title>Cluster IP Alias App</onos.app.title> | ||
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Cluster IP alias application.</onos.app.readme> | 39 | <onos.app.readme>Cluster IP alias application.</onos.app.readme> |
39 | </properties> | 40 | </properties> | ... | ... |
... | @@ -32,6 +32,7 @@ | ... | @@ -32,6 +32,7 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.cordfabric</onos.app.name> | 34 | <onos.app.name>org.onosproject.cordfabric</onos.app.name> |
35 | + <onos.app.title>CORD Fabric App</onos.app.title> | ||
35 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
36 | <onos.app.url>http://onosproject.org</onos.app.url> | 37 | <onos.app.url>http://onosproject.org</onos.app.url> |
37 | <onos.app.readme>Simple fabric application for CORD.</onos.app.readme> | 38 | <onos.app.readme>Simple fabric application for CORD.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.cordvtn</onos.app.name> | 35 | <onos.app.name>org.onosproject.cordvtn</onos.app.name> |
36 | + <onos.app.title>CORD Virtual Tenant Network</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Virtual tenant network service for CORD.</onos.app.readme> | 39 | <onos.app.readme>Virtual tenant network service for CORD.</onos.app.readme> | ... | ... |
... | @@ -33,9 +33,10 @@ | ... | @@ -33,9 +33,10 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.drivermatrix</onos.app.name> | 35 | <onos.app.name>org.onosproject.drivermatrix</onos.app.name> |
36 | + <onos.app.title>Driver Behaviour Support Matrix</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | - <onos.app.readme>Driver behavior support matrix.</onos.app.readme> | 39 | + <onos.app.readme>Driver behaviour support matrix.</onos.app.readme> |
39 | </properties> | 40 | </properties> |
40 | 41 | ||
41 | </project> | 42 | </project> | ... | ... |
... | @@ -32,6 +32,7 @@ | ... | @@ -32,6 +32,7 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.events</onos.app.name> | 34 | <onos.app.name>org.onosproject.events</onos.app.name> |
35 | + <onos.app.title>ONOS Event History App</onos.app.title> | ||
35 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
36 | <onos.app.url>http://onosproject.org</onos.app.url> | 37 | <onos.app.url>http://onosproject.org</onos.app.url> |
37 | <onos.app.readme>ONOS event history display application.</onos.app.readme> | 38 | <onos.app.readme>ONOS event history display application.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.flowanalyzer</onos.app.name> | 35 | <onos.app.name>org.onosproject.flowanalyzer</onos.app.name> |
36 | + <onos.app.title>Flow Space Analyzer</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Simple flow space analyzer.</onos.app.readme> | 39 | <onos.app.readme>Simple flow space analyzer.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.fwd</onos.app.name> | 35 | <onos.app.name>org.onosproject.fwd</onos.app.name> |
36 | + <onos.app.title>Reactive Forwarding App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Reactive forwarding application using flow subsystem.</onos.app.readme> | 39 | <onos.app.readme>Reactive forwarding application using flow subsystem.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.igmp</onos.app.name> | 35 | <onos.app.name>org.onosproject.igmp</onos.app.name> |
36 | + <onos.app.title>IGMP App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>IGMP implementation.</onos.app.readme> | 39 | <onos.app.readme>IGMP implementation.</onos.app.readme> | ... | ... |
... | @@ -30,6 +30,7 @@ | ... | @@ -30,6 +30,7 @@ |
30 | 30 | ||
31 | <properties> | 31 | <properties> |
32 | <onos.app.name>org.onosproject.iptopology-api</onos.app.name> | 32 | <onos.app.name>org.onosproject.iptopology-api</onos.app.name> |
33 | + <onos.app.title>IP Layer Topology API</onos.app.title> | ||
33 | <onos.app.category>default</onos.app.category> | 34 | <onos.app.category>default</onos.app.category> |
34 | <onos.app.url>http://onosproject.org</onos.app.url> | 35 | <onos.app.url>http://onosproject.org</onos.app.url> |
35 | <onos.app.readme>IP layer topology API.</onos.app.readme> | 36 | <onos.app.readme>IP layer topology API.</onos.app.readme> | ... | ... |
... | @@ -33,9 +33,11 @@ | ... | @@ -33,9 +33,11 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.metrics</onos.app.name> | 35 | <onos.app.name>org.onosproject.metrics</onos.app.name> |
36 | + <onos.app.title>Performance Metrics App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | - <onos.app.readme>Performance metrics collection application. | 39 | + <onos.app.readme> |
40 | + Performance metrics collection application. | ||
39 | </onos.app.readme> | 41 | </onos.app.readme> |
40 | </properties> | 42 | </properties> |
41 | 43 | ... | ... |
... | @@ -33,9 +33,11 @@ | ... | @@ -33,9 +33,11 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.mfwd</onos.app.name> | 35 | <onos.app.name>org.onosproject.mfwd</onos.app.name> |
36 | + <onos.app.title>Multicast Forwarding App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | - <onos.app.readme>Multicast forwarding application. | 39 | + <onos.app.readme> |
40 | + Multicast forwarding application. | ||
39 | </onos.app.readme> | 41 | </onos.app.readme> |
40 | </properties> | 42 | </properties> |
41 | 43 | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.mlb</onos.app.name> | 35 | <onos.app.name>org.onosproject.mlb</onos.app.name> |
36 | + <onos.app.title>Mastership Load Balancer App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Application that balances mastership among nodes. | 39 | <onos.app.readme>Application that balances mastership among nodes. | ... | ... |
... | @@ -33,9 +33,11 @@ | ... | @@ -33,9 +33,11 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.mobility</onos.app.name> | 35 | <onos.app.name>org.onosproject.mobility</onos.app.name> |
36 | + <onos.app.title>Host Mobility App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | - <onos.app.readme>Host mobility application. | 39 | + <onos.app.readme> |
40 | + Host mobility application. | ||
39 | </onos.app.readme> | 41 | </onos.app.readme> |
40 | </properties> | 42 | </properties> |
41 | 43 | ... | ... |
... | @@ -32,6 +32,7 @@ | ... | @@ -32,6 +32,7 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.openstackinterface</onos.app.name> | 34 | <onos.app.name>org.onosproject.openstackinterface</onos.app.name> |
35 | + <onos.app.title>Openstack Interface App</onos.app.title> | ||
35 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
36 | <onos.app.url>http://onosproject.org</onos.app.url> | 37 | <onos.app.url>http://onosproject.org</onos.app.url> |
37 | <onos.app.readme>Openstack Interface Application.</onos.app.readme> | 38 | <onos.app.readme>Openstack Interface Application.</onos.app.readme> | ... | ... |
... | @@ -31,6 +31,7 @@ | ... | @@ -31,6 +31,7 @@ |
31 | 31 | ||
32 | <properties> | 32 | <properties> |
33 | <onos.app.name>org.onosproject.openstacknetworking</onos.app.name> | 33 | <onos.app.name>org.onosproject.openstacknetworking</onos.app.name> |
34 | + <onos.app.title>Openstack Networking App</onos.app.title> | ||
34 | <onos.app.category>default</onos.app.category> | 35 | <onos.app.category>default</onos.app.category> |
35 | <onos.app.url>http://onosproject.org</onos.app.url> | 36 | <onos.app.url>http://onosproject.org</onos.app.url> |
36 | <onos.app.readme>Openstack Networking Application.</onos.app.readme> | 37 | <onos.app.readme>Openstack Networking Application.</onos.app.readme> | ... | ... |
... | @@ -34,6 +34,7 @@ | ... | @@ -34,6 +34,7 @@ |
34 | 34 | ||
35 | <properties> | 35 | <properties> |
36 | <onos.app.name>org.onosproject.openstacknode</onos.app.name> | 36 | <onos.app.name>org.onosproject.openstacknode</onos.app.name> |
37 | + <onos.app.title>SONA Openstack Node Bootstrap App</onos.app.title> | ||
37 | <onos.app.category>default</onos.app.category> | 38 | <onos.app.category>default</onos.app.category> |
38 | <onos.app.url>http://onosproject.org</onos.app.url> | 39 | <onos.app.url>http://onosproject.org</onos.app.url> |
39 | <onos.app.readme>SONA Openstack Node Bootstrap Application</onos.app.readme> | 40 | <onos.app.readme>SONA Openstack Node Bootstrap Application</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.optical</onos.app.name> | 35 | <onos.app.name>org.onosproject.optical</onos.app.name> |
36 | + <onos.app.title>Packet/Optical Use-Case App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Packet/Optical use-case application. | 39 | <onos.app.readme>Packet/Optical use-case application. | ... | ... |
... | @@ -33,10 +33,13 @@ | ... | @@ -33,10 +33,13 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.pathpainter</onos.app.name> | 35 | <onos.app.name>org.onosproject.pathpainter</onos.app.name> |
36 | + <onos.app.title>Path Visualization App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>https://wiki.onosproject.org/display/ONOS/Path+Painter+Application+GUI</onos.app.url> | 38 | <onos.app.url>https://wiki.onosproject.org/display/ONOS/Path+Painter+Application+GUI</onos.app.url> |
39 | + <onos.app.title> | ||
40 | + Path visualization application | ||
41 | + </onos.app.title> | ||
38 | <onos.app.readme> | 42 | <onos.app.readme> |
39 | - Path visualization application. | ||
40 | Allows the user to visualize different types of paths between | 43 | Allows the user to visualize different types of paths between |
41 | network entities such as switches and hosts. | 44 | network entities such as switches and hosts. |
42 | Selectable path types are shortest, disjoint and geographical. | 45 | Selectable path types are shortest, disjoint and geographical. | ... | ... |
... | @@ -30,6 +30,7 @@ | ... | @@ -30,6 +30,7 @@ |
30 | 30 | ||
31 | <properties> | 31 | <properties> |
32 | <onos.app.name>org.onosproject.pcep-api</onos.app.name> | 32 | <onos.app.name>org.onosproject.pcep-api</onos.app.name> |
33 | + <onos.app.title>PCEP Protocol API</onos.app.title> | ||
33 | <onos.app.category>default</onos.app.category> | 34 | <onos.app.category>default</onos.app.category> |
34 | <onos.app.url>http://onosproject.org</onos.app.url> | 35 | <onos.app.url>http://onosproject.org</onos.app.url> |
35 | <onos.app.readme>PCEP protocol API.</onos.app.readme> | 36 | <onos.app.readme>PCEP protocol API.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.pim</onos.app.name> | 35 | <onos.app.name>org.onosproject.pim</onos.app.name> |
36 | + <onos.app.title>Protocol Independent Multicast Emulation</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Protocol independent multicast emulation.</onos.app.readme> | 39 | <onos.app.readme>Protocol independent multicast emulation.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.proxyarp</onos.app.name> | 35 | <onos.app.name>org.onosproject.proxyarp</onos.app.name> |
36 | + <onos.app.title>Proxy ARP/NDP App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Proxy ARP/NDP application.</onos.app.readme> | 39 | <onos.app.readme>Proxy ARP/NDP application.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.reactive.routing</onos.app.name> | 35 | <onos.app.name>org.onosproject.reactive.routing</onos.app.name> |
36 | + <onos.app.title>SDN-IP Reactive Routing App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>SDN-IP reactive routing application.</onos.app.readme> | 39 | <onos.app.readme>SDN-IP reactive routing application.</onos.app.readme> | ... | ... |
... | @@ -32,6 +32,7 @@ | ... | @@ -32,6 +32,7 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.routing-api</onos.app.name> | 34 | <onos.app.name>org.onosproject.routing-api</onos.app.name> |
35 | + <onos.app.title>Routing API</onos.app.title> | ||
35 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
36 | <onos.app.url>http://onosproject.org</onos.app.url> | 37 | <onos.app.url>http://onosproject.org</onos.app.url> |
37 | <onos.app.readme>API for routing applications.</onos.app.readme> | 38 | <onos.app.readme>API for routing applications.</onos.app.readme> | ... | ... |
... | @@ -32,9 +32,10 @@ | ... | @@ -32,9 +32,10 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.routing</onos.app.name> | 34 | <onos.app.name>org.onosproject.routing</onos.app.name> |
35 | + <onos.app.title>SDN-IP Routing App</onos.app.title> | ||
35 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
36 | <onos.app.url>http://onosproject.org</onos.app.url> | 37 | <onos.app.url>http://onosproject.org</onos.app.url> |
37 | - <onos.app.readme>SDN-IP reactive routing application.</onos.app.readme> | 38 | + <onos.app.readme>SDN-IP routing application.</onos.app.readme> |
38 | </properties> | 39 | </properties> |
39 | 40 | ||
40 | <dependencies> | 41 | <dependencies> | ... | ... |
... | @@ -32,6 +32,7 @@ | ... | @@ -32,6 +32,7 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.segmentrouting</onos.app.name> | 34 | <onos.app.name>org.onosproject.segmentrouting</onos.app.name> |
35 | + <onos.app.title>Segment Routing App</onos.app.title> | ||
35 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
36 | <onos.app.url>http://onosproject.org</onos.app.url> | 37 | <onos.app.url>http://onosproject.org</onos.app.url> |
37 | <onos.app.readme>Segment routing application.</onos.app.readme> | 38 | <onos.app.readme>Segment routing application.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.demo</onos.app.name> | 35 | <onos.app.name>org.onosproject.demo</onos.app.name> |
36 | + <onos.app.title>Flow Throughput Demo</onos.app.title> | ||
36 | <onos.app.category>test</onos.app.category> | 37 | <onos.app.category>test</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Flow throughput test application.</onos.app.readme> | 39 | <onos.app.readme>Flow throughput test application.</onos.app.readme> | ... | ... |
... | @@ -34,6 +34,7 @@ | ... | @@ -34,6 +34,7 @@ |
34 | 34 | ||
35 | <properties> | 35 | <properties> |
36 | <onos.app.name>org.onosproject.distributedprimitives</onos.app.name> | 36 | <onos.app.name>org.onosproject.distributedprimitives</onos.app.name> |
37 | + <onos.app.title>Distributed Primitives Test App</onos.app.title> | ||
37 | <onos.app.category>test</onos.app.category> | 38 | <onos.app.category>test</onos.app.category> |
38 | <onos.app.url>http://onosproject.org</onos.app.url> | 39 | <onos.app.url>http://onosproject.org</onos.app.url> |
39 | <onos.app.readme>ONOS app to test distributed primitives.</onos.app.readme> | 40 | <onos.app.readme>ONOS app to test distributed primitives.</onos.app.readme> | ... | ... |
... | @@ -34,6 +34,7 @@ | ... | @@ -34,6 +34,7 @@ |
34 | 34 | ||
35 | <properties> | 35 | <properties> |
36 | <onos.app.name>org.onosproject.election</onos.app.name> | 36 | <onos.app.name>org.onosproject.election</onos.app.name> |
37 | + <onos.app.title>Master Election Test App</onos.app.title> | ||
37 | <onos.app.category>test</onos.app.category> | 38 | <onos.app.category>test</onos.app.category> |
38 | <onos.app.url>http://onosproject.org</onos.app.url> | 39 | <onos.app.url>http://onosproject.org</onos.app.url> |
39 | <onos.app.readme>Master election test application.</onos.app.readme> | 40 | <onos.app.readme>Master election test application.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.intentperf</onos.app.name> | 35 | <onos.app.name>org.onosproject.intentperf</onos.app.name> |
36 | + <onos.app.title>Intent Performance Test App</onos.app.title> | ||
36 | <onos.app.category>test</onos.app.category> | 37 | <onos.app.category>test</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>intent performance test application.</onos.app.readme> | 39 | <onos.app.readme>intent performance test application.</onos.app.readme> | ... | ... |
... | @@ -34,6 +34,7 @@ | ... | @@ -34,6 +34,7 @@ |
34 | 34 | ||
35 | <properties> | 35 | <properties> |
36 | <onos.app.name>org.onosproject.loadtest</onos.app.name> | 36 | <onos.app.name>org.onosproject.loadtest</onos.app.name> |
37 | + <onos.app.title>Distributed Load Test App</onos.app.title> | ||
37 | <onos.app.category>test</onos.app.category> | 38 | <onos.app.category>test</onos.app.category> |
38 | <onos.app.url>http://onosproject.org</onos.app.url> | 39 | <onos.app.url>http://onosproject.org</onos.app.url> |
39 | <onos.app.readme>Distributed consensus load test application.</onos.app.readme> | 40 | <onos.app.readme>Distributed consensus load test application.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.messagingperf</onos.app.name> | 35 | <onos.app.name>org.onosproject.messagingperf</onos.app.name> |
36 | + <onos.app.title>Messaging Performance Test App</onos.app.title> | ||
36 | <onos.app.category>test</onos.app.category> | 37 | <onos.app.category>test</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Messaging performance test application.</onos.app.readme> | 39 | <onos.app.readme>Messaging performance test application.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.virtualbng</onos.app.name> | 35 | <onos.app.name>org.onosproject.virtualbng</onos.app.name> |
36 | + <onos.app.title>Virtual Broadband Gateway App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>Virtual broadband gateway application.</onos.app.readme> | 39 | <onos.app.readme>Virtual broadband gateway application.</onos.app.readme> | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.xosintegration</onos.app.name> | 35 | <onos.app.name>org.onosproject.xosintegration</onos.app.name> |
36 | + <onos.app.title>ONOS XOS Integration App</onos.app.title> | ||
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> |
38 | <onos.app.readme>ONOS XOS integration application.</onos.app.readme> | 39 | <onos.app.readme>ONOS XOS integration application.</onos.app.readme> | ... | ... |
... | @@ -51,6 +51,13 @@ public interface ApplicationDescription { | ... | @@ -51,6 +51,13 @@ public interface ApplicationDescription { |
51 | String origin(); | 51 | String origin(); |
52 | 52 | ||
53 | /** | 53 | /** |
54 | + * Returns title of the application. | ||
55 | + * | ||
56 | + * @return application title text | ||
57 | + */ | ||
58 | + String title(); | ||
59 | + | ||
60 | + /** | ||
54 | * Returns description of the application. | 61 | * Returns description of the application. |
55 | * | 62 | * |
56 | * @return application description text | 63 | * @return application description text | ... | ... |
... | @@ -35,6 +35,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { | ... | @@ -35,6 +35,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { |
35 | 35 | ||
36 | private final String name; | 36 | private final String name; |
37 | private final Version version; | 37 | private final Version version; |
38 | + private final String title; | ||
38 | private final String description; | 39 | private final String description; |
39 | private final String origin; | 40 | private final String origin; |
40 | private final String category; | 41 | private final String category; |
... | @@ -52,6 +53,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { | ... | @@ -52,6 +53,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { |
52 | * | 53 | * |
53 | * @param name application name | 54 | * @param name application name |
54 | * @param version application version | 55 | * @param version application version |
56 | + * @param title application title | ||
55 | * @param description application description | 57 | * @param description application description |
56 | * @param origin origin company | 58 | * @param origin origin company |
57 | * @param category application category | 59 | * @param category application category |
... | @@ -64,7 +66,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { | ... | @@ -64,7 +66,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { |
64 | * @param features application features | 66 | * @param features application features |
65 | * @param requiredApps list of required application names | 67 | * @param requiredApps list of required application names |
66 | */ | 68 | */ |
67 | - public DefaultApplicationDescription(String name, Version version, | 69 | + public DefaultApplicationDescription(String name, Version version, String title, |
68 | String description, String origin, String category, | 70 | String description, String origin, String category, |
69 | String url, String readme, byte[] icon, | 71 | String url, String readme, byte[] icon, |
70 | ApplicationRole role, Set<Permission> permissions, | 72 | ApplicationRole role, Set<Permission> permissions, |
... | @@ -72,6 +74,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { | ... | @@ -72,6 +74,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { |
72 | List<String> requiredApps) { | 74 | List<String> requiredApps) { |
73 | this.name = checkNotNull(name, "Name cannot be null"); | 75 | this.name = checkNotNull(name, "Name cannot be null"); |
74 | this.version = checkNotNull(version, "Version cannot be null"); | 76 | this.version = checkNotNull(version, "Version cannot be null"); |
77 | + this.title = checkNotNull(title, "Title cannot be null"); | ||
75 | this.description = checkNotNull(description, "Description cannot be null"); | 78 | this.description = checkNotNull(description, "Description cannot be null"); |
76 | this.origin = checkNotNull(origin, "Origin cannot be null"); | 79 | this.origin = checkNotNull(origin, "Origin cannot be null"); |
77 | this.category = checkNotNull(category, "Category cannot be null"); | 80 | this.category = checkNotNull(category, "Category cannot be null"); |
... | @@ -97,6 +100,11 @@ public class DefaultApplicationDescription implements ApplicationDescription { | ... | @@ -97,6 +100,11 @@ public class DefaultApplicationDescription implements ApplicationDescription { |
97 | } | 100 | } |
98 | 101 | ||
99 | @Override | 102 | @Override |
103 | + public String title() { | ||
104 | + return title; | ||
105 | + } | ||
106 | + | ||
107 | + @Override | ||
100 | public String description() { | 108 | public String description() { |
101 | return description; | 109 | return description; |
102 | } | 110 | } |
... | @@ -157,6 +165,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { | ... | @@ -157,6 +165,7 @@ public class DefaultApplicationDescription implements ApplicationDescription { |
157 | .add("name", name) | 165 | .add("name", name) |
158 | .add("version", version) | 166 | .add("version", version) |
159 | .add("description", description) | 167 | .add("description", description) |
168 | + .add("title", title) | ||
160 | .add("origin", origin) | 169 | .add("origin", origin) |
161 | .add("category", category) | 170 | .add("category", category) |
162 | .add("url", url) | 171 | .add("url", url) | ... | ... |
... | @@ -42,6 +42,15 @@ public interface Application { | ... | @@ -42,6 +42,15 @@ public interface Application { |
42 | Version version(); | 42 | Version version(); |
43 | 43 | ||
44 | /** | 44 | /** |
45 | + * Returns the title of the application. | ||
46 | + * This should be a short, human-readable string, as opposed | ||
47 | + * to the unique identifier returned by {@link #id()}. | ||
48 | + * | ||
49 | + * @return application title text | ||
50 | + */ | ||
51 | + String title(); | ||
52 | + | ||
53 | + /** | ||
45 | * Returns description of the application. | 54 | * Returns description of the application. |
46 | * | 55 | * |
47 | * @return application description text | 56 | * @return application description text | ... | ... |
... | @@ -36,6 +36,7 @@ public class DefaultApplication implements Application { | ... | @@ -36,6 +36,7 @@ public class DefaultApplication implements Application { |
36 | 36 | ||
37 | private final ApplicationId appId; | 37 | private final ApplicationId appId; |
38 | private final Version version; | 38 | private final Version version; |
39 | + private final String title; | ||
39 | private final String description; | 40 | private final String description; |
40 | private final String category; | 41 | private final String category; |
41 | private final String url; | 42 | private final String url; |
... | @@ -53,6 +54,7 @@ public class DefaultApplication implements Application { | ... | @@ -53,6 +54,7 @@ public class DefaultApplication implements Application { |
53 | * | 54 | * |
54 | * @param appId application identifier | 55 | * @param appId application identifier |
55 | * @param version application version | 56 | * @param version application version |
57 | + * @param title application title | ||
56 | * @param description application description | 58 | * @param description application description |
57 | * @param origin origin company | 59 | * @param origin origin company |
58 | * @param category application category | 60 | * @param category application category |
... | @@ -65,7 +67,7 @@ public class DefaultApplication implements Application { | ... | @@ -65,7 +67,7 @@ public class DefaultApplication implements Application { |
65 | * @param features application features | 67 | * @param features application features |
66 | * @param requiredApps list of required application names | 68 | * @param requiredApps list of required application names |
67 | */ | 69 | */ |
68 | - public DefaultApplication(ApplicationId appId, Version version, | 70 | + public DefaultApplication(ApplicationId appId, Version version, String title, |
69 | String description, String origin, String category, | 71 | String description, String origin, String category, |
70 | String url, String readme, byte[] icon, | 72 | String url, String readme, byte[] icon, |
71 | ApplicationRole role, Set<Permission> permissions, | 73 | ApplicationRole role, Set<Permission> permissions, |
... | @@ -73,6 +75,7 @@ public class DefaultApplication implements Application { | ... | @@ -73,6 +75,7 @@ public class DefaultApplication implements Application { |
73 | List<String> requiredApps) { | 75 | List<String> requiredApps) { |
74 | this.appId = checkNotNull(appId, "ID cannot be null"); | 76 | this.appId = checkNotNull(appId, "ID cannot be null"); |
75 | this.version = checkNotNull(version, "Version cannot be null"); | 77 | this.version = checkNotNull(version, "Version cannot be null"); |
78 | + this.title = checkNotNull(title, "Title cannot be null"); | ||
76 | this.description = checkNotNull(description, "Description cannot be null"); | 79 | this.description = checkNotNull(description, "Description cannot be null"); |
77 | this.origin = checkNotNull(origin, "Origin cannot be null"); | 80 | this.origin = checkNotNull(origin, "Origin cannot be null"); |
78 | this.category = checkNotNull(category, "Category cannot be null"); | 81 | this.category = checkNotNull(category, "Category cannot be null"); |
... | @@ -104,6 +107,11 @@ public class DefaultApplication implements Application { | ... | @@ -104,6 +107,11 @@ public class DefaultApplication implements Application { |
104 | } | 107 | } |
105 | 108 | ||
106 | @Override | 109 | @Override |
110 | + public String title() { | ||
111 | + return title; | ||
112 | + } | ||
113 | + | ||
114 | + @Override | ||
107 | public String description() { | 115 | public String description() { |
108 | return description; | 116 | return description; |
109 | } | 117 | } |
... | @@ -160,7 +168,7 @@ public class DefaultApplication implements Application { | ... | @@ -160,7 +168,7 @@ public class DefaultApplication implements Application { |
160 | 168 | ||
161 | @Override | 169 | @Override |
162 | public int hashCode() { | 170 | public int hashCode() { |
163 | - return Objects.hash(appId, version, description, origin, category, url, | 171 | + return Objects.hash(appId, version, title, description, origin, category, url, |
164 | readme, role, permissions, featuresRepo, features, requiredApps); | 172 | readme, role, permissions, featuresRepo, features, requiredApps); |
165 | } | 173 | } |
166 | 174 | ||
... | @@ -173,8 +181,12 @@ public class DefaultApplication implements Application { | ... | @@ -173,8 +181,12 @@ public class DefaultApplication implements Application { |
173 | return false; | 181 | return false; |
174 | } | 182 | } |
175 | final DefaultApplication other = (DefaultApplication) obj; | 183 | final DefaultApplication other = (DefaultApplication) obj; |
184 | + // TODO: review -- do ALL the fields need to be included? | ||
185 | + // It is debatable whether fields like description, url, and readme, | ||
186 | + // need to be included in the notion of equivalence. | ||
176 | return Objects.equals(this.appId, other.appId) && | 187 | return Objects.equals(this.appId, other.appId) && |
177 | Objects.equals(this.version, other.version) && | 188 | Objects.equals(this.version, other.version) && |
189 | + Objects.equals(this.title, other.title) && | ||
178 | Objects.equals(this.description, other.description) && | 190 | Objects.equals(this.description, other.description) && |
179 | Objects.equals(this.origin, other.origin) && | 191 | Objects.equals(this.origin, other.origin) && |
180 | Objects.equals(this.category, other.category) && | 192 | Objects.equals(this.category, other.category) && |
... | @@ -192,6 +204,7 @@ public class DefaultApplication implements Application { | ... | @@ -192,6 +204,7 @@ public class DefaultApplication implements Application { |
192 | return toStringHelper(this) | 204 | return toStringHelper(this) |
193 | .add("appId", appId) | 205 | .add("appId", appId) |
194 | .add("version", version) | 206 | .add("version", version) |
207 | + .add("title", title) | ||
195 | .add("description", description) | 208 | .add("description", description) |
196 | .add("origin", origin) | 209 | .add("origin", origin) |
197 | .add("category", category) | 210 | .add("category", category) | ... | ... |
... | @@ -32,7 +32,7 @@ import static org.onosproject.core.DefaultApplicationTest.APP_ID; | ... | @@ -32,7 +32,7 @@ import static org.onosproject.core.DefaultApplicationTest.APP_ID; |
32 | public class ApplicationEventTest extends AbstractEventTest { | 32 | public class ApplicationEventTest extends AbstractEventTest { |
33 | 33 | ||
34 | private Application createApp() { | 34 | private Application createApp() { |
35 | - return new DefaultApplication(APP_ID, VER, DESC, ORIGIN, CATEGORY, | 35 | + return new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, CATEGORY, |
36 | URL, README, ICON, ROLE, PERMS, | 36 | URL, README, ICON, ROLE, PERMS, |
37 | Optional.of(FURL), FEATURES, APPS); | 37 | Optional.of(FURL), FEATURES, APPS); |
38 | } | 38 | } | ... | ... |
... | @@ -38,6 +38,7 @@ public class DefaultApplicationDescriptionTest { | ... | @@ -38,6 +38,7 @@ public class DefaultApplicationDescriptionTest { |
38 | 38 | ||
39 | public static final String APP_NAME = "org.foo.app"; | 39 | public static final String APP_NAME = "org.foo.app"; |
40 | public static final Version VER = Version.version(1, 2, "a", null); | 40 | public static final Version VER = Version.version(1, 2, "a", null); |
41 | + public static final String TITLE = "Awesome App"; | ||
41 | public static final String DESC = "Awesome application from Circus, Inc."; | 42 | public static final String DESC = "Awesome application from Circus, Inc."; |
42 | public static final String ORIGIN = "Circus"; | 43 | public static final String ORIGIN = "Circus"; |
43 | public static final String CATEGORY = "other"; | 44 | public static final String CATEGORY = "other"; |
... | @@ -55,11 +56,12 @@ public class DefaultApplicationDescriptionTest { | ... | @@ -55,11 +56,12 @@ public class DefaultApplicationDescriptionTest { |
55 | @Test | 56 | @Test |
56 | public void basics() { | 57 | public void basics() { |
57 | ApplicationDescription app = | 58 | ApplicationDescription app = |
58 | - new DefaultApplicationDescription(APP_NAME, VER, DESC, ORIGIN, | 59 | + new DefaultApplicationDescription(APP_NAME, VER, TITLE, DESC, ORIGIN, |
59 | CATEGORY, URL, README, ICON, | 60 | CATEGORY, URL, README, ICON, |
60 | ROLE, PERMS, FURL, FEATURES, APPS); | 61 | ROLE, PERMS, FURL, FEATURES, APPS); |
61 | assertEquals("incorrect id", APP_NAME, app.name()); | 62 | assertEquals("incorrect id", APP_NAME, app.name()); |
62 | assertEquals("incorrect version", VER, app.version()); | 63 | assertEquals("incorrect version", VER, app.version()); |
64 | + assertEquals("incorrect title", TITLE, app.title()); | ||
63 | assertEquals("incorrect description", DESC, app.description()); | 65 | assertEquals("incorrect description", DESC, app.description()); |
64 | assertEquals("incorrect origin", ORIGIN, app.origin()); | 66 | assertEquals("incorrect origin", ORIGIN, app.origin()); |
65 | assertEquals("incorrect category", CATEGORY, app.category()); | 67 | assertEquals("incorrect category", CATEGORY, app.category()); | ... | ... |
... | @@ -43,7 +43,7 @@ public class DefaultApplicationTest { | ... | @@ -43,7 +43,7 @@ public class DefaultApplicationTest { |
43 | 43 | ||
44 | @Test | 44 | @Test |
45 | public void basics() { | 45 | public void basics() { |
46 | - Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 46 | + Application app = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
47 | CATEGORY, URL, README, ICON, ROLE, | 47 | CATEGORY, URL, README, ICON, ROLE, |
48 | PERMS, Optional.of(FURL), FEATURES, APPS); | 48 | PERMS, Optional.of(FURL), FEATURES, APPS); |
49 | assertEquals("incorrect id", APP_ID, app.id()); | 49 | assertEquals("incorrect id", APP_ID, app.id()); |
... | @@ -64,16 +64,16 @@ public class DefaultApplicationTest { | ... | @@ -64,16 +64,16 @@ public class DefaultApplicationTest { |
64 | 64 | ||
65 | @Test | 65 | @Test |
66 | public void testEquality() { | 66 | public void testEquality() { |
67 | - Application a1 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 67 | + Application a1 = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
68 | CATEGORY, URL, README, ICON, ROLE, | 68 | CATEGORY, URL, README, ICON, ROLE, |
69 | PERMS, Optional.of(FURL), FEATURES, APPS); | 69 | PERMS, Optional.of(FURL), FEATURES, APPS); |
70 | - Application a2 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 70 | + Application a2 = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
71 | CATEGORY, URL, README, ICON, ROLE, | 71 | CATEGORY, URL, README, ICON, ROLE, |
72 | PERMS, Optional.of(FURL), FEATURES, APPS); | 72 | PERMS, Optional.of(FURL), FEATURES, APPS); |
73 | - Application a3 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 73 | + Application a3 = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
74 | CATEGORY, URL, README, ICON, ROLE, | 74 | CATEGORY, URL, README, ICON, ROLE, |
75 | PERMS, Optional.empty(), FEATURES, APPS); | 75 | PERMS, Optional.empty(), FEATURES, APPS); |
76 | - Application a4 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN + "asd", | 76 | + Application a4 = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN + "asd", |
77 | CATEGORY, URL, README, ICON, ROLE, | 77 | CATEGORY, URL, README, ICON, ROLE, |
78 | PERMS, Optional.of(FURL), FEATURES, APPS); | 78 | PERMS, Optional.of(FURL), FEATURES, APPS); |
79 | new EqualsTester().addEqualityGroup(a1, a2) | 79 | new EqualsTester().addEqualityGroup(a1, a2) |
... | @@ -87,7 +87,7 @@ public class DefaultApplicationTest { | ... | @@ -87,7 +87,7 @@ public class DefaultApplicationTest { |
87 | public void immutableIcon() { | 87 | public void immutableIcon() { |
88 | byte[] iconSourceData = ICON_ORIG.clone(); | 88 | byte[] iconSourceData = ICON_ORIG.clone(); |
89 | 89 | ||
90 | - Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 90 | + Application app = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
91 | CATEGORY, URL, README, iconSourceData, ROLE, | 91 | CATEGORY, URL, README, iconSourceData, ROLE, |
92 | PERMS, Optional.of(FURL), FEATURES, APPS); | 92 | PERMS, Optional.of(FURL), FEATURES, APPS); |
93 | 93 | ||
... | @@ -128,7 +128,7 @@ public class DefaultApplicationTest { | ... | @@ -128,7 +128,7 @@ public class DefaultApplicationTest { |
128 | // Set<Permission> p = PERMS_ORIG; | 128 | // Set<Permission> p = PERMS_ORIG; |
129 | Set<Permission> p = PERMS_UNSAFE; | 129 | Set<Permission> p = PERMS_UNSAFE; |
130 | 130 | ||
131 | - Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 131 | + Application app = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
132 | CATEGORY, URL, README, ICON, ROLE, | 132 | CATEGORY, URL, README, ICON, ROLE, |
133 | p, Optional.of(FURL), FEATURES, APPS); | 133 | p, Optional.of(FURL), FEATURES, APPS); |
134 | 134 | ||
... | @@ -170,7 +170,7 @@ public class DefaultApplicationTest { | ... | @@ -170,7 +170,7 @@ public class DefaultApplicationTest { |
170 | // List<String> f = FEATURES_ORIG; | 170 | // List<String> f = FEATURES_ORIG; |
171 | List<String> f = FEATURES_UNSAFE; | 171 | List<String> f = FEATURES_UNSAFE; |
172 | 172 | ||
173 | - Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 173 | + Application app = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
174 | CATEGORY, URL, README, ICON, ROLE, | 174 | CATEGORY, URL, README, ICON, ROLE, |
175 | PERMS, Optional.of(FURL), f, APPS); | 175 | PERMS, Optional.of(FURL), f, APPS); |
176 | 176 | ||
... | @@ -190,7 +190,7 @@ public class DefaultApplicationTest { | ... | @@ -190,7 +190,7 @@ public class DefaultApplicationTest { |
190 | // List<String> ra = REQ_APPS_ORIG; | 190 | // List<String> ra = REQ_APPS_ORIG; |
191 | List<String> ra = REQ_APPS_UNSAFE; | 191 | List<String> ra = REQ_APPS_UNSAFE; |
192 | 192 | ||
193 | - Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 193 | + Application app = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
194 | CATEGORY, URL, README, ICON, ROLE, | 194 | CATEGORY, URL, README, ICON, ROLE, |
195 | PERMS, Optional.of(FURL), FEATURES, ra); | 195 | PERMS, Optional.of(FURL), FEATURES, ra); |
196 | 196 | ||
... | @@ -206,7 +206,7 @@ public class DefaultApplicationTest { | ... | @@ -206,7 +206,7 @@ public class DefaultApplicationTest { |
206 | 206 | ||
207 | @Test | 207 | @Test |
208 | public void nullIcon() { | 208 | public void nullIcon() { |
209 | - Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, | 209 | + Application app = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, |
210 | CATEGORY, URL, README, null, ROLE, | 210 | CATEGORY, URL, README, null, ROLE, |
211 | PERMS, Optional.of(FURL), FEATURES, APPS); | 211 | PERMS, Optional.of(FURL), FEATURES, APPS); |
212 | byte[] icon = app.icon(); | 212 | byte[] icon = app.icon(); | ... | ... |
... | @@ -88,6 +88,7 @@ public class ApplicationArchive | ... | @@ -88,6 +88,7 @@ public class ApplicationArchive |
88 | 88 | ||
89 | private static final String CATEGORY = "[@category]"; | 89 | private static final String CATEGORY = "[@category]"; |
90 | private static final String URL = "[@url]"; | 90 | private static final String URL = "[@url]"; |
91 | + private static final String TITLE = "[@title]"; | ||
91 | 92 | ||
92 | private static final String ROLE = "security.role"; | 93 | private static final String ROLE = "security.role"; |
93 | private static final String APP_PERMISSIONS = "security.permissions.app-perm"; | 94 | private static final String APP_PERMISSIONS = "security.permissions.app-perm"; |
... | @@ -294,6 +295,11 @@ public class ApplicationArchive | ... | @@ -294,6 +295,11 @@ public class ApplicationArchive |
294 | String name = cfg.getString(NAME); | 295 | String name = cfg.getString(NAME); |
295 | Version version = Version.version(cfg.getString(VERSION)); | 296 | Version version = Version.version(cfg.getString(VERSION)); |
296 | String origin = cfg.getString(ORIGIN); | 297 | String origin = cfg.getString(ORIGIN); |
298 | + | ||
299 | + String title = cfg.getString(TITLE); | ||
300 | + // FIXME: title should be set as attribute to APP, but fallback for now... | ||
301 | + title = title == null ? name : title; | ||
302 | + | ||
297 | String category = cfg.getString(CATEGORY, UTILITY); | 303 | String category = cfg.getString(CATEGORY, UTILITY); |
298 | String url = cfg.getString(URL); | 304 | String url = cfg.getString(URL); |
299 | byte[] icon = getApplicationIcon(name); | 305 | byte[] icon = getApplicationIcon(name); |
... | @@ -313,7 +319,7 @@ public class ApplicationArchive | ... | @@ -313,7 +319,7 @@ public class ApplicationArchive |
313 | // put short description to description field | 319 | // put short description to description field |
314 | String desc = compactDescription(readme); | 320 | String desc = compactDescription(readme); |
315 | 321 | ||
316 | - return new DefaultApplicationDescription(name, version, desc, origin, | 322 | + return new DefaultApplicationDescription(name, version, title, desc, origin, |
317 | category, url, readme, icon, | 323 | category, url, readme, icon, |
318 | role, perms, featuresRepo, | 324 | role, perms, featuresRepo, |
319 | features, requiredApps); | 325 | features, requiredApps); | ... | ... |
... | @@ -65,6 +65,7 @@ public class ApplicationArchiveTest { | ... | @@ -65,6 +65,7 @@ public class ApplicationArchiveTest { |
65 | assertEquals("incorrect url", URL, app.url()); | 65 | assertEquals("incorrect url", URL, app.url()); |
66 | assertEquals("incorrect readme", README, app.readme()); | 66 | assertEquals("incorrect readme", README, app.readme()); |
67 | 67 | ||
68 | + assertEquals("incorrect title", TITLE, app.title()); | ||
68 | assertEquals("incorrect description", DESC, app.description()); | 69 | assertEquals("incorrect description", DESC, app.description()); |
69 | assertEquals("incorrect features URI", FURL, app.featuresRepo().get()); | 70 | assertEquals("incorrect features URI", FURL, app.featuresRepo().get()); |
70 | assertEquals("incorrect permissions", PERMS, app.permissions()); | 71 | assertEquals("incorrect permissions", PERMS, app.permissions()); | ... | ... |
... | @@ -49,14 +49,18 @@ import static org.slf4j.LoggerFactory.getLogger; | ... | @@ -49,14 +49,18 @@ import static org.slf4j.LoggerFactory.getLogger; |
49 | */ | 49 | */ |
50 | @Component(immediate = true) | 50 | @Component(immediate = true) |
51 | @Service | 51 | @Service |
52 | -public class SimpleApplicationStore extends ApplicationArchive implements ApplicationStore { | 52 | +public class SimpleApplicationStore extends ApplicationArchive |
53 | + implements ApplicationStore { | ||
53 | 54 | ||
54 | private final Logger log = getLogger(getClass()); | 55 | private final Logger log = getLogger(getClass()); |
55 | 56 | ||
56 | // App inventory & states | 57 | // App inventory & states |
57 | - private final ConcurrentMap<ApplicationId, DefaultApplication> apps = new ConcurrentHashMap<>(); | 58 | + private final ConcurrentMap<ApplicationId, DefaultApplication> apps = |
58 | - private final ConcurrentMap<ApplicationId, ApplicationState> states = new ConcurrentHashMap<>(); | 59 | + new ConcurrentHashMap<>(); |
59 | - private final ConcurrentMap<ApplicationId, Set<Permission>> permissions = new ConcurrentHashMap<>(); | 60 | + private final ConcurrentMap<ApplicationId, ApplicationState> states = |
61 | + new ConcurrentHashMap<>(); | ||
62 | + private final ConcurrentMap<ApplicationId, Set<Permission>> permissions = | ||
63 | + new ConcurrentHashMap<>(); | ||
60 | 64 | ||
61 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 65 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
62 | protected ApplicationIdStore idStore; | 66 | protected ApplicationIdStore idStore; |
... | @@ -72,12 +76,19 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic | ... | @@ -72,12 +76,19 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic |
72 | ApplicationId appId = idStore.registerApplication(name); | 76 | ApplicationId appId = idStore.registerApplication(name); |
73 | ApplicationDescription appDesc = getApplicationDescription(name); | 77 | ApplicationDescription appDesc = getApplicationDescription(name); |
74 | DefaultApplication app = | 78 | DefaultApplication app = |
75 | - new DefaultApplication(appId, appDesc.version(), | 79 | + new DefaultApplication(appId, |
76 | - appDesc.description(), appDesc.origin(), | 80 | + appDesc.version(), |
77 | - appDesc.category(), appDesc.url(), | 81 | + appDesc.title(), |
78 | - appDesc.readme(), appDesc.icon(), | 82 | + appDesc.description(), |
79 | - appDesc.role(), appDesc.permissions(), | 83 | + appDesc.origin(), |
80 | - appDesc.featuresRepo(), appDesc.features(), | 84 | + appDesc.category(), |
85 | + appDesc.url(), | ||
86 | + appDesc.readme(), | ||
87 | + appDesc.icon(), | ||
88 | + appDesc.role(), | ||
89 | + appDesc.permissions(), | ||
90 | + appDesc.featuresRepo(), | ||
91 | + appDesc.features(), | ||
81 | appDesc.requiredApps()); | 92 | appDesc.requiredApps()); |
82 | apps.put(appId, app); | 93 | apps.put(appId, app); |
83 | states.put(appId, isActive(name) ? INSTALLED : ACTIVE); | 94 | states.put(appId, isActive(name) ? INSTALLED : ACTIVE); |
... | @@ -118,11 +129,19 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic | ... | @@ -118,11 +129,19 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic |
118 | ApplicationDescription appDesc = saveApplication(appDescStream); | 129 | ApplicationDescription appDesc = saveApplication(appDescStream); |
119 | ApplicationId appId = idStore.registerApplication(appDesc.name()); | 130 | ApplicationId appId = idStore.registerApplication(appDesc.name()); |
120 | DefaultApplication app = | 131 | DefaultApplication app = |
121 | - new DefaultApplication(appId, appDesc.version(), appDesc.description(), | 132 | + new DefaultApplication(appId, |
122 | - appDesc.origin(), appDesc.category(), appDesc.url(), | 133 | + appDesc.version(), |
123 | - appDesc.readme(), appDesc.icon(), | 134 | + appDesc.title(), |
124 | - appDesc.role(), appDesc.permissions(), | 135 | + appDesc.description(), |
125 | - appDesc.featuresRepo(), appDesc.features(), | 136 | + appDesc.origin(), |
137 | + appDesc.category(), | ||
138 | + appDesc.url(), | ||
139 | + appDesc.readme(), | ||
140 | + appDesc.icon(), | ||
141 | + appDesc.role(), | ||
142 | + appDesc.permissions(), | ||
143 | + appDesc.featuresRepo(), | ||
144 | + appDesc.features(), | ||
126 | appDesc.requiredApps()); | 145 | appDesc.requiredApps()); |
127 | apps.put(appId, app); | 146 | apps.put(appId, app); |
128 | states.put(appId, INSTALLED); | 147 | states.put(appId, INSTALLED); | ... | ... |
... | @@ -13,8 +13,10 @@ | ... | @@ -13,8 +13,10 @@ |
13 | ~ See the License for the specific language governing permissions and | 13 | ~ See the License for the specific language governing permissions and |
14 | ~ limitations under the License. | 14 | ~ limitations under the License. |
15 | --> | 15 | --> |
16 | -<app name="org.foo.app" origin="Circus" version="1.2.a" category="other" | 16 | +<app name="org.foo.app" origin="Circus" version="1.2.a" |
17 | - url="http://www.onosproject.org" featuresRepo="mvn:org.foo-features/1.2a/xml/features" | 17 | + title="Awesome App" category="other" |
18 | + url="http://www.onosproject.org" | ||
19 | + featuresRepo="mvn:org.foo-features/1.2a/xml/features" | ||
18 | features="foo,bar"> | 20 | features="foo,bar"> |
19 | <description>Awesome application from Circus, Inc.</description> | 21 | <description>Awesome application from Circus, Inc.</description> |
20 | <security> | 22 | <security> | ... | ... |
No preview for this file type
... | @@ -138,7 +138,7 @@ public class ApplicationManagerTest { | ... | @@ -138,7 +138,7 @@ public class ApplicationManagerTest { |
138 | 138 | ||
139 | @Override | 139 | @Override |
140 | public Application create(InputStream appDescStream) { | 140 | public Application create(InputStream appDescStream) { |
141 | - app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, CATEGORY, | 141 | + app = new DefaultApplication(APP_ID, VER, TITLE, DESC, ORIGIN, CATEGORY, |
142 | URL, README, ICON, ROLE, PERMS, | 142 | URL, README, ICON, ROLE, PERMS, |
143 | Optional.of(FURL), FEATURES, ImmutableList.of()); | 143 | Optional.of(FURL), FEATURES, ImmutableList.of()); |
144 | state = INSTALLED; | 144 | state = INSTALLED; | ... | ... |
... | @@ -507,10 +507,19 @@ public class GossipApplicationStore extends ApplicationArchive | ... | @@ -507,10 +507,19 @@ public class GossipApplicationStore extends ApplicationArchive |
507 | */ | 507 | */ |
508 | private Application registerApp(ApplicationDescription appDesc) { | 508 | private Application registerApp(ApplicationDescription appDesc) { |
509 | ApplicationId appId = idStore.registerApplication(appDesc.name()); | 509 | ApplicationId appId = idStore.registerApplication(appDesc.name()); |
510 | - return new DefaultApplication(appId, appDesc.version(), appDesc.description(), | 510 | + return new DefaultApplication(appId, |
511 | - appDesc.origin(), appDesc.category(), appDesc.url(), | 511 | + appDesc.version(), |
512 | - appDesc.readme(), appDesc.icon(), appDesc.role(), | 512 | + appDesc.title(), |
513 | - appDesc.permissions(), appDesc.featuresRepo(), | 513 | + appDesc.description(), |
514 | - appDesc.features(), appDesc.requiredApps()); | 514 | + appDesc.origin(), |
515 | + appDesc.category(), | ||
516 | + appDesc.url(), | ||
517 | + appDesc.readme(), | ||
518 | + appDesc.icon(), | ||
519 | + appDesc.role(), | ||
520 | + appDesc.permissions(), | ||
521 | + appDesc.featuresRepo(), | ||
522 | + appDesc.features(), | ||
523 | + appDesc.requiredApps()); | ||
515 | } | 524 | } |
516 | } | 525 | } | ... | ... |
... | @@ -31,6 +31,7 @@ | ... | @@ -31,6 +31,7 @@ |
31 | 31 | ||
32 | <properties> | 32 | <properties> |
33 | <onos.app.name>org.onosproject.hostprovider</onos.app.name> | 33 | <onos.app.name>org.onosproject.hostprovider</onos.app.name> |
34 | + <onos.app.title>Host Location Provider</onos.app.title> | ||
34 | <onos.app.origin>ON.Lab</onos.app.origin> | 35 | <onos.app.origin>ON.Lab</onos.app.origin> |
35 | <onos.app.category>default</onos.app.category> | 36 | <onos.app.category>default</onos.app.category> |
36 | <onos.app.url>http://onosproject.org</onos.app.url> | 37 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -32,6 +32,7 @@ | ... | @@ -32,6 +32,7 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.lldpprovider</onos.app.name> | 34 | <onos.app.name>org.onosproject.lldpprovider</onos.app.name> |
35 | + <onos.app.title>LLDP Link Provider</onos.app.title> | ||
35 | <onos.app.origin>ON.Lab</onos.app.origin> | 36 | <onos.app.origin>ON.Lab</onos.app.origin> |
36 | <onos.app.category>default</onos.app.category> | 37 | <onos.app.category>default</onos.app.category> |
37 | <onos.app.url>http://onosproject.org</onos.app.url> | 38 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -34,6 +34,7 @@ | ... | @@ -34,6 +34,7 @@ |
34 | 34 | ||
35 | <properties> | 35 | <properties> |
36 | <onos.app.name>org.onosproject.netcfghostprovider</onos.app.name> | 36 | <onos.app.name>org.onosproject.netcfghostprovider</onos.app.name> |
37 | + <onos.app.title>Network Config host Provider</onos.app.title> | ||
37 | <onos.app.origin>ON.Lab</onos.app.origin> | 38 | <onos.app.origin>ON.Lab</onos.app.origin> |
38 | <onos.app.category>default</onos.app.category> | 39 | <onos.app.category>default</onos.app.category> |
39 | <onos.app.url>http://onosproject.org</onos.app.url> | 40 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -34,6 +34,7 @@ | ... | @@ -34,6 +34,7 @@ |
34 | 34 | ||
35 | <properties> | 35 | <properties> |
36 | <onos.app.name>org.onosproject.netcfglinksprovider</onos.app.name> | 36 | <onos.app.name>org.onosproject.netcfglinksprovider</onos.app.name> |
37 | + <onos.app.title>Network Config Link Provider</onos.app.title> | ||
37 | <onos.app.origin>ON.Lab</onos.app.origin> | 38 | <onos.app.origin>ON.Lab</onos.app.origin> |
38 | </properties> | 39 | </properties> |
39 | 40 | ... | ... |
... | @@ -33,6 +33,7 @@ | ... | @@ -33,6 +33,7 @@ |
33 | 33 | ||
34 | <properties> | 34 | <properties> |
35 | <onos.app.name>org.onosproject.null</onos.app.name> | 35 | <onos.app.name>org.onosproject.null</onos.app.name> |
36 | + <onos.app.title>Null Southbound Provider</onos.app.title> | ||
36 | <onos.app.origin>ON.Lab</onos.app.origin> | 37 | <onos.app.origin>ON.Lab</onos.app.origin> |
37 | <onos.app.category>default</onos.app.category> | 38 | <onos.app.category>default</onos.app.category> |
38 | <onos.app.url>http://onosproject.org</onos.app.url> | 39 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -31,6 +31,7 @@ | ... | @@ -31,6 +31,7 @@ |
31 | 31 | ||
32 | <properties> | 32 | <properties> |
33 | <onos.app.name>org.onosproject.openflow</onos.app.name> | 33 | <onos.app.name>org.onosproject.openflow</onos.app.name> |
34 | + <onos.app.title>OpenFlow Southbound Meta App</onos.app.title> | ||
34 | <onos.app.requires> | 35 | <onos.app.requires> |
35 | org.onosproject.openflow-base, | 36 | org.onosproject.openflow-base, |
36 | org.onosproject.hostprovider, | 37 | org.onosproject.hostprovider, | ... | ... |
... | @@ -31,6 +31,7 @@ | ... | @@ -31,6 +31,7 @@ |
31 | 31 | ||
32 | <properties> | 32 | <properties> |
33 | <onos.app.name>org.onosproject.ovsdb</onos.app.name> | 33 | <onos.app.name>org.onosproject.ovsdb</onos.app.name> |
34 | + <onos.app.title>OVSDB Southbound Meta App</onos.app.title> | ||
34 | <onos.app.requires> | 35 | <onos.app.requires> |
35 | org.onosproject.ovsdb-base, | 36 | org.onosproject.ovsdb-base, |
36 | org.onosproject.ovsdbhostprovider | 37 | org.onosproject.ovsdbhostprovider | ... | ... |
... | @@ -35,6 +35,7 @@ | ... | @@ -35,6 +35,7 @@ |
35 | <onos.version>1.5.0-SNAPSHOT</onos.version> | 35 | <onos.version>1.5.0-SNAPSHOT</onos.version> |
36 | <!-- Uncomment to generate ONOS app from this module. | 36 | <!-- Uncomment to generate ONOS app from this module. |
37 | <onos.app.name>org.foo.app</onos.app.name> | 37 | <onos.app.name>org.foo.app</onos.app.name> |
38 | + <onos.app.title>Foo App</onos.app.title> | ||
38 | <onos.app.origin>Foo, Inc.</onos.app.origin> | 39 | <onos.app.origin>Foo, Inc.</onos.app.origin> |
39 | <onos.app.category>default</onos.app.category> | 40 | <onos.app.category>default</onos.app.category> |
40 | <onos.app.url>http://onosproject.org</onos.app.url> | 41 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -35,6 +35,7 @@ | ... | @@ -35,6 +35,7 @@ |
35 | <onos.version>1.5.0-SNAPSHOT</onos.version> | 35 | <onos.version>1.5.0-SNAPSHOT</onos.version> |
36 | <!-- Uncomment to generate ONOS app from this module. | 36 | <!-- Uncomment to generate ONOS app from this module. |
37 | <onos.app.name>org.foo.app</onos.app.name> | 37 | <onos.app.name>org.foo.app</onos.app.name> |
38 | + <onos.app.title>Foo App</onos.app.title> | ||
38 | <onos.app.origin>Foo, Inc.</onos.app.origin> | 39 | <onos.app.origin>Foo, Inc.</onos.app.origin> |
39 | <onos.app.category>UI</onos.app.category> | 40 | <onos.app.category>UI</onos.app.category> |
40 | <onos.app.url>http://onosproject.org</onos.app.url> | 41 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -36,6 +36,7 @@ | ... | @@ -36,6 +36,7 @@ |
36 | <onos.version>1.5.0-SNAPSHOT</onos.version> | 36 | <onos.version>1.5.0-SNAPSHOT</onos.version> |
37 | <!-- Uncomment to generate ONOS app from this module. | 37 | <!-- Uncomment to generate ONOS app from this module. |
38 | <onos.app.name>org.foo.app</onos.app.name> | 38 | <onos.app.name>org.foo.app</onos.app.name> |
39 | + <onos.app.title>Foo App</onos.app.title> | ||
39 | <onos.app.origin>Foo, Inc.</onos.app.origin> | 40 | <onos.app.origin>Foo, Inc.</onos.app.origin> |
40 | <onos.app.category>UI</onos.app.category> | 41 | <onos.app.category>UI</onos.app.category> |
41 | <onos.app.url>http://onosproject.org</onos.app.url> | 42 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -36,6 +36,7 @@ | ... | @@ -36,6 +36,7 @@ |
36 | <onos.version>1.5.0-SNAPSHOT</onos.version> | 36 | <onos.version>1.5.0-SNAPSHOT</onos.version> |
37 | <!-- Uncomment to generate ONOS app from this module. | 37 | <!-- Uncomment to generate ONOS app from this module. |
38 | <onos.app.name>org.foo.app</onos.app.name> | 38 | <onos.app.name>org.foo.app</onos.app.name> |
39 | + <onos.app.title>Foo App</onos.app.title> | ||
39 | <onos.app.origin>Foo, Inc.</onos.app.origin> | 40 | <onos.app.origin>Foo, Inc.</onos.app.origin> |
40 | <onos.app.category>UI</onos.app.category> | 41 | <onos.app.category>UI</onos.app.category> |
41 | <onos.app.url>http://onosproject.org</onos.app.url> | 42 | <onos.app.url>http://onosproject.org</onos.app.url> | ... | ... |
... | @@ -74,6 +74,7 @@ public class OnosAppMojo extends AbstractMojo { | ... | @@ -74,6 +74,7 @@ public class OnosAppMojo extends AbstractMojo { |
74 | 74 | ||
75 | private static final String ONOS_APP_CATEGORY = "onos.app.category"; | 75 | private static final String ONOS_APP_CATEGORY = "onos.app.category"; |
76 | private static final String ONOS_APP_URL = "onos.app.url"; | 76 | private static final String ONOS_APP_URL = "onos.app.url"; |
77 | + private static final String ONOS_APP_TITLE = "onos.app.title"; | ||
77 | private static final String ONOS_APP_README = "onos.app.readme"; | 78 | private static final String ONOS_APP_README = "onos.app.readme"; |
78 | 79 | ||
79 | private static final String JAR = "jar"; | 80 | private static final String JAR = "jar"; |
... | @@ -99,6 +100,7 @@ public class OnosAppMojo extends AbstractMojo { | ... | @@ -99,6 +100,7 @@ public class OnosAppMojo extends AbstractMojo { |
99 | private String requiredApps; | 100 | private String requiredApps; |
100 | private String category; | 101 | private String category; |
101 | private String url; | 102 | private String url; |
103 | + private String title; | ||
102 | private String readme; | 104 | private String readme; |
103 | private String version = DEFAULT_VERSION; | 105 | private String version = DEFAULT_VERSION; |
104 | private String featuresRepo = DEFAULT_FEATURES_REPO; | 106 | private String featuresRepo = DEFAULT_FEATURES_REPO; |
... | @@ -189,6 +191,10 @@ public class OnosAppMojo extends AbstractMojo { | ... | @@ -189,6 +191,10 @@ public class OnosAppMojo extends AbstractMojo { |
189 | url = (String) project.getProperties().get(ONOS_APP_URL); | 191 | url = (String) project.getProperties().get(ONOS_APP_URL); |
190 | url = url != null ? url : DEFAULT_URL; | 192 | url = url != null ? url : DEFAULT_URL; |
191 | 193 | ||
194 | + // if title does not exist, fall back to the name | ||
195 | + title = (String) project.getProperties().get(ONOS_APP_TITLE); | ||
196 | + title = title != null ? title : name; | ||
197 | + | ||
192 | // if readme does not exist, we simply fallback to use description | 198 | // if readme does not exist, we simply fallback to use description |
193 | readme = (String) project.getProperties().get(ONOS_APP_README); | 199 | readme = (String) project.getProperties().get(ONOS_APP_README); |
194 | readme = readme != null ? readme : projectDescription; | 200 | readme = readme != null ? readme : projectDescription; |
... | @@ -387,6 +393,7 @@ public class OnosAppMojo extends AbstractMojo { | ... | @@ -387,6 +393,7 @@ public class OnosAppMojo extends AbstractMojo { |
387 | .replaceAll("\\$\\{onos.app.origin\\}", origin) | 393 | .replaceAll("\\$\\{onos.app.origin\\}", origin) |
388 | .replaceAll("\\$\\{onos.app.requires\\}", requiredApps) | 394 | .replaceAll("\\$\\{onos.app.requires\\}", requiredApps) |
389 | .replaceAll("\\$\\{onos.app.category\\}", category) | 395 | .replaceAll("\\$\\{onos.app.category\\}", category) |
396 | + .replaceAll("\\$\\{onos.app.title\\}", title) | ||
390 | .replaceAll("\\$\\{onos.app.url\\}", url) | 397 | .replaceAll("\\$\\{onos.app.url\\}", url) |
391 | .replaceAll("\\$\\{project.groupId\\}", projectGroupId) | 398 | .replaceAll("\\$\\{project.groupId\\}", projectGroupId) |
392 | .replaceAll("\\$\\{project.artifactId\\}", projectArtifactId) | 399 | .replaceAll("\\$\\{project.artifactId\\}", projectArtifactId) | ... | ... |
... | @@ -15,7 +15,7 @@ | ... | @@ -15,7 +15,7 @@ |
15 | ~ limitations under the License. | 15 | ~ limitations under the License. |
16 | --> | 16 | --> |
17 | <app name="${onos.app.name}" origin="${onos.app.origin}" version="${project.version}" | 17 | <app name="${onos.app.name}" origin="${onos.app.origin}" version="${project.version}" |
18 | - category="${onos.app.category}" url="${onos.app.url}" | 18 | + title="${onos.app.title}" category="${onos.app.category}" url="${onos.app.url}" |
19 | featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" | 19 | featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" |
20 | features="${project.artifactId}" apps="${onos.app.requires}"> | 20 | features="${project.artifactId}" apps="${onos.app.requires}"> |
21 | <description>${project.description}</description> | 21 | <description>${project.description}</description> | ... | ... |
... | @@ -84,26 +84,26 @@ public class ApplicationsResourceTest extends ResourceTest { | ... | @@ -84,26 +84,26 @@ public class ApplicationsResourceTest extends ResourceTest { |
84 | private static final Version VER = Version.version(1, 2, "a", null); | 84 | private static final Version VER = Version.version(1, 2, "a", null); |
85 | 85 | ||
86 | private Application app1 = | 86 | private Application app1 = |
87 | - new DefaultApplication(id1, VER, | 87 | + new DefaultApplication(id1, VER, "title1", |
88 | - "app1", "origin1", "category1", "url1", | 88 | + "desc1", "origin1", "category1", "url1", |
89 | "readme1", new byte[0], ApplicationRole.ADMIN, | 89 | "readme1", new byte[0], ApplicationRole.ADMIN, |
90 | ImmutableSet.of(), Optional.of(FURL), | 90 | ImmutableSet.of(), Optional.of(FURL), |
91 | ImmutableList.of("My Feature"), ImmutableList.of()); | 91 | ImmutableList.of("My Feature"), ImmutableList.of()); |
92 | private Application app2 = | 92 | private Application app2 = |
93 | - new DefaultApplication(id2, VER, | 93 | + new DefaultApplication(id2, VER, "title2", |
94 | - "app2", "origin2", "category2", "url2", | 94 | + "desc2", "origin2", "category2", "url2", |
95 | "readme2", new byte[0], ApplicationRole.ADMIN, | 95 | "readme2", new byte[0], ApplicationRole.ADMIN, |
96 | ImmutableSet.of(), Optional.of(FURL), | 96 | ImmutableSet.of(), Optional.of(FURL), |
97 | ImmutableList.of("My Feature"), ImmutableList.of()); | 97 | ImmutableList.of("My Feature"), ImmutableList.of()); |
98 | private Application app3 = | 98 | private Application app3 = |
99 | - new DefaultApplication(id3, VER, | 99 | + new DefaultApplication(id3, VER, "title3", |
100 | - "app3", "origin3", "category3", "url3", | 100 | + "desc3", "origin3", "category3", "url3", |
101 | "readme3", new byte[0], ApplicationRole.ADMIN, | 101 | "readme3", new byte[0], ApplicationRole.ADMIN, |
102 | ImmutableSet.of(), Optional.of(FURL), | 102 | ImmutableSet.of(), Optional.of(FURL), |
103 | ImmutableList.of("My Feature"), ImmutableList.of()); | 103 | ImmutableList.of("My Feature"), ImmutableList.of()); |
104 | private Application app4 = | 104 | private Application app4 = |
105 | - new DefaultApplication(id4, VER, | 105 | + new DefaultApplication(id4, VER, "title4", |
106 | - "app4", "origin4", "category4", "url4", | 106 | + "desc4", "origin4", "category4", "url4", |
107 | "readme4", new byte[0], ApplicationRole.ADMIN, | 107 | "readme4", new byte[0], ApplicationRole.ADMIN, |
108 | ImmutableSet.of(), Optional.of(FURL), | 108 | ImmutableSet.of(), Optional.of(FURL), |
109 | ImmutableList.of("My Feature"), ImmutableList.of()); | 109 | ImmutableList.of("My Feature"), ImmutableList.of()); | ... | ... |
... | @@ -54,6 +54,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { | ... | @@ -54,6 +54,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { |
54 | private static final String VERSION = "version"; | 54 | private static final String VERSION = "version"; |
55 | private static final String CATEGORY = "category"; | 55 | private static final String CATEGORY = "category"; |
56 | private static final String ORIGIN = "origin"; | 56 | private static final String ORIGIN = "origin"; |
57 | + private static final String TITLE = "title"; | ||
57 | private static final String DESC = "desc"; | 58 | private static final String DESC = "desc"; |
58 | private static final String URL = "url"; | 59 | private static final String URL = "url"; |
59 | private static final String README = "readme"; | 60 | private static final String README = "readme"; |
... | @@ -66,7 +67,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { | ... | @@ -66,7 +67,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { |
66 | private static final String ICON_ID_INACTIVE = "appInactive"; | 67 | private static final String ICON_ID_INACTIVE = "appInactive"; |
67 | 68 | ||
68 | private static final String[] COL_IDS = { | 69 | private static final String[] COL_IDS = { |
69 | - STATE, STATE_IID, ID, ICON, VERSION, CATEGORY, ORIGIN, DESC, | 70 | + STATE, STATE_IID, ID, ICON, VERSION, CATEGORY, ORIGIN, TITLE, DESC, |
70 | URL, README, ROLE, REQUIRED_APPS, FEATURES, PERMISSIONS | 71 | URL, README, ROLE, REQUIRED_APPS, FEATURES, PERMISSIONS |
71 | }; | 72 | }; |
72 | 73 | ||
... | @@ -118,6 +119,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { | ... | @@ -118,6 +119,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { |
118 | .cell(VERSION, app.version()) | 119 | .cell(VERSION, app.version()) |
119 | .cell(CATEGORY, app.category()) | 120 | .cell(CATEGORY, app.category()) |
120 | .cell(ORIGIN, app.origin()) | 121 | .cell(ORIGIN, app.origin()) |
122 | + .cell(TITLE, app.title()) | ||
121 | .cell(DESC, app.description()) | 123 | .cell(DESC, app.description()) |
122 | .cell(URL, app.url()); | 124 | .cell(URL, app.url()); |
123 | } | 125 | } |
... | @@ -168,6 +170,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { | ... | @@ -168,6 +170,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler { |
168 | data.put(VERSION, app.version().toString()); | 170 | data.put(VERSION, app.version().toString()); |
169 | data.put(ROLE, app.role().toString()); | 171 | data.put(ROLE, app.role().toString()); |
170 | data.put(CATEGORY, app.category()); | 172 | data.put(CATEGORY, app.category()); |
173 | + data.put(TITLE, app.title()); | ||
171 | data.put(ORIGIN, app.origin()); | 174 | data.put(ORIGIN, app.origin()); |
172 | data.put(README, app.readme()); | 175 | data.put(README, app.readme()); |
173 | data.put(DESC, app.description()); | 176 | data.put(DESC, app.description()); | ... | ... |
-
Please register or login to post a comment