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 2006/02/11 20:12:54 UTC

svn commit: r377016 - in /incubator/servicemix/trunk/servicemix-wsn2005/src: main/java/org/apache/servicemix/wsn/ main/java/org/apache/servicemix/wsn/client/ main/java/org/apache/servicemix/wsn/component/ main/java/org/apache/servicemix/wsn/jbi/ test/j...

Author: gnodet
Date: Sat Feb 11 11:12:52 2006
New Revision: 377016

URL: http://svn.apache.org/viewcvs?rev=377016&view=rev
Log:
SM-297: Deploy subscriptions and pull-points as service units

Added:
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/
    incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/pullpoint.xml
    incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/subscribe.xml
    incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/subscription/
    incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/subscription/subscribe.xml
Removed:
    incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/org/apache/servicemix/wsn/component/
Modified:
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractEndpoint.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractNotificationBroker.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractPullPoint.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractSubscription.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/EndpointManager.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/AbstractWSAClient.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java
    incubator/servicemix/trunk/servicemix-wsn2005/src/test/java/org/apache/servicemix/wsn/component/WSNComponentTest.java

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractEndpoint.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractEndpoint.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractEndpoint.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractEndpoint.java Sat Feb 11 11:12:52 2006
@@ -38,6 +38,10 @@
 	public String getAddress() {
 		return address;
 	}
