You are viewing a plain text version of this content. The canonical link for it is here.
Posted to nuvem-commits@incubator.apache.org by jo...@apache.org on 2011/05/02 23:13:23 UTC
svn commit: r1098849 - in /incubator/nuvem/trunk/nuvem-standalone-xmpp/src:
main/java/org/apache/nuvem/xmpp/client/ main/resources/
test/java/org/apache/nuvem/xmpp/client/
Author: johnp
Date: Mon May 2 23:13:22 2011
New Revision: 1098849
URL: http://svn.apache.org/viewvc?rev=1098849&view=rev
Log:
Standalone XMPP Presence Management implementation + simplifying few class names
Added:
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultPresenceManager.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageAdapter.java
- copied, changed from r1092553, incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageAdapter.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageListenerAdapter.java
- copied, changed from r1086399, incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageListenerAdapter.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/PresenceAdapter.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/RosterListenerAdapter.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/StatusAdapter.java
- copied, changed from r1086399, incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackStatusAdapter.java
Removed:
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageAdapter.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageListenerAdapter.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackStatusAdapter.java
Modified:
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPoint.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketFilter.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketListener.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/nuvemxmpp.composite
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/testnuvemxmpp.composite
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPointTestCase.java
incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/XMPPEndPointIntegrationTest.java
Added: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultPresenceManager.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultPresenceManager.java?rev=1098849&view=auto
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultPresenceManager.java (added)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultPresenceManager.java Mon May 2 23:13:22 2011
@@ -0,0 +1,57 @@
+/*
+ * 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.nuvem.xmpp.client;
+
+import org.apache.commons.lang.Validate;
+import org.apache.nuvem.cloud.xmpp.api.XMPPConnector;
+import org.apache.nuvem.cloud.xmpp.api.presence.PresenceListener;
+import org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager;
+import org.apache.nuvem.cloud.xmpp.common.AbstractPresenceManager;
+import org.jivesoftware.smack.XMPPConnection;
+import org.oasisopen.sca.annotation.Reference;
+import org.oasisopen.sca.annotation.Service;
+
+/**
+ * Utility Service to provide all presence related operations.
+ *
+ */
+@Service(PresenceManager.class)
+public class DefaultPresenceManager extends AbstractPresenceManager {
+
+ /**
+ * Connecter to fetch XMPP Connection.
+ */
+ @Reference
+ protected XMPPConnector<XMPPConnection> connector;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void registerListener(PresenceListener listener) {
+ Validate.notNull(listener);
+ connector.getConnection().getRoster().addRosterListener(
+ new RosterListenerAdapter(listener));
+ //Keeps a reference to the listener for later use.
+ listeners.add(listener);
+ }
+
+}
Modified: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPoint.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPoint.java?rev=1098849&r1=1098848&r2=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPoint.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPoint.java Mon May 2 23:13:22 2011
@@ -24,10 +24,11 @@ import java.util.logging.Logger;
import org.apache.commons.lang.Validate;
import org.apache.nuvem.cloud.xmpp.api.JID;
-import org.apache.nuvem.cloud.xmpp.api.Message;
import org.apache.nuvem.cloud.xmpp.api.Status;
import org.apache.nuvem.cloud.xmpp.api.XMPPConnector;
import org.apache.nuvem.cloud.xmpp.api.XMPPEndPoint;
+import org.apache.nuvem.cloud.xmpp.api.message.Message;
+import org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager;
import org.apache.nuvem.cloud.xmpp.common.AbstractXMPPEndPoint;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.Roster;
@@ -59,6 +60,10 @@ public class DefaultXMPPEndPoint extends
@Reference
protected XMPPConnector<XMPPConnection> connector;
+ @Reference
+ protected PresenceManager presenceManager;
+
+
/**
* The packet filter to decide what packets to recieve from the XMPP
* Server..
@@ -101,18 +106,18 @@ public class DefaultXMPPEndPoint extends
}
Status deliveryStatus = new Status();
- org.apache.nuvem.cloud.xmpp.api.MessageListener nuvemListener = getListenerFor(message
+ org.apache.nuvem.cloud.xmpp.api.message.MessageListener nuvemListener = getListenerFor(message
.recipient());
Chat chat = connection.getChatManager().createChat(
message.recipient().asString(),
- new SmackMessageListenerAdapter(nuvemListener));
+ new MessageListenerAdapter(nuvemListener));
try {
chat.sendMessage(message.payLoad().content());
} catch (XMPPException e) {
log.severe("error while sending xmpp message to "
+ message.recipient().asString());
- deliveryStatus = SmackStatusAdapter.toStatus(e.getXMPPError());
+ deliveryStatus = StatusAdapter.toStatus(e.getXMPPError());
}
return deliveryStatus;
}
@@ -170,4 +175,9 @@ public class DefaultXMPPEndPoint extends
public boolean isConnected() {
return connector.getConnection().isConnected();
}
+
+ @Override
+ public PresenceManager presenceManager() {
+ return presenceManager;
+ }
}
Copied: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageAdapter.java (from r1092553, incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageAdapter.java)
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageAdapter.java?p2=incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageAdapter.java&p1=incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageAdapter.java&r1=1092553&r2=1098849&rev=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageAdapter.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageAdapter.java Mon May 2 23:13:22 2011
@@ -20,22 +20,24 @@
package org.apache.nuvem.xmpp.client;
-import org.apache.nuvem.cloud.xmpp.api.MessageBuilder;
+import org.apache.nuvem.cloud.xmpp.api.message.MessageBuilder;
import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smack.packet.Presence;
/**
* Adapter to transform nuvem message into smack message.
*
*
*/
-public class SmackMessageAdapter {
+public class MessageAdapter {
/**
* Converts nuvem specific message object to the one smack API accepts.
*
*/
public static Message toSmackMessage(
- org.apache.nuvem.cloud.xmpp.api.Message nuvemMessage, String sender) {
+ org.apache.nuvem.cloud.xmpp.api.message.Message nuvemMessage,
+ String sender) {
Message smackMessage = new Message();
smackMessage.setFrom(sender);
smackMessage.setBody(nuvemMessage.payLoad().content());
@@ -43,6 +45,7 @@ public class SmackMessageAdapter {
return smackMessage;
}
+
/**
* Converts smack message to Nuvem Message.
*
@@ -50,7 +53,7 @@ public class SmackMessageAdapter {
* the smack message.
* @return nuvem message.
*/
- public static org.apache.nuvem.cloud.xmpp.api.Message toNuvemMessage(
+ public static org.apache.nuvem.cloud.xmpp.api.message.Message toNuvemMessage(
Message message) {
return new MessageBuilder().from(message.getFrom()).toRecipient(
message.getTo()).containing(message.getBody()).build();
Copied: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageListenerAdapter.java (from r1086399, incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageListenerAdapter.java)
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageListenerAdapter.java?p2=incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageListenerAdapter.java&p1=incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageListenerAdapter.java&r1=1086399&r2=1098849&rev=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackMessageListenerAdapter.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/MessageListenerAdapter.java Mon May 2 23:13:22 2011
@@ -20,7 +20,7 @@
package org.apache.nuvem.xmpp.client;
-import org.apache.nuvem.cloud.xmpp.api.MessageBuilder;
+import org.apache.nuvem.cloud.xmpp.api.message.MessageBuilder;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.packet.Message;
@@ -30,15 +30,15 @@ import org.jivesoftware.smack.packet.Mes
* messages.
*
*/
-public class SmackMessageListenerAdapter implements MessageListener {
+public class MessageListenerAdapter implements MessageListener {
/**
* The Nuvem Listener.
*/
- private org.apache.nuvem.cloud.xmpp.api.MessageListener nuvemListener;
+ private org.apache.nuvem.cloud.xmpp.api.message.MessageListener nuvemListener;
- public SmackMessageListenerAdapter(
- org.apache.nuvem.cloud.xmpp.api.MessageListener nuvemMessageListener) {
+ public MessageListenerAdapter(
+ org.apache.nuvem.cloud.xmpp.api.message.MessageListener nuvemMessageListener) {
if (nuvemMessageListener == null)
throw new IllegalArgumentException("listener should not be null");
this.nuvemListener = nuvemMessageListener;
Modified: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketFilter.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketFilter.java?rev=1098849&r1=1098848&r2=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketFilter.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketFilter.java Mon May 2 23:13:22 2011
@@ -22,8 +22,8 @@ package org.apache.nuvem.xmpp.client;
import org.apache.commons.lang.StringUtils;
import org.apache.nuvem.cloud.xmpp.api.JID;
-import org.apache.nuvem.cloud.xmpp.api.MessageListener;
import org.apache.nuvem.cloud.xmpp.api.XMPPEndPoint;
+import org.apache.nuvem.cloud.xmpp.api.message.MessageListener;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;
Modified: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketListener.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketListener.java?rev=1098849&r1=1098848&r2=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketListener.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/NuvemPacketListener.java Mon May 2 23:13:22 2011
@@ -22,8 +22,8 @@ package org.apache.nuvem.xmpp.client;
import org.apache.commons.lang.StringUtils;
import org.apache.nuvem.cloud.xmpp.api.JID;
-import org.apache.nuvem.cloud.xmpp.api.MessageListener;
import org.apache.nuvem.cloud.xmpp.api.XMPPEndPoint;
+import org.apache.nuvem.cloud.xmpp.api.message.MessageListener;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;
@@ -48,7 +48,7 @@ public class NuvemPacketListener impleme
"/");
MessageListener listener = endPoint
.getListenerFor(new JID(from));
- listener.listen(SmackMessageAdapter
+ listener.listen(MessageAdapter
.toNuvemMessage((Message) packet));
}
}
Added: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/PresenceAdapter.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/PresenceAdapter.java?rev=1098849&view=auto
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/PresenceAdapter.java (added)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/PresenceAdapter.java Mon May 2 23:13:22 2011
@@ -0,0 +1,91 @@
+/*
+ * 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.nuvem.xmpp.client;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.nuvem.cloud.xmpp.api.JID;
+import org.apache.nuvem.cloud.xmpp.api.presence.Presence;
+import org.apache.nuvem.cloud.xmpp.api.presence.PresenceBuilder;
+import org.apache.nuvem.cloud.xmpp.api.presence.Presence.Show;
+import org.apache.nuvem.cloud.xmpp.api.presence.Presence.Type;
+import org.jivesoftware.smack.packet.Presence.Mode;
+
+/**
+ * Hepls convert smack specific presence object into nuvem specific presence
+ * object.
+ *
+ */
+public final class PresenceAdapter {
+
+ private static final Map<Mode, Presence.Show> showConverstionMap = new HashMap<Mode, Show>();
+ private static final Map<org.jivesoftware.smack.packet.Presence.Type, Presence.Type> typeConversionMap = new HashMap<org.jivesoftware.smack.packet.Presence.Type, Type>();
+
+ static {
+ showConverstionMap.put(Mode.available, Show.AVAILABLE);
+ showConverstionMap.put(Mode.away, Show.AWAY);
+ showConverstionMap.put(Mode.chat, Show.CHAT);
+ showConverstionMap.put(Mode.dnd, Show.DND);
+ showConverstionMap.put(Mode.xa, Show.XA);
+
+ typeConversionMap.put(
+ org.jivesoftware.smack.packet.Presence.Type.available,
+ Type.AVAILABLE);
+ typeConversionMap.put(
+ org.jivesoftware.smack.packet.Presence.Type.unavailable,
+ Type.UNAVAILABLE);
+ typeConversionMap.put(
+ org.jivesoftware.smack.packet.Presence.Type.subscribe,
+ Type.SUBSCRIBE);
+ typeConversionMap.put(
+ org.jivesoftware.smack.packet.Presence.Type.subscribed,
+ Type.SUBSCRIBED);
+ typeConversionMap.put(
+ org.jivesoftware.smack.packet.Presence.Type.unsubscribe,
+ Type.UNSUBSCRIBE);
+ typeConversionMap.put(
+ org.jivesoftware.smack.packet.Presence.Type.unsubscribed,
+ Type.UNSUBSCRIBED);
+ typeConversionMap.put(
+ org.jivesoftware.smack.packet.Presence.Type.error, Type.ERROR);
+ }
+
+ /**
+ * Converts smack's {@link org.jivesoftware.smack.packet.Presence} to
+ * Nuvem's {@link org.apache.nuvem.cloud.xmpp.api.presence.Presence} object.
+ */
+ public static Presence toNuvemPresence(
+ org.jivesoftware.smack.packet.Presence presence) {
+ String from = presence.getFrom();
+ String to = presence.getTo();
+ String status = presence.getStatus();
+ Show show = showConverstionMap.get(presence.getMode());
+ Type type = typeConversionMap.get(presence.getType());
+ PresenceBuilder builder = new PresenceBuilder().withShow(show)
+ .withType(type).withStatus(status);
+ builder.from(new JID(from));
+ if (StringUtils.isNotEmpty(to)) {
+ builder.to(new JID(to));
+ }
+ return builder.build();
+ }
+}
Added: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/RosterListenerAdapter.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/RosterListenerAdapter.java?rev=1098849&view=auto
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/RosterListenerAdapter.java (added)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/RosterListenerAdapter.java Mon May 2 23:13:22 2011
@@ -0,0 +1,63 @@
+/*
+ * 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.nuvem.xmpp.client;
+
+import java.util.Collection;
+
+import org.apache.nuvem.cloud.xmpp.api.presence.PresenceListener;
+
+/**
+ * Listens to smack roster events and adapts it to nuvem roster events.
+ *
+ */
+public class RosterListenerAdapter implements
+ org.jivesoftware.smack.RosterListener {
+
+ /**
+ * Nuvem Roster Listener.
+ */
+ private PresenceListener listener;
+
+ public RosterListenerAdapter(PresenceListener listener) {
+ this.listener = listener;
+ }
+
+ @Override
+ public void entriesAdded(Collection<String> arg0) {
+
+ }
+
+ @Override
+ public void entriesDeleted(Collection<String> arg0) {
+
+ }
+
+ @Override
+ public void entriesUpdated(Collection<String> arg0) {
+
+ }
+
+ @Override
+ public void presenceChanged(org.jivesoftware.smack.packet.Presence presence) {
+ listener.listen(PresenceAdapter
+ .toNuvemPresence(presence));
+ }
+}
\ No newline at end of file
Copied: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/StatusAdapter.java (from r1086399, incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackStatusAdapter.java)
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/StatusAdapter.java?p2=incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/StatusAdapter.java&p1=incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackStatusAdapter.java&r1=1086399&r2=1098849&rev=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/SmackStatusAdapter.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/java/org/apache/nuvem/xmpp/client/StatusAdapter.java Mon May 2 23:13:22 2011
@@ -31,7 +31,7 @@ import org.jivesoftware.smack.packet.XMP
* Acts as an adapter to transform the status recieved by the the send API to
* the form compatible with nuvem.
*/
-public class SmackStatusAdapter {
+public class StatusAdapter {
/**
* converstion map.
Modified: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/nuvemxmpp.composite
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/nuvemxmpp.composite?rev=1098849&r1=1098848&r2=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/nuvemxmpp.composite (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/nuvemxmpp.composite Mon May 2 23:13:22 2011
@@ -1,22 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
+ <!--
+ * 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.
+ -->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
targetNamespace="http://nuvemxmpp" name="xmpp">
@@ -31,11 +27,24 @@
<reference name="connector" target="SimpleConnector/XMPPConnector">
<interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
</reference>
+ <reference name="presenceManager" target="PresenceComponent/PresenceManager">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager" />
+ </reference>
</component>
- <component name="SimpleConnector">
+ <component name="PresenceComponent">
<implementation.java
- class="org.apache.nuvem.xmpp.client.SimpleConnector" />
+ class="org.apache.nuvem.xmpp.client.DefaultPresenceManager" />
+ <service name="PresenceManager">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager" />
+ </service>
+ <reference name="connector" target="SimpleConnector/XMPPConnector">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
+ </reference>
+ </component>
+
+ <component name="SimpleConnector">
+ <implementation.java class="org.apache.nuvem.xmpp.client.SimpleConnector" />
<service name="XMPPConnector">
<interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
</service>
@@ -43,16 +52,15 @@
<property name="clientPassword">password</property>
</component>
- <component name="SSLConnector">
- <implementation.java
- class="org.apache.nuvem.xmpp.client.SSLConnector" />
- <service name="XMPPConnector">
- <interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
- </service>
- <property name="clientJID">nuvem@localhost</property>
- <property name="clientPassword">password</property>
- <property name="trustStorePath">truststorepath</property>
- <property name="trustStorePassword">changeit</property>
- </component>
+ <component name="SSLConnector">
+ <implementation.java class="org.apache.nuvem.xmpp.client.SSLConnector" />
+ <service name="XMPPConnector">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
+ </service>
+ <property name="clientJID">nuvem@localhost</property>
+ <property name="clientPassword">password</property>
+ <property name="trustStorePath">truststorepath</property>
+ <property name="trustStorePassword">changeit</property>
+ </component>
</composite>
Modified: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/testnuvemxmpp.composite
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/testnuvemxmpp.composite?rev=1098849&r1=1098848&r2=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/testnuvemxmpp.composite (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/main/resources/testnuvemxmpp.composite Mon May 2 23:13:22 2011
@@ -27,6 +27,21 @@
<reference name="connector" target="TestSimpleSenderConnector/XMPPConnector">
<interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
</reference>
+ <reference name="presenceManager" target="TestSenderPresenceComponent/PresenceManager">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager" />
+ </reference>
+ </component>
+
+ <component name="TestSenderPresenceComponent">
+ <implementation.java
+ class="org.apache.nuvem.xmpp.client.DefaultPresenceManager" />
+ <service name="PresenceManager">
+ <interface.java
+ interface="org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager" />
+ </service>
+ <reference name="connector" target="TestSimpleSenderConnector/XMPPConnector">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
+ </reference>
</component>
<component name="TestSSLConnector">
@@ -49,8 +64,24 @@
<reference name="connector" target="TestSimpleRecieverConnector/XMPPConnector">
<interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
</reference>
+ <reference name="presenceManager" target="TestRecieverPresenceComponent/PresenceManager">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager" />
+ </reference>
</component>
+ <component name="TestRecieverPresenceComponent">
+ <implementation.java
+ class="org.apache.nuvem.xmpp.client.DefaultPresenceManager" />
+ <service name="PresenceManager">
+ <interface.java
+ interface="org.apache.nuvem.cloud.xmpp.api.presence.PresenceManager" />
+ </service>
+ <reference name="connector" target="TestSimpleRecieverConnector/XMPPConnector">
+ <interface.java interface="org.apache.nuvem.cloud.xmpp.api.XMPPConnector" />
+ </reference>
+ </component>
+
+
<component name="TestSimpleRecieverConnector">
<implementation.java class="org.apache.nuvem.xmpp.client.SimpleConnector" />
<service name="XMPPConnector">
Modified: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPointTestCase.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPointTestCase.java?rev=1098849&r1=1098848&r2=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPointTestCase.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/DefaultXMPPEndPointTestCase.java Mon May 2 23:13:22 2011
@@ -75,7 +75,7 @@ public class DefaultXMPPEndPointTestCase
expect(connection.getChatManager()).andReturn(chatManager);
expect(
chatManager.createChat(isA(String.class),
- isA(SmackMessageListenerAdapter.class)))
+ isA(MessageListenerAdapter.class)))
.andReturn(chat);
chat.sendMessage(MESSAGE);
expectLastCall();
@@ -95,7 +95,7 @@ public class DefaultXMPPEndPointTestCase
expect(connection.getChatManager()).andReturn(chatManager);
expect(
chatManager.createChat(isA(String.class),
- isA(SmackMessageListenerAdapter.class)))
+ isA(MessageListenerAdapter.class)))
.andReturn(chat);
chat.sendMessage(MESSAGE);
expectLastCall().andThrow(
Modified: incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/XMPPEndPointIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/XMPPEndPointIntegrationTest.java?rev=1098849&r1=1098848&r2=1098849&view=diff
==============================================================================
--- incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/XMPPEndPointIntegrationTest.java (original)
+++ incubator/nuvem/trunk/nuvem-standalone-xmpp/src/test/java/org/apache/nuvem/xmpp/client/XMPPEndPointIntegrationTest.java Mon May 2 23:13:22 2011
@@ -22,10 +22,10 @@ package org.apache.nuvem.xmpp.client;
import junit.framework.Assert;
import org.apache.nuvem.cloud.xmpp.api.JID;
-import org.apache.nuvem.cloud.xmpp.api.Message;
-import org.apache.nuvem.cloud.xmpp.api.MessageListener;
import org.apache.nuvem.cloud.xmpp.api.XMPPEndPoint;
import org.apache.nuvem.cloud.xmpp.api.XMPPServer;
+import org.apache.nuvem.cloud.xmpp.api.message.Message;
+import org.apache.nuvem.cloud.xmpp.api.message.MessageListener;
import org.apache.nuvem.xmpp.server.DefaultXMPPServer;
import org.apache.tuscany.sca.node.Node;
import org.apache.tuscany.sca.node.NodeFactory;