Publish top level Maven POMs as part of release build

Change-Id: I6e10d4af4d8b59e3f5e15f001d160838a3c35266
diff --git a/BUCK b/BUCK
index a16a273..773e0c6 100644
--- a/BUCK
+++ b/BUCK
@@ -58,3 +58,13 @@
                'tools/build/envDefaults'
            ],
 )
+
+only_lib_dep_pom(
+    name = 'top-level-pom',
+    src = 'pom.xml',
+    out = 'onos.pom',
+)
+
+
+
+
diff --git a/bucklets/onos.bucklet b/bucklets/onos.bucklet
index 16d0b52..f141e85 100644
--- a/bucklets/onos.bucklet
+++ b/bucklets/onos.bucklet
@@ -325,3 +325,44 @@
        out = out if out is not None else ( root if root is not None else name ) + '.tar.gz',
        visibility = visibility,
    )
+
+def only_lib_dep_pom(
+    name,
+    src,
+    out,
+    version = ONOS_VERSION,
+    onosGroupId = ONOS_GROUP_ID,
+    visibility = [ 'PUBLIC' ],
+    ):
+
+    cmd = 'grep -v \<module\> ' + src + ' | sed "s/\<modules\>/\<\modules\>\<module\>lib\<\/module\>/" >$OUT'
+
+    genrule(
+        name = name,
+        srcs = [ src ],
+        bash = cmd,
+        out = out,
+        visibility = visibility,
+        maven_coords = onosGroupId + ':onos:pom:' + version,
+    )
+
+def pass_thru_pom(
+    name,
+    src,
+    out,
+    artifactId,
+    version = ONOS_VERSION,
+    onosGroupId = ONOS_GROUP_ID,
+    visibility = [ 'PUBLIC' ],
+    ):
+
+    cmd = 'cp ' + src + ' $OUT'
+
+    genrule(
+        name = name,
+        srcs = [ src ],
+        bash = cmd,
+        out = out,
+        visibility = visibility,
+        maven_coords = onosGroupId + ':' + artifactId + ':pom:' + version,
+    )
diff --git a/lib/BUCK b/lib/BUCK
index c357a13..abb2826 100644
--- a/lib/BUCK
+++ b/lib/BUCK
@@ -1,5 +1,13 @@
-# ***** This file was auto-generated at Thu Jan 26 15:48:58 PST 2017. Do not edit this file manually. *****
+# ***** This file was auto-generated at Thu Jan 26 16:50:25 PST 2017. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
+
+pass_thru_pom( 
+    name = 'onos-dependencies-pom',
+    src = 'pom.xml',
+    out = 'onos-dependencies.pom',
+    artifactId = 'onos-dependencies',
+)
+
 osgi_feature_group(
   name = 'COMPILE',
   visibility = ['PUBLIC'],
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
index 5b67a5c..f05593d 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
@@ -175,6 +175,16 @@
                     "# ***** This file was auto-generated at %s. Do not edit this file manually. *****\n",
                     new Date().toString()));
             writer.write("# ***** Use onos-lib-gen *****\n");
+
+            // rule to publish the onos dependency pom
+            writer.write("\npass_thru_pom( \n" +
+                         "    name = 'onos-dependencies-pom',\n" +
+                         "    src = 'pom.xml',\n" +
+                         "    out = 'onos-dependencies.pom',\n" +
+                         "    artifactId = 'onos-dependencies',\n" +
+                         ")\n\n");
+
+
             libraries.forEach(library -> writer.print(library.getBuckFragment()));
             artifacts.forEach(artifact -> writer.print(artifact.getBuckFragment()));
             writer.flush();
diff --git a/tools/build/onos-buck-publish b/tools/build/onos-buck-publish
index 0d82c1c..2b137f8 100755
--- a/tools/build/onos-buck-publish
+++ b/tools/build/onos-buck-publish
@@ -39,5 +39,9 @@
 cat $TEST_PUB
 bash $TEST_PUB
 
+# stage ONOS poms
+onos-buck publish --to-maven-central --sign //:top-level-pom
+onos-buck publish --to-maven-central --sign //lib:onos-dependencies-pom
+
 # Close the staging area
 onos-close-staging