Author: davidb
Date: Fri Dec 18 11:16:42 2009
New Revision: 892222

URL: http://svn.apache.org/viewvc?rev=892222&view=rev
Log:
Added support for old way of configuring endpoint location back in. The 
following properties on the exposed services are now equivalents and can be set 
to a value such as http://localhost:9876/myService
  endpoint.uri
  org.apache.cxf.ws.address
  osgi.remote.configuration.pojo.address
The endpoint.uri is a new property that's introduced in the OSGi Remote Service 
Admin spec. This is now the standard way to configure the endpoint URI. The old 
properties are still supported for backward compatibility.

New tests included.

Modified:
    
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java
    
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
    
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java
    
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java

Modified: 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java
URL: 
http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java?rev=892222&r1=892221&r2=892222&view=diff
==============================================================================
--- 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java
 (original)
+++ 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractConfigurationHandler.java
 Fri Dec 18 11:16:42 2009
@@ -30,17 +30,25 @@
     final Map<String, Object> handlerProps;
     protected BundleContext bundleContext;
     
-    protected AbstractConfigurationHandler(BundleContext dswBC,
-                                           
+    protected AbstractConfigurationHandler(BundleContext dswBC,                
                          
                                            Map<String, Object> handlerProps) {
-        this.bundleContext = dswBC;
-     
+        this.bundleContext = dswBC;     
         this.handlerProps = handlerProps;
     }
     
     protected String getDefaultAddress(Class<?> type) {        
-        String host = 
handlerProps.get(Constants.DEFAULT_HOST_CONFIG).toString();
-        String port = 
handlerProps.get(Constants.DEFAULT_PORT_CONFIG).toString();
+        Object h = handlerProps.get(Constants.DEFAULT_HOST_CONFIG);
+        if (h == null) {
+            h = "localhost";
+        }
+        String host = h.toString();
+        
+        Object p = handlerProps.get(Constants.DEFAULT_PORT_CONFIG);
+        if (p == null) {
+            p = "9000";
+        }
+        String port = p.toString();
+        
         return getAddress("http", host, port, "/" + 
type.getName().replace('.', '/'));        
     }
 

Modified: 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
URL: 
http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java?rev=892222&r1=892221&r2=892222&view=diff
==============================================================================
--- 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
 (original)
+++ 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/AbstractPojoConfigurationTypeHandler.java
 Fri Dec 18 11:16:42 2009
@@ -52,8 +52,7 @@
     
     private IntentMap masterMap;
     
-    public AbstractPojoConfigurationTypeHandler(BundleContext dswBC, 
-                                                
+    public AbstractPojoConfigurationTypeHandler(BundleContext dswBC,           
                                     
                                                 Map<String, Object> 
handlerProps) {
         super(dswBC,  handlerProps);
     }

Modified: 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java
URL: 
http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java?rev=892222&r1=892221&r2=892222&view=diff
==============================================================================
--- 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java
 (original)
+++ 
cxf/dosgi/trunk/dsw/cxf-dsw/src/main/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandler.java
 Fri Dec 18 11:16:42 2009
@@ -44,9 +44,7 @@
 public class PojoConfigurationTypeHandler extends 
AbstractPojoConfigurationTypeHandler {
     private static final Logger LOG = 
Logger.getLogger(PojoConfigurationTypeHandler.class.getName());
 
-    public PojoConfigurationTypeHandler(BundleContext dswBC,
-
-    Map<String, Object> handlerProps) {
+    public PojoConfigurationTypeHandler(BundleContext dswBC, Map<String, 
Object> handlerProps) {
         super(dswBC, handlerProps);
     }
 
@@ -201,10 +199,12 @@
 
     protected String getPojoAddress(Map sd, Class<?> iClass) {
         String address = OsgiUtils.getProperty(sd, 
RemoteConstants.ENDPOINT_URI);
-        // if (address == null) {
-        // address = OsgiUtils.getProperty(sd, 
Constants.WS_ADDRESS_PROPERTY_OLD);
-        // }
-
+        if (address == null) {
+            address = OsgiUtils.getProperty(sd, Constants.WS_ADDRESS_PROPERTY);
+        }
+        if (address == null) {
+            address = OsgiUtils.getProperty(sd, 
Constants.WS_ADDRESS_PROPERTY_OLD);
+        }
         if (address == null) {
             address = getDefaultAddress(iClass);
             if (address != null) {

Modified: 
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java
URL: 
http://svn.apache.org/viewvc/cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java?rev=892222&r1=892221&r2=892222&view=diff
==============================================================================
--- 
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java
 (original)
+++ 
cxf/dosgi/trunk/dsw/cxf-dsw/src/test/java/org/apache/cxf/dosgi/dsw/handlers/PojoConfigurationTypeHandlerTest.java
 Fri Dec 18 11:16:42 2009
@@ -52,15 +52,44 @@
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
 import org.osgi.service.event.EventConstants;
+import org.osgi.service.remoteserviceadmin.RemoteConstants;
 
 
 public class PojoConfigurationTypeHandlerTest extends TestCase {
-    
-    
-    public void testDUMMY(){
-        assertTrue(true);
+    public void testGetPojoAddressEndpointURI() {
+        Map<String, Object> hp = new HashMap<String, Object>();
+        PojoConfigurationTypeHandler handler = new 
PojoConfigurationTypeHandler(null, hp);
+        Map<String, Object> sd = new HashMap<String, Object>();
+        String url = "http://somewhere:1234/blah";;
+        sd.put(RemoteConstants.ENDPOINT_URI, url);
+        assertEquals(url, handler.getPojoAddress(sd, String.class));
     }
     
+    public void testGetPojoAddressEndpointCxf() {
+        Map<String, Object> hp = new HashMap<String, Object>();
+        PojoConfigurationTypeHandler handler = new 
PojoConfigurationTypeHandler(null, hp);
+        Map<String, Object> sd = new HashMap<String, Object>();
+        String url = "http://somewhere:29/boo";;
+        sd.put("org.apache.cxf.ws.address", url);
+        assertEquals(url, handler.getPojoAddress(sd, String.class));
+    }
+
+    public void testGetPojoAddressEndpointPojo() {
+        Map<String, Object> hp = new HashMap<String, Object>();
+        PojoConfigurationTypeHandler handler = new 
PojoConfigurationTypeHandler(null, hp);
+        Map<String, Object> sd = new HashMap<String, Object>();
+        String url = "http://somewhere:32768/foo";;
+        sd.put("osgi.remote.configuration.pojo.address", url);
+        assertEquals(url, handler.getPojoAddress(sd, String.class));
+    }
+
+    public void testGetDefaultPojoAddress() {
+        Map<String, Object> hp = new HashMap<String, Object>();
+        PojoConfigurationTypeHandler handler = new 
PojoConfigurationTypeHandler(null, hp);
+        Map<String, Object> sd = new HashMap<String, Object>(); 
+        assertEquals("http://localhost:9000/java/lang/String";, 
handler.getPojoAddress(sd, String.class));
+    }
+
 //    private Map<String, Object> handlerProps;
 //    
 //    @Override


Reply via email to