+    
+    public void setAddress(String address) {
+        this.address = address;
+    }
 	
 	public void register() throws EndpointRegistrationException {
 		endpoint = manager.register(getAddress(), this);

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractNotificationBroker.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractNotificationBroker.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractNotificationBroker.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractNotificationBroker.java Sat Feb 11 11:12:52 2006
@@ -15,6 +15,7 @@
  */
 package org.apache.servicemix.wsn;
 
+import java.util.Iterator;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -41,6 +42,7 @@
 import org.oasis_open.docs.wsn.br_1.PublisherRegistrationFailedFaultType;
 import org.oasis_open.docs.wsn.br_1.RegisterPublisher;
 import org.oasis_open.docs.wsn.br_1.RegisterPublisherResponse;
+import org.apache.servicemix.jbi.util.DOMUtil;
 import org.apache.servicemix.wsn.jaxws.InvalidFilterFault;
 import org.apache.servicemix.wsn.jaxws.InvalidMessageContentExpressionFault;
 import org.apache.servicemix.wsn.jaxws.InvalidProducerPropertiesExpressionFault;
@@ -64,6 +66,7 @@
 import org.apache.servicemix.wsn.jaxws.UnacceptableInitialTerminationTimeFault;
 import org.w3._2005._03.addressing.AttributedURIType;
 import org.w3._2005._03.addressing.EndpointReferenceType;
+import org.w3c.dom.Element;
 
 @WebService(endpointInterface = "org.apache.servicemix.wsn.jaxws.NotificationBroker")
 public abstract class AbstractNotificationBroker extends AbstractEndpoint implements NotificationBroker, NotificationConsumer {
@@ -156,17 +159,22 @@
         throws InvalidFilterFault, InvalidMessageContentExpressionFault, InvalidProducerPropertiesExpressionFault, InvalidTopicExpressionFault, InvalidUseRawValueFault, ResourceUnknownFault, SubscribeCreationFailedFault, TopicExpressionDialectUnknownFault, TopicNotSupportedFault, UnacceptableInitialTerminationTimeFault {
     	
     	log.debug("Subscribe");
-    	return handleSubscribe(subscribeRequest);
+    	return handleSubscribe(subscribeRequest, null);
     }
-
-	protected SubscribeResponse handleSubscribe(Subscribe subscribeRequest) throws InvalidFilterFault, InvalidMessageContentExpressionFault, InvalidProducerPropertiesExpressionFault, InvalidTopicExpressionFault, InvalidUseRawValueFault, SubscribeCreationFailedFault, TopicExpressionDialectUnknownFault, TopicNotSupportedFault, UnacceptableInitialTerminationTimeFault {
+    
+	public SubscribeResponse handleSubscribe(Subscribe subscribeRequest,
+                                             EndpointManager manager) throws InvalidFilterFault, InvalidMessageContentExpressionFault, InvalidProducerPropertiesExpressionFault, InvalidTopicExpressionFault, InvalidUseRawValueFault, SubscribeCreationFailedFault, TopicExpressionDialectUnknownFault, TopicNotSupportedFault, UnacceptableInitialTerminationTimeFault {
 		AbstractSubscription subscription = null;
 		boolean success = false;
 		try {
 			subscription = createSubcription(idGenerator.generateSanitizedId());
+            subscription.setBroker(this);
 			subscriptions.put(subscription.getAddress(), subscription);
 			subscription.create(subscribeRequest);
-			subscription.register();
+            if (manager != null) {
+                subscription.setManager(manager);
+            }
+            subscription.register();
 			SubscribeResponse response = new SubscribeResponse();
 			response.setSubscriptionReference(createEndpointReference(subscription.getAddress()));
 			success = true;
@@ -185,6 +193,13 @@
 			}
 		}
 	}
+    
+    public void unsubscribe(String address) throws UnableToDestroySubscriptionFault {
+        AbstractSubscription subscription = (AbstractSubscription) subscriptions.remove(address);
+        if (subscription != null) {
+            subscription.unsubscribe();
+        }
+    }
 	
 	/**
      * 
@@ -229,30 +244,43 @@
         throws InvalidTopicExpressionFault, PublisherRegistrationFailedFault, PublisherRegistrationRejectedFault, ResourceUnknownFault, TopicNotSupportedFault {
     	
     	log.debug("RegisterPublisher");
-    	AbstractPublisher publisher = null;
-    	boolean success = false;
-    	try {
-    		publisher = createPublisher(idGenerator.generateSanitizedId());
-    		publishers.put(publisher.getAddress(), publisher);
-    		publisher.register();
-    		publisher.create(registerPublisherRequest);
-    		RegisterPublisherResponse response = new RegisterPublisherResponse(); 
-    		response.setPublisherRegistrationReference(createEndpointReference(publisher.getAddress()));
-    		success = true;
-    		return response;
-    	} catch (EndpointRegistrationException e) {
-    		PublisherRegistrationFailedFaultType fault = new PublisherRegistrationFailedFaultType();
-    		throw new PublisherRegistrationFailedFault("Unable to register new endpoint", fault, e);
-    	} finally {
-			if (!success && publisher != null) {
-				publishers.remove(publisher.getAddress());
-				try {
-					publisher.destroy();
-				} catch (ResourceNotDestroyedFault e) {
-					log.info("Error destroying publisher", e);
-				}
-			}
-    	}
+        return handleRegisterPublisher(registerPublisherRequest, null);
+    }
+    
+    public RegisterPublisherResponse handleRegisterPublisher(
+                        RegisterPublisher registerPublisherRequest,
+                        EndpointManager manager) throws InvalidTopicExpressionFault, 
+                                                        PublisherRegistrationFailedFault, 
+                                                        PublisherRegistrationRejectedFault, 
+                                                        ResourceUnknownFault, 
+                                                        TopicNotSupportedFault {
+        AbstractPublisher publisher = null;
+        boolean success = false;
+        try {
+            publisher = createPublisher(idGenerator.generateSanitizedId());
+            publishers.put(publisher.getAddress(), publisher);
+            if (manager != null) {
+                publisher.setManager(manager);
+            }
+            publisher.register();
+            publisher.create(registerPublisherRequest);
+            RegisterPublisherResponse response = new RegisterPublisherResponse(); 
+            response.setPublisherRegistrationReference(createEndpointReference(publisher.getAddress()));
+            success = true;
+            return response;
+        } catch (EndpointRegistrationException e) {
+            PublisherRegistrationFailedFaultType fault = new PublisherRegistrationFailedFaultType();
+            throw new PublisherRegistrationFailedFault("Unable to register new endpoint", fault, e);
+        } finally {
+            if (!success && publisher != null) {
+                publishers.remove(publisher.getAddress());
+                try {
+                    publisher.destroy();
+                } catch (ResourceNotDestroyedFault e) {
+                    log.info("Error destroying publisher", e);
+                }
+            }
+        }
     }
 
     /**
@@ -271,12 +299,31 @@
         throws PullNotificationNotSupportedFault, UnableToCreatePullPoint {
     	
     	log.debug("CreatePullEndpoint");
-    	AbstractPullPoint pullPoint = null;
+        return handleCreatePullPoint(createPullPointRequest, null);
+    }
+
+    public CreatePullPointResponse handleCreatePullPoint(
+                CreatePullPoint createPullPointRequest,
+                EndpointManager manager)
+            throws PullNotificationNotSupportedFault, UnableToCreatePullPoint {
+        AbstractPullPoint pullPoint = null;
     	boolean success = false;
     	try {
     		pullPoint = createPullPoint(idGenerator.generateSanitizedId());
+            for (Iterator it = createPullPointRequest.getAny().iterator(); it.hasNext();) {
+                Element el = (Element) it.next();
+                if ("address".equals(el.getLocalName()) &&
+                    "http://servicemix.apache.org/wsn2005/1.0".equals(el.getNamespaceURI())) {
+                    String address = DOMUtil.getElementText(el).trim();
+                    pullPoint.setAddress(address);
+                }
+            }
+            pullPoint.setBroker(this);
     		pullPoints.put(pullPoint.getAddress(), pullPoint);
     		pullPoint.create(createPullPointRequest);
+            if (manager != null) {
+                pullPoint.setManager(manager);
+            }
     		pullPoint.register();
     		CreatePullPointResponse response = new CreatePullPointResponse(); 
     		response.setPullPoint(createEndpointReference(pullPoint.getAddress()));
@@ -295,6 +342,13 @@
 				}
 			}
     	}
+    }
+    
+    public void destroyPullPoint(String address) throws UnableToDestroyPullPoint {
+        AbstractPullPoint pullPoint = pullPoints.remove(address);
+        if (pullPoint != null) {
+            pullPoint.destroy();
+        }
     }
 
 	protected EndpointReferenceType createEndpointReference(String address) {

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractPullPoint.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractPullPoint.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractPullPoint.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractPullPoint.java Sat Feb 11 11:12:52 2006
@@ -46,6 +46,8 @@
 
 	private static Log log = LogFactory.getLog(AbstractPullPoint.class);
 	
+    protected AbstractNotificationBroker broker;
+    
 	public AbstractPullPoint(String name) {
 		super(name);
 	}
@@ -103,7 +105,7 @@
         throws UnableToDestroyPullPoint {
     	
     	log.debug("Destroy");
-    	destroy();
+        broker.destroyPullPoint(getAddress());
     	return new DestroyResponse();
     }
     
@@ -126,4 +128,12 @@
 	protected String createAddress() {
 		return "http://servicemix.org/wsnotification/PullPoint/" + getName();
 	}
+
+    public AbstractNotificationBroker getBroker() {
+        return broker;
+    }
+
+    public void setBroker(AbstractNotificationBroker broker) {
+        this.broker = broker;
+    }
 }

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractSubscription.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractSubscription.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractSubscription.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/AbstractSubscription.java Sat Feb 11 11:12:52 2006
@@ -83,6 +83,7 @@
 	protected TopicExpressionType topic;
 	protected QueryExpressionType contentFilter;
 	protected EndpointReferenceType consumerReference;
+    protected AbstractNotificationBroker broker;
 	
 	public AbstractSubscription(String name) {
 		super(name);
@@ -131,7 +132,7 @@
         Unsubscribe unsubscribeRequest)
         throws ResourceUnknownFault, UnableToDestroySubscriptionFault {
 
-    	unsubscribe();
+    	broker.unsubscribe(getAddress());
     	return new UnsubscribeResponse();
     }
     
@@ -361,4 +362,12 @@
 	    			fault);
 		}
 	}
+
+    public AbstractNotificationBroker getBroker() {
+        return broker;
+    }
+
+    public void setBroker(AbstractNotificationBroker broker) {
+        this.broker = broker;
+    }
 }

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/EndpointManager.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/EndpointManager.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/EndpointManager.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/EndpointManager.java Sat Feb 11 11:12:52 2006
@@ -17,7 +17,8 @@
 
 public interface EndpointManager {
 	
-	Object register(String address, Object service) throws EndpointRegistrationException;
+    Object register(String address, 
+                    Object service) throws EndpointRegistrationException;
 	
 	void unregister(Object endpoint) throws EndpointRegistrationException;
 

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/AbstractWSAClient.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/AbstractWSAClient.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/AbstractWSAClient.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/AbstractWSAClient.java Sat Feb 11 11:12:52 2006
@@ -16,11 +16,19 @@
 package org.apache.servicemix.wsn.client;
 
 import javax.jbi.JBIException;
+import javax.jbi.component.ComponentContext;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
 import javax.xml.namespace.QName;
 
+import org.apache.servicemix.client.DefaultServiceMixClient;
 import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.client.ServiceMixClientFacade;
+import org.apache.servicemix.jbi.container.JBIContainer;
 import org.apache.servicemix.jbi.resolver.EndpointResolver;
 import org.apache.servicemix.jbi.resolver.ServiceAndEndpointNameResolver;
+import org.oasis_open.docs.wsn.b_1.Subscribe;
+import org.oasis_open.docs.wsn.br_1.RegisterPublisher;
 import org.w3._2005._03.addressing.AttributedURIType;
 import org.w3._2005._03.addressing.EndpointReferenceType;
 
@@ -32,7 +40,7 @@
 	
 	public AbstractWSAClient() {
 	}
-	
+    
 	public AbstractWSAClient(EndpointReferenceType endpoint, ServiceMixClient client) {
 		this.endpoint = endpoint;
 		this.resolver = resolveWSA(endpoint);
@@ -46,6 +54,18 @@
 		epr.setAddress(attUri);
 		return epr;
 	}
+    
+    public static ServiceMixClient createJaxbClient(JBIContainer container) throws JBIException, JAXBException {
+        DefaultServiceMixClient client = new DefaultServiceMixClient(container);
+        client.setMarshaler(new JAXBMarshaller(JAXBContext.newInstance(Subscribe.class, RegisterPublisher.class)));
+        return client;
+    }
+    
+    public static ServiceMixClient createJaxbClient(ComponentContext context) throws JAXBException {
+        ServiceMixClientFacade client = new ServiceMixClientFacade(context); 
+        client.setMarshaler(new JAXBMarshaller(JAXBContext.newInstance(Subscribe.class, RegisterPublisher.class)));
+        return client;
+    }
 	
 	public static EndpointResolver resolveWSA(EndpointReferenceType ref) {
 		String[] parts = splitUri(ref.getAddress().getValue());

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java Sat Feb 11 11:12:52 2006
@@ -24,6 +24,11 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.namespace.QName;
 
+import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.client.ServiceMixClientFacade;
+import org.apache.servicemix.jbi.container.JBIContainer;
+import org.apache.servicemix.jbi.resolver.ServiceNameEndpointResolver;
+import org.apache.servicemix.wsn.AbstractSubscription;
 import org.oasis_open.docs.wsn.b_1.CreatePullPoint;
 import org.oasis_open.docs.wsn.b_1.CreatePullPointResponse;
 import org.oasis_open.docs.wsn.b_1.FilterType;
@@ -38,12 +43,6 @@
 import org.oasis_open.docs.wsn.b_1.UseRaw;
 import org.oasis_open.docs.wsn.br_1.RegisterPublisher;
 import org.oasis_open.docs.wsn.br_1.RegisterPublisherResponse;
-import org.apache.servicemix.client.DefaultServiceMixClient;
-import org.apache.servicemix.client.ServiceMixClient;
-import org.apache.servicemix.client.ServiceMixClientFacade;
-import org.apache.servicemix.jbi.container.JBIContainer;
-import org.apache.servicemix.jbi.resolver.ServiceNameEndpointResolver;
-import org.apache.servicemix.wsn.AbstractSubscription;
 import org.w3._2005._03.addressing.EndpointReferenceType;
 
 public class NotificationBroker extends AbstractWSAClient {
@@ -61,24 +60,18 @@
 	}
 	
 	public NotificationBroker(ComponentContext context, String brokerName) throws JAXBException {
-		ServiceMixClientFacade client = new ServiceMixClientFacade(context); 
-		client.setMarshaler(new JAXBMarshaller(JAXBContext.newInstance(Subscribe.class, RegisterPublisher.class)));
-		setClient(client);
+        setClient(createJaxbClient(context));
 		setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
 		setResolver(resolveWSA(getEndpoint()));
 	}
 	
 	public NotificationBroker(JBIContainer container) throws JBIException, JAXBException {
-		DefaultServiceMixClient client = new DefaultServiceMixClient(container);
-		client.setMarshaler(new JAXBMarshaller(JAXBContext.newInstance(Subscribe.class, RegisterPublisher.class)));
-		setClient(client);
+		setClient(createJaxbClient(container));
 		setResolver(new ServiceNameEndpointResolver(NOTIFICATION_BROKER));
 	}
 	
 	public NotificationBroker(JBIContainer container, String brokerName) throws JBIException, JAXBException {
-		DefaultServiceMixClient client = new DefaultServiceMixClient(container);
-		client.setMarshaler(new JAXBMarshaller(JAXBContext.newInstance(Subscribe.class)));
-		setClient(client);
+        setClient(createJaxbClient(container));
 		setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
 		setResolver(resolveWSA(getEndpoint()));
 	}

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java Sat Feb 11 11:12:52 2006
@@ -19,12 +19,14 @@
 import java.util.List;
 
 import javax.jbi.JBIException;
+import javax.xml.bind.JAXBException;
 
+import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.jbi.container.JBIContainer;
 import org.oasis_open.docs.wsn.b_1.Destroy;
 import org.oasis_open.docs.wsn.b_1.GetMessages;
 import org.oasis_open.docs.wsn.b_1.GetMessagesResponse;
 import org.oasis_open.docs.wsn.b_1.NotificationMessageHolderType;
-import org.apache.servicemix.client.ServiceMixClient;
 import org.w3._2005._03.addressing.EndpointReferenceType;
 
 public class PullPoint extends AbstractWSAClient {
@@ -32,6 +34,10 @@
 	public PullPoint(EndpointReferenceType pullPoint, ServiceMixClient client) {
 		super(pullPoint, client);
 	}
+
+    public PullPoint(EndpointReferenceType pullPoint, JBIContainer container) throws JBIException, JAXBException {
+        super(pullPoint, createJaxbClient(container));
+    }
 
 	public List<NotificationMessageHolderType> getMessages(int max) throws JBIException {
 		GetMessages getMessages = new GetMessages();

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java Sat Feb 11 11:12:52 2006
@@ -19,13 +19,21 @@
 
 import org.apache.servicemix.common.BaseComponent;
 import org.apache.servicemix.common.BaseLifeCycle;
+import org.apache.servicemix.common.BaseServiceUnitManager;
+import org.apache.servicemix.common.Deployer;
 
 public class WSNComponent extends BaseComponent {
 
-	@Override
+    @Override
 	protected BaseLifeCycle createLifeCycle() {
 		return new WSNLifeCycle(this);
 	}
+
+    @Override
+    public BaseServiceUnitManager createServiceUnitManager() {
+        Deployer[] deployers = new Deployer[] { new WSNDeployer(this) };
+        return new BaseServiceUnitManager(this, deployers);
+    }
 
 	public ConnectionFactory getConnectionFactory() {
 		return ((WSNLifeCycle) lifeCycle).getConnectionFactory();

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java Sat Feb 11 11:12:52 2006
@@ -15,7 +15,9 @@
  */
 package org.apache.servicemix.wsn.component;
 
-public class WSNConfiguration implements WSNConfigurationMBean {
+import org.apache.servicemix.common.PersistentConfiguration;
+
+public class WSNConfiguration extends PersistentConfiguration implements WSNConfigurationMBean {
 
 	private String initialContextFactory;
 	private String jndiProviderURL;

Added: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java?rev=377016&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java (added)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java Sat Feb 11 11:12:52 2006
@@ -0,0 +1,212 @@
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.wsn.component;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.Iterator;
+
+import javax.jbi.management.DeploymentException;
+import javax.jbi.management.LifeCycleMBean;
+import javax.jbi.messaging.MessageExchange.Role;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.namespace.QName;
+
+import org.apache.activemq.util.IdGenerator;
+import org.apache.servicemix.common.AbstractDeployer;
+import org.apache.servicemix.common.BaseComponent;
+import org.apache.servicemix.common.Deployer;
+import org.apache.servicemix.common.Endpoint;
+import org.apache.servicemix.common.ExchangeProcessor;
+import org.apache.servicemix.common.ServiceUnit;
+import org.apache.servicemix.wsn.EndpointManager;
+import org.apache.servicemix.wsn.EndpointRegistrationException;
+import org.apache.servicemix.wsn.jaxws.NotificationBroker;
+import org.apache.servicemix.wsn.jbi.JbiNotificationBroker;
+import org.oasis_open.docs.wsn.b_1.CreatePullPoint;
+import org.oasis_open.docs.wsn.b_1.CreatePullPointResponse;
+import org.oasis_open.docs.wsn.b_1.Subscribe;
+import org.oasis_open.docs.wsn.b_1.SubscribeResponse;
+
+public class WSNDeployer extends AbstractDeployer implements Deployer {
+
+    protected FilenameFilter filter;
+    protected JAXBContext context;
+    
+    public WSNDeployer(BaseComponent component) {
+        super(component);
+        filter = new XmlFilter();
+        try {
+            context = WSNEndpoint.createJAXBContext(NotificationBroker.class);
+        } catch (JAXBException e) {
+            throw new RuntimeException("Could not create jaxb context", e);
+        }
+    }
+
+    public boolean canDeploy(String serviceUnitName, String serviceUnitRootPath) {
+        File[] xmls = new File(serviceUnitRootPath).listFiles(filter);
+        return xmls != null && xmls.length > 0;
+    }
+
+    public ServiceUnit deploy(String serviceUnitName, String serviceUnitRootPath) throws DeploymentException {
+        File[] xmls = new File(serviceUnitRootPath).listFiles(filter);
+        if (xmls == null || xmls.length == 0) {
+            throw failure("deploy", "No wsdl found", null);
+        }
+        WSNServiceUnit su = new WSNServiceUnit();
+        su.setComponent(component);
+        su.setName(serviceUnitName);
+        su.setRootPath(serviceUnitRootPath);
+        for (int i = 0; i < xmls.length; i++) {
+            Endpoint ep = createEndpoint(xmls[i]);
+            ep.setServiceUnit(su);
+            su.addEndpoint(ep);
+        }
+        if (su.getEndpoints().size() == 0) {
+            throw failure("deploy", "Invalid wsdl: no endpoints found", null);
+        }
+        return su;
+    }
+
+    protected Endpoint createEndpoint(File file) throws DeploymentException {
+        Object request = null;
+        try {
+            request = context.createUnmarshaller().unmarshal(file);
+        } catch (JAXBException e) {
+            throw failure("deploy", "Invalid xml", e);
+        }
+        if (request instanceof Subscribe) {
+            return new WSNSubscriptionEndpoint((Subscribe) request);
+        } else if (request instanceof CreatePullPoint) {
+            return new WSNPullPointEndpoint((CreatePullPoint) request);
+        //} else if (request instanceof RegisterPublisher) {
+        } else {
+            throw failure("deploy", "Unsupported request " + request.getClass().getName(), null);
+        }
+    }
+    
+    public class WSNSubscriptionEndpoint extends Endpoint implements EndpointManager {
+
+        private Subscribe request;
+        private SubscribeResponse response;
+        
+        public WSNSubscriptionEndpoint(Subscribe request) throws DeploymentException {
+            this.service = new QName("http://servicemix.org/wsnotification", "Subscription");
+            this.endpoint = new IdGenerator().generateSanitizedId();
+            this.request = request;
+        }
+        
+        @Override
+        public Role getRole() {
+            return Role.CONSUMER;
+        }
+
+        @Override
+        public void activate() throws Exception {
+            JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getNotificationBroker();
+            response = broker.handleSubscribe(request, this);
+        }
+
+        @Override
+        public void deactivate() throws Exception {
+            JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getNotificationBroker();
+            broker.unsubscribe(response.getSubscriptionReference().getAddress().getValue());
+        }
+
+        @Override
+        public ExchangeProcessor getProcessor() {
+            return null;
+        }
+
+        public Object register(String address, Object service) throws EndpointRegistrationException {
+            return null;
+        }
+
+        public void unregister(Object endpoint) throws EndpointRegistrationException {
+        }
+
+    }
+    
+    public class WSNPullPointEndpoint extends Endpoint implements EndpointManager {
+
+        private CreatePullPoint request;
+        private CreatePullPointResponse response;
+        
+        public WSNPullPointEndpoint(CreatePullPoint request) throws DeploymentException {
+            this.service = new QName("http://servicemix.org/wsnotification", "Subscription");
+            this.endpoint = new IdGenerator().generateSanitizedId();
+            this.request = request;
+        }
+        
+        @Override
+        public Role getRole() {
+            return Role.PROVIDER;
+        }
+
+        @Override
+        public void activate() throws Exception {
+            JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getNotificationBroker();
+            response = broker.createPullPoint(request);
+        }
+
+        @Override
+        public void deactivate() throws Exception {
+            JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getNotificationBroker();
+            broker.destroyPullPoint(response.getPullPoint().getAddress().getValue());
+        }
+
+        @Override
+        public ExchangeProcessor getProcessor() {
+            return null;
+        }
+
+        public Object register(String address, Object service) throws EndpointRegistrationException {
+            return null;
+        }
+
+        public void unregister(Object endpoint) throws EndpointRegistrationException {
+        }
+
+    }
+    
+    public static class WSNServiceUnit extends ServiceUnit {
+        public void start() throws Exception {
+            for (Iterator iter = getEndpoints().iterator(); iter.hasNext();) {
+                Endpoint endpoint = (Endpoint) iter.next();
+                if (endpoint instanceof WSNPullPointEndpoint) {
+                    endpoint.activate();
+                }
+            }
+            for (Iterator iter = getEndpoints().iterator(); iter.hasNext();) {
+                Endpoint endpoint = (Endpoint) iter.next();
+                if (endpoint instanceof WSNSubscriptionEndpoint) {
+                    endpoint.activate();
+                }
+            }
+            this.status = LifeCycleMBean.RUNNING;
+        }
+    }
+    
+    public static class XmlFilter implements FilenameFilter {
+
+        public boolean accept(File dir, String name) {
+            return name.endsWith(".xml");
+        }
+        
+    }
+    
+}

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java Sat Feb 11 11:12:52 2006
@@ -35,6 +35,7 @@
 import javax.jws.WebMethod;
 import javax.jws.WebService;
 import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.namespace.QName;
 import javax.xml.ws.WebFault;
@@ -81,17 +82,21 @@
 			throw new IllegalStateException("Unable to find WebService annotation");
 		}
 		endpointInterface = Class.forName(ws.endpointInterface());
-		List<Class> classes = new ArrayList<Class>();
-		classes.add(JbiFault.class);
-		for (Method mth : endpointInterface.getMethods()) {
-			WebMethod wm = (WebMethod) mth.getAnnotation(WebMethod.class);
-			if (wm != null) {
-				classes.add(mth.getReturnType());
-				classes.addAll(Arrays.asList(mth.getParameterTypes()));
-			}
-		}
-		return JAXBContext.newInstance(classes.toArray(new Class[0]));
+        return createJAXBContext(endpointInterface);
 	}
+    
+    public static JAXBContext createJAXBContext(Class interfaceClass) throws JAXBException {
+        List<Class> classes = new ArrayList<Class>();
+        classes.add(JbiFault.class);
+        for (Method mth : interfaceClass.getMethods()) {
+            WebMethod wm = (WebMethod) mth.getAnnotation(WebMethod.class);
+            if (wm != null) {
+                classes.add(mth.getReturnType());
+                classes.addAll(Arrays.asList(mth.getParameterTypes()));
+            }
+        }
+        return JAXBContext.newInstance(classes.toArray(new Class[0]));
+    }
 
 	@Override
 	public void deactivate() throws Exception {

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java Sat Feb 11 11:12:52 2006
@@ -135,4 +135,8 @@
 
 	}
 
+    public JbiNotificationBroker getNotificationBroker() {
+        return notificationBroker;
+    }
+
 }

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java Sat Feb 11 11:12:52 2006
@@ -52,15 +52,20 @@
 		super(name);
 	}
 
