Jian Li
Committed by Gerrit Code Review

[ONOS-3634] Enhance app to have a category, icon, URL and readme

This commmit enhances application to have category, icon, URL and
readme. The web GUI and CLI will be implemented in separate commits

Change-Id: Ib02716d7118cc617b24f196f2213ea1fe99a34be
Showing 91 changed files with 586 additions and 166 deletions
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.aaa" origin="ATT" version="${project.version}" 17 <app name="org.onosproject.aaa" origin="ATT" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>ONOS authentication application.</readme>
21 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-app-xos-integration/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-xos-integration/${project.version}</artifact>
23 <bundle>mvn:com.sun.jersey/jersey-client/1.19</bundle> 25 <bundle>mvn:com.sun.jersey/jersey-client/1.19</bundle>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
19 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 19 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 21
22 -
23 <parent> 22 <parent>
24 <groupId>org.onosproject</groupId> 23 <groupId>org.onosproject</groupId>
25 <artifactId>onos-apps</artifactId> 24 <artifactId>onos-apps</artifactId>
...@@ -32,10 +31,6 @@ ...@@ -32,10 +31,6 @@
32 31
33 <description>ONOS authentication application</description> 32 <description>ONOS authentication application</description>
34 33
35 - <properties>
36 - <onos.app.name>org.onosproject.aaa</onos.app.name>
37 - </properties>
38 -
39 <dependencies> 34 <dependencies>
40 <dependency> 35 <dependency>
41 <groupId>org.osgi</groupId> 36 <groupId>org.osgi</groupId>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ Originally created by Pengfei Lu, Network and Cloud Computing Laboratory, Dalian University of Technology, China 4 ~ Originally created by Pengfei Lu, Network and Cloud Computing Laboratory, Dalian University of Technology, China
5 ~ Advisers: Keqiu Li and Heng Qi 5 ~ Advisers: Keqiu Li and Heng Qi
6 ~ This work is supported by the State Key Program of National Natural Science of China(Grant No. 61432002) 6 ~ This work is supported by the State Key Program of National Natural Science of China(Grant No. 61432002)
...@@ -40,6 +40,9 @@ ...@@ -40,6 +40,9 @@
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.category>default</onos.app.category>
44 + <onos.app.url>http://onosproject.org</onos.app.url>
45 + <onos.app.readme>ONOS ACL application.</onos.app.readme>
43 46
44 <web.context>/onos/v1/acl</web.context> 47 <web.context>/onos/v1/acl</web.context>
45 <api.version>1.0.0</api.version> 48 <api.version>1.0.0</api.version>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.bgprouter" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.bgprouter" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>BGP router application.</readme>
21 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-app-routing-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-routing-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-app-routing/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-app-routing/${project.version}</artifact>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
33 33
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>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Cluster IP alias application.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -32,6 +32,9 @@ ...@@ -32,6 +32,9 @@
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.category>default</onos.app.category>
36 + <onos.app.url>http://onosproject.org</onos.app.url>
37 + <onos.app.readme>Simple fabric application for CORD.</onos.app.readme>
35 <web.context>/onos/cordfabric</web.context> 38 <web.context>/onos/cordfabric</web.context>
36 <api.version>1.0.0</api.version> 39 <api.version>1.0.0</api.version>
37 <api.title>ONOS CORD Fabric REST API</api.title> 40 <api.title>ONOS CORD Fabric REST API</api.title>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Virtual tenant network service for CORD.</onos.app.readme>
36 <web.context>/onos/cordvtn</web.context> 39 <web.context>/onos/cordvtn</web.context>
37 <api.version>1.0.0</api.version> 40 <api.version>1.0.0</api.version>
38 <api.title>CORD VTN REST API</api.title> 41 <api.title>CORD VTN REST API</api.title>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -14,7 +14,8 @@ ...@@ -14,7 +14,8 @@
14 ~ See the License for the specific language governing permissions and 14 ~ See the License for the specific language governing permissions and
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 17 +<project xmlns="http://maven.apache.org/POM/4.0.0"
18 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 19 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
19 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
20 <parent> 21 <parent>
...@@ -29,6 +30,14 @@ ...@@ -29,6 +30,14 @@
29 30
30 <description>Control Plane Management Application</description> 31 <description>Control Plane Management Application</description>
31 32
33 + <properties>
34 + <onos.app.name>org.onosproject.cpman</onos.app.name>
35 + <onos.app.category>default</onos.app.category>
36 + <onos.app.url>http://onosproject.org</onos.app.url>
37 + <onos.app.readme>Control plane management application.
38 + </onos.app.readme>
39 + </properties>
40 +
32 <dependencies> 41 <dependencies>
33 <dependency> 42 <dependency>
34 <groupId>org.onosproject</groupId> 43 <groupId>org.onosproject</groupId>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.dhcp" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.dhcp" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>DHCP server application.</readme>
21 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-app-dhcp-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-dhcp-api/${project.version}</artifact>
23 </app> 25 </app>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
33 <description>DHCP Server application</description> 33 <description>DHCP Server application</description>
34 34
35 <properties> 35 <properties>
36 - <onos.app.name>org.onosproject.dhcp</onos.app.name>
37 <web.context>/onos/dhcp</web.context> 36 <web.context>/onos/dhcp</web.context>
38 <api.version>1.0.0</api.version> 37 <api.version>1.0.0</api.version>
39 <api.title>DHCP Server REST API</api.title> 38 <api.title>DHCP Server REST API</api.title>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -14,7 +14,9 @@ ...@@ -14,7 +14,9 @@
14 ~ See the License for the specific language governing permissions and 14 ~ See the License for the specific language governing permissions and
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 17 +<project xmlns="http://maven.apache.org/POM/4.0.0"
18 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
18 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
19 21
20 <parent> 22 <parent>
...@@ -27,10 +29,13 @@ ...@@ -27,10 +29,13 @@
27 <artifactId>onos-app-drivermatrix</artifactId> 29 <artifactId>onos-app-drivermatrix</artifactId>
28 <packaging>bundle</packaging> 30 <packaging>bundle</packaging>
29 31
30 - <description>Driver behaviour support matric</description> 32 + <description>Driver behaviour support matrix</description>
31 33
32 <properties> 34 <properties>
33 <onos.app.name>org.onosproject.drivermatrix</onos.app.name> 35 <onos.app.name>org.onosproject.drivermatrix</onos.app.name>
36 + <onos.app.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Driver behavior support matrix.</onos.app.readme>
34 </properties> 39 </properties>
35 40
36 </project> 41 </project>
......
...@@ -34,6 +34,10 @@ ...@@ -34,6 +34,10 @@
34 <properties> 34 <properties>
35 <onos.version>1.5.0-SNAPSHOT</onos.version> 35 <onos.version>1.5.0-SNAPSHOT</onos.version>
36 <onos.app.name>org.onosproject.events</onos.app.name> 36 <onos.app.name>org.onosproject.events</onos.app.name>
37 + <onos.app.category>default</onos.app.category>
38 + <onos.app.url>http://onosproject.org</onos.app.url>
39 + <onos.app.readme>ONOS event history display application.
40 + </onos.app.readme>
37 </properties> 41 </properties>
38 42
39 <dependencies> 43 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.faultmanagement" origin="BTI Systems" version="${project.version}" 17 <app name="org.onosproject.faultmanagement" origin="BTI Systems" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
21 - 22 + <readme>ONOS fault management application.</readme>
22 <artifact>mvn:${project.groupId}/onos-app-fm-mgr/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-app-fm-mgr/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-app-fm-web/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-fm-web/${project.version}</artifact>
24 <artifact>mvn:${project.groupId}/onos-app-fm-gui/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-app-fm-gui/${project.version}</artifact>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 -~ Copyright 2015 Open Networking Laboratory 3 +~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Simple flow space analyzer.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Reactive forwarding application using flow subsystem.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......

23.3 KB

