From nuvem-commits-return-125-apmail-incubator-nuvem-commits-archive=incubator.apache.org@incubator.apache.org Wed Jul 13 22:24:31 2011 Return-Path: X-Original-To: apmail-incubator-nuvem-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-nuvem-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7DB1E69C1 for ; Wed, 13 Jul 2011 22:24:31 +0000 (UTC) Received: (qmail 85131 invoked by uid 500); 13 Jul 2011 22:24:31 -0000 Delivered-To: apmail-incubator-nuvem-commits-archive@incubator.apache.org Received: (qmail 85091 invoked by uid 500); 13 Jul 2011 22:24:31 -0000 Mailing-List: contact nuvem-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: nuvem-dev@incubator.apache.org Delivered-To: mailing list nuvem-commits@incubator.apache.org Received: (qmail 85080 invoked by uid 99); 13 Jul 2011 22:24:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Jul 2011 22:24:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 13 Jul 2011 22:24:27 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id BF54223889B1; Wed, 13 Jul 2011 22:24:05 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1146503 - in /incubator/nuvem/trunk: nuvem-google/ nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/ nuvem-samples/store-appengine-webapp/war/ nuvem-samples/store-appengine-webapp/war/WEB-INF/ nuvem-samples/store-assets/src/main... Date: Wed, 13 Jul 2011 22:24:05 -0000 To: nuvem-commits@incubator.apache.org From: johnp@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110713222405.BF54223889B1@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: johnp Date: Wed Jul 13 22:24:05 2011 New Revision: 1146503 URL: http://svn.apache.org/viewvc?rev=1146503&view=rev Log: --corrected the google presence reciever servlet to broadcast presence changes to listeners --modified the store application to demonstrate how to listen to presence changes and respond to such changes Modified: incubator/nuvem/trunk/nuvem-google/pom.xml incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GooglePresenceServlet.java incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GoogleRecieverServlet.java incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/appengine-web.xml incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/web.xml incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/store.composite incubator/nuvem/trunk/nuvem-samples/store-assets/src/main/java/services/XMPPShipmentObserver.java Modified: incubator/nuvem/trunk/nuvem-google/pom.xml URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-google/pom.xml?rev=1146503&r1=1146502&r2=1146503&view=diff ============================================================================== --- incubator/nuvem/trunk/nuvem-google/pom.xml (original) +++ incubator/nuvem/trunk/nuvem-google/pom.xml Wed Jul 13 22:24:05 2011 @@ -50,7 +50,6 @@ com.google.appengine appengine-api-1.0-sdk ${gae.version} - provided Modified: incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GooglePresenceServlet.java URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GooglePresenceServlet.java?rev=1146503&r1=1146502&r2=1146503&view=diff ============================================================================== --- incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GooglePresenceServlet.java (original) +++ incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GooglePresenceServlet.java Wed Jul 13 22:24:05 2011 @@ -22,6 +22,8 @@ package org.apache.nuvem.cloud.xmpp.impl import java.io.IOException; import java.util.logging.Logger; +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -29,6 +31,7 @@ import javax.servlet.http.HttpServletRes import org.apache.nuvem.cloud.xmpp.XMPPEndPoint; import org.apache.nuvem.cloud.xmpp.presence.PresenceListener; import org.apache.nuvem.cloud.xmpp.presence.PresenceManager; +import org.oasisopen.sca.ComponentContext; import org.oasisopen.sca.annotation.Reference; import com.google.appengine.api.xmpp.Presence; @@ -61,10 +64,28 @@ public class GooglePresenceServlet exten */ private static final long serialVersionUID = 3109512262386132981L; - @Reference + @Reference(required = false) private XMPPEndPoint endPoint; /** + * If the servlet container doesnt support SCA then the endpoint will be + * identified explicitly. + */ + @Override + public void init(ServletConfig config) { + if (endPoint == null) { + log.info("endpoint not wired, trying to fetch one from the component context"); + ServletContext servletContext = config.getServletContext(); + ComponentContext context = (ComponentContext) servletContext + .getAttribute("org.oasisopen.sca.ComponentContext"); + + endPoint = context.getService(XMPPEndPoint.class, "endPoint"); + log.info("endpoint: " + endPoint); + } + } + + + /** * Adapts the HTTP Post request into a call to the * {@link PresenceListener#listen(org.apache.nuvem.cloud.xmpp.presence.Presence)} * . Modified: incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GoogleRecieverServlet.java URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GoogleRecieverServlet.java?rev=1146503&r1=1146502&r2=1146503&view=diff ============================================================================== --- incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GoogleRecieverServlet.java (original) +++ incubator/nuvem/trunk/nuvem-google/src/main/java/org/apache/nuvem/cloud/xmpp/impl/GoogleRecieverServlet.java Wed Jul 13 22:24:05 2011 @@ -75,7 +75,7 @@ public class GoogleRecieverServlet exten @Override public void init(ServletConfig config) { if (endPoint == null) { - log.info("endpoint not wired, trying to fetch one from the component context using the name: XMPPComponent/XMPPEndPoint"); + log.info("endpoint not wired, trying to fetch one from the component context"); ServletContext servletContext = config.getServletContext(); ComponentContext context = (ComponentContext) servletContext .getAttribute("org.oasisopen.sca.ComponentContext"); Modified: incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/appengine-web.xml URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/appengine-web.xml?rev=1146503&r1=1146502&r2=1146503&view=diff ============================================================================== --- incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/appengine-web.xml (original) +++ incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/appengine-web.xml Wed Jul 13 22:24:05 2011 @@ -28,6 +28,7 @@ xmpp_message + xmpp_presence \ No newline at end of file Modified: incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/web.xml?rev=1146503&r1=1146502&r2=1146503&view=diff ============================================================================== --- incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/web.xml (original) +++ incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/WEB-INF/web.xml Wed Jul 13 22:24:05 2011 @@ -42,6 +42,16 @@ http://java.sun.com/xml/ns/javaee/web-ap /_ah/xmpp/message/chat/ + + presencereciever + org.apache.nuvem.cloud.xmpp.impl.GooglePresenceServlet + + + presencereciever + /_ah/xmpp/presence/* + /_ah/xmpp/subscription/* + + store.html Modified: incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/store.composite URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/store.composite?rev=1146503&r1=1146502&r2=1146503&view=diff ============================================================================== --- incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/store.composite (original) +++ incubator/nuvem/trunk/nuvem-samples/store-appengine-webapp/war/store.composite Wed Jul 13 22:24:05 2011 @@ -75,15 +75,16 @@ + - + - + Modified: incubator/nuvem/trunk/nuvem-samples/store-assets/src/main/java/services/XMPPShipmentObserver.java URL: http://svn.apache.org/viewvc/incubator/nuvem/trunk/nuvem-samples/store-assets/src/main/java/services/XMPPShipmentObserver.java?rev=1146503&r1=1146502&r2=1146503&view=diff ============================================================================== --- incubator/nuvem/trunk/nuvem-samples/store-assets/src/main/java/services/XMPPShipmentObserver.java (original) +++ incubator/nuvem/trunk/nuvem-samples/store-assets/src/main/java/services/XMPPShipmentObserver.java Wed Jul 13 22:24:05 2011 @@ -24,6 +24,10 @@ import org.apache.nuvem.cloud.xmpp.JID; import org.apache.nuvem.cloud.xmpp.Status; import org.apache.nuvem.cloud.xmpp.XMPPEndPoint; import org.apache.nuvem.cloud.xmpp.message.MessageBuilder; +import org.apache.nuvem.cloud.xmpp.presence.Presence; +import org.apache.nuvem.cloud.xmpp.presence.PresenceBuilder; +import org.apache.nuvem.cloud.xmpp.presence.PresenceListener; +import org.oasisopen.sca.annotation.Init; import org.oasisopen.sca.annotation.Reference; import org.oasisopen.sca.annotation.Scope; @@ -33,16 +37,42 @@ public class XMPPShipmentObserver implem @Reference private XMPPEndPoint endpoint; + private static final String message = "Welcome to Nuvem Store"; + + @Init + public void init() { + endpoint.presenceManager().registerListener(new Greeter(endpoint)); + } + public void onStatusUpdate(Shipment shipment, Event event) { JID jid = shipment.getJidToUpdate(); System.out.println("inviting user of jid : " + jid.asString()); Status status = endpoint.invite(jid.asString()); System.out.println("status of invite:" + status.hasErrors()); if (!status.hasErrors()) { - endpoint.sendMessage(new MessageBuilder().toRecipient( - shipment.getJidToUpdate().asString()).containing( - event.toString()).build()); + endpoint.sendMessage(new MessageBuilder() + .toRecipient(shipment.getJidToUpdate().asString()) + .containing(event.toString()).build()); + } + } + + public static class Greeter implements PresenceListener { + private XMPPEndPoint xmppEndPoint; + + public Greeter(XMPPEndPoint endPoint) { + this.xmppEndPoint = endPoint; } + + @Override + public void listen(Presence presence) { + if (presence.type() == Presence.Type.AVAILABLE) { + PresenceBuilder builder = new PresenceBuilder() + .to(presence.from()).withStatus(message) + .withType(Presence.Type.AVAILABLE); + xmppEndPoint.presenceManager().sendPresence(builder.build()); + } + } + } }