diff --git a/oneping/src/assembly/app.xml b/calendar/app.xml
similarity index 64%
copy from oneping/src/assembly/app.xml
copy to calendar/app.xml
index da4869e..23580cb 100644
--- a/oneping/src/assembly/app.xml
+++ b/calendar/app.xml
@@ -14,8 +14,9 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<app name="org.onosproject.oneping" origin="ON.Lab" version="1.2.0"
-     featuresRepo="mvn:org.onosproject/onos-app-oneping-features/1.2.0-SNAPSHOT/xml/features"
-     features="onos-app-oneping">
-    <description>One-Ping-Only sample application!</description>
+<app name="org.onosproject.calendar" origin="ON.Lab" version="${feature.version}"
+        featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
+        features="${project.artifactId}">
+    <description>${project.description}</description>
+    <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
 </app>
diff --git a/calendar/features.xml b/calendar/features.xml
new file mode 100644
index 0000000..3790de0
--- /dev/null
+++ b/calendar/features.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Copyright 2015 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${feature.version}">
+    <repository>mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features</repository>
+    <feature name="${project.artifactId}" version="${feature.version}"
+             description="${project.description}">
+        <feature>onos-api</feature>
+        <feature>onos-thirdparty-web</feature>
+        <bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
+    </feature>
+</features>
diff --git a/oneping/src/assembly/app.xml b/database-perf/app.xml
similarity index 65%
rename from oneping/src/assembly/app.xml
rename to database-perf/app.xml
index da4869e..58cdbb4 100644
--- a/oneping/src/assembly/app.xml
+++ b/database-perf/app.xml
@@ -14,8 +14,10 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<app name="org.onosproject.oneping" origin="ON.Lab" version="1.2.0"
-     featuresRepo="mvn:org.onosproject/onos-app-oneping-features/1.2.0-SNAPSHOT/xml/features"
-     features="onos-app-oneping">
-    <description>One-Ping-Only sample application!</description>
+<app name="org.onosproject.dbperf" origin="ON.Lab" version="${feature.version}"
+     featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
+     features="${project.artifactId}">
+    <description>${project.description}</description>
+    <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
 </app>
+
diff --git a/database-perf/pom.xml b/database-perf/pom.xml
index da1338c..3a39614 100644
--- a/database-perf/pom.xml
+++ b/database-perf/pom.xml
@@ -29,7 +29,7 @@
     <artifactId>onos-app-database-perf</artifactId>
     <packaging>bundle</packaging>
 
-    <description>ONOS partitioned database perf test app bundle</description>
+    <description>Partitioned database performance test application</description>
 
     <build>
         <plugins>
diff --git a/ifwd/app.xml b/ifwd/app.xml
index 3f64ce7..5c70cf7 100644
--- a/ifwd/app.xml
+++ b/ifwd/app.xml
@@ -14,7 +14,9 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<app name="org.onosproject.ifwd" origin="ON.Lab" version="1.2.0"
-        features="onos-app-ifwd">
-    <description>ONOS Reactive forwarding application using intent subsystem (experimental)</description>
+<app name="org.onosproject.ifwd" origin="ON.Lab" version="${feature.version}"
+     featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
+     features="${project.artifactId}">
+    <description>${project.description}</description>
+    <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
 </app>
diff --git a/ifwd/pom.xml b/ifwd/pom.xml
index 38ae060..7177000 100644
--- a/ifwd/pom.xml
+++ b/ifwd/pom.xml
@@ -29,6 +29,6 @@
     <artifactId>onos-app-ifwd</artifactId>
     <packaging>bundle</packaging>
 
-    <description>ONOS simple reactive forwarding app that uses intent service</description>
+    <description>Reactive forwarding application using intent service (experimental)</description>
 
 </project>
diff --git a/oneping/src/assembly/app.xml b/oneping/app.xml
similarity index 65%
copy from oneping/src/assembly/app.xml
copy to oneping/app.xml
index da4869e..942321d 100644
--- a/oneping/src/assembly/app.xml
+++ b/oneping/app.xml
@@ -14,8 +14,10 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<app name="org.onosproject.oneping" origin="ON.Lab" version="1.2.0"
-     featuresRepo="mvn:org.onosproject/onos-app-oneping-features/1.2.0-SNAPSHOT/xml/features"
-     features="onos-app-oneping">
-    <description>One-Ping-Only sample application!</description>
+<app name="org.onosproject.oneping" origin="ON.Lab" version="${feature.version}"
+     featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
+     features="${project.artifactId}">
+    <description>${project.description}</description>
+    <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
 </app>
