Updating onos_app to add "wrap:" to features file for non-OSGi jars

Change-Id: I47b8e11918269c1a2f3b084d49264dcc9b87a053
diff --git a/buck-tools/onos_app.py b/buck-tools/onos_app.py
index 89c4252..30f6edf 100755
--- a/buck-tools/onos_app.py
+++ b/buck-tools/onos_app.py
@@ -28,9 +28,28 @@
 ARTIFACT = '    <artifact>%s</artifact>\n'
 APP_FOOTER = '</app>'
 
+NON_OSGI_TAG = 'NON-OSGI'
 
 def mvnUrl(bundle):
-    return 'mvn:' + bundle.replace(':', '/')
+    #mvn-uri := 'mvn:' [ repository-url '!' ] group-id '/' artifact-id [ '/' [version] [ '/' [type] [ '/' classifier ] ] ] ]
+    parts = bundle.split(':')
+    prefix = 'mvn:'
+    suffix = ''
+    if len(parts) > 3:
+        parts.insert(2, parts.pop()) # move version to the 3rd position
+    if len(parts) >= 5:
+        # check classifier for special non-OSGi tag
+        i = parts[4].find(NON_OSGI_TAG)
+        if i == 0:
+            prefix = 'wrap:' + prefix
+            suffix = '$Bundle-SymbolicName=%s.%s&amp;Bundle-Version=%s' % tuple(parts[0:3])
+            if len(parts[4]) == len(NON_OSGI_TAG):
+                parts.pop() # pop off empty classifier
+                if parts[3].lower() == 'jar':
+                    parts.pop() # pop off default extension: jar
+            else:
+                parts[4] = parts[4][len(NON_OSGI_TAG):]
+    return prefix + '/'.join(parts) + suffix
 
 def generateFeatureFile(feature_name,
                         version,