Committed by
Gerrit Code Review
Apps-- added onos.app.title property to applications.
Change-Id: Id845390ee0bee5b871c0ce9f47b2ce98fbcf26b9
Showing
63 changed files
with
194 additions
and
57 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,13 +76,20 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic | ... | @@ -72,13 +76,20 @@ 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(), |
| 81 | - appDesc.requiredApps()); | 85 | + appDesc.url(), |
| 86 | + appDesc.readme(), | ||
| 87 | + appDesc.icon(), | ||
| 88 | + appDesc.role(), | ||
| 89 | + appDesc.permissions(), | ||
| 90 | + appDesc.featuresRepo(), | ||
| 91 | + appDesc.features(), | ||
| 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); |
| 84 | // load app permissions | 95 | // load app permissions |
| ... | @@ -118,12 +129,20 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic | ... | @@ -118,12 +129,20 @@ 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(), |
| 126 | - appDesc.requiredApps()); | 137 | + appDesc.category(), |
| 138 | + appDesc.url(), | ||
| 139 | + appDesc.readme(), | ||
| 140 | + appDesc.icon(), | ||
| 141 | + appDesc.role(), | ||
| 142 | + appDesc.permissions(), | ||
| 143 | + appDesc.featuresRepo(), | ||
| 144 | + appDesc.features(), | ||
| 145 | + appDesc.requiredApps()); | ||
| 127 | apps.put(appId, app); | 146 | apps.put(appId, app); |
| 128 | states.put(appId, INSTALLED); | 147 | states.put(appId, INSTALLED); |
| 129 | delegate.notify(new ApplicationEvent(APP_INSTALLED, app)); | 148 | delegate.notify(new ApplicationEvent(APP_INSTALLED, app)); | ... | ... |
| ... | @@ -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