You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2010/05/30 23:14:14 UTC

svn commit: r949578 - in /mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124: BoshBackedSessionContext.java BoshEndpoint.java BoshIoHandler.java ServerMain.java

Author: ngn
Date: Sun May 30 21:14:13 2010
New Revision: 949578

URL: http://svn.apache.org/viewvc?rev=949578&view=rev
Log:
Code formatting and fixing path to keystore (VYSPER-204). By Bogdan Pistol

Modified:
    mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java
    mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshEndpoint.java
    mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshIoHandler.java
    mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java

Modified: mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java?rev=949578&r1=949577&r2=949578&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java (original)
+++ mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java Sun May 30 21:14:13 2010
@@ -33,24 +33,25 @@ import org.apache.vysper.xmpp.writer.Sta
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 /**
  * connects MINA 2 frontend to the vysper backend through the Bosh protocol
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
  */
-public class BoshBackedSessionContext extends AbstractSessionContext implements StanzaWriter, IoFutureListener {
+public class BoshBackedSessionContext extends AbstractSessionContext implements
+        StanzaWriter, IoFutureListener {
 
-    final Logger logger = LoggerFactory.getLogger(BoshBackedSessionContext.class);
+    final Logger logger = LoggerFactory
+            .getLogger(BoshBackedSessionContext.class);
 
     private IoSession minaSession;
+
     private boolean openingStanzaWritten = false;
+
     protected CloseFuture closeFuture;
 
-    public BoshBackedSessionContext(
-            ServerRuntimeContext serverRuntimeContext,
-            SessionStateHolder sessionStateHolder,
-            IoSession minaSession) {
+    public BoshBackedSessionContext(ServerRuntimeContext serverRuntimeContext,
+            SessionStateHolder sessionStateHolder, IoSession minaSession) {
         super(serverRuntimeContext, sessionStateHolder);
         this.minaSession = minaSession;
         closeFuture = minaSession.getCloseFuture();
@@ -82,8 +83,8 @@ public class BoshBackedSessionContext ex
         logger.info("close future called");
     }
 
-	public void switchToTLS() {
-		// Bosh cannot switch dynamically
-		// SSL can be enabled/disabled in BoshEndpoint#setSslEnabled()
-	}
+    public void switchToTLS() {
+        // Bosh cannot switch dynamically
+        // SSL can be enabled/disabled in BoshEndpoint#setSslEnabled()
+    }
 }

Modified: mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshEndpoint.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshEndpoint.java?rev=949578&r1=949577&r2=949578&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshEndpoint.java (original)
+++ mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshEndpoint.java Sun May 30 21:14:13 2010
@@ -33,46 +33,47 @@ import org.slf4j.LoggerFactory;
  * @author The Apache MINA Project (dev@mina.apache.org)
  */
 public class BoshEndpoint implements Endpoint {
-	
-	private final Logger logger = LoggerFactory.getLogger(BoshEndpoint.class);
+
+    private final Logger logger = LoggerFactory.getLogger(BoshEndpoint.class);
 
     private ServerRuntimeContext serverRuntimeContext;
 
     private int port = 8080;
 
     private Server server;
-    
-    public void setServerRuntimeContext(ServerRuntimeContext serverRuntimeContext) {
+
+    public void setServerRuntimeContext(
+            ServerRuntimeContext serverRuntimeContext) {
         this.serverRuntimeContext = serverRuntimeContext;
     }
 
     public void setPort(int port) {
         this.port = port;
     }
-    
+
     public void setSslEnabled(boolean value) {
-    	// TODO:
+        // TODO:
     }
-    
+
     public void start() throws IOException {
-    	server = new Server(port);
-    	BoshIoHandler boshIoHandler = new BoshIoHandler();
-    	boshIoHandler.setServerRuntimeContext(serverRuntimeContext);
-    	server.setHandler(boshIoHandler); 
-    	try {
-			server.start();
-		} catch (Exception e) {
-			// TODO IOException(Exception) is only Java 1.6, so throwing a RuntimeException for now
-			throw new RuntimeException(e);
-		}
+        server = new Server(port);
+        BoshIoHandler boshIoHandler = new BoshIoHandler();
+        boshIoHandler.setServerRuntimeContext(serverRuntimeContext);
+        server.setHandler(boshIoHandler);
+        try {
+            server.start();
+        } catch (Exception e) {
+            // TODO IOException(Exception) is only Java 1.6, so throwing a RuntimeException for now
+            throw new RuntimeException(e);
+        }
     }
 
     public void stop() {
-    	try {
-			server.stop();
-		} catch (Exception e) {
-			logger.warn("Could not stop the Jetty server", e);
-		}
+        try {
+            server.stop();
+        } catch (Exception e) {
+            logger.warn("Could not stop the Jetty server", e);
+        }
     }
 
 }

Modified: mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshIoHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshIoHandler.java?rev=949578&r1=949577&r2=949578&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshIoHandler.java (original)
+++ mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshIoHandler.java Sun May 30 21:14:13 2010
@@ -44,67 +44,73 @@ public class BoshIoHandler extends Abstr
 
     private ServerRuntimeContext serverRuntimeContext;
 
-    public void setServerRuntimeContext(ServerRuntimeContext serverRuntimeContext) {
+    public void setServerRuntimeContext(
+            ServerRuntimeContext serverRuntimeContext) {
         this.serverRuntimeContext = serverRuntimeContext;
     }
-    
-    public void handle(String target, Request baseRequest, 
-			HttpServletRequest request, HttpServletResponse response)
-			throws IOException, ServletException {
-    	
-    	if (request.getMethod().equals("GET") && request.getPathInfo().equals("/crossdomain.xml")) {
-    		// request for the cross-domain policy from Flash (e.g. flXHR)
-    		response.setContentType("text/xml");
-    		response.setStatus(HttpServletResponse.SC_OK);
-    		response.getWriter().println("<cross-domain-policy><site-control permitted-cross-domain-policies='all'/><allow-access-from domain='*'/><allow-http-request-headers-from domain='*' headers='*'/></cross-domain-policy>");
-    		((Request)request).setHandled(true);
-    		return;
-    	}
-    	
-    	if (!request.getMethod().equals("POST")) {
-    		// it should not reach here normally, but it can happen if the user explicitly makes a non-POST request (e.g. GET, DELETE, etc)
-    		response.setContentType("text/html");
-    		response.setStatus(HttpServletResponse.SC_OK);
-    		response.getWriter().println("<html>This is an XMPP BOSH connection manager, you need to use a compatible BOSH client to use its services!</html>");
-    		((Request)request).setHandled(true);
-    		return;
-    	}
-    	
-    	BufferedReader reader = request.getReader();
-    	
-    	char [] buf = new char[1024];
-    	StringBuilder sb = new StringBuilder();
-    	
-    	for (;;) {
-    		int n = reader.read(buf);
-    		if (n == -1) {
-    			break;
-    		}
-    		sb.append(buf, 0, n);
-    	}
-    	
-    	String body = sb.toString();
-    	logger.debug("BOSH CM received : {}", body);
-    	
-    	
-    	// test if this is the first request (kind of a hack - should be parsing XML)
-    	if (body.indexOf("sid=") == -1) {
-    		// initial request
-    		String sid = Long.toString(new Random().nextLong(), 16);
-    		response.setContentType("text/xml; charset=utf-8");
-    		response.setStatus(HttpServletResponse.SC_OK);
-    		response.getWriter().print("<body xmlns='http://jabber.org/protocol/httpbind' wait='60' inactivity='60' polling='5' requests='2' hold='1' maxpause='120' sid='");
-    		response.getWriter().print(sid);
-    		response.getWriter().print("' ver='1.6' from='vysper.org'/>");
-    		((Request)request).setHandled(true);
-    		return;
-    	}
-    	
-    	// session exists
-    	// not handled yet, TODO
-    	response.setContentType("text/xml; charset=utf-8");
-		response.setStatus(HttpServletResponse.SC_OK);
-    	((Request)request).setHandled(true);
+
+    public void handle(String target, Request baseRequest,
+            HttpServletRequest request, HttpServletResponse response)
+            throws IOException, ServletException {
+
+        if (request.getMethod().equals("GET")
+                && request.getPathInfo().equals("/crossdomain.xml")) {
+            // request for the cross-domain policy from Flash (e.g. flXHR)
+            response.setContentType("text/xml");
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.getWriter()
+                    .println(
+                            "<cross-domain-policy><site-control permitted-cross-domain-policies='all'/><allow-access-from domain='*'/><allow-http-request-headers-from domain='*' headers='*'/></cross-domain-policy>");
+            ((Request) request).setHandled(true);
+            return;
+        }
+
+        if (!request.getMethod().equals("POST")) {
+            // it should not reach here normally, but it can happen if the user explicitly makes a non-POST request (e.g. GET, DELETE, etc)
+            response.setContentType("text/html");
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.getWriter()
+                    .println(
+                            "<html>This is an XMPP BOSH connection manager, you need to use a compatible BOSH client to use its services!</html>");
+            ((Request) request).setHandled(true);
+            return;
+        }
+
+        BufferedReader reader = request.getReader();
+
+        char[] buf = new char[1024];
+        StringBuilder sb = new StringBuilder();
+
+        for (;;) {
+            int n = reader.read(buf);
+            if (n == -1) {
+                break;
+            }
+            sb.append(buf, 0, n);
+        }
+
+        String body = sb.toString();
+        logger.debug("BOSH CM received : {}", body);
+
+        // test if this is the first request (kind of a hack - should be parsing XML)
+        if (body.indexOf("sid=") == -1) {
+            // initial request
+            String sid = Long.toString(new Random().nextLong(), 16);
+            response.setContentType("text/xml; charset=utf-8");
+            response.setStatus(HttpServletResponse.SC_OK);
+            response.getWriter()
+                    .print("<body xmlns='http://jabber.org/protocol/httpbind' wait='60' inactivity='60' polling='5' requests='2' hold='1' maxpause='120' sid='");
+            response.getWriter().print(sid);
+            response.getWriter().print("' ver='1.6' from='vysper.org'/>");
+            ((Request) request).setHandled(true);
+            return;
+        }
+
+        // session exists
+        // not handled yet, TODO
+        response.setContentType("text/xml; charset=utf-8");
+        response.setStatus(HttpServletResponse.SC_OK);
+        ((Request) request).setHandled(true);
     }
 
 }

Modified: mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java?rev=949578&r1=949577&r2=949578&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java (original)
+++ mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java Sun May 30 21:14:13 2010
@@ -1,4 +1,3 @@
-package org.apache.vysper.xmpp.extension.xep0124;
 /*
  *  Licensed to the Apache Software Foundation (ASF) under one
  *  or more contributor license agreements.  See the NOTICE file
@@ -18,7 +17,7 @@ package org.apache.vysper.xmpp.extension
  *  under the License.
  *
  */
-
+package org.apache.vysper.xmpp.extension.xep0124;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -55,7 +54,8 @@ public class ServerMain {
      * 
      * @param args
      */
-    public static void main(String[] args) throws AccountCreationException, EntityFormatException {
+    public static void main(String[] args) throws AccountCreationException,
+            EntityFormatException {
 
         String addedModuleProperty = System.getProperty("vysper.add.module");
         List<Module> listOfModules = null;
@@ -68,15 +68,19 @@ public class ServerMain {
         //StorageProviderRegistry providerRegistry = new JcrStorageProviderRegistry();
         StorageProviderRegistry providerRegistry = new MemoryStorageProviderRegistry();
 
-        final AccountManagement accountManagement = (AccountManagement)providerRegistry.retrieve(AccountManagement.class);
+        final AccountManagement accountManagement = (AccountManagement) providerRegistry
+                .retrieve(AccountManagement.class);
 
-        if (!accountManagement.verifyAccountExists(EntityImpl.parse("user1@vysper.org"))) {
+        if (!accountManagement.verifyAccountExists(EntityImpl
+                .parse("user1@vysper.org"))) {
             accountManagement.addUser("user1@vysper.org", "password1");
         }
-        if (!accountManagement.verifyAccountExists(EntityImpl.parse("user2@vysper.org"))) {
+        if (!accountManagement.verifyAccountExists(EntityImpl
+                .parse("user2@vysper.org"))) {
             accountManagement.addUser("user2@vysper.org", "password1");
         }
-        if (!accountManagement.verifyAccountExists(EntityImpl.parse("user3@vysper.org"))) {
+        if (!accountManagement.verifyAccountExists(EntityImpl
+                .parse("user3@vysper.org"))) {
             accountManagement.addUser("user3@vysper.org", "password1");
         }
 
@@ -87,7 +91,9 @@ public class ServerMain {
         //server.addEndpoint(new StanzaSessionFactory());
         server.setStorageProviderRegistry(providerRegistry);
 
-        server.setTLSCertificateInfo(new File("src/main/config/bogus_mina_tls.cert"), "boguspw");
+        server.setTLSCertificateInfo(new File(
+                "../vysper-core/src/main/config/bogus_mina_tls.cert"),
+                "boguspw");
 
         try {
             server.start();
@@ -111,23 +117,26 @@ public class ServerMain {
 
     private static List<Module> createModuleInstances(String[] moduleClassNames) {
         List<Module> modules = new ArrayList<Module>();
-        
+
         for (String moduleClassName : moduleClassNames) {
             Class<Module> moduleClass;
             try {
-                moduleClass = (Class<Module>)Class.forName(moduleClassName);
+                moduleClass = (Class<Module>) Class.forName(moduleClassName);
             } catch (ClassCastException e) {
-                System.err.println("not a Vysper module class: " + moduleClassName);
+                System.err.println("not a Vysper module class: "
+                        + moduleClassName);
                 continue;
             } catch (ClassNotFoundException e) {
-                System.err.println("could not load module class " + moduleClassName);
+                System.err.println("could not load module class "
+                        + moduleClassName);
                 continue;
             }
             try {
                 Module module = moduleClass.newInstance();
                 modules.add(module);
             } catch (Exception e) {
-                System.err.println("failed to instantiate module class " + moduleClassName);
+                System.err.println("failed to instantiate module class "
+                        + moduleClassName);
                 continue;
             }
         }