You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2016/11/09 16:57:16 UTC
svn commit: r1769000 - in
/sling/trunk/tooling/support/provisioning-model/src:
main/java/org/apache/sling/provisioning/model/
test/java/org/apache/sling/provisioning/model/
Author: cziegeler
Date: Wed Nov 9 16:57:16 2016
New Revision: 1769000
URL: http://svn.apache.org/viewvc?rev=1769000&view=rev
Log:
SLING-6267 : Support OSGi versions and provide accessor methods of version parts
Modified:
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Version.java
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/VersionTest.java
Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java?rev=1769000&r1=1768999&r2=1769000&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java Wed Nov 9 16:57:16 2016
@@ -174,7 +174,7 @@ public abstract class ModelUtility {
try {
new Version(feature.getVersion());
} catch ( final IllegalArgumentException iae) {
- errors.put(feature, "Version is not a valid version");
+ errors.put(feature, "Version is not a valid version: " + feature.getVersion());
}
}
for(final RunMode runMode : feature.getRunModes()) {
Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Version.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Version.java?rev=1769000&r1=1768999&r2=1769000&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Version.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Version.java Wed Nov 9 16:57:16 2016
@@ -33,17 +33,19 @@ public class Version implements Comparab
*/
public Version(final String version) {
String parts[] = version.split("\\.");
- if ( parts.length > 3 ) {
+ if ( parts.length > 4 ) {
throw new IllegalArgumentException("Invalid version " + version);
}
- final int pos = parts[parts.length - 1].indexOf('-');
- if ( pos != -1 ) {
- final String[] newParts = new String[4];
- newParts[0] = parts.length > 1 ? parts[0] : parts[0].substring(0, pos);
- newParts[1] = parts.length > 2 ? parts[1] : (parts.length > 1 ? parts[1].substring(0, pos) : "0");
- newParts[2] = parts.length > 3 ? parts[2] : (parts.length > 2 ? parts[2].substring(0, pos) : "0");
- newParts[3] = parts[parts.length - 1].substring(pos + 1);
- parts = newParts;
+ if ( parts.length < 4) {
+ final int pos = parts[parts.length - 1].indexOf('-');
+ if ( pos != -1 ) {
+ final String[] newParts = new String[4];
+ newParts[0] = parts.length > 1 ? parts[0] : parts[0].substring(0, pos);
+ newParts[1] = parts.length > 2 ? parts[1] : (parts.length > 1 ? parts[1].substring(0, pos) : "0");
+ newParts[2] = parts.length > 3 ? parts[2] : (parts.length > 2 ? parts[2].substring(0, pos) : "0");
+ newParts[3] = parts[parts.length - 1].substring(pos + 1);
+ parts = newParts;
+ }
}
this.majorVersion = parseInt(parts[0], version);
if ( parts.length > 1 ) {
@@ -57,10 +59,45 @@ public class Version implements Comparab
this.microVersion = 0;
}
this.qualifier = (parts.length > 3 ? parts[3] : "");
-
}
/**
+ * Get the major version
+ * @return The major version
+ * @since 1.8.0
+ */
+ public int getMajorVersion() {
+ return majorVersion;
+ }
+
+ /**
+ * Get the major version
+ * @return The major version
+ * @since 1.8.0
+ */
+ public int getMinorVersion() {
+ return minorVersion;
+ }
+
+ /**
+ * Get the minor version
+ * @return The minor version
+ * @since 1.8.0
+ */
+ public int getMicroVersion() {
+ return microVersion;
+ }
+
+ /**
+ * Get the qualifier
+ * @return The qualifier, the qualifier might be the empty string.
+ * @since 1.8.0
+ */
+ public String getQualifier() {
+ return qualifier;
+ }
+
+ /**
* Parse an integer.
*/
private static int parseInt(final String value, final String version) {
@@ -135,4 +172,12 @@ public class Version implements Comparab
}
return result;
}
+
+ @Override
+ public String toString() {
+ return String.valueOf(this.majorVersion) + "."
+ + String.valueOf(this.minorVersion + "."
+ + String.valueOf(this.microVersion) +
+ (this.qualifier.length() == 0 ? "" : "." + this.qualifier));
+ }
}
Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java?rev=1769000&r1=1768999&r2=1769000&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java Wed Nov 9 16:57:16 2016
@@ -17,7 +17,7 @@
* under the License.
*/
-@org.osgi.annotation.versioning.Version("1.7.0")
+@org.osgi.annotation.versioning.Version("1.8.0")
package org.apache.sling.provisioning.model;
Modified: sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/VersionTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/VersionTest.java?rev=1769000&r1=1768999&r2=1769000&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/VersionTest.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/VersionTest.java Wed Nov 9 16:57:16 2016
@@ -86,4 +86,12 @@ public class VersionTest {
assertTrue(va.compareTo(vb) < 0);
assertTrue(vb.compareTo(va) > 0);
}
+
+ @Test
+ public void testOSGiVersion() {
+ final Version v = new Version("1.5.2.SNAPSHOT");
+ assertEquals(1, v.getMajorVersion());
+ assertEquals(5, v.getMinorVersion());
+ assertEquals(2, v.getMicroVersion());
+ }
}