[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
diff --git a/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java b/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java
index e8ff9ec..1528f35 100644
--- a/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java
+++ b/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java
@@ -44,6 +44,13 @@
Version version();
/**
+ * Returns the name of the application origin, group or company.
+ *
+ * @return application origin
+ */
+ String origin();
+
+ /**
* Returns description of the application.
*
* @return application description text
@@ -51,11 +58,32 @@
String description();
/**
- * Returns the name of the application origin, group or company.
+ * Returns category of the application.
*
- * @return application origin
+ * @return application category text
*/
- String origin();
+ String category();
+
+ /**
+ * Returns url of the application.
+ *
+ * @return application url
+ */
+ String url();
+
+ /**
+ * Returns readme of the application.
+ *
+ * @return application readme
+ */
+ String readme();
+
+ /**
+ * Returns icon of the application.
+ *
+ * @return application icon
+ */
+ byte[] icon();
/**
* Returns the role of the application.
diff --git a/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java b/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java
index 569183a..3e52001 100644
--- a/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java
+++ b/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java
@@ -37,6 +37,10 @@
private final Version version;
private final String description;
private final String origin;
+ private final String category;
+ private final String url;
+ private final String readme;
+ private final byte[] icon;
private final ApplicationRole role;
private final Set<Permission> permissions;
private final Optional<URI> featuresRepo;
@@ -50,6 +54,10 @@
* @param version application version
* @param description application description
* @param origin origin company
+ * @param category application category
+ * @param url application URL
+ * @param readme application readme
+ * @param icon application icon
* @param role application role
* @param permissions requested permissions
* @param featuresRepo optional features repo URI
@@ -57,7 +65,8 @@
* @param requiredApps list of required application names
*/
public DefaultApplicationDescription(String name, Version version,
- String description, String origin,
+ String description, String origin, String category,
+ String url, String readme, byte[] icon,
ApplicationRole role, Set<Permission> permissions,
URI featuresRepo, List<String> features,
List<String> requiredApps) {
@@ -65,6 +74,10 @@
this.version = checkNotNull(version, "Version cannot be null");
this.description = checkNotNull(description, "Description cannot be null");
this.origin = checkNotNull(origin, "Origin cannot be null");
+ this.category = checkNotNull(category, "Category cannot be null");
+ this.url = checkNotNull(url, "URL cannot be null");
+ this.readme = readme;
+ this.icon = icon;
this.role = checkNotNull(role, "Role cannot be null");
this.permissions = checkNotNull(permissions, "Permissions cannot be null");
this.featuresRepo = Optional.ofNullable(featuresRepo);
@@ -89,6 +102,26 @@
}
@Override
+ public String category() {
+ return category;
+ }
+
+ @Override
+ public String url() {
+ return url;
+ }
+
+ @Override
+ public String readme() {
+ return readme;
+ }
+
+ @Override
+ public byte[] icon() {
+ return icon;
+ }
+
+ @Override
public String origin() {
return origin;
}
@@ -125,6 +158,9 @@
.add("version", version)
.add("description", description)
.add("origin", origin)
+ .add("category", category)
+ .add("url", url)
+ .add("readme", readme)
.add("role", role)
.add("permissions", permissions)
.add("featuresRepo", featuresRepo)