You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/09/01 23:26:33 UTC
svn commit: r691065 - in
/servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn:
AbstractCreatePullPoint.java jms/JmsCreatePullPoint.java
Author: gnodet
Date: Mon Sep 1 14:26:33 2008
New Revision: 691065
URL: http://svn.apache.org/viewvc?rev=691065&view=rev
Log:
SM-1117: The pull point name generated by AbstractCreatePullpoint does not work well for some JMS providers
Modified:
servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/AbstractCreatePullPoint.java
servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java
Modified: servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/AbstractCreatePullPoint.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/AbstractCreatePullPoint.java?rev=691065&r1=691064&r2=691065&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/AbstractCreatePullPoint.java (original)
+++ servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/AbstractCreatePullPoint.java Mon Sep 1 14:26:33 2008
@@ -24,6 +24,7 @@
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
+import javax.xml.namespace.QName;
import org.w3c.dom.Element;
@@ -41,6 +42,8 @@
@WebService(endpointInterface = "org.oasis_open.docs.wsn.bw_2.CreatePullPoint")
public abstract class AbstractCreatePullPoint extends AbstractEndpoint implements CreatePullPoint {
+ public static final QName PULL_POINT_NAME = new QName("http://servicemix.apache.org/wsn", "PullPointName");
+
private static Log log = LogFactory.getLog(AbstractCreatePullPoint.class);
private IdGenerator idGenerator;
@@ -86,7 +89,7 @@
AbstractPullPoint pullPoint = null;
boolean success = false;
try {
- pullPoint = createPullPoint(idGenerator.generateSanitizedId());
+ pullPoint = createPullPoint(createPullPointName(createPullPointRequest));
for (Iterator it = createPullPointRequest.getAny().iterator(); it.hasNext();) {
Element el = (Element) it.next();
if ("address".equals(el.getLocalName())
@@ -121,6 +124,16 @@
}
}
+ protected String createPullPointName(org.oasis_open.docs.wsn.b_2.CreatePullPoint createPullPointRequest) {
+ // Let the creator decide which pull point name to use
+ String name = createPullPointRequest.getOtherAttributes().get(PULL_POINT_NAME);
+ if (name == null) {
+ // If no name is given, just generate one
+ name = idGenerator.generateSanitizedId();
+ }
+ return name;
+ }
+
public void destroyPullPoint(String address) throws UnableToDestroyPullPointFault {
AbstractPullPoint pullPoint = pullPoints.remove(address);
if (pullPoint != null) {
Modified: servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java?rev=691065&r1=691064&r2=691065&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java (original)
+++ servicemix/components/engines/servicemix-wsn2005/trunk/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java Mon Sep 1 14:26:33 2008
@@ -18,9 +18,11 @@
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
+import javax.xml.namespace.QName;
import org.apache.servicemix.wsn.AbstractCreatePullPoint;
import org.apache.servicemix.wsn.AbstractPullPoint;
+import org.oasis_open.docs.wsn.b_2.CreatePullPoint;
public class JmsCreatePullPoint extends AbstractCreatePullPoint {
@@ -48,6 +50,15 @@
}
@Override
+ protected String createPullPointName(CreatePullPoint createPullPointRequest) {
+ // For JMS, avoid using dashes in the pullpoint name (which is also the queue name,
+ // as it will lead to problems with some JMS providers
+ String name = super.createPullPointName(createPullPointRequest);
+ name = name.replace("-", "");
+ return name;
+ }
+
+ @Override
protected AbstractPullPoint createPullPoint(String name) {
JmsPullPoint pullPoint = new JmsPullPoint(name);
pullPoint.setManager(getManager());