You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2006/11/23 09:04:05 UTC

svn commit: r478504 - in /incubator/cxf/trunk: common/common/src/main/java/org/apache/cxf/common/util/ common/common/src/test/java/org/apache/cxf/common/util/ rt/transports/http/src/main/java/org/apache/cxf/transport/http/ rt/transports/http/src/test/j...

Author: mmao
Date: Thu Nov 23 00:04:05 2006
New Revision: 478504

URL: http://svn.apache.org/viewvc?view=rev&rev=478504
Log:
CXF-253
If the port number is missing then the server will fail during launch
So now we set the default port to 80

Modified:
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java
    incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/common/util/StringUtilsTest.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
    incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/JettyHTTPDestinationTest.java

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java?view=diff&rev=478504&r1=478503&r2=478504
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/util/StringUtils.java Thu Nov 23 00:04:05 2006
@@ -169,11 +169,43 @@
         return results;
     } 
     
+    public static String getFirstFound(String contents, String regex) {
+        List<String> founds = getFound(contents, regex);
+        if (isEmpty(founds)) {
+            return null;
+        }
+        return founds.get(0);
+    }
+    
     public static String formatVersionNumber(String target) {
         List<String> found = StringUtils.getFound(target, "\\d+\\.\\d+\\.?\\d*");
         if (isEmpty(found)) {
             return target;
         }
         return getFirstNotEmpty(found);
+    }
+    
+    public static String addDefaultPortIfMissing(String urlString) {
+        return addDefaultPortIfMissing(urlString, "80");
+    }
+    
+    public static String addDefaultPortIfMissing(String urlString, String defaultPort) {
+        URL url = null;
+        try {
+            url = new URL(urlString);
+        } catch (MalformedURLException e) {
+            return urlString;
+        }
+        if (url.getPort() != -1) {
+            return urlString;
+        }
+        String regex = "http://([^/]+)";        
+        String found = StringUtils.getFirstFound(urlString, regex);
+        String replacer = "http://" + found + ":" + defaultPort;
+        
+        if (!StringUtils.isEmpty(found)) {
+            urlString = urlString.replaceFirst(regex, replacer);
+        }                
+        return urlString;
     }
 }

Modified: incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/common/util/StringUtilsTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/common/util/StringUtilsTest.java?view=diff&rev=478504&r1=478503&r2=478504
==============================================================================
--- incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/common/util/StringUtilsTest.java (original)
+++ incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/common/util/StringUtilsTest.java Thu Nov 23 00:04:05 2006
@@ -64,4 +64,14 @@
         assertEquals("2.0", StringUtils.formatVersionNumber("2.0-incubator-M1-SNAPSHOT"));
         assertEquals("2.0.12", StringUtils.formatVersionNumber("2.0.12-incubator-M1-SNAPSHOT"));
     }
+    
+    public void testAddPortIfMissing() throws Exception {
+        assertEquals("http://localhost:80", StringUtils.addDefaultPortIfMissing("http://localhost"));
+        assertEquals("http://localhost:80/", StringUtils.addDefaultPortIfMissing("http://localhost/"));
+        assertEquals("http://localhost:80/abc", StringUtils.addDefaultPortIfMissing("http://localhost/abc"));
+        assertEquals("http://localhost:80", StringUtils.addDefaultPortIfMissing("http://localhost:80"));
+        
+        assertEquals("http://localhost:9090", 
+                     StringUtils.addDefaultPortIfMissing("http://localhost", "9090"));
+    }
 }

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?view=diff&rev=478504&r1=478503&r2=478504
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Thu Nov 23 00:04:05 2006
@@ -32,6 +32,7 @@
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.Base64Exception;
 import org.apache.cxf.common.util.Base64Utility;
+import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.configuration.ConfigurationProvider;
 import org.apache.cxf.configuration.security.AuthorizationPolicy;
 import org.apache.cxf.message.Message;
@@ -167,9 +168,9 @@
     protected abstract void copyRequestHeaders(Message message,
                                                Map<String, List<String>> headers);
 
-    protected final String getAddressValue() {
-        return endpointInfo.getAddress();
-    }
+    protected final String getAddressValue() {       
+        return StringUtils.addDefaultPortIfMissing(endpointInfo.getAddress());
+    }        
 
     private void init() {
         if (!isSetServer()) {

Modified: incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/JettyHTTPDestinationTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/JettyHTTPDestinationTest.java?view=diff&rev=478504&r1=478503&r2=478504
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/JettyHTTPDestinationTest.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/JettyHTTPDestinationTest.java Thu Nov 23 00:04:05 2006
@@ -34,6 +34,7 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.common.util.Base64Utility;
+import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.configuration.security.AuthorizationPolicy;
 import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.io.AbstractCachedOutputStream;
@@ -110,7 +111,7 @@
         assertNotNull("unexpected null address", ref);
         assertEquals("unexpected address",
                      EndpointReferenceUtils.getAddress(ref),
-                     EndpointReferenceUtils.getAddress(address));
+                     StringUtils.addDefaultPortIfMissing(EndpointReferenceUtils.getAddress(address)));
     }
     public void testRemoveServant() throws Exception {
         destination = setUpDestination();