Adding packaging on onos*.zip file.
Modified Version.java to allow 3-segment version.
Changed onos-next to onos as default for ONOS_ROOT.

Change-Id: Ifbde9dfbc7af9a5891e9f41db6932859c0f59660
diff --git a/core/api/src/main/java/org/onosproject/core/Version.java b/core/api/src/main/java/org/onosproject/core/Version.java
index 5641a54..9196b5b 100644
--- a/core/api/src/main/java/org/onosproject/core/Version.java
+++ b/core/api/src/main/java/org/onosproject/core/Version.java
@@ -17,6 +17,8 @@
 
 import java.util.Objects;
 
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Strings.isNullOrEmpty;
 import static java.lang.Integer.parseInt;
 
 /**
@@ -24,22 +26,27 @@
  */
 public final class Version {
 
-    public static final String FORMAT = "%d.%d.%d.%s";
+    public static final String FORMAT = "%d.%d.%s.%s";
+    public static final String FORMAT_SHORT = "%d.%d.%s";
+
+    private static final String NEGATIVE = "Version segment cannot be negative";
 
     private final int major;
     private final int minor;
-    private final int patch;
+    private final String patch;
     private final String build;
 
     private final String format;
 
     // Creates a new version descriptor
-    private Version(int major, int minor, int patch, String build) {
+    private Version(int major, int minor, String patch, String build) {
         this.major = major;
         this.minor = minor;
         this.patch = patch;
         this.build = build;
-        this.format = String.format(FORMAT, major, minor, patch, build);
+        this.format = isNullOrEmpty(build) ?
+                String.format(FORMAT_SHORT, major, minor, patch) :
+                String.format(FORMAT, major, minor, patch, build);
     }
 
 
@@ -48,11 +55,13 @@
      *
      * @param major major version number
      * @param minor minod version number
-     * @param patch version patch number
-     * @param build build string
+     * @param patch version patch segment
+     * @param build optional build string
      * @return version descriptor
      */
-    public static Version version(int major, int minor, int patch, String build) {
+    public static Version version(int major, int minor, String patch, String build) {
+        checkArgument(major > 0, NEGATIVE);
+        checkArgument(minor > 0, NEGATIVE);
         return new Version(major, minor, patch, build);
     }
 
@@ -65,7 +74,7 @@
     public static Version version(String string) {
         String[] fields = string.split("[.-]");
         return new Version(parseInt(fields[0]), parseInt(fields[1]),
-                           parseInt(fields[2]), fields[3]);
+                           fields[2], fields.length == 4 ? fields[3] : null);
     }
 
     /**
@@ -87,11 +96,11 @@
     }
 
     /**
-     * Returns the version patch number.
+     * Returns the version patch segment.
      *
      * @return patch number
      */
-    public int patch() {
+    public String patch() {
         return patch;
     }