+
diff --git a/oneping/pom.xml b/oneping/pom.xml
index ff03479..3b0e5c9 100644
--- a/oneping/pom.xml
+++ b/oneping/pom.xml
@@ -29,27 +29,6 @@
     <artifactId>onos-app-oneping</artifactId>
     <packaging>bundle</packaging>
 
-    <description>ONOS One-Ping sample app</description>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.5.3</version>
-                <configuration>
-                    <descriptor>src/assembly/bin.xml</descriptor>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <description>One-Ping-Only sample application</description>
 
 </project>
diff --git a/oneping/src/assembly/bin.xml b/oneping/src/assembly/bin.xml
deleted file mode 100644
index 97d1782..0000000
--- a/oneping/src/assembly/bin.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright 2015 Open Networking Laboratory
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-<assembly
-        xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-    <formats>
-        <format>zip</format>
-    </formats>
-    <id>onos</id>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <files>
-        <file>
-            <source>src/assembly/app.xml</source>
-            <destName>app.xml</destName>
-        </file>
-        <file>
-            <source>src/assembly/features.xml</source>
-            <destName>m2/org/onosproject/${project.artifactId}-features/${project.version}/${project.artifactId}-features-${project.version}-features.xml</destName>
-        </file>
-        <file>
-            <source>target/${project.artifactId}-${project.version}.jar</source>
-            <destName>m2/org/onosproject/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}.jar</destName>
-        </file>
-    </files>
-</assembly>
diff --git a/oneping/src/assembly/features.xml b/oneping/src/assembly/features.xml
deleted file mode 100644
index 6a498f1..0000000
--- a/oneping/src/assembly/features.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-  ~ Copyright 2014 Open Networking Laboratory
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          name="onos-oneping-1.2.0">
-    <repository>mvn:org.onosproject/onos-app-oneping-features/1.2.0-SNAPSHOT/xml/features</repository>
-
-    <feature name="onos-app-oneping" version="1.2.0"
-             description="ONOS OnePing sample app">
-        <feature>onos-api</feature>
-        <bundle>mvn:org.onosproject/onos-app-oneping/1.2.0-SNAPSHOT</bundle>
-    </feature>
-
-</features>
diff --git a/pom.xml b/pom.xml
index 34cdc8b..b9db4c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.onosproject</groupId>
         <artifactId>onos</artifactId>
-        <version>1.1.0</version>
+        <version>1.2.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>onos-app-samples</artifactId>
@@ -83,8 +83,6 @@
             <plugin>
                 <groupId>org.onosproject</groupId>
                 <artifactId>onos-maven-plugin</artifactId>
-                <!-- FIXME the version line can be dropped when parent pom > 1.1.0 -->
-                <version>1.1.0</version>
             </plugin>
         </plugins>
     </build>
diff --git a/tvue/app.xml b/tvue/app.xml
index 98b675b..f418bb3 100644
--- a/tvue/app.xml
+++ b/tvue/app.xml
@@ -14,7 +14,9 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<app name="org.onosproject.tvue" origin="ON.Lab" version="1.2.0"
-        features="onos-app-tvue">
-    <description>Early prototype GUI (deprecated)</description>
+<app name="org.onosproject.tvue" origin="ON.Lab" version="${feature.version}"
+     featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
+     features="${project.artifactId}">
+    <description>${project.description}</description>
+    <artifact>mvn:${project.groupId}/${project.artifactId}/${project.version}</artifact>
 </app>
diff --git a/tvue/features.xml b/tvue/features.xml
new file mode 100644
index 0000000..e68a066
--- /dev/null
+++ b/tvue/features.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ Copyright 2015 Open Networking Laboratory
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${feature.version}">
+    <repository>mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features</repository>
+    <feature name="${project.artifactId}" version="${feature.version}"
+             description="${project.description}">
+        <feature>onos-api</feature>
+        <feature>onos-thirdparty-web</feature>
+        <bundle>mvn:${project.groupId}/onlab-rest/${project.version}</bundle>
+        <bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
+    </feature>
+</features>
diff --git a/tvue/pom.xml b/tvue/pom.xml
index bbd03a7..fa3bc90 100644
--- a/tvue/pom.xml
+++ b/tvue/pom.xml
@@ -29,7 +29,7 @@
     <artifactId>onos-app-tvue</artifactId>
     <packaging>bundle</packaging>
 
-    <description>ONOS simple topology viewer</description>
+    <description>Early prototype GUI - deprecated</description>
 
     <properties>
         <web.context>/onos/tvue</web.context>
