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/08/22 01:23:21 UTC
svn commit: r433425 -
/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java
Author: gnodet
Date: Mon Aug 21 16:23:21 2006
New Revision: 433425
URL: http://svn.apache.org/viewvc?rev=433425&view=rev
Log:
Allow deployment of publishers in an SU
Modified:
incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java
Modified: incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java?rev=433425&r1=433424&r2=433425&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java (original)
+++ incubator/servicemix/trunk/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java Mon Aug 21 16:23:21 2006
@@ -47,12 +47,14 @@
import org.oasis_open.docs.wsn.b_2.CreatePullPointResponse;
import org.oasis_open.docs.wsn.b_2.Subscribe;
import org.oasis_open.docs.wsn.b_2.SubscribeResponse;
+import org.oasis_open.docs.wsn.br_2.RegisterPublisher;
+import org.oasis_open.docs.wsn.br_2.RegisterPublisherResponse;
public class WSNDeployer extends AbstractDeployer implements Deployer {
protected FilenameFilter filter;
protected JAXBContext context;
-
+
public WSNDeployer(BaseComponent component) {
super(component);
filter = new XmlFilter();
@@ -105,29 +107,30 @@
}
return createEndpoint(request);
}
-
+
public Endpoint createEndpoint(Object request) throws DeploymentException {
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 if (request instanceof RegisterPublisher) {
+ return new WSNPublisherEndpoint((RegisterPublisher) request);
} 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;
@@ -158,18 +161,18 @@
}
}
-
+
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;
@@ -200,7 +203,49 @@
}
}
-
+
+ public static class WSNPublisherEndpoint extends Endpoint implements EndpointManager {
+
+ private RegisterPublisher request;
+ private RegisterPublisherResponse response;
+
+ public WSNPublisherEndpoint(RegisterPublisher request) {
+ this.service = new QName("http://servicemix.org/wsnotification", "Publisher");
+ 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.handleRegisterPublisher(request, this);
+ }
+
+ @Override
+ public void deactivate() throws Exception {
+ JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getNotificationBroker();
+ broker.unsubscribe(response.getPublisherRegistrationReference().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 {
List<Endpoint> activated = new ArrayList<Endpoint>();