You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2013/02/07 12:37:33 UTC
svn commit: r1443422 - in /cxf/dosgi/trunk/dsw/cxf-dsw/src:
main/java/org/apache/cxf/dosgi/dsw/handlers/
test/java/org/apache/cxf/dosgi/dsw/handlers/
Author: davidb
Date: Thu Feb 7 11:37:33 2013
New Revision: 1443422
URL: http://svn.apache.org/viewvc?rev=1443422&view=rev
Log:
Additional unit tests for the PojoConfigurationTypeHandler.
Modified:
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/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=1443422&r1=1443421&r2=1443422&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 Thu Feb 7 11:37:33 2013
@@ -184,7 +184,7 @@ public abstract class AbstractPojoConfig
}
protected String getClientAddress(Map<String, Object> sd, Class<?> iClass) {
- return OsgiUtils.getFirstNonEmptyStringProperty(sd, RemoteConstants.ENDPOINT_ID, Constants.WS_ADDRESS_PROPERTY,
+ return OsgiUtils.getFirstNonEmptyStringProperty(sd, RemoteConstants.ENDPOINT_ID,
Constants.WS_ADDRESS_PROPERTY,
Constants.WS_ADDRESS_PROPERTY_OLD,
Constants.RS_ADDRESS_PROPERTY);
@@ -201,7 +201,7 @@ public abstract class AbstractPojoConfig
return address == null ? httpServiceManager.getDefaultAddress(iClass) : address;
}
- protected final ExportResult createServerFromFactory(ServerFactoryBean factory, Map<String, Object> endpointProps) {
+ protected ExportResult createServerFromFactory(ServerFactoryBean factory, Map<String, Object> endpointProps) {
ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(ServerFactoryBean.class.getClassLoader());
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=1443422&r1=1443421&r2=1443422&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 Thu Feb 7 11:37:33 2013
@@ -128,7 +128,7 @@ public class PojoConfigurationTypeHandle
// If the property is not of type string this will cause an ClassCastException which
// will be propagated to the ExportRegistration exception property.
- String port = (String) sd.get(Constants.WS_PORT_PROPERTY);
+ Object port = sd.get(Constants.WS_PORT_PROPERTY);
if (port == null)
port = "9000";
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=1443422&r1=1443421&r2=1443422&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 Thu Feb 7 11:37:33 2013
@@ -196,6 +196,82 @@ public class PojoConfigurationTypeHandle
}
+ public void testAddressing() {
+ runAddressingTest(new HashMap<String, Object>(), "http://localhost:9000/java/lang/Runnable");
+
+ HashMap<String, Object> p1 = new HashMap<String, Object>();
+ p1.put("org.apache.cxf.ws.address", "http://somewhere");
+ runAddressingTest(p1, "http://somewhere");
+
+ HashMap<String, Object> p2 = new HashMap<String, Object>();
+ p2.put("org.apache.cxf.rs.address", "https://somewhereelse");
+ runAddressingTest(p2, "https://somewhereelse");
+
+ HashMap<String, Object> p3 = new HashMap<String, Object>();
+ p3.put("org.apache.cxf.ws.port", 65535);
+ runAddressingTest(p3, "http://localhost:65535/java/lang/Runnable");
+
+ HashMap<String, Object> p4 = new HashMap<String, Object>();
+ p4.put("org.apache.cxf.ws.port", "8181");
+ runAddressingTest(p4, "http://localhost:8181/java/lang/Runnable");
+ }
+
+ private void runAddressingTest(Map<String, Object> properties, String expectedAddress) {
+ BundleContext dswContext = EasyMock.createNiceMock(BundleContext.class);
+ EasyMock.replay(dswContext);
+
+ IntentManager intentManager = EasyMock.createNiceMock(IntentManager.class);
+ EasyMock.replay(intentManager);
+
+ PojoConfigurationTypeHandler handler = new PojoConfigurationTypeHandler(dswContext, intentManager, dummyHttpServiceManager()) {
+ @Override
+ protected ExportResult createServerFromFactory(ServerFactoryBean factory, Map<String, Object> endpointProps) {
+ return new ExportResult(endpointProps, (Server) null);
+ }
+ };
+
+ ServiceReference sref = EasyMock.createNiceMock(ServiceReference.class);
+ EasyMock.replay(sref);
+
+ Runnable myService = EasyMock.createMock(Runnable.class);
+ EasyMock.replay(myService);
+ ExportResult result = handler.createServer(sref, null, null, properties, Runnable.class, myService);
+ assertNull(result.getException());
+
+ Map<String, Object> props = result.getEndpointProps();
+ assertEquals(expectedAddress, props.get("org.apache.cxf.ws.address"));
+ assertEquals("Version of java. package is always 0", "0.0.0", props.get("endpoint.package.version.java.lang"));
+ assertTrue(Arrays.equals(new String[] {"org.apache.cxf.ws"}, (String[]) props.get("service.imported.configs")));
+ assertTrue(Arrays.equals(new String[] {"java.lang.Runnable"}, (String[]) props.get("objectClass")));
+ assertNotNull(props.get("endpoint.framework.uuid"));
+ }
+
+ public void testCreateServerException() {
+ BundleContext dswContext = EasyMock.createNiceMock(BundleContext.class);
+ EasyMock.replay(dswContext);
+
+ IntentManager intentManager = EasyMock.createNiceMock(IntentManager.class);
+ EasyMock.replay(intentManager);
+
+ PojoConfigurationTypeHandler handler = new PojoConfigurationTypeHandler(dswContext, intentManager, dummyHttpServiceManager()) {
+ @Override
+ protected ExportResult createServerFromFactory(ServerFactoryBean factory, Map<String, Object> endpointProps) {
+ throw new TestException();
+ }
+ };
+
+ ServiceReference sref = EasyMock.createNiceMock(ServiceReference.class);
+ EasyMock.replay(sref);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+
+ Runnable myService = EasyMock.createMock(Runnable.class);
+ EasyMock.replay(myService);
+ ExportResult result = handler.createServer(sref, null, null, props, Runnable.class, myService);
+ Assert.assertTrue(result.getException() instanceof TestException);
+ Assert.assertEquals(props, result.getEndpointProps());
+ }
+
private ServerFactoryBean createMockServerFactoryBean() {
ReflectionServiceFactoryBean sf = EasyMock.createNiceMock(ReflectionServiceFactoryBean.class);
EasyMock.replay(sf);
@@ -329,7 +405,6 @@ public class PojoConfigurationTypeHandle
}
public static class DummyIntentManager implements IntentManager {
-
@Override
public String[] applyIntents(List<Feature> features,
AbstractEndpointFactory factory,
@@ -341,6 +416,8 @@ public class PojoConfigurationTypeHandle
public void assertAllIntentsSupported(Map<String, Object> serviceProperties) {
}
-
}
+
+ @SuppressWarnings("serial")
+ public static class TestException extends RuntimeException {}
}