You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2007/01/27 01:40:51 UTC
svn commit: r500434 - in /incubator/tuscany/java/sca:
kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/
services/discovery/bonjour/src/main/java/org/apache/tuscany/service/discovery/bonjour/
services/discovery/jxta/src/main/java/org/a...
Author: meerajk
Date: Fri Jan 26 16:40:50 2007
New Revision: 500434
URL: http://svn.apache.org/viewvc?view=rev&rev=500434
Log:
implemented send message and message listener
Added:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java
- copied, changed from r498821, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java (with props)
incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/TuscanyQueryHandler.java (with props)
Removed:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java
incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/PipeReceiver.java
incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/PipeSender.java
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java
incubator/tuscany/java/sca/services/discovery/bonjour/src/main/java/org/apache/tuscany/service/discovery/bonjour/BonjourDiscoveryService.java
incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryService.java
incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/PeerListener.java
incubator/tuscany/java/sca/services/discovery/jxta/src/test/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryServiceTestCase.java
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java?view=diff&rev=500434&r1=500433&r2=500434
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/AbstractDiscoveryService.java Fri Jan 26 16:40:50 2007
@@ -39,17 +39,30 @@
/** Runtime info. */
private RuntimeInfo runtimeInfo;
- /** Listeners. */
- private Map<QName, MessageListener> listenerMap = new ConcurrentHashMap<QName, MessageListener>();
+ /** Request listeners. */
+ private Map<QName, RequestListener> requestListenerMap = new ConcurrentHashMap<QName, RequestListener>();
+ /** Response listeners. */
+ private Map<QName, ResponseListener> responseListenerMap = new ConcurrentHashMap<QName, ResponseListener>();
+
+ /**
+ * Registers a request listener for async messages.
+ *
+ * @param messageType Message type that can be handled by the listener.
+ * @param listener Recipient of the async message.
+ */
+ public void registerRequestListener(QName messageType, RequestListener listener) {
+ requestListenerMap.put(messageType, listener);
+ }
+
/**
- * Registers a listener for async messages.
+ * Registers a response listener for async messages.
*
- * @param meesageType Message type that can be handled by the listener.
+ * @param messageType Message type that can be handled by the listener.
* @param listener Recipient of the async message.
*/
- public void registerListener(QName messageType, MessageListener listener) {
- listenerMap.put(messageType, listener);
+ public void registerResponseListener(QName messageType, ResponseListener listener) {
+ responseListenerMap.put(messageType, listener);
}
/**
@@ -93,13 +106,23 @@
}
/**
- * Returns the listener for the specified message type.
+ * Returns the request listener for the specified message type.
+ *
+ * @param messageType Message type for the incoming message.
+ * @return Listener interested in the message type.
+ */
+ public final RequestListener getRequestListener(QName messageType) {
+ return requestListenerMap.get(messageType);
+ }
+
+ /**
+ * Returns the request listener for the specified message type.
*
* @param messageType Message type for the incoming message.
- * @return Listeners inteersted in the message type.
+ * @return Listener interested in the message type.
*/
- public final MessageListener getListener(QName messageType) {
- return listenerMap.get(messageType);
+ public final ResponseListener getResponseListener(QName messageType) {
+ return responseListenerMap.get(messageType);
}
/**
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java?view=diff&rev=500434&r1=500433&r2=500434
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/DiscoveryService.java Fri Jan 26 16:40:50 2007
@@ -33,19 +33,30 @@
public interface DiscoveryService {
/**
- * Sends a message to the specified runtime.
+ * Sends a message to the specified runtime. The method returns a unique
+ * message id for the sent message. The consumers can use the message id for
+ * correlating responses to sent messages.
*
* @param runtimeId Runtime id of recipient.
* @param content Message content.
+ * @return The message id.
*/
- void sendMessage(String runtimeId, XMLStreamReader content);
+ int sendMessage(String runtimeId, XMLStreamReader content);
/**
- * Registers a listener for async messages.
+ * Registers a request listener for async messages.
*
* @param messageType Message type that can be handled by the listener.
* @param listener Recipient of the async message.
*/
- void registerListener(QName messageType, MessageListener listener);
+ void registerRequestListener(QName messageType, RequestListener listener);
+
+ /**
+ * Registers a response listener for async messages.
+ *
+ * @param messageType Message type that can be handled by the listener.
+ * @param listener Recipient of the async message.
+ */
+ void registerResponseListener(QName messageType, ResponseListener listener);
}
Copied: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java (from r498821, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java?view=diff&rev=500434&p1=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java&r1=498821&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java&r2=500434
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/MessageListener.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/RequestListener.java Fri Jan 26 16:40:50 2007
@@ -26,12 +26,13 @@
* @version $Revision$ $Date$
*
*/
-public interface MessageListener {
+public interface RequestListener {
/**
* Callback for propogating async messages.
* @param content Message content.
+ * @return Response to the request message.
*/
- void onMessage(XMLStreamReader content);
+ XMLStreamReader onRequest(XMLStreamReader content);
}
Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java?view=auto&rev=500434
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java Fri Jan 26 16:40:50 2007
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.tuscany.spi.services.discovery;
+
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * Message listener for propogating callbacks.
+ *
+ * @version $Revision$ $Date$
+ *
+ */
+public interface ResponseListener {
+
+ /**
+ * Callback for propogating async messages.
+ * @param content Message content.
+ * @param An optional message id if this was in response to a message that was sent.
+ */
+ void onResponse(XMLStreamReader content, int messageId);
+
+}
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/services/discovery/ResponseListener.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/services/discovery/bonjour/src/main/java/org/apache/tuscany/service/discovery/bonjour/BonjourDiscoveryService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/discovery/bonjour/src/main/java/org/apache/tuscany/service/discovery/bonjour/BonjourDiscoveryService.java?view=diff&rev=500434&r1=500433&r2=500434
==============================================================================
--- incubator/tuscany/java/sca/services/discovery/bonjour/src/main/java/org/apache/tuscany/service/discovery/bonjour/BonjourDiscoveryService.java (original)
+++ incubator/tuscany/java/sca/services/discovery/bonjour/src/main/java/org/apache/tuscany/service/discovery/bonjour/BonjourDiscoveryService.java Fri Jan 26 16:40:50 2007
@@ -51,8 +51,9 @@
*
* @param runtimeId Runtime id of recipient.
* @param content Message content.
+ * @return The message id.
*/
- public void sendMessage(String runtimeId, XMLStreamReader content) {
+ public int sendMessage(String runtimeId, XMLStreamReader content) {
throw new UnsupportedOperationException();
}
Modified: incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryService.java?view=diff&rev=500434&r1=500433&r2=500434
==============================================================================
--- incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryService.java (original)
+++ incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryService.java Fri Jan 26 16:40:50 2007
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
import javax.security.cert.CertificateException;
import javax.xml.stream.XMLStreamReader;
@@ -28,14 +29,19 @@
import net.jxta.credential.AuthenticationCredential;
import net.jxta.discovery.DiscoveryService;
import net.jxta.exception.PeerGroupException;
+import net.jxta.impl.id.binaryID.DigestTool;
+import net.jxta.impl.protocol.ResolverQuery;
import net.jxta.membership.Authenticator;
import net.jxta.membership.MembershipService;
+import net.jxta.peer.PeerID;
import net.jxta.peergroup.NetPeerGroupFactory;
import net.jxta.peergroup.PeerGroup;
+import net.jxta.peergroup.PeerGroupID;
import net.jxta.platform.NetworkConfigurator;
import net.jxta.protocol.ModuleImplAdvertisement;
+import net.jxta.resolver.QueryHandler;
+import net.jxta.resolver.ResolverService;
-import org.apache.tuscany.host.RuntimeInfo;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.services.discovery.AbstractDiscoveryService;
import org.apache.tuscany.spi.services.work.WorkScheduler;
@@ -55,6 +61,12 @@
/** Peer listener. */
private PeerListener peerListener;
+
+ /** Resolver service. */
+ private ResolverService resolverService;
+
+ /** Domain group. */
+ private PeerGroup domainGroup;
/** Network platform configurator. */
private NetworkConfigurator configurator;
@@ -65,11 +77,11 @@
/** Interval for sending discivery messages .*/
private long interval = DEFAULT_INTERVAL;
- /** Domain peer group. */
- private PeerGroup domainGroup;
-
/** Started flag. */
- private AtomicBoolean started = new AtomicBoolean();
+ private final AtomicBoolean started = new AtomicBoolean();
+
+ /** Message id generator. */
+ private final AtomicInteger messageIdGenerator = new AtomicInteger();
/**
* Adds a network configurator for this service.
@@ -112,9 +124,17 @@
*/
public void run() {
- try {
+ try {
+
configure();
createAndJoinDomainGroup();
+
+ setupDiscovery();
+ setupResolver();
+
+ started.set(true);
+ peerListener.start();
+
} catch (PeerGroupException ex) {
throw new JxtaException(ex);
} catch (IOException ex) {
@@ -130,8 +150,9 @@
*
* @param runtimeId Runtime id of recipient.
* @param content Message content.
+ * @return The message id.
*/
- public void sendMessage(final String runtimeId, final XMLStreamReader content) {
+ public int sendMessage(final String runtimeId, final XMLStreamReader content) {
if(runtimeId == null) {
throw new IllegalArgumentException("Runtime id is null");
@@ -140,10 +161,23 @@
throw new IllegalArgumentException("Content id is null");
}
- if(peerListener.isRuntimeAlive(runtimeId)) {
- // Send the message
+ PeerID peerID = peerListener.getPeerId(runtimeId);
+ if(peerID == null) {
+ throw new JxtaException("Unrecognized runtime " + runtimeId);
}
+ // TODO get message from XML stream reader
+ final String message = null;
+ int messageId = messageIdGenerator.incrementAndGet();
+
+ ResolverQuery query = new ResolverQuery();
+ query.setHandlerName(TuscanyQueryHandler.class.getSimpleName());
+ query.setQuery(message);
+ query.setSrc(domainGroup.getPeerID().toString());
+ resolverService.sendQuery(peerID.toString(), query);
+
+ return messageId;
+
}
/**
@@ -198,17 +232,12 @@
*/
private void createAndJoinDomainGroup() throws Exception {
- RuntimeInfo runtimeInfo = getRuntimeInfo();
- String domain = runtimeInfo.getDomain().toString();
- String runtimeId = runtimeInfo.getRuntimeId();
+ String domain = getRuntimeInfo().getDomain().toString();
PeerGroup netGroup = new NetPeerGroupFactory().getInterface();
-
+ PeerGroupID peerGroupId = createPeerGroupId(domain, netGroup);
ModuleImplAdvertisement implAdv = netGroup.getAllPurposePeerGroupImplAdvertisement();
- domainGroup = netGroup.newGroup(null, implAdv, domain, "Tuscany domain group");
-
- final DiscoveryService discoveryService = netGroup.getDiscoveryService();
- discoveryService.remotePublish(netGroup.getPeerAdvertisement());
+ domainGroup = netGroup.newGroup(peerGroupId, implAdv, domain, "Tuscany domain group");
AuthenticationCredential authCred = new AuthenticationCredential(domainGroup, null, null);
MembershipService membership = domainGroup.getMembershipService();
@@ -220,10 +249,39 @@
throw new JxtaException("Unable to join domain group");
}
- peerListener = new PeerListener(discoveryService, interval, runtimeId);
- started.set(true);
- peerListener.start();
+ }
+
+ /**
+ * Sets up the resolver service.
+ */
+ private void setupResolver() {
+
+ resolverService = domainGroup.getResolverService();
+ QueryHandler queryHandler = new TuscanyQueryHandler(resolverService, this);
+ resolverService.registerHandler(TuscanyQueryHandler.class.getSimpleName(), queryHandler);
+ }
+
+ /**
+ * Sets up peer discovery service.
+ */
+ private void setupDiscovery() {
+
+ final DiscoveryService discoveryService = domainGroup.getDiscoveryService();
+ discoveryService.remotePublish(domainGroup.getPeerAdvertisement());
+ peerListener = new PeerListener(discoveryService, interval, getRuntimeInfo().getRuntimeId());
+
+ }
+
+ /**
+ * Creates a well-known peer group id for the domain.
+ *
+ * @param domain Name of the domain.
+ * @param netGroup Parent net peer group.
+ * @return Well-known peer group id.
+ */
+ private PeerGroupID createPeerGroupId(String domain, PeerGroup netGroup) {
+ return new DigestTool().createPeerGroupID(netGroup.getPeerGroupID(), domain, null);
}
}
Modified: incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/PeerListener.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/PeerListener.java?view=diff&rev=500434&r1=500433&r2=500434
==============================================================================
--- incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/PeerListener.java (original)
+++ incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/PeerListener.java Fri Jan 26 16:40:50 2007
@@ -19,13 +19,14 @@
package org.apache.tuscany.service.discovery.jxta;
import java.util.Enumeration;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import net.jxta.discovery.DiscoveryEvent;
import net.jxta.discovery.DiscoveryListener;
import net.jxta.discovery.DiscoveryService;
+import net.jxta.peer.PeerID;
import net.jxta.protocol.DiscoveryResponseMsg;
import net.jxta.protocol.PeerAdvertisement;
@@ -50,7 +51,7 @@
private String runtimeId;
/** Available peers. */
- private List<String> availablePeers = new LinkedList<String>();
+ private Map<String, PeerID> availablePeers = new HashMap<String, PeerID>();
/**
* Initializes the JXTA discovery service.
@@ -83,18 +84,17 @@
}
/**
- * Returns the available peers participating in the domain.
- * @return True if the specified runtime is alive.
+ * returns the peer id for the runtime id.
+ * @param runtimeId Runtime id for which peer id is requested.
+ * @return Peer id.
*/
- public synchronized boolean isRuntimeAlive(String runtimeId) {
- return availablePeers.contains(runtimeId);
+ public synchronized PeerID getPeerId(String runtimeId) {
+ return availablePeers.get(runtimeId);
}
/**
- * by implementing DiscoveryListener we must define this method
- * to deal to discovery responses
+ * Listens for discovery event.
*/
-
public synchronized void discoveryEvent(DiscoveryEvent event) {
DiscoveryResponseMsg res = event.getResponse();
@@ -104,12 +104,14 @@
PeerAdvertisement adv = (PeerAdvertisement) en.nextElement();
String peerName = adv.getName();
if(!runtimeId.equals(peerName)) {
- availablePeers.add(adv.getName());
+ availablePeers.put(adv.getName(), adv.getPeerID());
System.out.println (" Peer name = " + peerName);
+ System.out.println (" Peer id = " + adv.getPeerID());
System.out.println (" Peer Group = " + adv.getPeerGroupID());
}
}
}
+
}
/**
Added: incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/TuscanyQueryHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/TuscanyQueryHandler.java?view=auto&rev=500434
==============================================================================
--- incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/TuscanyQueryHandler.java (added)
+++ incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/TuscanyQueryHandler.java Fri Jan 26 16:40:50 2007
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.tuscany.service.discovery.jxta;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+
+import net.jxta.impl.protocol.ResolverResponse;
+import net.jxta.protocol.ResolverQueryMsg;
+import net.jxta.protocol.ResolverResponseMsg;
+import net.jxta.resolver.QueryHandler;
+import net.jxta.resolver.ResolverService;
+
+import org.apache.tuscany.spi.services.discovery.RequestListener;
+import org.apache.tuscany.spi.services.discovery.ResponseListener;
+
+/**
+ * Generic quety handler for tuscany PRP (Peer Resolver Protocol) messages. The
+ * <code>processQuery</code> method is invoked on the receiver and the <code>
+ * processResponse</code> is invoked on the sender when the receiver responds.
+ * @version $Revision$ $Date$
+ *
+ */
+public class TuscanyQueryHandler implements QueryHandler {
+
+ /** Resolver service for sending responses. */
+ private final ResolverService resolverService;
+
+ /** Discovery service. */
+ private final JxtaDiscoveryService discoveryService;
+
+ /**
+ * Initializes the JXTA resolver service and tuscany discovery service.
+ *
+ * @param resolverService Resolver service.
+ * @param discoveryService Tuscany discovery service.
+ */
+ public TuscanyQueryHandler(final ResolverService resolverService, final JxtaDiscoveryService discoveryService) {
+ this.resolverService = resolverService;
+ this.discoveryService = discoveryService;
+ }
+
+ /**
+ * Processes a query message.
+ */
+ public int processQuery(ResolverQueryMsg queryMessage) {
+
+ final String message = queryMessage.getQuery();
+ final int queryId = queryMessage.getQueryId();
+ final String source = queryMessage.getSrc();
+ final String handler = queryMessage.getHandlerName();
+
+ XMLStreamReader requestReader = null;
+
+ // TODO extract QName from the message
+ final QName messageType = null;
+ RequestListener messageListener = discoveryService.getRequestListener(messageType);
+ if(messageListener != null) {
+
+ XMLStreamReader responseReader = messageListener.onRequest(requestReader);
+ String response = null;
+
+ ResolverResponse responseMessage = new ResolverResponse();
+ responseMessage.setResponse(response);
+ responseMessage.setHandlerName(handler);
+ responseMessage.setQueryId(queryId);
+
+ resolverService.sendResponse(source, responseMessage);
+
+ }
+ return ResolverService.OK;
+
+ }
+
+ /**
+ * Processes a response message.
+ */
+ public void processResponse(ResolverResponseMsg responseMessage) {
+
+ final String message = responseMessage.getResponse();
+ final int queryId = responseMessage.getQueryId();
+
+ XMLStreamReader responseReader = null;
+
+ // TODO extract QName from the message
+ final QName messageType = null;
+ ResponseListener messageListener = discoveryService.getResponseListener(messageType);
+ if(messageListener != null) {
+ messageListener.onResponse(responseReader, queryId);
+
+ }
+
+ }
+
+}
Propchange: incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/TuscanyQueryHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/services/discovery/jxta/src/main/java/org/apache/tuscany/service/discovery/jxta/TuscanyQueryHandler.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/services/discovery/jxta/src/test/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/discovery/jxta/src/test/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryServiceTestCase.java?view=diff&rev=500434&r1=500433&r2=500434
==============================================================================
--- incubator/tuscany/java/sca/services/discovery/jxta/src/test/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/services/discovery/jxta/src/test/java/org/apache/tuscany/service/discovery/jxta/JxtaDiscoveryServiceTestCase.java Fri Jan 26 16:40:50 2007
@@ -49,13 +49,11 @@
public void testStartAndStop() throws Exception {
- JxtaDiscoveryService discoveryService = getDiscoveryService("runtime-1", "domain");
+ JxtaDiscoveryService discoveryService = getDiscoveryService("runtime-2", "domain");
discoveryService.start();
while(!discoveryService.isStarted()) {
}
- //while(true) {
- //}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org