Diff
Modified: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/EndpointDeliveryChannel.java (995 => 996)
--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/EndpointDeliveryChannel.java 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/EndpointDeliveryChannel.java 2005-12-03 00:27:42 UTC (rev 996)
@@ -18,6 +18,7 @@
package org.servicemix.jsr181;
import javax.jbi.messaging.DeliveryChannel;
+import javax.jbi.messaging.ExchangeStatus;
import javax.jbi.messaging.InOptionalOut;
import javax.jbi.messaging.InOut;
import javax.jbi.messaging.MessageExchange;
@@ -77,7 +78,10 @@
public void send(MessageExchange exchange) throws MessagingException {
if (exchange instanceof InOut || exchange instanceof InOptionalOut) {
- throw new UnsupportedOperationException("Asynchonous in-out are not supported");
+ // Done status can only be send asynchronously
+ if (exchange.getStatus() != ExchangeStatus.DONE) {
+ throw new UnsupportedOperationException("Asynchonous in-out are not supported");
+ }
}
BaseLifeCycle lf = (BaseLifeCycle) endpoint.getServiceUnit().getComponent().getLifeCycle();
lf.sendConsumerExchange(exchange, endpoint.getProcessor());
Modified: trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Endpoint.java (995 => 996)
--- trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Endpoint.java 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/main/java/org/servicemix/jsr181/Jsr181Endpoint.java 2005-12-03 00:27:42 UTC (rev 996)
@@ -97,6 +97,7 @@
protected String pojoClass;
protected String annotations;
protected String typeMapping;
+ protected String serviceInterface;
protected ServiceEndpoint activated;
protected Service xfireService;
@@ -210,12 +211,10 @@
XFire xfire = getXFire();
ObjectServiceFactory factory = null;
Class serviceClass = pojo.getClass();
+ if (serviceInterface != null) {
+ serviceClass = Class.forName(serviceInterface);
+ }
if (wa == null) {
- // Auto determine service interface
- Class[] interfaces = pojo.getClass().getInterfaces();
- if (interfaces != null && interfaces.length == 1) {
- serviceClass = interfaces[0];
- }
factory = new ObjectServiceFactory(xfire.getTransportManager(),
new AegisBindingProvider(tm));
} else if (selectedAnnotations.equals("java5") && selectedTypeMapping.equals("jaxb2")) {
@@ -306,11 +305,6 @@
return pojoClass;
}
- /**
- *
- * @param pojoClass
- * @org.xbean.Property alias="pojo-class"
- */
public void setPojoClass(String pojoClass) {
this.pojoClass = pojoClass;
}
@@ -327,11 +321,6 @@
return typeMapping;
}
- /**
- *
- * @param pojoClass
- * @org.xbean.Property alias="type-mapping"
- */
public void setTypeMapping(String typeMapping) {
this.typeMapping = typeMapping;
}
@@ -340,4 +329,12 @@
return processor;
}
+ public String getServiceInterface() {
+ return serviceInterface;
+ }
+
+ public void setServiceInterface(String serviceInterface) {
+ this.serviceInterface = serviceInterface;
+ }
+
}
Modified: trunk/servicemix-jsr181/src/test/java/org/servicemix/jsr181/Jsr181ComplexPojoTest.java (995 => 996)
--- trunk/servicemix-jsr181/src/test/java/org/servicemix/jsr181/Jsr181ComplexPojoTest.java 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/test/java/org/servicemix/jsr181/Jsr181ComplexPojoTest.java 2005-12-03 00:27:42 UTC (rev 996)
@@ -64,6 +64,7 @@
Jsr181SpringComponent component = new Jsr181SpringComponent();
Jsr181Endpoint endpoint = new Jsr181Endpoint();
endpoint.setPojo(new ComplexPojoImpl());
+ endpoint.setServiceInterface(ComplexPojo.class.getName());
component.setEndpoints(new Jsr181Endpoint[] { endpoint });
container.activateComponent(component, "JSR181Component");
@@ -86,6 +87,7 @@
Jsr181SpringComponent component = new Jsr181SpringComponent();
Jsr181Endpoint endpoint = new Jsr181Endpoint();
endpoint.setPojo(new ComplexPojoImpl());
+ endpoint.setServiceInterface(ComplexPojo.class.getName());
component.setEndpoints(new Jsr181Endpoint[] { endpoint });
container.activateComponent(component, "JSR181Component");
Modified: trunk/servicemix-jsr181/src/test/resources/bad3/xbean.xml (995 => 996)
--- trunk/servicemix-jsr181/src/test/resources/bad3/xbean.xml 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/test/resources/bad3/xbean.xml 2005-12-03 00:27:42 UTC (rev 996)
@@ -1,10 +1,10 @@
<?xml version="1.0"?>
<beans xmlns:jsr181="http://servicemix.org/jsr181/1.0">
- <jsr181:endpoint type-mapping="xmlbeans"
- pojo-class="test.EchoService" />
+ <jsr181:endpoint typeMapping="xmlbeans"
+ pojoClass="test.EchoService" />
- <jsr181:endpoint type-mapping="xmlbeans"
- pojo-class="test.EchoService" />
+ <jsr181:endpoint typeMapping="xmlbeans"
+ pojoClass="test.EchoService" />
</beans>
Modified: trunk/servicemix-jsr181/src/test/resources/bad5/xbean.xml (995 => 996)
--- trunk/servicemix-jsr181/src/test/resources/bad5/xbean.xml 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/test/resources/bad5/xbean.xml 2005-12-03 00:27:42 UTC (rev 996)
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<beans xmlns:jsr181="http://servicemix.org/jsr181/1.0">
- <jsr181:endpoint type-mapping="---"
- pojo-class="test.EchoService" />
+ <jsr181:endpoint typeMapping="---"
+ pojoClass="test.EchoService" />
</beans>
Modified: trunk/servicemix-jsr181/src/test/resources/bad6/xbean.xml (995 => 996)
--- trunk/servicemix-jsr181/src/test/resources/bad6/xbean.xml 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/test/resources/bad6/xbean.xml 2005-12-03 00:27:42 UTC (rev 996)
@@ -2,6 +2,6 @@
<beans xmlns:jsr181="http://servicemix.org/jsr181/1.0">
<jsr181:endpoint annotations="---"
- pojo-class="test.EchoService" />
+ pojoClass="test.EchoService" />
</beans>
Modified: trunk/servicemix-jsr181/src/test/resources/good2/xbean.xml (995 => 996)
--- trunk/servicemix-jsr181/src/test/resources/good2/xbean.xml 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/test/resources/good2/xbean.xml 2005-12-03 00:27:42 UTC (rev 996)
@@ -2,13 +2,13 @@
<beans xmlns:jsr181="http://servicemix.org/jsr181/1.0">
<jsr181:endpoint endpoint="endpoint1"
- type-mapping="xmlbeans">
+ typeMapping="xmlbeans">
<jsr181:pojo>
<bean class="test.EchoService" />
</jsr181:pojo>
</jsr181:endpoint>
- <jsr181:endpoint pojo-class="test.EchoService2"
+ <jsr181:endpoint pojoClass="test.EchoService2"
annotations="none" />
</beans>
Modified: trunk/servicemix-jsr181/src/test/resources/org/servicemix/jsr181/spring.xml (995 => 996)
--- trunk/servicemix-jsr181/src/test/resources/org/servicemix/jsr181/spring.xml 2005-12-02 23:21:06 UTC (rev 995)
+++ trunk/servicemix-jsr181/src/test/resources/org/servicemix/jsr181/spring.xml 2005-12-03 00:27:42 UTC (rev 996)
@@ -11,7 +11,7 @@
<sm:component>
<jsr181:component>
<jsr181:endpoints>
- <jsr181:endpoint pojo-class="test.EchoService2"
+ <jsr181:endpoint pojoClass="test.EchoService2"
annotations="none" />
</jsr181:endpoints>
</jsr181:component>