+    @Override
+    protected void start() throws SubscribeCreationFailedFault {
+        super.start();
+    }
+    
 	@Override
 	protected void validateSubscription(Subscribe subscribeRequest) throws InvalidFilterFault, InvalidMessageContentExpressionFault, InvalidProducerPropertiesExpressionFault, InvalidTopicExpressionFault, InvalidUseRawValueFault, SubscribeCreationFailedFault, TopicExpressionDialectUnknownFault, TopicNotSupportedFault, UnacceptableInitialTerminationTimeFault {
 		super.validateSubscription(subscribeRequest);
-		String[] parts = split(consumerReference.getAddress().getValue());
-		endpoint = context.getEndpoint(new QName(parts[0], parts[1]), parts[2]);
-		if (endpoint == null) {
-			SubscribeCreationFailedFaultType fault = new SubscribeCreationFailedFaultType();
-			throw new SubscribeCreationFailedFault("Unable to resolve consumer reference endpoint", fault);
-		}
+        String[] parts = split(consumerReference.getAddress().getValue().trim());
+        endpoint = context.getEndpoint(new QName(parts[0], parts[1]), parts[2]);
+        if (endpoint == null) {
+            SubscribeCreationFailedFaultType fault = new SubscribeCreationFailedFaultType();
+            throw new SubscribeCreationFailedFault("Unable to resolve consumer reference endpoint", fault);
+        }
 	}
 
     protected String[] split(String uri) {

Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/test/java/org/apache/servicemix/wsn/component/WSNComponentTest.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/test/java/org/apache/servicemix/wsn/component/WSNComponentTest.java?rev=377016&r1=377015&r2=377016&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/test/java/org/apache/servicemix/wsn/component/WSNComponentTest.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/test/java/org/apache/servicemix/wsn/component/WSNComponentTest.java Sat Feb 11 11:12:52 2006
@@ -15,8 +15,11 @@
  */
 package org.apache.servicemix.wsn.component;
 
+import java.io.File;
 import java.io.StringReader;
 import java.io.StringWriter;
+import java.net.URI;
+import java.net.URL;
 import java.util.List;
 
 import javax.jbi.JBIException;
@@ -33,25 +36,25 @@
 
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.broker.BrokerService;
-import org.oasis_open.docs.wsn.b_1.NotificationMessageHolderType;
-import org.oasis_open.docs.wsn.b_1.Notify;
-import org.oasis_open.docs.wsn.b_1.Subscribe;
-import org.oasis_open.docs.wsn.b_1.SubscribeResponse;
-import org.oasis_open.docs.wsn.b_1.Unsubscribe;
-import org.oasis_open.docs.wsn.b_1.UnsubscribeResponse;
 import org.apache.servicemix.MessageExchangeListener;
 import org.apache.servicemix.components.util.ComponentSupport;
 import org.apache.servicemix.jbi.container.ActivationSpec;
 import org.apache.servicemix.jbi.container.JBIContainer;
 import org.apache.servicemix.jbi.jaxp.SourceTransformer;
 import org.apache.servicemix.jbi.jaxp.StringSource;
+import org.apache.servicemix.tck.Receiver;
 import org.apache.servicemix.tck.ReceiverComponent;
 import org.apache.servicemix.wsn.client.AbstractWSAClient;
 import org.apache.servicemix.wsn.client.NotificationBroker;
 import org.apache.servicemix.wsn.client.Publisher;
 import org.apache.servicemix.wsn.client.PullPoint;
 import org.apache.servicemix.wsn.client.Subscription;
-import org.apache.servicemix.wsn.component.WSNComponent;
+import org.oasis_open.docs.wsn.b_1.NotificationMessageHolderType;
+import org.oasis_open.docs.wsn.b_1.Notify;
+import org.oasis_open.docs.wsn.b_1.Subscribe;
+import org.oasis_open.docs.wsn.b_1.SubscribeResponse;
+import org.oasis_open.docs.wsn.b_1.Unsubscribe;
+import org.oasis_open.docs.wsn.b_1.UnsubscribeResponse;
 import org.w3._2005._03.addressing.AttributedURIType;
 import org.w3._2005._03.addressing.EndpointReferenceType;
 import org.w3c.dom.Document;
@@ -66,6 +69,7 @@
 	private JBIContainer jbi;
 	private BrokerService jmsBroker;
 	private NotificationBroker wsnBroker;
+    private WSNComponent wsnComponent;
 	
 	protected void setUp() throws Exception {
 		jmsBroker = new BrokerService();
@@ -78,11 +82,11 @@
 		jbi.init();
 		jbi.start();
 		
-		WSNComponent component = new WSNComponent();
-		component.setConnectionFactory(new ActiveMQConnectionFactory("vm://localhost"));
+		wsnComponent = new WSNComponent();
+        wsnComponent.setConnectionFactory(new ActiveMQConnectionFactory("vm://localhost"));
 		ActivationSpec as = new ActivationSpec();
 		as.setComponentName("servicemix-wsn2005");
-		as.setComponent(component);
+		as.setComponent(wsnComponent);
 		jbi.activateComponent(as);
 		
 		wsnBroker = new NotificationBroker(jbi);
@@ -268,6 +272,57 @@
 		
 		Thread.sleep(50);
 	}
+    
+    public void testDeployPullPoint() throws Exception {
+        URL url = getClass().getClassLoader().getResource("pullpoint/pullpoint.xml");
+        File path = new File(new URI(url.toString()));
+        path = path.getParentFile();
+        wsnComponent.getServiceUnitManager().deploy("pullpoint", path.getAbsolutePath());
+
+        wsnComponent.getServiceUnitManager().start("pullpoint");
+        
+        wsnBroker.notify("myTopic", parse("<hello>world</hello>"));
+        PullPoint pullPoint = new PullPoint(AbstractWSAClient.createWSA("http://www.consumer.org/service/endpoint"), 
+                                            jbi);
+        assertEquals(1, pullPoint.getMessages(0).size());
+    }
+        
+    public void testDeploySubscription() throws Exception {
+        URL url = getClass().getClassLoader().getResource("subscription/subscribe.xml");
+        File path = new File(new URI(url.toString()));
+        path = path.getParentFile();
+        wsnComponent.getServiceUnitManager().deploy("subscription", path.getAbsolutePath());
+        
+        ActivationSpec consumer = new ActivationSpec();
+        consumer.setService(new QName("http://www.consumer.org", "service"));
+        consumer.setEndpoint("endpoint");
+        Receiver receiver = new ReceiverComponent();
+        consumer.setComponent(receiver);
+        jbi.activateComponent(consumer);
+        
+        wsnComponent.getServiceUnitManager().start("subscription");
+
+        wsnBroker.notify("myTopic", parse("<hello>world</hello>"));
+        // Wait for notification
+        Thread.sleep(50);
+        receiver.getMessageList().assertMessagesReceived(1);
+        receiver.getMessageList().flushMessages();
+        
+        wsnComponent.getServiceUnitManager().stop("subscription");
+
+        wsnBroker.notify("myTopic", parse("<hello>world</hello>"));
+        // Wait for notification
+        Thread.sleep(50);
+        assertEquals(0, receiver.getMessageList().flushMessages().size());
+        
+        wsnComponent.getServiceUnitManager().start("subscription");
+
+        wsnBroker.notify("myTopic", parse("<hello>world</hello>"));
+        // Wait for notification
+        Thread.sleep(50);
+        receiver.getMessageList().assertMessagesReceived(1);
+        receiver.getMessageList().flushMessages();
+    }
 	
 	protected Element parse(String txt) throws Exception {
 		DocumentBuilder builder = new SourceTransformer().createDocumentBuilder();

Added: incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/pullpoint.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/pullpoint.xml?rev=377016&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/pullpoint.xml (added)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/pullpoint.xml Sat Feb 11 11:12:52 2006
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<wsnt:CreatePullPoint xmlns:wsnt="http://docs.oasis-open.org/wsn/b-1"
+                      xmlns:sm="http://servicemix.apache.org/wsn2005/1.0">
+	<sm:address> 
+		http://www.consumer.org/service/endpoint
+	</sm:address>
+</wsnt:CreatePullPoint>
\ No newline at end of file

Added: incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/subscribe.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/subscribe.xml?rev=377016&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/subscribe.xml (added)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/subscribe.xml Sat Feb 11 11:12:52 2006
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<wsnt:Subscribe
+  xmlns:wsnt="http://docs.oasis-open.org/wsn/b-1"
+  xmlns:wsa="http://www.w3.org/2005/03/addressing"
+  xmlns:ncex="http://www.consumer.org"
+  xmlns:npex="http://www.producer.org">
+  <wsnt:ConsumerReference>
+    <wsa:Address>
+      http://www.consumer.org/service/endpoint
+    </wsa:Address>
+  </wsnt:ConsumerReference>
+  <wsnt:Filter>
+    <wsnt:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
+      myTopic
+    </wsnt:TopicExpression>
+  </wsnt:Filter>
+</wsnt:Subscribe>
\ No newline at end of file

Added: incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/subscription/subscribe.xml
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/subscription/subscribe.xml?rev=377016&view=auto
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/subscription/subscribe.xml (added)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/subscription/subscribe.xml Sat Feb 11 11:12:52 2006
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<wsnt:Subscribe
+  xmlns:wsnt="http://docs.oasis-open.org/wsn/b-1"
+  xmlns:wsa="http://www.w3.org/2005/03/addressing"
+  xmlns:ncex="http://www.consumer.org"
+  xmlns:npex="http://www.producer.org">
+  <wsnt:ConsumerReference>
+    <wsa:Address>
+      http://www.consumer.org/service/endpoint
+    </wsa:Address>
+  </wsnt:ConsumerReference>
+  <wsnt:Filter>
+    <wsnt:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
+      myTopic
+    </wsnt:TopicExpression>
+  </wsnt:Filter>
+</wsnt:Subscribe>
\ No newline at end of file