1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>IGMP implementation.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
1 +<?xml version="1.0" encoding="UTF-8"?>
1 <!-- 2 <!--
2 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
3 ~ 4 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -26,4 +27,11 @@ ...@@ -26,4 +27,11 @@
26 <packaging>bundle</packaging> 27 <packaging>bundle</packaging>
27 28
28 <description>IP Layer Topology API</description> 29 <description>IP Layer Topology API</description>
30 +
31 + <properties>
32 + <onos.app.name>org.onosproject.iptopology-api</onos.app.name>
33 + <onos.app.category>default</onos.app.category>
34 + <onos.app.url>http://onosproject.org</onos.app.url>
35 + <onos.app.readme>IP layer topology API.</onos.app.readme>
36 + </properties>
29 </project> 37 </project>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Performance metrics collection application.
39 + </onos.app.readme>
36 </properties> 40 </properties>
37 41
38 <dependencies> 42 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Multicast forwarding application.
39 + </onos.app.readme>
36 </properties> 40 </properties>
37 41
38 <dependencies> 42 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Application that balances mastership among nodes.
39 + </onos.app.readme>
36 </properties> 40 </properties>
37 41
38 <dependencies> 42 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Host mobility application.
39 + </onos.app.readme>
36 </properties> 40 </properties>
37 41
38 <dependencies> 42 <dependencies>
......
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.olt" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.olt" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>OLT application for CORD.</readme>
21 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-app-olt-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-olt-api/${project.version}</artifact>
23 </app> 25 </app>
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
31 <description>OLT application for CORD</description> 31 <description>OLT application for CORD</description>
32 32
33 <properties> 33 <properties>
34 - <onos.app.name>org.onosproject.olt</onos.app.name>
35 <web.context>/onos/olt</web.context> 34 <web.context>/onos/olt</web.context>
36 <api.version>1.0.0</api.version> 35 <api.version>1.0.0</api.version>
37 <api.title>ONOS OLT REST API</api.title> 36 <api.title>ONOS OLT REST API</api.title>
......
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.openstackswitching" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.openstackswitching" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>SONA Openstack Switching application.</readme>
21 <artifact>mvn:${project.groupId}/onos-app-openstackswitching/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-app-openstackswitching/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-app-dhcp-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-dhcp-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-app-dhcp/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-app-dhcp/${project.version}</artifact>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
31 31
32 <description>SONA Openstack Switching applications</description> 32 <description>SONA Openstack Switching applications</description>
33 <properties> 33 <properties>
34 - <onos.app.name>org.onosproject.openstackswitching</onos.app.name>
35 <web.context>/onos/openstackswitching</web.context> 34 <web.context>/onos/openstackswitching</web.context>
36 <api.version>1.0.0</api.version> 35 <api.version>1.0.0</api.version>
37 <api.title>ONOS OpenStack Switching REST API</api.title> 36 <api.title>ONOS OpenStack Switching REST API</api.title>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Packet/Optical use-case application.
39 + </onos.app.readme>
36 </properties> 40 </properties>
37 41
38 <dependencies> 42 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Path visualization application.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 </project> 41 </project>
......
1 +<?xml version="1.0" encoding="UTF-8"?>
1 <!-- 2 <!--
2 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
3 ~ 4 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -26,4 +27,11 @@ ...@@ -26,4 +27,11 @@
26 <packaging>bundle</packaging> 27 <packaging>bundle</packaging>
27 28
28 <description>PCEP protocol API</description> 29 <description>PCEP protocol API</description>
30 +
31 + <properties>
32 + <onos.app.name>org.onosproject.pcep-api</onos.app.name>
33 + <onos.app.category>default</onos.app.category>
34 + <onos.app.url>http://onosproject.org</onos.app.url>
35 + <onos.app.readme>PCEP protocol API.</onos.app.readme>
36 + </properties>
29 </project> 37 </project>
...\ No newline at end of file ...\ No newline at end of file
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Protocol independent multicast emulation.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Proxy ARP/NDP application.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>SDN-IP reactive routing application.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -30,6 +30,13 @@ ...@@ -30,6 +30,13 @@
30 <packaging>bundle</packaging> 30 <packaging>bundle</packaging>
31 <description>API for routing applications</description> 31 <description>API for routing applications</description>
32 32
33 + <properties>
34 + <onos.app.name>org.onosproject.routing-api</onos.app.name>
35 + <onos.app.category>default</onos.app.category>
36 + <onos.app.url>http://onosproject.org</onos.app.url>
37 + <onos.app.readme>API for routing applications.</onos.app.readme>
38 + </properties>
39 +
33 <dependencies> 40 <dependencies>
34 <dependency> 41 <dependency>
35 <groupId>org.onosproject</groupId> 42 <groupId>org.onosproject</groupId>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -30,6 +30,13 @@ ...@@ -30,6 +30,13 @@
30 <packaging>bundle</packaging> 30 <packaging>bundle</packaging>
31 <description>Libraries for routing applications</description> 31 <description>Libraries for routing applications</description>
32 32
33 + <properties>
34 + <onos.app.name>org.onosproject.routing</onos.app.name>
35 + <onos.app.category>default</onos.app.category>
36 + <onos.app.url>http://onosproject.org</onos.app.url>
37 + <onos.app.readme>SDN-IP reactive routing application.</onos.app.readme>
38 + </properties>
39 +
33 <dependencies> 40 <dependencies>
34 <dependency> 41 <dependency>
35 <groupId>org.onosproject</groupId> 42 <groupId>org.onosproject</groupId>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.sdnip" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.sdnip" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>SDN-IP peering application.</readme>
21 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-app-routing-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-routing-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-app-routing/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-app-routing/${project.version}</artifact>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -32,6 +32,9 @@ ...@@ -32,6 +32,9 @@
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.category>default</onos.app.category>
36 + <onos.app.url>http://onosproject.org</onos.app.url>
37 + <onos.app.readme>Segment routing application.</onos.app.readme>
35 <web.context>/onos/segmentrouting</web.context> 38 <web.context>/onos/segmentrouting</web.context>
36 <api.version>1.0.0</api.version> 39 <api.version>1.0.0</api.version>
37 <api.title>ONOS Segment Routing REST API</api.title> 40 <api.title>ONOS Segment Routing REST API</api.title>
......
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>test</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Flow throughput test application.</onos.app.readme>
36 <web.context>/onos/demo</web.context> 39 <web.context>/onos/demo</web.context>
37 <api.title>ONOS Flow Throughput Test App API</api.title> 40 <api.title>ONOS Flow Throughput Test App API</api.title>
38 <api.description> 41 <api.description>
......
...@@ -34,6 +34,9 @@ ...@@ -34,6 +34,9 @@
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.category>test</onos.app.category>
38 + <onos.app.url>http://onosproject.org</onos.app.url>
39 + <onos.app.readme>ONOS app to test distributed primitives.</onos.app.readme>
37 </properties> 40 </properties>
38 41
39 <dependencies> 42 <dependencies>
......
...@@ -34,6 +34,9 @@ ...@@ -34,6 +34,9 @@
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.category>test</onos.app.category>
38 + <onos.app.url>http://onosproject.org</onos.app.url>
39 + <onos.app.readme>Master election test application.</onos.app.readme>
37 </properties> 40 </properties>
38 41
39 <dependencies> 42 <dependencies>
......
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>test</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>intent performance test application.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>test</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Messaging performance test application.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>Virtual broadband gateway application.</onos.app.readme>
36 <web.context>/onos/virtualbng</web.context> 39 <web.context>/onos/virtualbng</web.context>
37 <api.version>1.0.0</api.version> 40 <api.version>1.0.0</api.version>
38 <api.title>ONOS Virtual BNG Gateway REST API</api.title> 41 <api.title>ONOS Virtual BNG Gateway REST API</api.title>
......
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.vrouter" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.vrouter" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>Virtual router application.</readme>
21 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-app-routing-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-routing-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-app-routing/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-app-routing/${project.version}</artifact>
......
...@@ -34,8 +34,6 @@ ...@@ -34,8 +34,6 @@
34 34
35 <properties> 35 <properties>
36 <onos.version>1.5.0-SNAPSHOT</onos.version> 36 <onos.version>1.5.0-SNAPSHOT</onos.version>
37 - <onos.app.name>org.onosproject.vrouter</onos.app.name>
38 - <onos.app.origin>ON.Lab</onos.app.origin>
39 </properties> 37 </properties>
40 38
41 <dependencies> 39 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.vtn" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.vtn" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
21 - 22 + <readme>Virtual tenant network application.</readme>
22 <artifact>mvn:${project.groupId}/onos-app-vtn-mgr/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-app-vtn-mgr/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-app-sfc-mgr/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-app-sfc-mgr/${project.version}</artifact>
24 <artifact>mvn:${project.groupId}/onos-app-vtn-web/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-app-vtn-web/${project.version}</artifact>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 -<!-- ~ Copyright 2014 Open Networking Laboratory ~ ~ Licensed under the Apache 2 +<!--
3 - License, Version 2.0 (the "License"); ~ you may not use this file except 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 - in compliance with the License. ~ You may obtain a copy of the License at 4 + ~
5 - ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable 5 + ~ Licensed under the Apache License, Version 2.0 (the "License");
6 - law or agreed to in writing, software ~ distributed under the License is 6 + ~ you may not use this file except in compliance with the License.
7 - distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY 7 + ~ You may obtain a copy of the License at
8 - KIND, either express or implied. ~ See the License for the specific language 8 + ~
9 - governing permissions and ~ limitations under the License. --> 9 + ~ http://www.apache.org/licenses/LICENSE-2.0
10 + ~
11 + ~ Unless required by applicable law or agreed to in writing, software
12 + ~ distributed under the License is distributed on an "AS IS" BASIS,
13 + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 + ~ See the License for the specific language governing permissions and
15 + ~ limitations under the License.
16 + -->
10 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 17 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
11 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 18 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
12 <modelVersion>4.0.0</modelVersion> 19 <modelVersion>4.0.0</modelVersion>
......
1 -<?xml version="1.0"?> 1 +<?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 ~ Copyright 2015 Open Networking Laboratory 3 ~ Copyright 2015 Open Networking Laboratory
4 ~ 4 ~
......
1 -<?xml version="1.0"?> 1 +<?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 ~ Copyright 2015 Open Networking Laboratory 3 ~ Copyright 2015 Open Networking Laboratory
4 ~ 4 ~
......
1 -<?xml version="1.0"?> 1 +<?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 ~ Copyright 2015 Open Networking Laboratory 3 ~ Copyright 2015 Open Networking Laboratory
4 ~ 4 ~
......
1 -<?xml version="1.0"?> 1 +<?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 ~ Copyright 2015 Open Networking Laboratory 3 ~ Copyright 2015 Open Networking Laboratory
4 ~ 4 ~
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
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.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>ONOS XOS integration application.</onos.app.readme>
36 </properties> 39 </properties>
37 40
38 <dependencies> 41 <dependencies>
......
...@@ -44,6 +44,13 @@ public interface ApplicationDescription { ...@@ -44,6 +44,13 @@ public interface ApplicationDescription {
44 Version version(); 44 Version version();
45 45
46 /** 46 /**
47 + * Returns the name of the application origin, group or company.
48 + *
49 + * @return application origin
50 + */
51 + String origin();
52 +
53 + /**
47 * Returns description of the application. 54 * Returns description of the application.
48 * 55 *
49 * @return application description text 56 * @return application description text
...@@ -51,11 +58,32 @@ public interface ApplicationDescription { ...@@ -51,11 +58,32 @@ public interface ApplicationDescription {
51 String description(); 58 String description();
52 59
53 /** 60 /**
54 - * Returns the name of the application origin, group or company. 61 + * Returns category of the application.
55 * 62 *
56 - * @return application origin 63 + * @return application category text
57 */ 64 */
58 - String origin(); 65 + String category();
66 +
67 + /**
68 + * Returns url of the application.
69 + *
70 + * @return application url
71 + */
72 + String url();
73 +
74 + /**
75 + * Returns readme of the application.
76 + *
77 + * @return application readme
78 + */
79 + String readme();
80 +
81 + /**
82 + * Returns icon of the application.
83 + *
84 + * @return application icon
85 + */
86 + byte[] icon();
59 87
60 /** 88 /**
61 * Returns the role of the application. 89 * Returns the role of the application.
......
...@@ -37,6 +37,10 @@ public class DefaultApplicationDescription implements ApplicationDescription { ...@@ -37,6 +37,10 @@ public class DefaultApplicationDescription implements ApplicationDescription {
37 private final Version version; 37 private final Version version;
38 private final String description; 38 private final String description;
39 private final String origin; 39 private final String origin;
40 + private final String category;
41 + private final String url;
42 + private final String readme;
43 + private final byte[] icon;
40 private final ApplicationRole role; 44 private final ApplicationRole role;
41 private final Set<Permission> permissions; 45 private final Set<Permission> permissions;
42 private final Optional<URI> featuresRepo; 46 private final Optional<URI> featuresRepo;
...@@ -50,6 +54,10 @@ public class DefaultApplicationDescription implements ApplicationDescription { ...@@ -50,6 +54,10 @@ public class DefaultApplicationDescription implements ApplicationDescription {
50 * @param version application version 54 * @param version application version
51 * @param description application description 55 * @param description application description
52 * @param origin origin company 56 * @param origin origin company
57 + * @param category application category
58 + * @param url application URL
59 + * @param readme application readme
60 + * @param icon application icon
53 * @param role application role 61 * @param role application role
54 * @param permissions requested permissions 62 * @param permissions requested permissions
55 * @param featuresRepo optional features repo URI 63 * @param featuresRepo optional features repo URI
...@@ -57,7 +65,8 @@ public class DefaultApplicationDescription implements ApplicationDescription { ...@@ -57,7 +65,8 @@ public class DefaultApplicationDescription implements ApplicationDescription {
57 * @param requiredApps list of required application names 65 * @param requiredApps list of required application names
58 */ 66 */
59 public DefaultApplicationDescription(String name, Version version, 67 public DefaultApplicationDescription(String name, Version version,
60 - String description, String origin, 68 + String description, String origin, String category,
69 + String url, String readme, byte[] icon,
61 ApplicationRole role, Set<Permission> permissions, 70 ApplicationRole role, Set<Permission> permissions,
62 URI featuresRepo, List<String> features, 71 URI featuresRepo, List<String> features,
63 List<String> requiredApps) { 72 List<String> requiredApps) {
...@@ -65,6 +74,10 @@ public class DefaultApplicationDescription implements ApplicationDescription { ...@@ -65,6 +74,10 @@ public class DefaultApplicationDescription implements ApplicationDescription {
65 this.version = checkNotNull(version, "Version cannot be null"); 74 this.version = checkNotNull(version, "Version cannot be null");
66 this.description = checkNotNull(description, "Description cannot be null"); 75 this.description = checkNotNull(description, "Description cannot be null");
67 this.origin = checkNotNull(origin, "Origin cannot be null"); 76 this.origin = checkNotNull(origin, "Origin cannot be null");
77 + this.category = checkNotNull(category, "Category cannot be null");
78 + this.url = checkNotNull(url, "URL cannot be null");
79 + this.readme = readme;
80 + this.icon = icon;
68 this.role = checkNotNull(role, "Role cannot be null"); 81 this.role = checkNotNull(role, "Role cannot be null");
69 this.permissions = checkNotNull(permissions, "Permissions cannot be null"); 82 this.permissions = checkNotNull(permissions, "Permissions cannot be null");
70 this.featuresRepo = Optional.ofNullable(featuresRepo); 83 this.featuresRepo = Optional.ofNullable(featuresRepo);
...@@ -89,6 +102,26 @@ public class DefaultApplicationDescription implements ApplicationDescription { ...@@ -89,6 +102,26 @@ public class DefaultApplicationDescription implements ApplicationDescription {
89 } 102 }
90 103
91 @Override 104 @Override
105 + public String category() {
106 + return category;
107 + }
108 +
109 + @Override
110 + public String url() {
111 + return url;
112 + }
113 +
114 + @Override
115 + public String readme() {
116 + return readme;
117 + }
118 +
119 + @Override
120 + public byte[] icon() {
121 + return icon;
122 + }
123 +
124 + @Override
92 public String origin() { 125 public String origin() {
93 return origin; 126 return origin;
94 } 127 }
...@@ -125,6 +158,9 @@ public class DefaultApplicationDescription implements ApplicationDescription { ...@@ -125,6 +158,9 @@ public class DefaultApplicationDescription implements ApplicationDescription {
125 .add("version", version) 158 .add("version", version)
126 .add("description", description) 159 .add("description", description)
127 .add("origin", origin) 160 .add("origin", origin)
161 + .add("category", category)
162 + .add("url", url)
163 + .add("readme", readme)
128 .add("role", role) 164 .add("role", role)
129 .add("permissions", permissions) 165 .add("permissions", permissions)
130 .add("featuresRepo", featuresRepo) 166 .add("featuresRepo", featuresRepo)
......
...@@ -49,6 +49,34 @@ public interface Application { ...@@ -49,6 +49,34 @@ public interface Application {
49 String description(); 49 String description();
50 50
51 /** 51 /**
52 + * Returns category of the application.
53 + *
54 + * @return application category text
55 + */
56 + String category();
57 +
58 + /**
59 + * Returns url of the application.
60 + *
61 + * @return application url
62 + */
63 + String url();
64 +
65 + /**
66 + * Returns readme of the application.
67 + *
68 + * @return application readme
69 + */
70 + String readme();
71 +
72 + /**
73 + * Returns icon of the application.
74 + *
75 + * @return application icon
76 + */
77 + byte[] icon();
78 +
79 + /**
52 * Returns the name of the application origin, group or company. 80 * Returns the name of the application origin, group or company.
53 * 81 *
54 * @return application origin 82 * @return application origin
......
...@@ -35,6 +35,10 @@ public class DefaultApplication implements Application { ...@@ -35,6 +35,10 @@ public class DefaultApplication implements Application {
35 private final ApplicationId appId; 35 private final ApplicationId appId;
36 private final Version version; 36 private final Version version;
37 private final String description; 37 private final String description;
38 + private final String category;
39 + private final String url;
40 + private final String readme;
41 + private final byte[] icon;
38 private final String origin; 42 private final String origin;
39 private final ApplicationRole role; 43 private final ApplicationRole role;
40 private final Set<Permission> permissions; 44 private final Set<Permission> permissions;
...@@ -49,6 +53,10 @@ public class DefaultApplication implements Application { ...@@ -49,6 +53,10 @@ public class DefaultApplication implements Application {
49 * @param version application version 53 * @param version application version
50 * @param description application description 54 * @param description application description
51 * @param origin origin company 55 * @param origin origin company
56 + * @param category application category
57 + * @param url application URL
58 + * @param readme application readme
59 + * @param icon application icon
52 * @param role application role 60 * @param role application role
53 * @param permissions requested permissions 61 * @param permissions requested permissions
54 * @param featuresRepo optional features repo URI 62 * @param featuresRepo optional features repo URI
...@@ -56,7 +64,8 @@ public class DefaultApplication implements Application { ...@@ -56,7 +64,8 @@ public class DefaultApplication implements Application {
56 * @param requiredApps list of required application names 64 * @param requiredApps list of required application names
57 */ 65 */
58 public DefaultApplication(ApplicationId appId, Version version, 66 public DefaultApplication(ApplicationId appId, Version version,
59 - String description, String origin, 67 + String description, String origin, String category,
68 + String url, String readme, byte[] icon,
60 ApplicationRole role, Set<Permission> permissions, 69 ApplicationRole role, Set<Permission> permissions,
61 Optional<URI> featuresRepo, List<String> features, 70 Optional<URI> featuresRepo, List<String> features,
62 List<String> requiredApps) { 71 List<String> requiredApps) {
...@@ -64,6 +73,10 @@ public class DefaultApplication implements Application { ...@@ -64,6 +73,10 @@ public class DefaultApplication implements Application {
64 this.version = checkNotNull(version, "Version cannot be null"); 73 this.version = checkNotNull(version, "Version cannot be null");
65 this.description = checkNotNull(description, "Description cannot be null"); 74 this.description = checkNotNull(description, "Description cannot be null");
66 this.origin = checkNotNull(origin, "Origin cannot be null"); 75 this.origin = checkNotNull(origin, "Origin cannot be null");
76 + this.category = checkNotNull(category, "Category cannot be null");
77 + this.url = checkNotNull(url, "URL cannot be null");
78 + this.readme = readme;
79 + this.icon = icon;
67 this.role = checkNotNull(role, "Role cannot be null"); 80 this.role = checkNotNull(role, "Role cannot be null");
68 this.permissions = checkNotNull(permissions, "Permissions cannot be null"); 81 this.permissions = checkNotNull(permissions, "Permissions cannot be null");
69 this.featuresRepo = checkNotNull(featuresRepo, "Features repo cannot be null"); 82 this.featuresRepo = checkNotNull(featuresRepo, "Features repo cannot be null");
...@@ -88,6 +101,26 @@ public class DefaultApplication implements Application { ...@@ -88,6 +101,26 @@ public class DefaultApplication implements Application {
88 } 101 }
89 102
90 @Override 103 @Override
104 + public String category() {
105 + return category;
106 + }
107 +
108 + @Override
109 + public String url() {
110 + return url;
111 + }
112 +
113 + @Override
114 + public String readme() {
115 + return readme;
116 + }
117 +
118 + @Override
119 + public byte[] icon() {
120 + return icon;
121 + }
122 +
123 + @Override
91 public String origin() { 124 public String origin() {
92 return origin; 125 return origin;
93 } 126 }
...@@ -119,8 +152,8 @@ public class DefaultApplication implements Application { ...@@ -119,8 +152,8 @@ public class DefaultApplication implements Application {
119 152
120 @Override 153 @Override
121 public int hashCode() { 154 public int hashCode() {
122 - return Objects.hash(appId, version, description, origin, role, permissions, 155 + return Objects.hash(appId, version, description, origin, category, url,
123 - featuresRepo, features, requiredApps); 156 + readme, role, permissions, featuresRepo, features, requiredApps);
124 } 157 }
125 158
126 @Override 159 @Override
...@@ -136,6 +169,9 @@ public class DefaultApplication implements Application { ...@@ -136,6 +169,9 @@ public class DefaultApplication implements Application {
136 Objects.equals(this.version, other.version) && 169 Objects.equals(this.version, other.version) &&
137 Objects.equals(this.description, other.description) && 170 Objects.equals(this.description, other.description) &&
138 Objects.equals(this.origin, other.origin) && 171 Objects.equals(this.origin, other.origin) &&
172 + Objects.equals(this.category, other.category) &&
173 + Objects.equals(this.url, other.url) &&
174 + Objects.equals(this.readme, other.readme) &&
139 Objects.equals(this.role, other.role) && 175 Objects.equals(this.role, other.role) &&
140 Objects.equals(this.permissions, other.permissions) && 176 Objects.equals(this.permissions, other.permissions) &&
141 Objects.equals(this.featuresRepo, other.featuresRepo) && 177 Objects.equals(this.featuresRepo, other.featuresRepo) &&
...@@ -150,6 +186,9 @@ public class DefaultApplication implements Application { ...@@ -150,6 +186,9 @@ public class DefaultApplication implements Application {
150 .add("version", version) 186 .add("version", version)
151 .add("description", description) 187 .add("description", description)
152 .add("origin", origin) 188 .add("origin", origin)
189 + .add("category", category)
190 + .add("url", url)
191 + .add("readme", readme)
153 .add("role", role) 192 .add("role", role)
154 .add("permissions", permissions) 193 .add("permissions", permissions)
155 .add("featuresRepo", featuresRepo) 194 .add("featuresRepo", featuresRepo)
......
...@@ -32,8 +32,9 @@ import static org.onosproject.core.DefaultApplicationTest.APP_ID; ...@@ -32,8 +32,9 @@ 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, ROLE, 35 + return new DefaultApplication(APP_ID, VER, DESC, ORIGIN, CATEGORY,
36 - PERMS, Optional.of(FURL), FEATURES, APPS); 36 + URL, README, ICON, ROLE, PERMS,
37 + Optional.of(FURL), FEATURES, APPS);
37 } 38 }
38 39
39 @Test 40 @Test
......
...@@ -40,6 +40,10 @@ public class DefaultApplicationDescriptionTest { ...@@ -40,6 +40,10 @@ public class DefaultApplicationDescriptionTest {
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 DESC = "Awesome application from Circus, Inc."; 41 public static final String DESC = "Awesome application from Circus, Inc.";
42 public static final String ORIGIN = "Circus"; 42 public static final String ORIGIN = "Circus";
43 + public static final String CATEGORY = "other";
44 + public static final String URL = "http://www.onosproject.org";
45 + public static final String README = "Awesome application from Circus, Inc.";
46 + public static final byte[] ICON = new byte[] {};
43 public static final ApplicationRole ROLE = ApplicationRole.ADMIN; 47 public static final ApplicationRole ROLE = ApplicationRole.ADMIN;
44 public static final Set<Permission> PERMS = ImmutableSet.of( 48 public static final Set<Permission> PERMS = ImmutableSet.of(
45 new Permission(AppPermission.class.getName(), "FLOWRULE_WRITE"), 49 new Permission(AppPermission.class.getName(), "FLOWRULE_WRITE"),
...@@ -52,17 +56,20 @@ public class DefaultApplicationDescriptionTest { ...@@ -52,17 +56,20 @@ public class DefaultApplicationDescriptionTest {
52 public void basics() { 56 public void basics() {
53 ApplicationDescription app = 57 ApplicationDescription app =
54 new DefaultApplicationDescription(APP_NAME, VER, DESC, ORIGIN, 58 new DefaultApplicationDescription(APP_NAME, VER, DESC, ORIGIN,
59 + CATEGORY, URL, README, ICON,
55 ROLE, PERMS, FURL, FEATURES, APPS); 60 ROLE, PERMS, FURL, FEATURES, APPS);
56 assertEquals("incorrect id", APP_NAME, app.name()); 61 assertEquals("incorrect id", APP_NAME, app.name());
57 assertEquals("incorrect version", VER, app.version()); 62 assertEquals("incorrect version", VER, app.version());
58 assertEquals("incorrect description", DESC, app.description()); 63 assertEquals("incorrect description", DESC, app.description());
59 assertEquals("incorrect origin", ORIGIN, app.origin()); 64 assertEquals("incorrect origin", ORIGIN, app.origin());
60 - assertEquals("incorect role", ROLE, app.role()); 65 + assertEquals("incorrect category", CATEGORY, app.category());
66 + assertEquals("incorrect URL", URL, app.url());
67 + assertEquals("incorrect readme", README, app.readme());
68 + assertEquals("incorrect role", ROLE, app.role());
61 assertEquals("incorrect permissions", PERMS, app.permissions()); 69 assertEquals("incorrect permissions", PERMS, app.permissions());
62 assertEquals("incorrect features repo", FURL, app.featuresRepo().get()); 70 assertEquals("incorrect features repo", FURL, app.featuresRepo().get());
63 assertEquals("incorrect features", FEATURES, app.features()); 71 assertEquals("incorrect features", FEATURES, app.features());
64 assertEquals("incorrect apps", APPS, app.requiredApps()); 72 assertEquals("incorrect apps", APPS, app.requiredApps());
65 assertTrue("incorrect toString", app.toString().contains(APP_NAME)); 73 assertTrue("incorrect toString", app.toString().contains(APP_NAME));
66 } 74 }
67 -
68 } 75 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -33,12 +33,17 @@ public class DefaultApplicationTest { ...@@ -33,12 +33,17 @@ public class DefaultApplicationTest {
33 33
34 @Test 34 @Test
35 public void basics() { 35 public void basics() {
36 - Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, ROLE, 36 + Application app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN,
37 + CATEGORY, URL, README, ICON, ROLE,
37 PERMS, Optional.of(FURL), FEATURES, APPS); 38 PERMS, Optional.of(FURL), FEATURES, APPS);
38 assertEquals("incorrect id", APP_ID, app.id()); 39 assertEquals("incorrect id", APP_ID, app.id());
39 assertEquals("incorrect version", VER, app.version()); 40 assertEquals("incorrect version", VER, app.version());
40 assertEquals("incorrect description", DESC, app.description()); 41 assertEquals("incorrect description", DESC, app.description());
41 assertEquals("incorrect origin", ORIGIN, app.origin()); 42 assertEquals("incorrect origin", ORIGIN, app.origin());
43 + assertEquals("incorrect category", CATEGORY, app.category());
44 + assertEquals("incorrect URL", URL, app.url());
45 + assertEquals("incorrect readme", README, app.readme());
46 + assertEquals("incorrect icon", ICON, app.icon());
42 assertEquals("incorrect role", ROLE, app.role()); 47 assertEquals("incorrect role", ROLE, app.role());
43 assertEquals("incorrect permissions", PERMS, app.permissions()); 48 assertEquals("incorrect permissions", PERMS, app.permissions());
44 assertEquals("incorrect features repo", FURL, app.featuresRepo().get()); 49 assertEquals("incorrect features repo", FURL, app.featuresRepo().get());
...@@ -49,16 +54,19 @@ public class DefaultApplicationTest { ...@@ -49,16 +54,19 @@ public class DefaultApplicationTest {
49 54
50 @Test 55 @Test
51 public void testEquality() { 56 public void testEquality() {
52 - Application a1 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, ROLE, 57 + Application a1 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN,
58 + CATEGORY, URL, README, ICON, ROLE,
53 PERMS, Optional.of(FURL), FEATURES, APPS); 59 PERMS, Optional.of(FURL), FEATURES, APPS);
54 - Application a2 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, ROLE, 60 + Application a2 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN,
61 + CATEGORY, URL, README, ICON, ROLE,
55 PERMS, Optional.of(FURL), FEATURES, APPS); 62 PERMS, Optional.of(FURL), FEATURES, APPS);
56 - Application a3 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, ROLE, 63 + Application a3 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN,
64 + CATEGORY, URL, README, ICON, ROLE,
57 PERMS, Optional.empty(), FEATURES, APPS); 65 PERMS, Optional.empty(), FEATURES, APPS);
58 - Application a4 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN + "asd", ROLE, 66 + Application a4 = new DefaultApplication(APP_ID, VER, DESC, ORIGIN + "asd",
67 + CATEGORY, URL, README, ICON, ROLE,
59 PERMS, Optional.of(FURL), FEATURES, APPS); 68 PERMS, Optional.of(FURL), FEATURES, APPS);
60 new EqualsTester().addEqualityGroup(a1, a2) 69 new EqualsTester().addEqualityGroup(a1, a2)
61 .addEqualityGroup(a3).addEqualityGroup(a4).testEquals(); 70 .addEqualityGroup(a3).addEqualityGroup(a4).testEquals();
62 } 71 }
63 -
64 } 72 }
...\ No newline at end of file ...\ No newline at end of file
......
1 /* 1 /*
2 - * Copyright 2015 Open Networking Laboratory 2 + * Copyright 2015-2016 Open Networking Laboratory
3 * 3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License. 5 * you may not use this file except in compliance with the License.
...@@ -23,6 +23,7 @@ import com.google.common.io.Files; ...@@ -23,6 +23,7 @@ import com.google.common.io.Files;
23 import org.apache.commons.configuration.ConfigurationException; 23 import org.apache.commons.configuration.ConfigurationException;
24 import org.apache.commons.configuration.HierarchicalConfiguration; 24 import org.apache.commons.configuration.HierarchicalConfiguration;
25 import org.apache.commons.configuration.XMLConfiguration; 25 import org.apache.commons.configuration.XMLConfiguration;
26 +import org.apache.commons.lang.StringUtils;
26 import org.onlab.util.Tools; 27 import org.onlab.util.Tools;
27 import org.onosproject.app.ApplicationDescription; 28 import org.onosproject.app.ApplicationDescription;
28 import org.onosproject.app.ApplicationEvent; 29 import org.onosproject.app.ApplicationEvent;
...@@ -37,6 +38,10 @@ import org.onosproject.store.AbstractStore; ...@@ -37,6 +38,10 @@ import org.onosproject.store.AbstractStore;
37 import org.slf4j.Logger; 38 import org.slf4j.Logger;
38 import org.slf4j.LoggerFactory; 39 import org.slf4j.LoggerFactory;
39 40
41 +import javax.imageio.ImageIO;
42 +import java.awt.image.BufferedImage;
43 +import java.awt.image.DataBufferByte;
44 +import java.awt.image.WritableRaster;
40 import java.io.ByteArrayInputStream; 45 import java.io.ByteArrayInputStream;
41 import java.io.File; 46 import java.io.File;
42 import java.io.FileInputStream; 47 import java.io.FileInputStream;
...@@ -81,6 +86,10 @@ public class ApplicationArchive ...@@ -81,6 +86,10 @@ public class ApplicationArchive
81 private static final String APPS = "[@apps]"; 86 private static final String APPS = "[@apps]";
82 private static final String DESCRIPTION = "description"; 87 private static final String DESCRIPTION = "description";
83 88
89 + private static final String CATEGORY = "[@category]";
90 + private static final String URL = "[@url]";
91 + private static final String README = "readme";
92 +
84 private static final String ROLE = "security.role"; 93 private static final String ROLE = "security.role";
85 private static final String APP_PERMISSIONS = "security.permissions.app-perm"; 94 private static final String APP_PERMISSIONS = "security.permissions.app-perm";
86 private static final String NET_PERMISSIONS = "security.permissions.net-perm"; 95 private static final String NET_PERMISSIONS = "security.permissions.net-perm";
...@@ -88,6 +97,7 @@ public class ApplicationArchive ...@@ -88,6 +97,7 @@ public class ApplicationArchive
88 97
89 private static final String OAR = ".oar"; 98 private static final String OAR = ".oar";
90 private static final String APP_XML = "app.xml"; 99 private static final String APP_XML = "app.xml";
100 + private static final String ICON_PNG = "icon.png";
91 private static final String M2_PREFIX = "m2"; 101 private static final String M2_PREFIX = "m2";
92 102
93 private static final String ROOT = "../"; 103 private static final String ROOT = "../";
...@@ -283,8 +293,10 @@ public class ApplicationArchive ...@@ -283,8 +293,10 @@ public class ApplicationArchive
283 private ApplicationDescription loadAppDescription(XMLConfiguration cfg) { 293 private ApplicationDescription loadAppDescription(XMLConfiguration cfg) {
284 String name = cfg.getString(NAME); 294 String name = cfg.getString(NAME);
285 Version version = Version.version(cfg.getString(VERSION)); 295 Version version = Version.version(cfg.getString(VERSION));
286 - String desc = cfg.getString(DESCRIPTION);
287 String origin = cfg.getString(ORIGIN); 296 String origin = cfg.getString(ORIGIN);
297 + String category = cfg.getString(CATEGORY);
298 + String url = cfg.getString(URL);
299 + byte[] icon = getApplicationIcon(name);
288 ApplicationRole role = getRole(cfg.getString(ROLE)); 300 ApplicationRole role = getRole(cfg.getString(ROLE));
289 Set<Permission> perms = getPermissions(cfg); 301 Set<Permission> perms = getPermissions(cfg);
290 String featRepo = cfg.getString(FEATURES_REPO); 302 String featRepo = cfg.getString(FEATURES_REPO);
...@@ -295,7 +307,17 @@ public class ApplicationArchive ...@@ -295,7 +307,17 @@ public class ApplicationArchive
295 List<String> requiredApps = apps.isEmpty() ? 307 List<String> requiredApps = apps.isEmpty() ?
296 ImmutableList.of() : ImmutableList.copyOf(apps.split(",")); 308 ImmutableList.of() : ImmutableList.copyOf(apps.split(","));
297 309
298 - return new DefaultApplicationDescription(name, version, desc, origin, role, 310 + String desc = cfg.getString(DESCRIPTION);
311 + String readme = cfg.getString(README);
312 +
313 + if (readme == null) {
314 + readme = desc;
315 + } else {
316 + desc = compactDescription(readme);
317 + }
318 +
319 + return new DefaultApplicationDescription(name, version, desc, origin,
320 + category, url, readme, icon, role,
299 perms, featuresRepo, features, 321 perms, featuresRepo, features,
300 requiredApps); 322 requiredApps);
301 } 323 }
...@@ -387,7 +409,6 @@ public class ApplicationArchive ...@@ -387,7 +409,6 @@ public class ApplicationArchive
387 return appFile(appName, "active").exists(); 409 return appFile(appName, "active").exists();
388 } 410 }
389 411
390 -
391 // Returns the name of the file located under the specified app directory. 412 // Returns the name of the file located under the specified app directory.
392 private File appFile(String appName, String fileName) { 413 private File appFile(String appName, String fileName) {
393 return new File(new File(appsDir, appName), fileName); 414 return new File(new File(appsDir, appName), fileName);
...@@ -420,7 +441,33 @@ public class ApplicationArchive ...@@ -420,7 +441,33 @@ public class ApplicationArchive
420 return ImmutableSet.copyOf(permissionList); 441 return ImmutableSet.copyOf(permissionList);
421 } 442 }
422 443
423 - // 444 + // Returns the byte stream from icon.png file in oar application archive.
445 + private byte[] getApplicationIcon(String appName) {
446 + // open image
447 + File iconFile = appFile(appName, ICON_PNG);
448 +
449 + if (!iconFile.exists()) {
450 + iconFile = new File(appsDir, ICON_PNG);
451 + }
452 +
453 + if (!iconFile.exists()) {
454 + return null;
455 + }
456 +
457 + BufferedImage bufferedImage = null;
458 + try {
459 + bufferedImage = ImageIO.read(iconFile);
460 + } catch (IOException e) {
461 + e.printStackTrace();
462 + }
463 +
464 + // get DataBufferBytes from Raster
465 + WritableRaster raster = bufferedImage .getRaster();
466 + DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
467 +
468 + return data.getData();
469 + }
470 +
424 // Returns application role type 471 // Returns application role type
425 public ApplicationRole getRole(String value) { 472 public ApplicationRole getRole(String value) {
426 if (value == null) { 473 if (value == null) {
...@@ -434,4 +481,16 @@ public class ApplicationArchive ...@@ -434,4 +481,16 @@ public class ApplicationArchive
434 } 481 }
435 } 482 }
436 } 483 }
484 +
485 + // Returns the first sentence of the given sentence
486 + private String compactDescription(String sentence) {
487 + if (StringUtils.isNotEmpty(sentence)) {
488 + if (StringUtils.contains(sentence, ".")) {
489 + return StringUtils.substringBefore(sentence, ".") + ".";
490 + } else {
491 + return sentence + ".";
492 + }
493 + }
494 + return sentence;
495 + }
437 } 496 }
......
...@@ -60,6 +60,10 @@ public class ApplicationArchiveTest { ...@@ -60,6 +60,10 @@ public class ApplicationArchiveTest {
60 assertEquals("incorrect origin", ORIGIN, app.origin()); 60 assertEquals("incorrect origin", ORIGIN, app.origin());
61 assertEquals("incorrect role", ROLE, app.role()); 61 assertEquals("incorrect role", ROLE, app.role());
62 62
63 + assertEquals("incorrect category", CATEGORY, app.category());
64 + assertEquals("incorrect url", URL, app.url());
65 + assertEquals("incorrect readme", README, app.readme());
66 +
63 assertEquals("incorrect description", DESC, app.description()); 67 assertEquals("incorrect description", DESC, app.description());
64 assertEquals("incorrect features URI", FURL, app.featuresRepo().get()); 68 assertEquals("incorrect features URI", FURL, app.featuresRepo().get());
65 assertEquals("incorrect permissions", PERMS, app.permissions()); 69 assertEquals("incorrect permissions", PERMS, app.permissions());
......
...@@ -74,6 +74,8 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic ...@@ -74,6 +74,8 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic
74 DefaultApplication app = 74 DefaultApplication app =
75 new DefaultApplication(appId, appDesc.version(), 75 new DefaultApplication(appId, appDesc.version(),
76 appDesc.description(), appDesc.origin(), 76 appDesc.description(), appDesc.origin(),
77 + appDesc.category(), appDesc.url(),
78 + appDesc.readme(), appDesc.icon(),
77 appDesc.role(), appDesc.permissions(), 79 appDesc.role(), appDesc.permissions(),
78 appDesc.featuresRepo(), appDesc.features(), 80 appDesc.featuresRepo(), appDesc.features(),
79 appDesc.requiredApps()); 81 appDesc.requiredApps());
...@@ -117,7 +119,9 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic ...@@ -117,7 +119,9 @@ public class SimpleApplicationStore extends ApplicationArchive implements Applic
117 ApplicationId appId = idStore.registerApplication(appDesc.name()); 119 ApplicationId appId = idStore.registerApplication(appDesc.name());
118 DefaultApplication app = 120 DefaultApplication app =
119 new DefaultApplication(appId, appDesc.version(), appDesc.description(), 121 new DefaultApplication(appId, appDesc.version(), appDesc.description(),
120 - appDesc.origin(), appDesc.role(), appDesc.permissions(), 122 + appDesc.origin(), appDesc.category(), appDesc.url(),
123 + appDesc.readme(), appDesc.icon(),
124 + appDesc.role(), appDesc.permissions(),
121 appDesc.featuresRepo(), appDesc.features(), 125 appDesc.featuresRepo(), appDesc.features(),
122 appDesc.requiredApps()); 126 appDesc.requiredApps());
123 apps.put(appId, app); 127 apps.put(appId, app);
......
1 <!-- 1 <!--
2 - ~ Copyright 2015 Open Networking Laboratory 2 + ~ Copyright 2015-2016 Open Networking Laboratory
3 ~ 3 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License"); 4 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License. 5 ~ you may not use this file except in compliance with the License.
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
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" 16 +<app name="org.foo.app" origin="Circus" version="1.2.a" category="other"
17 - featuresRepo="mvn:org.foo-features/1.2a/xml/features" 17 + url="http://www.onosproject.org" featuresRepo="mvn:org.foo-features/1.2a/xml/features"
18 - features="foo,bar"> 18 + readme="Awesome application from Circus, Inc." features="foo,bar">
19 <description>Awesome application from Circus, Inc.</description> 19 <description>Awesome application from Circus, Inc.</description>
20 <security> 20 <security>
21 <role>ADMIN</role> 21 <role>ADMIN</role>
...@@ -23,7 +23,5 @@ ...@@ -23,7 +23,5 @@
23 <app-perm>FLOWRULE_WRITE</app-perm> 23 <app-perm>FLOWRULE_WRITE</app-perm>
24 <app-perm>FLOWRULE_READ</app-perm> 24 <app-perm>FLOWRULE_READ</app-perm>
25 </permissions> 25 </permissions>
26 -
27 </security> 26 </security>
28 -
29 </app> 27 </app>
......
...@@ -138,7 +138,8 @@ public class ApplicationManagerTest { ...@@ -138,7 +138,8 @@ 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, ROLE, PERMS, 141 + app = new DefaultApplication(APP_ID, VER, DESC, ORIGIN, CATEGORY,
142 + URL, README, ICON, ROLE, PERMS,
142 Optional.of(FURL), FEATURES, ImmutableList.of()); 143 Optional.of(FURL), FEATURES, ImmutableList.of());
143 state = INSTALLED; 144 state = INSTALLED;
144 delegate.notify(new ApplicationEvent(APP_INSTALLED, app)); 145 delegate.notify(new ApplicationEvent(APP_INSTALLED, app));
......
...@@ -505,8 +505,9 @@ public class GossipApplicationStore extends ApplicationArchive ...@@ -505,8 +505,9 @@ public class GossipApplicationStore extends ApplicationArchive
505 private Application registerApp(ApplicationDescription appDesc) { 505 private Application registerApp(ApplicationDescription appDesc) {
506 ApplicationId appId = idStore.registerApplication(appDesc.name()); 506 ApplicationId appId = idStore.registerApplication(appDesc.name());
507 return new DefaultApplication(appId, appDesc.version(), appDesc.description(), 507 return new DefaultApplication(appId, appDesc.version(), appDesc.description(),
508 - appDesc.origin(), appDesc.role(), appDesc.permissions(), 508 + appDesc.origin(), appDesc.category(), appDesc.url(),
509 - appDesc.featuresRepo(), appDesc.features(), 509 + appDesc.readme(), appDesc.icon(), appDesc.role(),
510 - appDesc.requiredApps()); 510 + appDesc.permissions(), appDesc.featuresRepo(),
511 + appDesc.features(), appDesc.requiredApps());
511 } 512 }
512 } 513 }
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.bgp" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.bgp" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>BGP protocol southbound providers.</readme>
21 <artifact>mvn:${project.groupId}/onos-bgpio/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-bgpio/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-bgp-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-bgp-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-bgp-ctl/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-bgp-ctl/${project.version}</artifact>
......
1 <!-- 1 <!--
2 - ~ Copyright 2015 Open Networking Laboratory 2 + ~ Copyright 2015-2016 Open Networking Laboratory
3 ~ 3 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License"); 4 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License. 5 ~ you may not use this file except in compliance with the License.
...@@ -13,40 +13,41 @@ ...@@ -13,40 +13,41 @@
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 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 16 +<project xmlns="http://maven.apache.org/POM/4.0.0"
17 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 17 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18 - <modelVersion>4.0.0</modelVersion> 18 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
19 - <parent> 19 + <modelVersion>4.0.0</modelVersion>
20 - <groupId>org.onosproject</groupId> 20 + <parent>
21 - <artifactId>onos-bgp-providers</artifactId> 21 + <groupId>org.onosproject</groupId>
22 - <version>1.5.0-SNAPSHOT</version> 22 + <artifactId>onos-bgp-providers</artifactId>
23 - <relativePath>../pom.xml</relativePath> 23 + <version>1.5.0-SNAPSHOT</version>
24 - </parent> 24 + <relativePath>../pom.xml</relativePath>
25 + </parent>
25 26
26 - <artifactId>onos-bgp-app</artifactId> 27 + <artifactId>onos-bgp-app</artifactId>
27 - <packaging>pom</packaging> 28 + <packaging>pom</packaging>
28 - <description>BGP protocol southbound providers</description> 29 + <description>BGP protocol southbound providers</description>
29 30
30 - <dependencies> 31 + <dependencies>
31 - <dependency> 32 + <dependency>
32 - <groupId>org.onosproject</groupId> 33 + <groupId>org.onosproject</groupId>
33 - <artifactId>onos-bgpio</artifactId> 34 + <artifactId>onos-bgpio</artifactId>
34 - <version>${project.version}</version> 35 + <version>${project.version}</version>
35 - </dependency> 36 + </dependency>
36 - <dependency> 37 + <dependency>
37 - <groupId>org.onosproject</groupId> 38 + <groupId>org.onosproject</groupId>
38 - <artifactId>onos-bgp-api</artifactId> 39 + <artifactId>onos-bgp-api</artifactId>
39 - <version>${project.version}</version> 40 + <version>${project.version}</version>
40 - </dependency> 41 + </dependency>
41 - <dependency> 42 + <dependency>
42 - <groupId>org.onosproject</groupId> 43 + <groupId>org.onosproject</groupId>
43 - <artifactId>onos-bgp-ctl</artifactId> 44 + <artifactId>onos-bgp-ctl</artifactId>
44 - <version>${project.version}</version> 45 + <version>${project.version}</version>
45 - </dependency> 46 + </dependency>
46 - <dependency> 47 + <dependency>
47 - <groupId>org.onosproject</groupId> 48 + <groupId>org.onosproject</groupId>
48 - <artifactId>onos-bgp-provider-topology</artifactId> 49 + <artifactId>onos-bgp-provider-topology</artifactId>
49 - <version>${project.version}</version> 50 + <version>${project.version}</version>
50 - </dependency> 51 + </dependency>
51 - </dependencies> 52 + </dependencies>
52 </project> 53 </project>
......
...@@ -31,6 +31,10 @@ ...@@ -31,6 +31,10 @@
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.origin>ON.Lab</onos.app.origin>
35 + <onos.app.category>default</onos.app.category>
36 + <onos.app.url>http://onosproject.org</onos.app.url>
37 + <onos.app.readme>ONOS host location provider.</onos.app.readme>
34 </properties> 38 </properties>
35 39
36 <description>ONOS host location provider</description> 40 <description>ONOS host location provider</description>
......
...@@ -32,6 +32,10 @@ ...@@ -32,6 +32,10 @@
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.origin>ON.Lab</onos.app.origin>
36 + <onos.app.category>default</onos.app.category>
37 + <onos.app.url>http://onosproject.org</onos.app.url>
38 + <onos.app.readme>ONOS LLDP link provider.</onos.app.readme>
35 </properties> 39 </properties>
36 40
37 <description>ONOS LLDP link provider</description> 41 <description>ONOS LLDP link provider</description>
......
...@@ -35,6 +35,10 @@ ...@@ -35,6 +35,10 @@
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.origin>ON.Lab</onos.app.origin> 37 <onos.app.origin>ON.Lab</onos.app.origin>
38 + <onos.app.category>default</onos.app.category>
39 + <onos.app.url>http://onosproject.org</onos.app.url>
40 + <onos.app.readme>Host provider that uses network config
41 + service to discover hosts.</onos.app.readme>
38 </properties> 42 </properties>
39 43
40 <dependencies> 44 <dependencies>
......
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.netconf" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.netconf" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
21 - 22 + <readme>ONOS NetConf protocol southbound provider.</readme>
22 <artifact>mvn:${project.groupId}/onos-netconf-api/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-netconf-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-netconf-ctl/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-netconf-ctl/${project.version}</artifact>
24 <artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact>
......
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
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.origin>ON.Lab</onos.app.origin>
37 + <onos.app.category>default</onos.app.category>
38 + <onos.app.url>http://onosproject.org</onos.app.url>
39 + <onos.app.readme>ONOS null southbound provider.</onos.app.readme>
36 </properties> 40 </properties>
37 41
38 <dependencies> 42 <dependencies>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014-2015 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.openflow-base" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.openflow-base" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
21 - 22 + <readme>OpenFlow protocol southbound provider.</readme>
22 <artifact>mvn:${project.groupId}/onos-of-api/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-of-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-of-ctl/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-of-ctl/${project.version}</artifact>
24 <artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2014-2015 Open Networking Laboratory 3 + ~ Copyright 2014-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.ovsdb-base" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.ovsdb-base" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 - <description>${project.description}</description> 21 + <description>${project.description}</description>
21 - 22 + <readme>OVSDB protocol southbound providers.</readme>
22 <artifact>mvn:${project.groupId}/onos-ovsdb-rfc/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-ovsdb-rfc/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-ovsdb-api/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-ovsdb-api/${project.version}</artifact>
24 <artifact>mvn:${project.groupId}/onos-ovsdb-ctl/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-ovsdb-ctl/${project.version}</artifact>
...@@ -26,4 +27,4 @@ ...@@ -26,4 +27,4 @@
26 27
27 <artifact>mvn:${project.groupId}/onos-ovsdb-provider-device/${project.version}</artifact> 28 <artifact>mvn:${project.groupId}/onos-ovsdb-provider-device/${project.version}</artifact>
28 <artifact>mvn:${project.groupId}/onos-ovsdb-provider-tunnel/${project.version}</artifact> 29 <artifact>mvn:${project.groupId}/onos-ovsdb-provider-tunnel/${project.version}</artifact>
29 -</app> 30 +</app>
...\ No newline at end of file ...\ No newline at end of file
......
1 -<?xml version="1.0"?> 1 +<?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.pcep" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.pcep" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>PCEP protocol southbound provider.</readme>
21 <artifact>mvn:${project.groupId}/onos-app-pcep-api/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-app-pcep-api/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-pcepio/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-pcepio/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-pcep-controller-api/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-pcep-controller-api/${project.version}</artifact>
......
1 +<?xml version="1.0" encoding="UTF-8"?>
1 <!-- 2 <!--
2 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
3 ~ 4 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -13,8 +14,9 @@ ...@@ -13,8 +14,9 @@
13 ~ See the License for the specific language governing permissions and 14 ~ See the License for the specific language governing permissions and
14 ~ limitations under the License. 15 ~ limitations under the License.
15 --> 16 -->
16 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 17 +<project xmlns="http://maven.apache.org/POM/4.0.0"
17 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 18 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
18 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
19 <parent> 21 <parent>
20 <groupId>org.onosproject</groupId> 22 <groupId>org.onosproject</groupId>
...@@ -25,24 +27,24 @@ ...@@ -25,24 +27,24 @@
25 27
26 <artifactId>onos-pcep</artifactId> 28 <artifactId>onos-pcep</artifactId>
27 <packaging>pom</packaging> 29 <packaging>pom</packaging>
28 - <description>PCEP protocol southbound providers</description> 30 + <description>PCEP protocol southbound providers</description>
29 31
30 - <dependencies> 32 + <dependencies>
31 <dependency> 33 <dependency>
32 <groupId>org.onosproject</groupId> 34 <groupId>org.onosproject</groupId>
33 <artifactId>onos-app-pcep-api</artifactId> 35 <artifactId>onos-app-pcep-api</artifactId>
34 </dependency> 36 </dependency>
35 - <dependency> 37 + <dependency>
36 <groupId>org.onosproject</groupId> 38 <groupId>org.onosproject</groupId>
37 <artifactId>onos-pcepio</artifactId> 39 <artifactId>onos-pcepio</artifactId>
38 <version>${project.version}</version> 40 <version>${project.version}</version>
39 </dependency> 41 </dependency>
40 - <dependency> 42 + <dependency>
41 <groupId>org.onosproject</groupId> 43 <groupId>org.onosproject</groupId>
42 <artifactId>onos-pcep-controller-api</artifactId> 44 <artifactId>onos-pcep-controller-api</artifactId>
43 <version>${project.version}</version> 45 <version>${project.version}</version>
44 </dependency> 46 </dependency>
45 - <dependency> 47 + <dependency>
46 <groupId>org.onosproject</groupId> 48 <groupId>org.onosproject</groupId>
47 <artifactId>onos-pcep-controller-impl</artifactId> 49 <artifactId>onos-pcep-controller-impl</artifactId>
48 <version>${project.version}</version> 50 <version>${project.version}</version>
......
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.restsb" origin="ON.Lab" version="${project.version}" 17 <app name="org.onosproject.restsb" origin="ON.Lab" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
21 - 22 + <readme>REST protocol southbound provider.</readme>
22 <artifact>mvn:${project.groupId}/onos-restsb-api/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-restsb-api/${project.version}</artifact>
23 <artifact>mvn:${project.groupId}/onos-restsb-ctl/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-restsb-ctl/${project.version}</artifact>
24 <artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact> 25 <artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact>
......
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
15 ~ limitations under the License. 15 ~ limitations under the License.
16 --> 16 -->
17 <app name="org.onosproject.snmp" origin="BTI Systems" version="${project.version}" 17 <app name="org.onosproject.snmp" origin="BTI Systems" version="${project.version}"
18 + category="default" url="http://onosproject.org"
18 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}"> 20 features="${project.artifactId}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>SNMP protocol southbound provider.</readme>
21 <artifact>mvn:${project.groupId}/onos-snmp-provider-device/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/onos-snmp-provider-device/${project.version}</artifact>
22 <artifact>mvn:${project.groupId}/onos-snmp-provider-alarm/${project.version}</artifact> 24 <artifact>mvn:${project.groupId}/onos-snmp-provider-alarm/${project.version}</artifact>
23 </app> 25 </app>
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
......
...@@ -18,6 +18,7 @@ package org.onosproject.maven; ...@@ -18,6 +18,7 @@ package org.onosproject.maven;
18 import com.google.common.collect.ImmutableList; 18 import com.google.common.collect.ImmutableList;
19 import org.apache.commons.configuration.ConfigurationException; 19 import org.apache.commons.configuration.ConfigurationException;
20 import org.apache.commons.configuration.XMLConfiguration; 20 import org.apache.commons.configuration.XMLConfiguration;
21 +import org.apache.commons.lang.StringUtils;
21 import org.apache.maven.artifact.repository.ArtifactRepository; 22 import org.apache.maven.artifact.repository.ArtifactRepository;
22 import org.apache.maven.plugin.AbstractMojo; 23 import org.apache.maven.plugin.AbstractMojo;
23 import org.apache.maven.plugin.MojoExecutionException; 24 import org.apache.maven.plugin.MojoExecutionException;
...@@ -28,6 +29,11 @@ import org.apache.maven.plugins.annotations.Parameter; ...@@ -28,6 +29,11 @@ import org.apache.maven.plugins.annotations.Parameter;
28 import org.apache.maven.project.MavenProject; 29 import org.apache.maven.project.MavenProject;
29 import org.apache.maven.project.MavenProjectHelper; 30 import org.apache.maven.project.MavenProjectHelper;
30 31
32 +import javax.imageio.ImageIO;
33 +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
34 +import java.awt.image.BufferedImage;
35 +import java.awt.image.DataBufferByte;
36 +import java.awt.image.WritableRaster;
31 import java.io.File; 37 import java.io.File;
32 import java.io.FileInputStream; 38 import java.io.FileInputStream;
33 import java.io.FileNotFoundException; 39 import java.io.FileNotFoundException;
...@@ -55,6 +61,7 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -55,6 +61,7 @@ public class OnosAppMojo extends AbstractMojo {
55 private static final String ARTIFACT = "artifact"; 61 private static final String ARTIFACT = "artifact";
56 62
57 private static final String APP_XML = "app.xml"; 63 private static final String APP_XML = "app.xml";
64 + private static final String ICON_PNG = "icon.png";
58 private static final String FEATURES_XML = "features.xml"; 65 private static final String FEATURES_XML = "features.xml";
59 66
60 private static final String MVN_URL = "mvn:"; 67 private static final String MVN_URL = "mvn:";
...@@ -64,6 +71,10 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -64,6 +71,10 @@ public class OnosAppMojo extends AbstractMojo {
64 private static final String ONOS_APP_ORIGIN = "onos.app.origin"; 71 private static final String ONOS_APP_ORIGIN = "onos.app.origin";
65 private static final String ONOS_APP_REQUIRES = "onos.app.requires"; 72 private static final String ONOS_APP_REQUIRES = "onos.app.requires";
66 73
74 + private static final String ONOS_APP_CATEGORY = "onos.app.category";
75 + private static final String ONOS_APP_URL = "onos.app.url";
76 + private static final String ONOS_APP_README = "onos.app.readme";
77 +
67 private static final String JAR = "jar"; 78 private static final String JAR = "jar";
68 private static final String XML = "xml"; 79 private static final String XML = "xml";
69 private static final String APP_ZIP = "oar"; 80 private static final String APP_ZIP = "oar";
...@@ -72,6 +83,9 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -72,6 +83,9 @@ public class OnosAppMojo extends AbstractMojo {
72 private static final String DEFAULT_ORIGIN = "ON.Lab"; 83 private static final String DEFAULT_ORIGIN = "ON.Lab";
73 private static final String DEFAULT_VERSION = "${project.version}"; 84 private static final String DEFAULT_VERSION = "${project.version}";
74 85
86 + private static final String DEFAULT_CATEGORY = "Default";
87 + private static final String DEFAULT_URL = "http://onosproject.org";
88 +
75 private static final String DEFAULT_FEATURES_REPO = 89 private static final String DEFAULT_FEATURES_REPO =
76 "mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"; 90 "mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features";
77 private static final String DEFAULT_ARTIFACT = 91 private static final String DEFAULT_ARTIFACT =
...@@ -82,6 +96,9 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -82,6 +96,9 @@ public class OnosAppMojo extends AbstractMojo {
82 private String name; 96 private String name;
83 private String origin; 97 private String origin;
84 private String requiredApps; 98 private String requiredApps;
99 + private String category;
100 + private String url;
101 + private String readme;
85 private String version = DEFAULT_VERSION; 102 private String version = DEFAULT_VERSION;
86 private String featuresRepo = DEFAULT_FEATURES_REPO; 103 private String featuresRepo = DEFAULT_FEATURES_REPO;
87 private List<String> artifacts; 104 private List<String> artifacts;
...@@ -137,7 +154,6 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -137,7 +154,6 @@ public class OnosAppMojo extends AbstractMojo {
137 @Component 154 @Component
138 protected MavenProjectHelper projectHelper; 155 protected MavenProjectHelper projectHelper;
139 156
140 -
141 private File m2Directory; 157 private File m2Directory;
142 protected File stageDirectory; 158 protected File stageDirectory;
143 protected String projectPath; 159 protected String projectPath;
...@@ -165,6 +181,16 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -165,6 +181,16 @@ public class OnosAppMojo extends AbstractMojo {
165 requiredApps = (String) project.getProperties().get(ONOS_APP_REQUIRES); 181 requiredApps = (String) project.getProperties().get(ONOS_APP_REQUIRES);
166 requiredApps = requiredApps == null ? "" : requiredApps.replaceAll("[\\s]", ""); 182 requiredApps = requiredApps == null ? "" : requiredApps.replaceAll("[\\s]", "");
167 183
184 + category = (String) project.getProperties().get(ONOS_APP_CATEGORY);
185 + category = category != null ? category : DEFAULT_CATEGORY;
186 +
187 + url = (String) project.getProperties().get(ONOS_APP_URL);
188 + url = url != null ? url : DEFAULT_URL;
189 +
190 + // if readme does not exist, we simply fallback to use description
191 + readme = (String) project.getProperties().get(ONOS_APP_README);
192 + readme = readme != null ? readme : projectDescription;
193 +
168 if (appFile.exists()) { 194 if (appFile.exists()) {
169 loadAppFile(appFile); 195 loadAppFile(appFile);
170 } else { 196 } else {
...@@ -303,7 +329,7 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -303,7 +329,7 @@ public class OnosAppMojo extends AbstractMojo {
303 // Generates the ONOS package ZIP file. 329 // Generates the ONOS package ZIP file.
304 private void generateAppPackage() throws MojoExecutionException { 330 private void generateAppPackage() throws MojoExecutionException {
305 File appZip = new File(dstDirectory, artifactFile(projectArtifactId, projectVersion, 331 File appZip = new File(dstDirectory, artifactFile(projectArtifactId, projectVersion,
306 - APP_ZIP, null)); 332 + APP_ZIP, null));
307 try (FileOutputStream fos = new FileOutputStream(appZip); 333 try (FileOutputStream fos = new FileOutputStream(appZip);
308 ZipOutputStream zos = new ZipOutputStream(fos)) { 334 ZipOutputStream zos = new ZipOutputStream(fos)) {
309 zipDirectory("", stageDirectory, zos); 335 zipDirectory("", stageDirectory, zos);
...@@ -327,7 +353,7 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -327,7 +353,7 @@ public class OnosAppMojo extends AbstractMojo {
327 private String artifactFile(String[] fields) { 353 private String artifactFile(String[] fields) {
328 return fields.length < 5 ? 354 return fields.length < 5 ?
329 artifactFile(fields[1], fields[2], 355 artifactFile(fields[1], fields[2],
330 - (fields.length < 4 ? JAR : fields[3]), null) : 356 + (fields.length < 4 ? JAR : fields[3]), null) :
331 artifactFile(fields[1], fields[2], fields[3], fields[4]); 357 artifactFile(fields[1], fields[2], fields[3], fields[4]);
332 } 358 }
333 359
...@@ -344,6 +370,9 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -344,6 +370,9 @@ public class OnosAppMojo extends AbstractMojo {
344 string.replaceAll("\\$\\{onos.app.name\\}", name) 370 string.replaceAll("\\$\\{onos.app.name\\}", name)
345 .replaceAll("\\$\\{onos.app.origin\\}", origin) 371 .replaceAll("\\$\\{onos.app.origin\\}", origin)
346 .replaceAll("\\$\\{onos.app.requires\\}", requiredApps) 372 .replaceAll("\\$\\{onos.app.requires\\}", requiredApps)
373 + .replaceAll("\\$\\{onos.app.category\\}", category)
374 + .replaceAll("\\$\\{onos.app.url\\}", url)
375 + .replaceAll("\\$\\{onos.app.readme\\}", readme)
347 .replaceAll("\\$\\{project.groupId\\}", projectGroupId) 376 .replaceAll("\\$\\{project.groupId\\}", projectGroupId)
348 .replaceAll("\\$\\{project.artifactId\\}", projectArtifactId) 377 .replaceAll("\\$\\{project.artifactId\\}", projectArtifactId)
349 .replaceAll("\\$\\{project.version\\}", projectVersion) 378 .replaceAll("\\$\\{project.version\\}", projectVersion)
...@@ -375,4 +404,4 @@ public class OnosAppMojo extends AbstractMojo { ...@@ -375,4 +404,4 @@ public class OnosAppMojo extends AbstractMojo {
375 } 404 }
376 } 405 }
377 } 406 }
378 -} 407 +}
...\ No newline at end of file ...\ No newline at end of file
......
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 - ~ Copyright 2015 Open Networking Laboratory 3 + ~ Copyright 2015-2016 Open Networking Laboratory
4 ~ 4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License"); 5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License. 6 ~ you may not use this file except in compliance with the License.
...@@ -15,8 +15,10 @@ ...@@ -15,8 +15,10 @@
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 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features" 19 featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
19 features="${project.artifactId}" apps="${onos.app.requires}"> 20 features="${project.artifactId}" apps="${onos.app.requires}">
20 <description>${project.description}</description> 21 <description>${project.description}</description>
22 + <readme>${onos.app.readme}</readme>
21 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact> 23 <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
22 </app> 24 </app>
......
...@@ -85,19 +85,27 @@ public class ApplicationsResourceTest extends ResourceTest { ...@@ -85,19 +85,27 @@ public class ApplicationsResourceTest extends ResourceTest {
85 85
86 private Application app1 = 86 private Application app1 =
87 new DefaultApplication(id1, VER, 87 new DefaultApplication(id1, VER,
88 - "app1", "origin1", ApplicationRole.ADMIN, ImmutableSet.of(), Optional.of(FURL), 88 + "app1", "origin1", "category1", "url1",
89 + "readme1", new byte[0], ApplicationRole.ADMIN,
90 + ImmutableSet.of(), Optional.of(FURL),
89 ImmutableList.of("My Feature"), ImmutableList.of()); 91 ImmutableList.of("My Feature"), ImmutableList.of());
90 private Application app2 = 92 private Application app2 =
91 new DefaultApplication(id2, VER, 93 new DefaultApplication(id2, VER,
92 - "app2", "origin2", ApplicationRole.ADMIN, ImmutableSet.of(), Optional.of(FURL), 94 + "app2", "origin2", "category2", "url2",
95 + "readme2", new byte[0], ApplicationRole.ADMIN,
96 + ImmutableSet.of(), Optional.of(FURL),
93 ImmutableList.of("My Feature"), ImmutableList.of()); 97 ImmutableList.of("My Feature"), ImmutableList.of());
94 private Application app3 = 98 private Application app3 =
95 new DefaultApplication(id3, VER, 99 new DefaultApplication(id3, VER,
96 - "app3", "origin3", ApplicationRole.ADMIN, ImmutableSet.of(), Optional.of(FURL), 100 + "app3", "origin3", "category3", "url3",
101 + "readme3", new byte[0], ApplicationRole.ADMIN,
102 + ImmutableSet.of(), Optional.of(FURL),
97 ImmutableList.of("My Feature"), ImmutableList.of()); 103 ImmutableList.of("My Feature"), ImmutableList.of());
98 private Application app4 = 104 private Application app4 =
99 new DefaultApplication(id4, VER, 105 new DefaultApplication(id4, VER,
100 - "app4", "origin4", ApplicationRole.ADMIN, ImmutableSet.of(), Optional.of(FURL), 106 + "app4", "origin4", "category4", "url4",
107 + "readme4", new byte[0], ApplicationRole.ADMIN,
108 + ImmutableSet.of(), Optional.of(FURL),
101 ImmutableList.of("My Feature"), ImmutableList.of()); 109 ImmutableList.of("My Feature"), ImmutableList.of());
102 110
103 /** 111 /**
......