Apps-- added onos.app.title property to applications.
Change-Id: Id845390ee0bee5b871c0ce9f47b2ce98fbcf26b9
diff --git a/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java b/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java
index 1e3f49c..3699b5d 100644
--- a/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java
+++ b/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java
@@ -88,6 +88,7 @@
private static final String CATEGORY = "[@category]";
private static final String URL = "[@url]";
+ private static final String TITLE = "[@title]";
private static final String ROLE = "security.role";
private static final String APP_PERMISSIONS = "security.permissions.app-perm";
@@ -294,6 +295,11 @@
String name = cfg.getString(NAME);
Version version = Version.version(cfg.getString(VERSION));
String origin = cfg.getString(ORIGIN);
+
+ String title = cfg.getString(TITLE);
+ // FIXME: title should be set as attribute to APP, but fallback for now...
+ title = title == null ? name : title;
+
String category = cfg.getString(CATEGORY, UTILITY);
String url = cfg.getString(URL);
byte[] icon = getApplicationIcon(name);
@@ -313,7 +319,7 @@
// put short description to description field
String desc = compactDescription(readme);
- return new DefaultApplicationDescription(name, version, desc, origin,
+ return new DefaultApplicationDescription(name, version, title, desc, origin,
category, url, readme, icon,
role, perms, featuresRepo,
features, requiredApps);
diff --git a/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java b/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java
index 87c6363..f7258c3 100644
--- a/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java
+++ b/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java
@@ -65,6 +65,7 @@
assertEquals("incorrect url", URL, app.url());
assertEquals("incorrect readme", README, app.readme());
+ assertEquals("incorrect title", TITLE, app.title());
assertEquals("incorrect description", DESC, app.description());
assertEquals("incorrect features URI", FURL, app.featuresRepo().get());
assertEquals("incorrect permissions", PERMS, app.permissions());
diff --git a/core/common/src/test/java/org/onosproject/store/trivial/SimpleApplicationStore.java b/core/common/src/test/java/org/onosproject/store/trivial/SimpleApplicationStore.java
index 98c18b4..5047987 100644
--- a/core/common/src/test/java/org/onosproject/store/trivial/SimpleApplicationStore.java
+++ b/core/common/src/test/java/org/onosproject/store/trivial/SimpleApplicationStore.java
@@ -49,14 +49,18 @@
*/
@Component(immediate = true)
@Service
-public class SimpleApplicationStore extends ApplicationArchive implements ApplicationStore {
+public class SimpleApplicationStore extends ApplicationArchive
+ implements ApplicationStore {
private final Logger log = getLogger(getClass());
// App inventory & states
- private final ConcurrentMap<ApplicationId, DefaultApplication> apps = new ConcurrentHashMap<>();
- private final ConcurrentMap<ApplicationId, ApplicationState> states = new ConcurrentHashMap<>();
- private final ConcurrentMap<ApplicationId, Set<Permission>> permissions = new ConcurrentHashMap<>();
+ private final ConcurrentMap<ApplicationId, DefaultApplication> apps =
+ new ConcurrentHashMap<>();
+ private final ConcurrentMap<ApplicationId, ApplicationState> states =
+ new ConcurrentHashMap<>();
+ private final ConcurrentMap<ApplicationId, Set<Permission>> permissions =
+ new ConcurrentHashMap<>();
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected ApplicationIdStore idStore;
@@ -72,13 +76,20 @@
ApplicationId appId = idStore.registerApplication(name);
ApplicationDescription appDesc = getApplicationDescription(name);
DefaultApplication app =
- new DefaultApplication(appId, appDesc.version(),
- appDesc.description(), appDesc.origin(),
- appDesc.category(), appDesc.url(),
- appDesc.readme(), appDesc.icon(),
- appDesc.role(), appDesc.permissions(),
- appDesc.featuresRepo(), appDesc.features(),
- appDesc.requiredApps());
+ new DefaultApplication(appId,
+ appDesc.version(),
+ appDesc.title(),
+ appDesc.description(),
+ appDesc.origin(),
+ appDesc.category(),
+ appDesc.url(),
+ appDesc.readme(),
+ appDesc.icon(),
+ appDesc.role(),
+ appDesc.permissions(),
+ appDesc.featuresRepo(),
+ appDesc.features(),
+ appDesc.requiredApps());
apps.put(appId, app);
states.put(appId, isActive(name) ? INSTALLED : ACTIVE);
// load app permissions
@@ -118,12 +129,20 @@
ApplicationDescription appDesc = saveApplication(appDescStream);
ApplicationId appId = idStore.registerApplication(appDesc.name());
DefaultApplication app =
- new DefaultApplication(appId, appDesc.version(), appDesc.description(),
- appDesc.origin(), appDesc.category(), appDesc.url(),
- appDesc.readme(), appDesc.icon(),
- appDesc.role(), appDesc.permissions(),
- appDesc.featuresRepo(), appDesc.features(),
- appDesc.requiredApps());
+ new DefaultApplication(appId,
+ appDesc.version(),
+ appDesc.title(),
+ appDesc.description(),
+ appDesc.origin(),
+ appDesc.category(),
+ appDesc.url(),
+ appDesc.readme(),
+ appDesc.icon(),
+ appDesc.role(),
+ appDesc.permissions(),
+ appDesc.featuresRepo(),
+ appDesc.features(),
+ appDesc.requiredApps());
apps.put(appId, app);
states.put(appId, INSTALLED);
delegate.notify(new ApplicationEvent(APP_INSTALLED, app));
diff --git a/core/common/src/test/resources/org/onosproject/common/app/app.xml b/core/common/src/test/resources/org/onosproject/common/app/app.xml
index f623722..0f84e61 100644
--- a/core/common/src/test/resources/org/onosproject/common/app/app.xml
+++ b/core/common/src/test/resources/org/onosproject/common/app/app.xml
@@ -13,8 +13,10 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<app name="org.foo.app" origin="Circus" version="1.2.a" category="other"
- url="http://www.onosproject.org" featuresRepo="mvn:org.foo-features/1.2a/xml/features"
+<app name="org.foo.app" origin="Circus" version="1.2.a"
+ title="Awesome App" category="other"
+ url="http://www.onosproject.org"
+ featuresRepo="mvn:org.foo-features/1.2a/xml/features"
features="foo,bar">
<description>Awesome application from Circus, Inc.</description>
<security>
diff --git a/core/common/src/test/resources/org/onosproject/common/app/app.zip b/core/common/src/test/resources/org/onosproject/common/app/app.zip
index 6ee64c0..137f9df 100644
--- a/core/common/src/test/resources/org/onosproject/common/app/app.zip
+++ b/core/common/src/test/resources/org/onosproject/common/app/app.zip
Binary files differ