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 2007/04/08 23:19:32 UTC
svn commit: r526601 [2/3] - in
/incubator/servicemix/trunk/deployables/serviceengines/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/...
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/JAXBMarshaler.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/JAXBMarshaler.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/JAXBMarshaler.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/JAXBMarshaler.java Sun Apr 8 14:19:30 2007
@@ -29,47 +29,46 @@
public class JAXBMarshaler extends DefaultMarshaler {
- private JAXBContext context;
-
- public JAXBMarshaler(JAXBContext context) {
- this.context = context;
- }
-
- public JAXBContext getContext() {
- return context;
- }
-
- public void setContext(JAXBContext context) {
- this.context = context;
- }
-
+ private JAXBContext context;
+
+ public JAXBMarshaler(JAXBContext context) {
+ this.context = context;
+ }
+
+ public JAXBContext getContext() {
+ return context;
+ }
+
+ public void setContext(JAXBContext context) {
+ this.context = context;
+ }
+
protected Object defaultUnmarshal(MessageExchange exchange, NormalizedMessage message) {
try {
- Source content = message.getContent();
- return context.createUnmarshaller().unmarshal(content);
+ Source content = message.getContent();
+ return context.createUnmarshaller().unmarshal(content);
} catch (Exception e) {
- throw new RuntimeException(e);
+ throw new RuntimeException(e);
}
}
protected Source asContent(NormalizedMessage message, Object body) {
- try {
- StringWriter writer = new StringWriter();
- context.createMarshaller().marshal(body, writer);
- return new StringSource(writer.toString());
+ try {
+ StringWriter writer = new StringWriter();
+ context.createMarshaller().marshal(body, writer);
+ return new StringSource(writer.toString());
} catch (Exception e) {
- throw new RuntimeException(e);
+ throw new RuntimeException(e);
}
}
- @Override
- public void marshal(MessageExchange exchange, NormalizedMessage message, Object body) throws MessagingException {
- if (body instanceof Source) {
+ @Override
+ public void marshal(MessageExchange exchange, NormalizedMessage message, Object body) throws MessagingException {
+ if (body instanceof Source) {
message.setContent((Source) body);
- }
- else {
+ } else {
Source content = asContent(message, body);
message.setContent(content);
- }
- }
+ }
+ }
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/NotificationBroker.java Sun Apr 8 14:19:30 2007
@@ -46,123 +46,123 @@
public class NotificationBroker extends AbstractWSAClient {
- public static String WSN_URI = "http://servicemix.org/wsnotification";
- public static String WSN_SERVICE = "NotificationBroker";
-
- public static QName NOTIFICATION_BROKER = new QName(WSN_URI, WSN_SERVICE);
-
- public NotificationBroker(ComponentContext context) throws JAXBException {
- ServiceMixClientFacade client = new ServiceMixClientFacade(context);
- client.setMarshaler(new JAXBMarshaler(JAXBContext.newInstance(Subscribe.class, RegisterPublisher.class)));
- setClient(client);
- setResolver(new ServiceNameEndpointResolver(NOTIFICATION_BROKER));
- }
-
- public NotificationBroker(ComponentContext context, String brokerName) throws JAXBException {
+
+ public static final String WSN_URI = "http://servicemix.org/wsnotification";
+
+ public static final String WSN_SERVICE = "NotificationBroker";
+
+ public static final QName NOTIFICATION_BROKER = new QName(WSN_URI, WSN_SERVICE);
+
+ public NotificationBroker(ComponentContext context) throws JAXBException {
+ ServiceMixClientFacade client = new ServiceMixClientFacade(context);
+ client.setMarshaler(new JAXBMarshaler(JAXBContext.newInstance(Subscribe.class, RegisterPublisher.class)));
+ setClient(client);
+ setResolver(new ServiceNameEndpointResolver(NOTIFICATION_BROKER));
+ }
+
+ public NotificationBroker(ComponentContext context, String brokerName) throws JAXBException {
setClient(createJaxbClient(context));
- setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
- setResolver(resolveWSA(getEndpoint()));
- }
-
- public NotificationBroker(JBIContainer container) throws JBIException, JAXBException {
- setClient(createJaxbClient(container));
- setResolver(new ServiceNameEndpointResolver(NOTIFICATION_BROKER));
- }
-
- public NotificationBroker(JBIContainer container, String brokerName) throws JBIException, JAXBException {
+ setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
+ setResolver(resolveWSA(getEndpoint()));
+ }
+
+ public NotificationBroker(JBIContainer container) throws JBIException, JAXBException {
+ setClient(createJaxbClient(container));
+ setResolver(new ServiceNameEndpointResolver(NOTIFICATION_BROKER));
+ }
+
+ public NotificationBroker(JBIContainer container, String brokerName) throws JBIException, JAXBException {
setClient(createJaxbClient(container));
- setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
- setResolver(resolveWSA(getEndpoint()));
- }
-
- public NotificationBroker(ServiceMixClient client) {
- setClient(client);
- setResolver(new ServiceNameEndpointResolver(NOTIFICATION_BROKER));
- }
-
- public NotificationBroker(ServiceMixClient client, String brokerName) {
- setClient(client);
- setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
- setResolver(resolveWSA(getEndpoint()));
- }
-
- public void notify(String topic, Object msg) throws JBIException {
- Notify notify = new Notify();
- NotificationMessageHolderType holder = new NotificationMessageHolderType();
- if (topic != null) {
- TopicExpressionType topicExp = new TopicExpressionType();
- topicExp.getContent().add(topic);
- holder.setTopic(topicExp);
- }
- holder.setMessage(new NotificationMessageHolderType.Message());
- holder.getMessage().setAny(msg);
- notify.getNotificationMessage().add(holder);
- send(notify);
- }
-
- public Subscription subscribe(EndpointReferenceType consumer,
- String topic) throws JBIException {
- return subscribe(consumer, topic, null, false);
- }
-
- public Subscription subscribe(EndpointReferenceType consumer,
- String topic,
- String xpath) throws JBIException {
- return subscribe(consumer, topic, xpath, false);
- }
-
- public Subscription subscribe(EndpointReferenceType consumer,
- String topic,
- String xpath,
- boolean raw) throws JBIException {
-
- Subscribe subscribeRequest = new Subscribe();
- subscribeRequest.setConsumerReference(consumer);
- subscribeRequest.setFilter(new FilterType());
- if (topic != null) {
- TopicExpressionType topicExp = new TopicExpressionType();
- topicExp.getContent().add(topic);
- subscribeRequest.getFilter().getAny().add(new JAXBElement<TopicExpressionType>(AbstractSubscription.QNAME_TOPIC_EXPRESSION, TopicExpressionType.class, topicExp));
- }
- if (xpath != null) {
- QueryExpressionType xpathExp = new QueryExpressionType();
- xpathExp.setDialect(AbstractSubscription.XPATH1_URI);
- xpathExp.getContent().add(xpath);
- subscribeRequest.getFilter().getAny().add(new JAXBElement<QueryExpressionType>(AbstractSubscription.QNAME_MESSAGE_CONTENT, QueryExpressionType.class, xpathExp));
- }
- if (raw) {
- subscribeRequest.setSubscriptionPolicy(new Subscribe.SubscriptionPolicy());
- subscribeRequest.getSubscriptionPolicy().getAny().add(new UseRaw());
- }
- SubscribeResponse response = (SubscribeResponse) request(subscribeRequest);
- return new Subscription(response.getSubscriptionReference(), getClient());
- }
-
- public List<Object> getCurrentMessage(String topic) throws JBIException {
- GetCurrentMessage getCurrentMessageRequest = new GetCurrentMessage();
- if (topic != null) {
- TopicExpressionType topicExp = new TopicExpressionType();
- topicExp.getContent().add(topic);
- getCurrentMessageRequest.setTopic(topicExp);
- }
- GetCurrentMessageResponse response = (GetCurrentMessageResponse) request(getCurrentMessageRequest);
- return response.getAny();
- }
-
- public Publisher registerPublisher(EndpointReferenceType publisherReference,
- String topic,
- boolean demand) throws JBIException {
-
- RegisterPublisher registerPublisherRequest = new RegisterPublisher();
- registerPublisherRequest.setPublisherReference(publisherReference);
- if (topic != null) {
- TopicExpressionType topicExp = new TopicExpressionType();
- topicExp.getContent().add(topic);
- registerPublisherRequest.getTopic().add(topicExp);
- }
- registerPublisherRequest.setDemand(Boolean.valueOf(demand));
- RegisterPublisherResponse response = (RegisterPublisherResponse) request(registerPublisherRequest);
- return new Publisher(response.getPublisherRegistrationReference(), getClient());
- }
+ setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
+ setResolver(resolveWSA(getEndpoint()));
+ }
+
+ public NotificationBroker(ServiceMixClient client) {
+ setClient(client);
+ setResolver(new ServiceNameEndpointResolver(NOTIFICATION_BROKER));
+ }
+
+ public NotificationBroker(ServiceMixClient client, String brokerName) {
+ setClient(client);
+ setEndpoint(createWSA(WSN_URI + "/" + WSN_SERVICE + "/" + brokerName));
+ setResolver(resolveWSA(getEndpoint()));
+ }
+
+ public void notify(String topic, Object msg) throws JBIException {
+ Notify notify = new Notify();
+ NotificationMessageHolderType holder = new NotificationMessageHolderType();
+ if (topic != null) {
+ TopicExpressionType topicExp = new TopicExpressionType();
+ topicExp.getContent().add(topic);
+ holder.setTopic(topicExp);
+ }
+ holder.setMessage(new NotificationMessageHolderType.Message());
+ holder.getMessage().setAny(msg);
+ notify.getNotificationMessage().add(holder);
+ send(notify);
+ }
+
+ public Subscription subscribe(EndpointReferenceType consumer, String topic) throws JBIException {
+ return subscribe(consumer, topic, null, false);
+ }
+
+ public Subscription subscribe(EndpointReferenceType consumer, String topic, String xpath) throws JBIException {
+ return subscribe(consumer, topic, xpath, false);
+ }
+
+ public Subscription subscribe(EndpointReferenceType consumer, String topic,
+ String xpath, boolean raw) throws JBIException {
+
+ Subscribe subscribeRequest = new Subscribe();
+ subscribeRequest.setConsumerReference(consumer);
+ subscribeRequest.setFilter(new FilterType());
+ if (topic != null) {
+ TopicExpressionType topicExp = new TopicExpressionType();
+ topicExp.getContent().add(topic);
+ subscribeRequest.getFilter().getAny().add(
+ new JAXBElement<TopicExpressionType>(AbstractSubscription.QNAME_TOPIC_EXPRESSION,
+ TopicExpressionType.class, topicExp));
+ }
+ if (xpath != null) {
+ QueryExpressionType xpathExp = new QueryExpressionType();
+ xpathExp.setDialect(AbstractSubscription.XPATH1_URI);
+ xpathExp.getContent().add(xpath);
+ subscribeRequest.getFilter().getAny().add(
+ new JAXBElement<QueryExpressionType>(AbstractSubscription.QNAME_MESSAGE_CONTENT,
+ QueryExpressionType.class, xpathExp));
+ }
+ if (raw) {
+ subscribeRequest.setSubscriptionPolicy(new Subscribe.SubscriptionPolicy());
+ subscribeRequest.getSubscriptionPolicy().getAny().add(new UseRaw());
+ }
+ SubscribeResponse response = (SubscribeResponse) request(subscribeRequest);
+ return new Subscription(response.getSubscriptionReference(), getClient());
+ }
+
+ public List<Object> getCurrentMessage(String topic) throws JBIException {
+ GetCurrentMessage getCurrentMessageRequest = new GetCurrentMessage();
+ if (topic != null) {
+ TopicExpressionType topicExp = new TopicExpressionType();
+ topicExp.getContent().add(topic);
+ getCurrentMessageRequest.setTopic(topicExp);
+ }
+ GetCurrentMessageResponse response = (GetCurrentMessageResponse) request(getCurrentMessageRequest);
+ return response.getAny();
+ }
+
+ public Publisher registerPublisher(EndpointReferenceType publisherReference,
+ String topic, boolean demand) throws JBIException {
+
+ RegisterPublisher registerPublisherRequest = new RegisterPublisher();
+ registerPublisherRequest.setPublisherReference(publisherReference);
+ if (topic != null) {
+ TopicExpressionType topicExp = new TopicExpressionType();
+ topicExp.getContent().add(topic);
+ registerPublisherRequest.getTopic().add(topicExp);
+ }
+ registerPublisherRequest.setDemand(Boolean.valueOf(demand));
+ RegisterPublisherResponse response = (RegisterPublisherResponse) request(registerPublisherRequest);
+ return new Publisher(response.getPublisherRegistrationReference(), getClient());
+ }
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Publisher.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Publisher.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Publisher.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Publisher.java Sun Apr 8 14:19:30 2007
@@ -24,12 +24,12 @@
public class Publisher extends AbstractWSAClient {
- public Publisher(EndpointReferenceType publisherRegistrationReference, ServiceMixClient client) {
- super(publisherRegistrationReference, client);
- }
+ public Publisher(EndpointReferenceType publisherRegistrationReference, ServiceMixClient client) {
+ super(publisherRegistrationReference, client);
+ }
+
+ public void destroy() throws JBIException {
+ request(new DestroyRegistration());
+ }
- public void destroy() throws JBIException {
- request(new DestroyRegistration());
- }
-
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/PullPoint.java Sun Apr 8 14:19:30 2007
@@ -32,23 +32,23 @@
public class PullPoint extends AbstractWSAClient {
- public PullPoint(EndpointReferenceType pullPoint, ServiceMixClient client) {
- super(pullPoint, client);
- }
+ 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();
- getMessages.setMaximumNumber(BigInteger.valueOf(max));
- GetMessagesResponse response = (GetMessagesResponse) request(getMessages);
- return response.getNotificationMessage();
- }
-
- public void destroy() throws JBIException {
- request(new DestroyPullPoint());
- }
-
+ public List<NotificationMessageHolderType> getMessages(int max) throws JBIException {
+ GetMessages getMessages = new GetMessages();
+ getMessages.setMaximumNumber(BigInteger.valueOf(max));
+ GetMessagesResponse response = (GetMessagesResponse) request(getMessages);
+ return response.getNotificationMessage();
+ }
+
+ public void destroy() throws JBIException {
+ request(new DestroyPullPoint());
+ }
+
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Subscription.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Subscription.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Subscription.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/client/Subscription.java Sun Apr 8 14:19:30 2007
@@ -18,27 +18,27 @@
import javax.jbi.JBIException;
+import org.apache.servicemix.client.ServiceMixClient;
import org.oasis_open.docs.wsn.b_2.PauseSubscription;
import org.oasis_open.docs.wsn.b_2.ResumeSubscription;
import org.oasis_open.docs.wsn.b_2.Unsubscribe;
-import org.apache.servicemix.client.ServiceMixClient;
import org.w3._2005._08.addressing.EndpointReferenceType;
public class Subscription extends AbstractWSAClient {
- public Subscription(EndpointReferenceType subscriptionReference, ServiceMixClient client) {
- super(subscriptionReference, client);
- }
-
- public void pause() throws JBIException {
- request(new PauseSubscription());
- }
-
- public void resume() throws JBIException {
- request(new ResumeSubscription());
- }
-
- public void unsubscribe() throws JBIException {
- request(new Unsubscribe());
- }
+ public Subscription(EndpointReferenceType subscriptionReference, ServiceMixClient client) {
+ super(subscriptionReference, client);
+ }
+
+ public void pause() throws JBIException {
+ request(new PauseSubscription());
+ }
+
+ public void resume() throws JBIException {
+ request(new ResumeSubscription());
+ }
+
+ public void unsubscribe() throws JBIException {
+ request(new Unsubscribe());
+ }
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNBootstrap.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNBootstrap.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNBootstrap.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNBootstrap.java Sun Apr 8 14:19:30 2007
@@ -32,11 +32,12 @@
public class WSNBootstrap implements Bootstrap {
protected InstallationContext context;
+
protected ObjectName mbeanName;
-
+
public WSNBootstrap() {
}
-
+
public ObjectName getExtensionMBeanName() {
return mbeanName;
}
@@ -44,7 +45,7 @@
protected Object getExtensionMBean() throws Exception {
return null;
}
-
+
protected ObjectName createExtensionMBeanName() throws Exception {
return this.context.getContext().getMBeanNames().createCustomComponentMBeanName("bootstrap");
}
@@ -77,7 +78,7 @@
server.registerMBean(mbean, this.mbeanName);
}
}
-
+
/* (non-Javadoc)
* @see javax.jbi.component.Bootstrap#cleanUp()
*/
@@ -118,7 +119,7 @@
protected void doOnInstall() throws Exception {
}
-
+
/* (non-Javadoc)
* @see javax.jbi.component.Bootstrap#onUninstall()
*/
@@ -134,5 +135,5 @@
protected void doOnUninstall() throws Exception {
}
-
+
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNComponent.java Sun Apr 8 14:19:30 2007
@@ -27,6 +27,10 @@
import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
+import org.w3c.dom.Document;
+
+import com.ibm.wsdl.Constants;
+
import org.apache.servicemix.common.BaseComponent;
import org.apache.servicemix.common.BaseLifeCycle;
import org.apache.servicemix.common.BaseServiceUnitManager;
@@ -34,35 +38,35 @@
import org.apache.servicemix.common.Endpoint;
import org.apache.servicemix.common.EndpointSupport;
import org.apache.servicemix.common.tools.wsdl.WSDLFlattener;
-import org.w3c.dom.Document;
-
-import com.ibm.wsdl.Constants;
public class WSNComponent extends BaseComponent {
private WSDLFlattener flattener;
- private Map descriptions;
-
+
+ private Map<QName, Document> descriptions;
+
@Override
- protected BaseLifeCycle createLifeCycle() {
- return new WSNLifeCycle(this);
- }
+ protected BaseLifeCycle createLifeCycle() {
+ return new WSNLifeCycle(this);
+ }
@Override
public BaseServiceUnitManager createServiceUnitManager() {
- Deployer[] deployers = new Deployer[] { new WSNDeployer(this) };
+ Deployer[] deployers = new Deployer[] {new WSNDeployer(this) };
return new BaseServiceUnitManager(this, deployers);
}
- public ConnectionFactory getConnectionFactory() {
- return ((WSNLifeCycle) lifeCycle).getConnectionFactory();
- }
-
- public void setConnectionFactory(ConnectionFactory connectionFactory) {
- ((WSNLifeCycle) lifeCycle).setConnectionFactory(connectionFactory);
- }
+ public ConnectionFactory getConnectionFactory() {
+ return ((WSNLifeCycle) lifeCycle).getConnectionFactory();
+ }
- /* (non-Javadoc)
+ public void setConnectionFactory(ConnectionFactory connectionFactory) {
+ ((WSNLifeCycle) lifeCycle).setConnectionFactory(connectionFactory);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.servicemix.common.BaseComponent#getServiceDescription(javax.jbi.servicedesc.ServiceEndpoint)
*/
@Override
@@ -80,8 +84,7 @@
}
return null;
}
- Document doc = getDescription(interfaceName);
- return doc;
+ return getDescription(interfaceName);
} else {
if (logger.isDebugEnabled()) {
logger.debug("No endpoint found for " + key);
@@ -93,9 +96,9 @@
private synchronized Document getDescription(QName interfaceName) {
try {
if (descriptions == null) {
- descriptions = new HashMap();
+ descriptions = new HashMap<QName, Document>();
}
- Document doc = (Document) descriptions.get(interfaceName);
+ Document doc = descriptions.get(interfaceName);
if (doc == null) {
if (flattener == null) {
URL resource = getClass().getClassLoader().getResource("org/apache/servicemix/wsn/wsn.wsdl");
@@ -116,5 +119,5 @@
return null;
}
}
-
+
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfiguration.java Sun Apr 8 14:19:30 2007
@@ -20,34 +20,43 @@
public class WSNConfiguration extends PersistentConfiguration implements WSNConfigurationMBean {
- private String initialContextFactory;
- private String jndiProviderURL;
- private String jndiConnectionFactoryName = "java:comp/env/jms/wsnotificationCF";
-
- private String brokerName = "Broker";
-
- public String getInitialContextFactory() {
- return initialContextFactory;
- }
- public void setInitialContextFactory(String initialContextFactory) {
- this.initialContextFactory = initialContextFactory;
- }
- public String getJndiConnectionFactoryName() {
- return jndiConnectionFactoryName;
- }
- public void setJndiConnectionFactoryName(String jndiConnectionFactoryName) {
- this.jndiConnectionFactoryName = jndiConnectionFactoryName;
- }
- public String getJndiProviderURL() {
- return jndiProviderURL;
- }
- public void setJndiProviderURL(String jndiProviderURL) {
- this.jndiProviderURL = jndiProviderURL;
- }
- public String getBrokerName() {
- return brokerName;
- }
- public void setBrokerName(String brokerName) {
- this.brokerName = brokerName;
- }
+ private String initialContextFactory;
+
+ private String jndiProviderURL;
+
+ private String jndiConnectionFactoryName = "java:comp/env/jms/wsnotificationCF";
+
+ private String brokerName = "Broker";
+
+ public String getInitialContextFactory() {
+ return initialContextFactory;
+ }
+
+ public void setInitialContextFactory(String initialContextFactory) {
+ this.initialContextFactory = initialContextFactory;
+ }
+
+ public String getJndiConnectionFactoryName() {
+ return jndiConnectionFactoryName;
+ }
+
+ public void setJndiConnectionFactoryName(String jndiConnectionFactoryName) {
+ this.jndiConnectionFactoryName = jndiConnectionFactoryName;
+ }
+
+ public String getJndiProviderURL() {
+ return jndiProviderURL;
+ }
+
+ public void setJndiProviderURL(String jndiProviderURL) {
+ this.jndiProviderURL = jndiProviderURL;
+ }
+
+ public String getBrokerName() {
+ return brokerName;
+ }
+
+ public void setBrokerName(String brokerName) {
+ this.brokerName = brokerName;
+ }
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfigurationMBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfigurationMBean.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfigurationMBean.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNConfigurationMBean.java Sun Apr 8 14:19:30 2007
@@ -18,15 +18,19 @@
public interface WSNConfigurationMBean {
- String getInitialContextFactory();
- void setInitialContextFactory(String initialContextFactory);
-
- String getJndiProviderURL();
- void setJndiProviderURL(String jndiProviderURL);
-
- String getJndiConnectionFactoryName();
- void setJndiConnectionFactoryName(String jndiConnectionFactoryName);
-
- String getBrokerName();
- void setBrokerName(String brokerName);
+ String getInitialContextFactory();
+
+ void setInitialContextFactory(String initialContextFactory);
+
+ String getJndiProviderURL();
+
+ void setJndiProviderURL(String jndiProviderURL);
+
+ String getJndiConnectionFactoryName();
+
+ void setJndiConnectionFactoryName(String jndiConnectionFactoryName);
+
+ String getBrokerName();
+
+ void setBrokerName(String brokerName);
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNDeployer.java Sun Apr 8 14:19:30 2007
@@ -53,6 +53,7 @@
public class WSNDeployer extends AbstractDeployer implements Deployer {
protected FilenameFilter filter;
+
protected JAXBContext context;
public WSNDeployer(BaseComponent component) {
@@ -86,7 +87,7 @@
url = xmls[i].toURL();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
- throw new DeploymentException("Error deploying xml file", e);
+ throw new DeploymentException("Error deploying xml file", e);
}
ep = createEndpoint(url);
ep.setServiceUnit(su);
@@ -124,6 +125,7 @@
public class WSNSubscriptionEndpoint extends Endpoint implements EndpointManager {
private Subscribe request;
+
private SubscribeResponse response;
public WSNSubscriptionEndpoint(Subscribe request) throws DeploymentException {
@@ -139,13 +141,15 @@
@Override
public void activate() throws Exception {
- JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getNotificationBroker();
+ 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();
+ JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle())
+ .getNotificationBroker();
broker.unsubscribe(response.getSubscriptionReference().getAddress().getValue());
}
@@ -166,6 +170,7 @@
public class WSNPullPointEndpoint extends Endpoint implements EndpointManager {
private CreatePullPoint request;
+
private CreatePullPointResponse response;
public WSNPullPointEndpoint(CreatePullPoint request) throws DeploymentException {
@@ -181,13 +186,15 @@
@Override
public void activate() throws Exception {
- JmsCreatePullPoint createPullPoint = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getCreatePullPoint();
+ JmsCreatePullPoint createPullPoint = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle())
+ .getCreatePullPoint();
response = createPullPoint.createPullPoint(request);
}
@Override
public void deactivate() throws Exception {
- JmsCreatePullPoint createPullPoint = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getCreatePullPoint();
+ JmsCreatePullPoint createPullPoint = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle())
+ .getCreatePullPoint();
createPullPoint.destroyPullPoint(response.getPullPoint().getAddress().getValue());
}
@@ -208,8 +215,9 @@
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();
@@ -223,13 +231,15 @@
@Override
public void activate() throws Exception {
- JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle()).getNotificationBroker();
+ 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();
+ JbiNotificationBroker broker = ((WSNLifeCycle) serviceUnit.getComponent().getLifeCycle())
+ .getNotificationBroker();
broker.unsubscribe(response.getPublisherRegistrationReference().getAddress().getValue());
}
@@ -279,13 +289,13 @@
}
}
}
-
+
public static class XmlFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return name.endsWith(".xml");
}
-
+
}
-
+
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNEndpoint.java Sun Apr 8 14:19:30 2007
@@ -29,8 +29,8 @@
import javax.jbi.messaging.Fault;
import javax.jbi.messaging.InOnly;
import javax.jbi.messaging.MessageExchange;
-import javax.jbi.messaging.NormalizedMessage;
import javax.jbi.messaging.MessageExchange.Role;
+import javax.jbi.messaging.NormalizedMessage;
import javax.jbi.servicedesc.ServiceEndpoint;
import javax.jws.Oneway;
import javax.jws.WebMethod;
@@ -44,32 +44,38 @@
import org.apache.servicemix.common.Endpoint;
import org.apache.servicemix.common.ExchangeProcessor;
import org.apache.servicemix.jbi.jaxp.StringSource;
+import org.apache.servicemix.jbi.resolver.URIResolver;
import org.oasis_open.docs.wsrf.bf_2.BaseFaultType;
public class WSNEndpoint extends Endpoint implements ExchangeProcessor {
protected ServiceEndpoint activated;
+
protected String address;
+
protected Object pojo;
+
protected DeliveryChannel channel;
+
protected JAXBContext jaxbContext;
+
protected Class endpointInterface;
-
- public WSNEndpoint(String address, Object pojo) {
- this.address = address;
- this.pojo = pojo;
- String[] parts = split(address);
- service = new QName(parts[0], parts[1]);
- endpoint = parts[2];
- }
-
- @Override
- public Role getRole() {
- return Role.PROVIDER;
- }
- @Override
- public void activate() throws Exception {
+ public WSNEndpoint(String address, Object pojo) {
+ this.address = address;
+ this.pojo = pojo;
+ String[] parts = URIResolver.split3(address);
+ service = new QName(parts[0], parts[1]);
+ endpoint = parts[2];
+ }
+
+ @Override
+ public Role getRole() {
+ return Role.PROVIDER;
+ }
+
+ @Override
+ public void activate() throws Exception {
logger = this.serviceUnit.getComponent().getLogger();
WebService ws = getWebServiceAnnotation(pojo.getClass());
if (ws == null) {
@@ -84,8 +90,8 @@
ComponentContext ctx = this.serviceUnit.getComponent().getComponentContext();
activated = ctx.activateEndpoint(service, endpoint);
channel = ctx.getDeliveryChannel();
- }
-
+ }
+
public static JAXBContext createJAXBContext(Class interfaceClass) throws JAXBException {
List<Class> classes = new ArrayList<Class>();
classes.add(JbiFault.class);
@@ -96,142 +102,133 @@
classes.addAll(Arrays.asList(mth.getParameterTypes()));
}
}
- return JAXBContext.newInstance(classes.toArray(new Class[0]));
+ return JAXBContext.newInstance(classes.toArray(new Class[classes.size()]));
}
- @Override
- public void deactivate() throws Exception {
+ @Override
+ public void deactivate() throws Exception {
ServiceEndpoint ep = activated;
activated = null;
ComponentContext ctx = this.serviceUnit.getComponent().getComponentContext();
ctx.deactivateEndpoint(ep);
- }
+ }
+
+ @Override
+ public ExchangeProcessor getProcessor() {
+ return this;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void process(MessageExchange exchange) throws Exception {
+ if (exchange.getStatus() == ExchangeStatus.DONE) {
+ return;
+ } else if (exchange.getStatus() == ExchangeStatus.ERROR) {
+ return;
+ }
+ Object input = jaxbContext.createUnmarshaller().unmarshal(exchange.getMessage("in").getContent());
+ Method webMethod = null;
+ for (Method mth : endpointInterface.getMethods()) {
+ Class[] params = mth.getParameterTypes();
+ if (params.length == 1 && params[0].isAssignableFrom(input.getClass())) {
+ webMethod = mth;
+ break;
+ }
+ }
+ if (webMethod == null) {
+ throw new IllegalStateException("Could not determine invoked web method");
+ }
+ boolean oneWay = webMethod.getAnnotation(Oneway.class) != null;
+ Object output;
+ try {
+ output = webMethod.invoke(pojo, new Object[] {input });
+ } catch (InvocationTargetException e) {
+ if (e.getCause() instanceof Exception) {
+ WebFault fa = (WebFault) e.getCause().getClass().getAnnotation(WebFault.class);
+ if (!(exchange instanceof InOnly) && fa != null) {
+ BaseFaultType info = (BaseFaultType) e.getCause().getClass().getMethod("getFaultInfo").invoke(
+ e.getCause());
+ Fault fault = exchange.createFault();
+ exchange.setFault(fault);
+ exchange.setError((Exception) e.getCause());
+ StringWriter writer = new StringWriter();
+ jaxbContext.createMarshaller().marshal(new JbiFault(info), writer);
+ fault.setContent(new StringSource(writer.toString()));
+ channel.send(exchange);
+ return;
+ } else {
+ throw (Exception) e.getCause();
+ }
+ } else if (e.getCause() instanceof Error) {
+ throw (Error) e.getCause();
+ } else {
+ throw new RuntimeException(e.getCause());
+ }
+ }
+ if (oneWay) {
+ exchange.setStatus(ExchangeStatus.DONE);
+ channel.send(exchange);
+ } else {
+ NormalizedMessage msg = exchange.createMessage();
+ exchange.setMessage(msg, "out");
+ StringWriter writer = new StringWriter();
+ jaxbContext.createMarshaller().marshal(output, writer);
+ msg.setContent(new StringSource(writer.toString()));
+ channel.send(exchange);
+ }
+ }
+
+ @XmlRootElement(name = "Fault")
+ public static class JbiFault {
+ private BaseFaultType info;
- @Override
- public ExchangeProcessor getProcessor() {
- return this;
- }
-
- @SuppressWarnings("unchecked")
- public void process(MessageExchange exchange) throws Exception {
- if (exchange.getStatus() == ExchangeStatus.DONE) {
- return;
- } else if (exchange.getStatus() == ExchangeStatus.ERROR) {
- return;
- }
- Object input = jaxbContext.createUnmarshaller().unmarshal(exchange.getMessage("in").getContent());
- Method webMethod = null;
- for (Method mth : endpointInterface.getMethods()) {
- Class[] params = mth.getParameterTypes();
- if (params.length == 1 && params[0].isAssignableFrom(input.getClass())) {
- webMethod = mth;
- break;
- }
- }
- if (webMethod == null) {
- throw new IllegalStateException("Could not determine invoked web method");
- }
- boolean oneWay = webMethod.getAnnotation(Oneway.class) != null;
- Object output;
- try {
- output = webMethod.invoke(pojo, new Object[] { input });
- } catch (InvocationTargetException e) {
- if (e.getCause() instanceof Exception) {
- WebFault fa = (WebFault) e.getCause().getClass().getAnnotation(WebFault.class);
- if (exchange instanceof InOnly == false && fa != null) {
- BaseFaultType info = (BaseFaultType) e.getCause().getClass().getMethod("getFaultInfo").invoke(e.getCause());
- Fault fault = exchange.createFault();
- exchange.setFault(fault);
- exchange.setError((Exception) e.getCause());
- StringWriter writer = new StringWriter();
- jaxbContext.createMarshaller().marshal(new JbiFault(info), writer);
- fault.setContent(new StringSource(writer.toString()));
- channel.send(exchange);
- return;
- } else {
- throw (Exception) e.getCause();
- }
- } else if (e.getCause() instanceof Error) {
- throw (Error) e.getCause();
- } else {
- throw new RuntimeException(e.getCause());
- }
- }
- if (oneWay) {
- exchange.setStatus(ExchangeStatus.DONE);
- channel.send(exchange);
- } else {
- NormalizedMessage msg = exchange.createMessage();
- exchange.setMessage(msg, "out");
- StringWriter writer = new StringWriter();
- jaxbContext.createMarshaller().marshal(output, writer);
- msg.setContent(new StringSource(writer.toString()));
- channel.send(exchange);
- }
- }
-
- @XmlRootElement(name = "Fault")
- public static class JbiFault {
- private BaseFaultType info;
- public JbiFault() {
- }
- public JbiFault(BaseFaultType info) {
- this.info = info;
- }
- public BaseFaultType getInfo() {
- return info;
- }
- public void setInfo(BaseFaultType info) {
- this.info = info;
- }
- }
-
- protected Method getWebServiceMethod(QName interfaceName, QName operation) throws Exception {
- WebService ws = getWebServiceAnnotation(pojo.getClass());
- if (ws == null) {
- throw new IllegalStateException("Unable to find WebService annotation");
- }
- Class itf = Class.forName(ws.endpointInterface());
- for (Method mth : itf.getMethods()) {
- WebMethod wm = (WebMethod) mth.getAnnotation(WebMethod.class);
- if (wm != null) {
-
- }
- }
- return null;
- }
-
- @SuppressWarnings("unchecked")
- protected WebService getWebServiceAnnotation(Class clazz) {
- for (Class cl = clazz; cl != null; cl = cl.getSuperclass()) {
- WebService ws = (WebService) cl.getAnnotation(WebService.class);
- if (ws != null) {
- return ws;
- }
- }
- return null;
- }
-
- public void start() throws Exception {
- // Nothing to do
- }
-
- public void stop() throws Exception {
- // Nothing to do
- }
-
- protected String[] split(String uri) {
- char sep;
- if (uri.indexOf('/') > 0) {
- sep = '/';
- } else {
- sep = ':';
- }
- int idx1 = uri.lastIndexOf(sep);
- int idx2 = uri.lastIndexOf(sep, idx1 - 1);
- String epName = uri.substring(idx1 + 1);
- String svcName = uri.substring(idx2 + 1, idx1);
- String nsUri = uri.substring(0, idx2);
- return new String[] { nsUri, svcName, epName };
+ public JbiFault() {
+ }
+
+ public JbiFault(BaseFaultType info) {
+ this.info = info;
+ }
+
+ public BaseFaultType getInfo() {
+ return info;
+ }
+
+ public void setInfo(BaseFaultType info) {
+ this.info = info;
+ }
+ }
+
+ protected Method getWebServiceMethod(QName interfaceName, QName operation) throws Exception {
+ WebService ws = getWebServiceAnnotation(pojo.getClass());
+ if (ws == null) {
+ throw new IllegalStateException("Unable to find WebService annotation");
+ }
+ Class itf = Class.forName(ws.endpointInterface());
+ for (Method mth : itf.getMethods()) {
+ WebMethod wm = (WebMethod) mth.getAnnotation(WebMethod.class);
+ if (wm != null) {
+ // TODO: get name ?
+ }
+ }
+ return null;
}
+
+ @SuppressWarnings("unchecked")
+ protected WebService getWebServiceAnnotation(Class clazz) {
+ for (Class cl = clazz; cl != null; cl = cl.getSuperclass()) {
+ WebService ws = (WebService) cl.getAnnotation(WebService.class);
+ if (ws != null) {
+ return ws;
+ }
+ }
+ return null;
+ }
+
+ public void start() throws Exception {
+ // Nothing to do
+ }
+
+ public void stop() throws Exception {
+ // Nothing to do
+ }
+
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/component/WSNLifeCycle.java Sun Apr 8 14:19:30 2007
@@ -16,7 +16,7 @@
*/
package org.apache.servicemix.wsn.component;
-import java.util.Hashtable;
+import java.util.Properties;
import javax.jms.ConnectionFactory;
import javax.naming.Context;
@@ -33,26 +33,30 @@
public class WSNLifeCycle extends BaseLifeCycle {
- private JbiNotificationBroker notificationBroker;
+ private JbiNotificationBroker notificationBroker;
+
private JmsCreatePullPoint createPullPoint;
- private WSNConfiguration configuration;
- private ConnectionFactory connectionFactory;
- private ServiceUnit serviceUnit;
-
- public WSNLifeCycle(BaseComponent component) {
- super(component);
- configuration = new WSNConfiguration();
- serviceUnit = new ServiceUnit();
- serviceUnit.setComponent(component);
- }
+
+ private WSNConfiguration configuration;
+
+ private ConnectionFactory connectionFactory;
+
+ private ServiceUnit serviceUnit;
+
+ public WSNLifeCycle(BaseComponent component) {
+ super(component);
+ configuration = new WSNConfiguration();
+ serviceUnit = new ServiceUnit();
+ serviceUnit.setComponent(component);
+ }
protected Object getExtensionMBean() throws Exception {
return configuration;
}
-
- @Override
- protected void doInit() throws Exception {
- super.doInit();
+
+ @Override
+ protected void doInit() throws Exception {
+ super.doInit();
configuration.setRootDir(context.getWorkspaceRoot());
configuration.load();
// Notification Broker
@@ -72,79 +76,78 @@
}
createPullPoint.setConnectionFactory(connectionFactory);
createPullPoint.init();
- }
+ }
- @Override
- protected void doShutDown() throws Exception {
- notificationBroker.destroy();
+ @Override
+ protected void doShutDown() throws Exception {
+ notificationBroker.destroy();
createPullPoint.destroy();
super.doShutDown();
- }
+ }
+
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+ }
- @Override
- protected void doStart() throws Exception {
- super.doStart();
- }
-
- @Override
- protected void doStop() throws Exception {
- // TODO Auto-generated method stub
- super.doStop();
- }
-
- public WSNConfiguration getConfiguration() {
- return configuration;
- }
-
- public void setConfiguration(WSNConfiguration configuration) {
- this.configuration = configuration;
- }
-
- public ConnectionFactory getConnectionFactory() {
- return connectionFactory;
- }
-
- public void setConnectionFactory(ConnectionFactory connectionFactory) {
- this.connectionFactory = connectionFactory;
- }
-
- protected ConnectionFactory lookupConnectionFactory() throws NamingException {
- Hashtable<String,String> props = new Hashtable<String,String>();
- if (configuration.getInitialContextFactory() != null && configuration.getJndiProviderURL() != null) {
- props.put(Context.INITIAL_CONTEXT_FACTORY, configuration.getInitialContextFactory());
- props.put(Context.PROVIDER_URL, configuration.getJndiProviderURL());
- }
- InitialContext ctx = new InitialContext(props);
- ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup(configuration.getJndiConnectionFactoryName());
- return connectionFactory;
- }
-
- public class WSNEndpointManager implements EndpointManager {
-
- public Object register(String address, Object service) throws EndpointRegistrationException {
- try {
- WSNEndpoint endpoint = new WSNEndpoint(address, service);
- endpoint.setServiceUnit(serviceUnit);
- serviceUnit.addEndpoint(endpoint);
+ @Override
+ protected void doStop() throws Exception {
+ // TODO Auto-generated method stub
+ super.doStop();
+ }
+
+ public WSNConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ public void setConfiguration(WSNConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ public ConnectionFactory getConnectionFactory() {
+ return connectionFactory;
+ }
+
+ public void setConnectionFactory(ConnectionFactory connectionFactory) {
+ this.connectionFactory = connectionFactory;
+ }
+
+ protected ConnectionFactory lookupConnectionFactory() throws NamingException {
+ Properties props = new Properties();
+ if (configuration.getInitialContextFactory() != null && configuration.getJndiProviderURL() != null) {
+ props.put(Context.INITIAL_CONTEXT_FACTORY, configuration.getInitialContextFactory());
+ props.put(Context.PROVIDER_URL, configuration.getJndiProviderURL());
+ }
+ InitialContext ctx = new InitialContext(props);
+ return (ConnectionFactory) ctx.lookup(configuration.getJndiConnectionFactoryName());
+ }
+
+ public class WSNEndpointManager implements EndpointManager {
+
+ public Object register(String address, Object service) throws EndpointRegistrationException {
+ try {
+ WSNEndpoint endpoint = new WSNEndpoint(address, service);
+ endpoint.setServiceUnit(serviceUnit);
+ serviceUnit.addEndpoint(endpoint);
component.getRegistry().registerEndpoint(endpoint);
endpoint.activate();
- return endpoint;
- } catch (Exception e) {
- throw new EndpointRegistrationException("Unable to activate endpoint", e);
- }
- }
+ return endpoint;
+ } catch (Exception e) {
+ throw new EndpointRegistrationException("Unable to activate endpoint", e);
+ }
+ }
- public void unregister(Object endpoint) throws EndpointRegistrationException {
- try {
+ public void unregister(Object endpoint) throws EndpointRegistrationException {
+ try {
serviceUnit.getEndpoints().remove(endpoint);
component.getRegistry().unregisterEndpoint((WSNEndpoint) endpoint);
- ((WSNEndpoint) endpoint).deactivate();
- } catch (Exception e) {
- throw new EndpointRegistrationException("Unable to activate endpoint", e);
- }
- }
+ ((WSNEndpoint) endpoint).deactivate();
+ } catch (Exception e) {
+ throw new EndpointRegistrationException("Unable to activate endpoint", e);
+ }
+ }
- }
+ }
public JbiNotificationBroker getNotificationBroker() {
return notificationBroker;
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiNotificationBroker.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiNotificationBroker.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiNotificationBroker.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiNotificationBroker.java Sun Apr 8 14:19:30 2007
@@ -23,26 +23,26 @@
public class JbiNotificationBroker extends JmsNotificationBroker {
- private WSNLifeCycle lifeCycle;
-
- public JbiNotificationBroker(String name) {
- super(name);
- }
-
- @Override
- protected JmsSubscription createJmsSubscription(String name) {
- JbiSubscription subscription = new JbiSubscription(name);
- subscription.setLifeCycle(lifeCycle);
- return subscription;
- }
+ private WSNLifeCycle lifeCycle;
- @Override
- protected JmsPublisher createJmsPublisher(String name) {
- JbiPublisher publisher = new JbiPublisher(name);
- publisher.setLifeCycle(lifeCycle);
- publisher.setNotificationBrokerAddress(address);
- return publisher;
- }
+ public JbiNotificationBroker(String name) {
+ super(name);
+ }
+
+ @Override
+ protected JmsSubscription createJmsSubscription(String name) {
+ JbiSubscription subscription = new JbiSubscription(name);
+ subscription.setLifeCycle(lifeCycle);
+ return subscription;
+ }
+
+ @Override
+ protected JmsPublisher createJmsPublisher(String name) {
+ JbiPublisher publisher = new JbiPublisher(name);
+ publisher.setLifeCycle(lifeCycle);
+ publisher.setNotificationBrokerAddress(address);
+ return publisher;
+ }
public WSNLifeCycle getLifeCycle() {
return lifeCycle;
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiPublisher.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiPublisher.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiPublisher.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiPublisher.java Sun Apr 8 14:19:30 2007
@@ -38,73 +38,76 @@
public class JbiPublisher extends JmsPublisher {
private WSNLifeCycle lifeCycle;
- private ServiceEndpoint endpoint;
- private String notificationBrokerAddress;
-
- public JbiPublisher(String name) {
- super(name);
- }
-
- public String getNotificationBrokerAddress() {
- return notificationBrokerAddress;
- }
-
- public void setNotificationBrokerAddress(String notificationBrokerAddress) {
- this.notificationBrokerAddress = notificationBrokerAddress;
- }
-
- @Override
- protected Object startSubscription() {
- Subscription subscription = null;
- try {
- NotificationBroker broker = new NotificationBroker(getContext());
- broker.setResolver(AbstractWSAClient.resolveWSA(publisherReference));
- subscription = broker.subscribe(AbstractWSAClient.createWSA(notificationBrokerAddress),
- "noTopic", null);
- } catch (JBIException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (JAXBException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return subscription;
- }
-
- @Override
- protected void destroySubscription(Object subscription) {
- try {
- ((Subscription) subscription).unsubscribe();
- } catch (JBIException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- @Override
- protected void validatePublisher(RegisterPublisher registerPublisherRequest) throws InvalidTopicExpressionFault, PublisherRegistrationFailedFault, PublisherRegistrationRejectedFault, ResourceUnknownFault, TopicNotSupportedFault {
- super.validatePublisher(registerPublisherRequest);
- String[] parts = split(publisherReference.getAddress().getValue());
- endpoint = getContext().getEndpoint(new QName(parts[0], parts[1]), parts[2]);
- if (endpoint == null) {
- PublisherRegistrationFailedFaultType fault = new PublisherRegistrationFailedFaultType();
- throw new PublisherRegistrationFailedFault("Unable to resolve consumer reference endpoint", fault);
- }
- }
-
+
+ private ServiceEndpoint endpoint;
+
+ private String notificationBrokerAddress;
+
+ public JbiPublisher(String name) {
+ super(name);
+ }
+
+ public String getNotificationBrokerAddress() {
+ return notificationBrokerAddress;
+ }
+
+ public void setNotificationBrokerAddress(String notificationBrokerAddress) {
+ this.notificationBrokerAddress = notificationBrokerAddress;
+ }
+
+ @Override
+ protected Object startSubscription() {
+ Subscription subscription = null;
+ try {
+ NotificationBroker broker = new NotificationBroker(getContext());
+ broker.setResolver(AbstractWSAClient.resolveWSA(publisherReference));
+ subscription = broker.subscribe(AbstractWSAClient.createWSA(notificationBrokerAddress), "noTopic", null);
+ } catch (JBIException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (JAXBException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return subscription;
+ }
+
+ @Override
+ protected void destroySubscription(Object subscription) {
+ try {
+ ((Subscription) subscription).unsubscribe();
+ } catch (JBIException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ protected void validatePublisher(RegisterPublisher registerPublisherRequest) throws InvalidTopicExpressionFault,
+ PublisherRegistrationFailedFault, PublisherRegistrationRejectedFault, ResourceUnknownFault,
+ TopicNotSupportedFault {
+ super.validatePublisher(registerPublisherRequest);
+ String[] parts = split(publisherReference.getAddress().getValue());
+ endpoint = getContext().getEndpoint(new QName(parts[0], parts[1]), parts[2]);
+ if (endpoint == null) {
+ PublisherRegistrationFailedFaultType fault = new PublisherRegistrationFailedFaultType();
+ throw new PublisherRegistrationFailedFault("Unable to resolve consumer reference endpoint", fault);
+ }
+ }
+
protected String[] split(String uri) {
- char sep;
- if (uri.indexOf('/') > 0) {
- sep = '/';
- } else {
- sep = ':';
- }
- int idx1 = uri.lastIndexOf(sep);
- int idx2 = uri.lastIndexOf(sep, idx1 - 1);
- String epName = uri.substring(idx1 + 1);
- String svcName = uri.substring(idx2 + 1, idx1);
- String nsUri = uri.substring(0, idx2);
- return new String[] { nsUri, svcName, epName };
+ char sep;
+ if (uri.indexOf('/') > 0) {
+ sep = '/';
+ } else {
+ sep = ':';
+ }
+ int idx1 = uri.lastIndexOf(sep);
+ int idx2 = uri.lastIndexOf(sep, idx1 - 1);
+ String epName = uri.substring(idx1 + 1);
+ String svcName = uri.substring(idx2 + 1, idx1);
+ String nsUri = uri.substring(0, idx2);
+ return new String[] {nsUri, svcName, epName };
}
public ComponentContext getContext() {
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jbi/JbiSubscription.java Sun Apr 8 14:19:30 2007
@@ -30,6 +30,11 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.dom.DOMSource;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.servicemix.common.ExchangeProcessor;
@@ -45,32 +50,33 @@
import org.apache.servicemix.wsn.jms.JmsSubscription;
import org.oasis_open.docs.wsn.b_2.Subscribe;
import org.oasis_open.docs.wsn.b_2.SubscribeCreationFailedFaultType;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentFragment;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
public class JbiSubscription extends JmsSubscription {
- private static Log log = LogFactory.getLog(JbiSubscription.class);
-
- private WSNLifeCycle lifeCycle;
- private ServiceEndpoint endpoint;
+ private static Log log = LogFactory.getLog(JbiSubscription.class);
+
+ private WSNLifeCycle lifeCycle;
+
+ private ServiceEndpoint endpoint;
+
private ExchangeProcessor processor;
-
- public JbiSubscription(String name) {
- super(name);
+
+ public JbiSubscription(String name) {
+ super(name);
processor = new NoOpProcessor();
- }
+ }
@Override
protected void start() throws SubscribeCreationFailedFault {
super.start();
}
-
- @Override
- protected void validateSubscription(Subscribe subscribeRequest) throws InvalidFilterFault, InvalidMessageContentExpressionFault, InvalidProducerPropertiesExpressionFault, InvalidTopicExpressionFault, SubscribeCreationFailedFault, TopicExpressionDialectUnknownFault, TopicNotSupportedFault, UnacceptableInitialTerminationTimeFault {
- super.validateSubscription(subscribeRequest);
+
+ @Override
+ protected void validateSubscription(Subscribe subscribeRequest) throws InvalidFilterFault,
+ InvalidMessageContentExpressionFault, InvalidProducerPropertiesExpressionFault,
+ InvalidTopicExpressionFault, SubscribeCreationFailedFault, TopicExpressionDialectUnknownFault,
+ TopicNotSupportedFault, UnacceptableInitialTerminationTimeFault {
+ super.validateSubscription(subscribeRequest);
try {
endpoint = resolveConsumer(subscribeRequest);
} catch (Exception e) {
@@ -81,8 +87,8 @@
SubscribeCreationFailedFaultType fault = new SubscribeCreationFailedFaultType();
throw new SubscribeCreationFailedFault("Unable to resolve consumer reference endpoint", fault);
}
- }
-
+ }
+
protected ServiceEndpoint resolveConsumer(Subscribe subscribeRequest) throws Exception {
// Try to resolve the WSA endpoint
JAXBContext ctx = JAXBContext.newInstance(Subscribe.class);
@@ -91,38 +97,39 @@
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
ctx.createMarshaller().marshal(subscribeRequest, doc);
- NodeList nl = doc.getDocumentElement().getElementsByTagNameNS("http://docs.oasis-open.org/wsn/b-2", "ConsumerReference");
+ NodeList nl = doc.getDocumentElement().getElementsByTagNameNS("http://docs.oasis-open.org/wsn/b-2",
+ "ConsumerReference");
if (nl.getLength() != 1) {
throw new Exception("Subscribe request must have exactly one ConsumerReference node");
}
Element el = (Element) nl.item(0);
DocumentFragment epr = doc.createDocumentFragment();
epr.appendChild(el);
- ServiceEndpoint endpoint = getContext().resolveEndpointReference(epr);
- if (endpoint == null) {
+ ServiceEndpoint ep = getContext().resolveEndpointReference(epr);
+ if (ep == null) {
String[] parts = split(subscribeRequest.getConsumerReference().getAddress().getValue().trim());
- endpoint = getContext().getEndpoint(new QName(parts[0], parts[1]), parts[2]);
+ ep = getContext().getEndpoint(new QName(parts[0], parts[1]), parts[2]);
}
- return endpoint;
+ return ep;
}
protected String[] split(String uri) {
- char sep;
- if (uri.indexOf('/') > 0) {
- sep = '/';
- } else {
- sep = ':';
- }
- int idx1 = uri.lastIndexOf(sep);
- int idx2 = uri.lastIndexOf(sep, idx1 - 1);
- String epName = uri.substring(idx1 + 1);
- String svcName = uri.substring(idx2 + 1, idx1);
- String nsUri = uri.substring(0, idx2);
- return new String[] { nsUri, svcName, epName };
- }
-
- @Override
- protected void doNotify(final Element content) {
+ char sep;
+ if (uri.indexOf('/') > 0) {
+ sep = '/';
+ } else {
+ sep = ':';
+ }
+ int idx1 = uri.lastIndexOf(sep);
+ int idx2 = uri.lastIndexOf(sep, idx1 - 1);
+ String epName = uri.substring(idx1 + 1);
+ String svcName = uri.substring(idx2 + 1, idx1);
+ String nsUri = uri.substring(0, idx2);
+ return new String[] {nsUri, svcName, epName };
+ }
+
+ @Override
+ protected void doNotify(final Element content) {
try {
DeliveryChannel channel = getContext().getDeliveryChannel();
MessageExchangeFactory factory = channel.createExchangeFactory(endpoint);
@@ -134,11 +141,11 @@
} catch (JBIException e) {
log.warn("Could not deliver notification", e);
}
- }
+ }
- public ComponentContext getContext() {
- return lifeCycle.getContext();
- }
+ public ComponentContext getContext() {
+ return lifeCycle.getContext();
+ }
public WSNLifeCycle getLifeCycle() {
return lifeCycle;
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/InvalidTopicException.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/InvalidTopicException.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/InvalidTopicException.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/InvalidTopicException.java Sun Apr 8 14:19:30 2007
@@ -18,22 +18,22 @@
public class InvalidTopicException extends Exception {
- private static final long serialVersionUID = -3708397351142080702L;
+ private static final long serialVersionUID = -3708397351142080702L;
- public InvalidTopicException() {
- super();
- }
+ public InvalidTopicException() {
+ super();
+ }
- public InvalidTopicException(String message, Throwable cause) {
- super(message, cause);
- }
+ public InvalidTopicException(String message, Throwable cause) {
+ super(message, cause);
+ }
- public InvalidTopicException(String message) {
- super(message);
- }
+ public InvalidTopicException(String message) {
+ super(message);
+ }
- public InvalidTopicException(Throwable cause) {
- super(cause);
- }
+ public InvalidTopicException(Throwable cause) {
+ super(cause);
+ }
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsCreatePullPoint.java Sun Apr 8 14:19:30 2007
@@ -25,8 +25,9 @@
public class JmsCreatePullPoint extends AbstractCreatePullPoint {
private ConnectionFactory connectionFactory;
+
private Connection connection;
-
+
public JmsCreatePullPoint(String name) {
super(name);
}
@@ -45,7 +46,7 @@
}
super.destroy();
}
-
+
@Override
protected AbstractPullPoint createPullPoint(String name) {
JmsPullPoint pullPoint = new JmsPullPoint(name);
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsNotificationBroker.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsNotificationBroker.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsNotificationBroker.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsNotificationBroker.java Sun Apr 8 14:19:30 2007
@@ -25,19 +25,20 @@
public abstract class JmsNotificationBroker extends AbstractNotificationBroker {
- private ConnectionFactory connectionFactory;
- private Connection connection;
-
- public JmsNotificationBroker(String name) {
- super(name);
- }
+ private ConnectionFactory connectionFactory;
+
+ private Connection connection;
+
+ public JmsNotificationBroker(String name) {
+ super(name);
+ }
public void init() throws Exception {
- if (connection == null) {
- connection = connectionFactory.createConnection();
- connection.start();
- }
- super.init();
+ if (connection == null) {
+ connection = connectionFactory.createConnection();
+ connection.start();
+ }
+ super.init();
}
public void destroy() throws Exception {
@@ -46,33 +47,33 @@
}
super.destroy();
}
-
+
+ @Override
+ protected AbstractPublisher createPublisher(String name) {
+ JmsPublisher publisher = createJmsPublisher(name);
+ publisher.setManager(getManager());
+ publisher.setConnection(connection);
+ return publisher;
+ }
+
@Override
- protected AbstractPublisher createPublisher(String name) {
- JmsPublisher publisher = createJmsPublisher(name);
- publisher.setManager(getManager());
- publisher.setConnection(connection);
- return publisher;
- }
-
- @Override
- protected AbstractSubscription createSubcription(String name) {
- JmsSubscription subscription = createJmsSubscription(name);
- subscription.setManager(getManager());
- subscription.setConnection(connection);
- return subscription;
- }
-
- protected abstract JmsSubscription createJmsSubscription(String name);
-
- protected abstract JmsPublisher createJmsPublisher(String name);
-
- public ConnectionFactory getConnectionFactory() {
- return connectionFactory;
- }
-
- public void setConnectionFactory(ConnectionFactory connectionFactory) {
- this.connectionFactory = connectionFactory;
- }
+ protected AbstractSubscription createSubcription(String name) {
+ JmsSubscription subscription = createJmsSubscription(name);
+ subscription.setManager(getManager());
+ subscription.setConnection(connection);
+ return subscription;
+ }
+
+ protected abstract JmsSubscription createJmsSubscription(String name);
+
+ protected abstract JmsPublisher createJmsPublisher(String name);
+
+ public ConnectionFactory getConnectionFactory() {
+ return connectionFactory;
+ }
+
+ public void setConnectionFactory(ConnectionFactory connectionFactory) {
+ this.connectionFactory = connectionFactory;
+ }
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsPublisher.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsPublisher.java?view=diff&rev=526601&r1=526600&r2=526601
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsPublisher.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-wsn2005/src/main/java/org/apache/servicemix/wsn/jms/JmsPublisher.java Sun Apr 8 14:19:30 2007
@@ -48,39 +48,44 @@
public abstract class JmsPublisher extends AbstractPublisher implements ConsumerListener {
- private static Log log = LogFactory.getLog(JmsPublisher.class);
-
- private Connection connection;
- private JmsTopicExpressionConverter topicConverter;
- private JAXBContext jaxbContext;
+ private static Log log = LogFactory.getLog(JmsPublisher.class);
+
+ private Connection connection;
+
+ private JmsTopicExpressionConverter topicConverter;
+
+ private JAXBContext jaxbContext;
+
private Topic jmsTopic;
+
private ConsumerEventSource advisory;
+
private Object subscription;
- public JmsPublisher(String name) {
- super(name);
- topicConverter = new JmsTopicExpressionConverter();
- try {
- jaxbContext = JAXBContext.newInstance(Notify.class);
- } catch (JAXBException e) {
- throw new RuntimeException("Unable to create JAXB context", e);
- }
- }
-
- public Connection getConnection() {
- return connection;
- }
-
- public void setConnection(Connection connection) {
- this.connection = connection;
- }
-
- @Override
- public void notify(NotificationMessageHolderType messageHolder) {
- Session session = null;
- try {
+ public JmsPublisher(String name) {
+ super(name);
+ topicConverter = new JmsTopicExpressionConverter();
+ try {
+ jaxbContext = JAXBContext.newInstance(Notify.class);
+ } catch (JAXBException e) {
+ throw new RuntimeException("Unable to create JAXB context", e);
+ }
+ }
+
+ public Connection getConnection() {
+ return connection;
+ }
+
+ public void setConnection(Connection connection) {
+ this.connection = connection;
+ }
+
+ @Override
+ public void notify(NotificationMessageHolderType messageHolder) {
+ Session session = null;
+ try {
Topic topic = topicConverter.toActiveMQTopic(messageHolder.getTopic());
- session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(topic);
Notify notify = new Notify();
notify.getNotificationMessage().add(messageHolder);
@@ -88,80 +93,81 @@
jaxbContext.createMarshaller().marshal(notify, writer);
Message message = session.createTextMessage(writer.toString());
producer.send(message);
- } catch (JMSException e) {
- log.warn("Error dispatching message", e);
- } catch (JAXBException e) {
- log.warn("Error dispatching message", e);
- } catch (InvalidTopicException e) {
- log.warn("Error dispatching message", e);
- } finally {
- if (session != null) {
- try {
- session.close();
- } catch (JMSException e) {
- log.debug("Error closing session", e);
- }
- }
- }
- }
-
- @Override
- protected void validatePublisher(RegisterPublisher registerPublisherRequest) throws InvalidTopicExpressionFault, PublisherRegistrationFailedFault, PublisherRegistrationRejectedFault, ResourceUnknownFault, TopicNotSupportedFault {
- super.validatePublisher(registerPublisherRequest);
- try {
- jmsTopic = topicConverter.toActiveMQTopic(topic);
- } catch (InvalidTopicException e) {
- InvalidTopicExpressionFaultType fault = new InvalidTopicExpressionFaultType();
- throw new InvalidTopicExpressionFault(e.getMessage(), fault);
- }
- }
-
- @Override
- protected void start() throws PublisherRegistrationFailedFault {
- if (demand) {
- try {
- advisory = new ConsumerEventSource(connection, jmsTopic);
- advisory.setConsumerListener(this);
- advisory.start();
- } catch (Exception e) {
- PublisherRegistrationFailedFaultType fault = new PublisherRegistrationFailedFaultType();
- throw new PublisherRegistrationFailedFault("Error starting demand-based publisher", fault, e);
- }
- }
- }
+ } catch (JMSException e) {
+ log.warn("Error dispatching message", e);
+ } catch (JAXBException e) {
+ log.warn("Error dispatching message", e);
+ } catch (InvalidTopicException e) {
+ log.warn("Error dispatching message", e);
+ } finally {
+ if (session != null) {
+ try {
+ session.close();
+ } catch (JMSException e) {
+ log.debug("Error closing session", e);
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void validatePublisher(RegisterPublisher registerPublisherRequest) throws InvalidTopicExpressionFault,
+ PublisherRegistrationFailedFault, PublisherRegistrationRejectedFault, ResourceUnknownFault,
+ TopicNotSupportedFault {
+ super.validatePublisher(registerPublisherRequest);
+ try {
+ jmsTopic = topicConverter.toActiveMQTopic(topic);
+ } catch (InvalidTopicException e) {
+ InvalidTopicExpressionFaultType fault = new InvalidTopicExpressionFaultType();
+ throw new InvalidTopicExpressionFault(e.getMessage(), fault);
+ }
+ }
+
+ @Override
+ protected void start() throws PublisherRegistrationFailedFault {
+ if (demand) {
+ try {
+ advisory = new ConsumerEventSource(connection, jmsTopic);
+ advisory.setConsumerListener(this);
+ advisory.start();
+ } catch (Exception e) {
+ PublisherRegistrationFailedFaultType fault = new PublisherRegistrationFailedFaultType();
+ throw new PublisherRegistrationFailedFault("Error starting demand-based publisher", fault, e);
+ }
+ }
+ }
protected void destroy() throws ResourceNotDestroyedFault {
- try {
- if (advisory != null) {
- advisory.stop();
- }
- } catch (Exception e) {
- ResourceNotDestroyedFaultType fault = new ResourceNotDestroyedFaultType();
- throw new ResourceNotDestroyedFault("Error destroying publisher", fault, e);
- } finally {
- super.destroy();
- }
- }
-
- public void onConsumerEvent(ConsumerEvent event) {
- if (event.getConsumerCount() > 0) {
- if (subscription == null) {
- // start subscription
- subscription = startSubscription();
- }
- } else {
- if (subscription != null) {
- // destroy subscription
- Object sub = subscription;
- subscription = null;
- destroySubscription(sub);
- }
- }
- }
+ try {
+ if (advisory != null) {
+ advisory.stop();
+ }
+ } catch (Exception e) {
+ ResourceNotDestroyedFaultType fault = new ResourceNotDestroyedFaultType();
+ throw new ResourceNotDestroyedFault("Error destroying publisher", fault, e);
+ } finally {
+ super.destroy();
+ }
+ }
+
+ public void onConsumerEvent(ConsumerEvent event) {
+ if (event.getConsumerCount() > 0) {
+ if (subscription == null) {
+ // start subscription
+ subscription = startSubscription();
+ }
+ } else {
+ if (subscription != null) {
+ // destroy subscription
+ Object sub = subscription;
+ subscription = null;
+ destroySubscription(sub);
+ }
+ }
+ }
- protected abstract void destroySubscription(Object subscription);
+ protected abstract void destroySubscription(Object sub);
- protected abstract Object startSubscription();
-
+ protected abstract Object startSubscription();
}