Apps-- added onos.app.title property to applications.

Change-Id: Id845390ee0bee5b871c0ce9f47b2ce98fbcf26b9
diff --git a/tools/package/archetypes/bundle/src/main/resources/archetype-resources/pom.xml b/tools/package/archetypes/bundle/src/main/resources/archetype-resources/pom.xml
index 3088353..fe3d57d 100644
--- a/tools/package/archetypes/bundle/src/main/resources/archetype-resources/pom.xml
+++ b/tools/package/archetypes/bundle/src/main/resources/archetype-resources/pom.xml
@@ -35,6 +35,7 @@
         <onos.version>1.5.0-SNAPSHOT</onos.version>
         <!-- Uncomment to generate ONOS app from this module.
         <onos.app.name>org.foo.app</onos.app.name>
+        <onos.app.title>Foo App</onos.app.title>
         <onos.app.origin>Foo, Inc.</onos.app.origin>
         <onos.app.category>default</onos.app.category>
         <onos.app.url>http://onosproject.org</onos.app.url>
diff --git a/tools/package/archetypes/ui/src/main/resources/archetype-resources/pom.xml b/tools/package/archetypes/ui/src/main/resources/archetype-resources/pom.xml
index b90be98..0f1b561 100644
--- a/tools/package/archetypes/ui/src/main/resources/archetype-resources/pom.xml
+++ b/tools/package/archetypes/ui/src/main/resources/archetype-resources/pom.xml
@@ -35,6 +35,7 @@
         <onos.version>1.5.0-SNAPSHOT</onos.version>
         <!-- Uncomment to generate ONOS app from this module.
         <onos.app.name>org.foo.app</onos.app.name>
+        <onos.app.title>Foo App</onos.app.title>
         <onos.app.origin>Foo, Inc.</onos.app.origin>
         <onos.app.category>UI</onos.app.category>
         <onos.app.url>http://onosproject.org</onos.app.url>
diff --git a/tools/package/archetypes/uitab/src/main/resources/archetype-resources/pom.xml b/tools/package/archetypes/uitab/src/main/resources/archetype-resources/pom.xml
index 9189d2b..544d5e3 100644
--- a/tools/package/archetypes/uitab/src/main/resources/archetype-resources/pom.xml
+++ b/tools/package/archetypes/uitab/src/main/resources/archetype-resources/pom.xml
@@ -36,6 +36,7 @@
         <onos.version>1.5.0-SNAPSHOT</onos.version>
         <!-- Uncomment to generate ONOS app from this module.
         <onos.app.name>org.foo.app</onos.app.name>
+        <onos.app.title>Foo App</onos.app.title>
         <onos.app.origin>Foo, Inc.</onos.app.origin>
         <onos.app.category>UI</onos.app.category>
         <onos.app.url>http://onosproject.org</onos.app.url>
diff --git a/tools/package/archetypes/uitopo/src/main/resources/archetype-resources/pom.xml b/tools/package/archetypes/uitopo/src/main/resources/archetype-resources/pom.xml
index 71e38d9..282787c 100644
--- a/tools/package/archetypes/uitopo/src/main/resources/archetype-resources/pom.xml
+++ b/tools/package/archetypes/uitopo/src/main/resources/archetype-resources/pom.xml
@@ -36,6 +36,7 @@
         <onos.version>1.5.0-SNAPSHOT</onos.version>
         <!-- Uncomment to generate ONOS app from this module.
         <onos.app.name>org.foo.app</onos.app.name>
+        <onos.app.title>Foo App</onos.app.title>
         <onos.app.origin>Foo, Inc.</onos.app.origin>
         <onos.app.category>UI</onos.app.category>
         <onos.app.url>http://onosproject.org</onos.app.url>
diff --git a/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java b/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java
index 24c876b..1b13486 100644
--- a/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java
+++ b/tools/package/maven-plugin/src/main/java/org/onosproject/maven/OnosAppMojo.java
@@ -74,6 +74,7 @@
 
     private static final String ONOS_APP_CATEGORY = "onos.app.category";
     private static final String ONOS_APP_URL = "onos.app.url";
+    private static final String ONOS_APP_TITLE = "onos.app.title";
     private static final String ONOS_APP_README = "onos.app.readme";
 
     private static final String JAR = "jar";
@@ -99,6 +100,7 @@
     private String requiredApps;
     private String category;
     private String url;
+    private String title;
     private String readme;
     private String version = DEFAULT_VERSION;
     private String featuresRepo = DEFAULT_FEATURES_REPO;
@@ -189,6 +191,10 @@
         url = (String) project.getProperties().get(ONOS_APP_URL);
         url = url != null ? url : DEFAULT_URL;
 
+        // if title does not exist, fall back to the name
+        title = (String) project.getProperties().get(ONOS_APP_TITLE);
+        title = title != null ? title : name;
+
         // if readme does not exist, we simply fallback to use description
         readme = (String) project.getProperties().get(ONOS_APP_README);
         readme = readme != null ? readme : projectDescription;
@@ -387,6 +393,7 @@
                         .replaceAll("\\$\\{onos.app.origin\\}", origin)
                         .replaceAll("\\$\\{onos.app.requires\\}", requiredApps)
                         .replaceAll("\\$\\{onos.app.category\\}", category)
+                        .replaceAll("\\$\\{onos.app.title\\}", title)
                         .replaceAll("\\$\\{onos.app.url\\}", url)
                         .replaceAll("\\$\\{project.groupId\\}", projectGroupId)
                         .replaceAll("\\$\\{project.artifactId\\}", projectArtifactId)
diff --git a/tools/package/maven-plugin/src/main/resources/org/onosproject/maven/app.xml b/tools/package/maven-plugin/src/main/resources/org/onosproject/maven/app.xml
index 7d2c100..6b562fb 100644
--- a/tools/package/maven-plugin/src/main/resources/org/onosproject/maven/app.xml
+++ b/tools/package/maven-plugin/src/main/resources/org/onosproject/maven/app.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License.
   -->
 <app name="${onos.app.name}" origin="${onos.app.origin}" version="${project.version}"
-        category="${onos.app.category}" url="${onos.app.url}"
+        title="${onos.app.title}" category="${onos.app.category}" url="${onos.app.url}"
         featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
         features="${project.artifactId}" apps="${onos.app.requires}">
     <description>${project.description}</description>