Author: taylor
Date: Wed Mar 16 22:53:47 2016
New Revision: 1735336
URL: http://svn.apache.org/viewvc?rev=1735336&view=rev
Log:
JS2-1354: Improve VersionedPortletApplicationManager to support dot (numeric)
versions
Added:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/NumericVersionTest.java
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java?rev=1735336&r1=1735335&r2=1735336&view=diff
==============================================================================
---
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java
(original)
+++
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/VersionedPortletApplicationManager.java
Wed Mar 16 22:53:47 2016
@@ -16,11 +16,6 @@
*/
package org.apache.jetspeed.tools.pamanager;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
import org.apache.jetspeed.components.portletregistry.PortletRegistry;
import org.apache.jetspeed.components.portletregistry.RegistryException;
import org.apache.jetspeed.descriptor.JetspeedDescriptorService;
@@ -35,6 +30,11 @@ import org.apache.jetspeed.util.descript
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -57,7 +57,9 @@ import org.slf4j.LoggerFactory;
public class VersionedPortletApplicationManager extends
PortletApplicationManager
{
private static final Logger log = LoggerFactory.getLogger("deployment");
-
+
+ private Boolean useNumericVersions = true;
+
public VersionedPortletApplicationManager(PortletFactory portletFactory,
PortletRegistry registry,
PermissionManager permissionManager, SearchEngine searchEngine,
RoleManager roleManager,
List<String> permissionRoles, /* node manager, */ String appRoot,
JetspeedDescriptorService descriptorService)
@@ -66,7 +68,15 @@ public class VersionedPortletApplication
searchEngine, roleManager, permissionRoles, null, appRoot,
descriptorService);
}
-
+
+ public Boolean getUseNumericVersions() {
+ return useNumericVersions;
+ }
+
+ public void setUseNumericVersions(Boolean useNumericVersions) {
+ this.useNumericVersions = useNumericVersions;
+ }
+
public boolean isStarted()
{
return started;
@@ -140,14 +150,14 @@ public class VersionedPortletApplication
{
System.out.println(" - New Version was NOT provided:
registration not required ... " + contextName);
}
- else if (newVersion.compareTo(regVersion) > 0)
+ else if (compareVersions(newVersion, regVersion,
useNumericVersions) > 0)
{
System.out.println(" - **** New Version is greater:
registration required... " + contextName);
regPA = registerPortletApplication(paWar, regPA, paType,
paClassLoader, silent);
}
else
{
- System.out.println(" - New Version is NOT greater:
registration not required ... " + contextName);
+ System.out.println(" - New Version is NOT greater:
registration not required ... " + contextName);
}
}
if (portletFactory.isPortletApplicationRegistered(regPA))
@@ -182,4 +192,35 @@ public class VersionedPortletApplication
}
return version;
}
+
+ public static int compareVersions(String newVersion, String regVersion,
boolean useNumericVersions) throws NumberFormatException {
+ if (!useNumericVersions) {
+ return newVersion.compareTo(regVersion);
+ }
+ String[] v1 = newVersion.split("\\.");
+ String[] v2 = regVersion.split("\\.");
+
+ int ix = 0;
+ while(ix < v1.length || ix < v2.length){
+ if(ix < v1.length && ix < v2.length){
+ if(Integer.parseInt(v1[ix]) < Integer.parseInt(v2[ix])){
+ return -1;
+ }else if(Integer.parseInt(v1[ix]) > Integer.parseInt(v2[ix])){
+ return 1;
+ }
+ } else if(ix < v1.length){
+ if(Integer.parseInt(v1[ix]) != 0){
+ return 1;
+ }
+ } else if(ix < v2.length){
+ if(Integer.parseInt(v2[ix]) != 0){
+ return -1;
+ }
+ }
+
+ ix++;
+ }
+ return 0;
+ }
+
}
\ No newline at end of file
Added:
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/NumericVersionTest.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/NumericVersionTest.java?rev=1735336&view=auto
==============================================================================
---
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/NumericVersionTest.java
(added)
+++
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/NumericVersionTest.java
Wed Mar 16 22:53:47 2016
@@ -0,0 +1,32 @@
+package org.apache.jetspeed.tools.pamanager;
+
+import junit.framework.TestCase;
+
+public class NumericVersionTest extends TestCase {
+
+ public void testDotCompare() throws Exception {
+ assert(VersionedPortletApplicationManager.compareVersions("2.9.8",
"2.10.0", true) == -1);
+
assert(VersionedPortletApplicationManager.compareVersions("2.9.5.4.3.2.1",
"2.9.5.4.3.2.1", true) == 0);
+
assert(VersionedPortletApplicationManager.compareVersions("2.9.5.4.3.2.2",
"2.9.5.4.3.2.1", true) == 1);
+
assert(VersionedPortletApplicationManager.compareVersions("2.9.5.4.3.2.1",
"2.9.5.4.3.2.2", true) == -1);
+ assert(VersionedPortletApplicationManager.compareVersions("2.9",
"2.9.5", true) == -1);
+ assert(VersionedPortletApplicationManager.compareVersions("2.9.5",
"2.9", true) == 1);
+ assert(VersionedPortletApplicationManager.compareVersions("2", "3",
true) == -1);
+ assert(VersionedPortletApplicationManager.compareVersions("3", "2",
true) == 1);
+ assert(VersionedPortletApplicationManager.compareVersions("3.4.3",
"3.4.2", true) == 1);
+ assert(VersionedPortletApplicationManager.compareVersions("3.4.2",
"3.4.3", true) == -1);
+
+ assert (VersionedPortletApplicationManager.compareVersions("a.b.c",
"a.b.d", false) == -1);
+ assert (VersionedPortletApplicationManager.compareVersions("aaaa",
"bbb", false) == -1);
+ assert (VersionedPortletApplicationManager.compareVersions("big",
"Big", false) > 0);
+ boolean error = false;
+ try {
+ assert
(VersionedPortletApplicationManager.compareVersions("a.b.c", "a.b.d", true) ==
-1);
+ }
+ catch (NumberFormatException e) {
+ error = true;
+ }
+ assert(error);
+ }
+
+}
Modified:
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml?rev=1735336&r1=1735335&r2=1735336&view=diff
==============================================================================
---
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml
(original)
+++
portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/deployment.xml
Wed Mar 16 22:53:47 2016
@@ -66,6 +66,11 @@
locking by setting value to "false":
<property name="lockRegistryAccess"><value>false</value></property>
-->
+ <!-- optional use numeric version numbers such as 2.9.0.11. Do not allow
numbers
+ this feature is enabled by default. To use lexical comparisions, set
this property to false
+ <property name="useNumericVersions" value="false" />
+ -->
+
</bean>
</beans>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]