[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting/samples/config/factories ...

Ron Sigal ron_sigal at yahoo.com
Mon Jul 24 01:46:16 EDT 2006


  User: rsigal  
  Date: 06/07/24 01:46:16

  Modified:    src/main/org/jboss/remoting/samples/config/factories  
                        FactoryConfigSample.java
                        FactoryConfigSSLSample.java
  Log:
  JBREM-521:  Added sample cases for configuring by passing xml document to Connector.
  
  Revision  Changes    Path
  1.2       +122 -1    JBossRemoting/src/main/org/jboss/remoting/samples/config/factories/FactoryConfigSample.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: FactoryConfigSample.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/samples/config/factories/FactoryConfigSample.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- FactoryConfigSample.java	23 Jul 2006 03:44:52 -0000	1.1
  +++ FactoryConfigSample.java	24 Jul 2006 05:46:16 -0000	1.2
  @@ -22,6 +22,7 @@
   
   package org.jboss.remoting.samples.config.factories;
   
  +import java.io.ByteArrayInputStream;
   import java.io.IOException;
   import java.net.InetAddress;
   import java.net.ServerSocket;
  @@ -32,6 +33,7 @@
   import javax.management.MBeanServer;
   import javax.net.ServerSocketFactory;
   import javax.net.SocketFactory;
  +import javax.xml.parsers.DocumentBuilderFactory;
   
   import junit.framework.TestCase;
   
  @@ -48,6 +50,7 @@
   import org.jboss.remoting.transport.ClientInvoker;
   import org.jboss.remoting.transport.Connector;
   import org.jboss.remoting.transport.PortUtil;
  +import org.w3c.dom.Document;
   
   /**
    * These methods illustrate configuring socket factories and server socket factories
  @@ -349,6 +352,124 @@
       *  <tr><td align="center"><b>side<td align="center"><b>factory<td><b>option</tr>
       *  <tr><td>server side<td align="center">server socket<td align="center">5</tr>
       *  <tr><td>server side<td align="center">socket       <td align="center">5</tr>
  +    *  <tr><td>client side<td align="center">server socket<td align="center">5</tr>
  +    *  <tr><td>client side<td align="center">socket       <td align="center">1</tr>
  +    * </table>
  +    */
  +   public void testFactoriesByPassingClassnameInXml()
  +   {
  +      try
  +      {
  +         /////////////////////////////////////
  +         /////    Set up server side.     //// 
  +         /////////////////////////////////////
  +         HashMap sconfig = new HashMap();
  +         
  +         // Make callback Client use remote invoker.
  +         sconfig.put(InvokerLocator.FORCE_REMOTE, "true");
  +           
  +         // Get Connector.
  +         int freeport = PortUtil.findFreePort(getHostName());
  +         InvokerLocator locator = new InvokerLocator(getTransport() + "://" + getHostName() + ":" + freeport);
  +         Connector connector = new Connector(sconfig);
  +         
  +         // Set xml configuration element.
  +         StringBuffer buf = new StringBuffer();
  +         buf.append("<?xml version=\"1.0\"?>\n");
  +         buf.append("<config>");
  +         buf.append(   "<invoker transport=\"" + getTransport() +"\">");
  +         buf.append(      "<attribute name=\"serverBindAddress\">" + getHostName() + "</attribute>");
  +         buf.append(      "<attribute name=\"serverBindPort\">" + freeport + "</attribute>");
  +         buf.append(      "<attribute name=\"serverSocketFactory\">" );
  +         buf.append(          getDefaultServerSocketFactoryClass().getName());
  +         buf.append(      "</attribute>");
  +         buf.append(      "<attribute name=\"socketFactory\">" );
  +         buf.append(         getDefaultSocketFactoryClass().getName());
  +         buf.append(      "</attribute>");
  +         buf.append(   "</invoker>");
  +         buf.append("</config>");
  +         
  +         ByteArrayInputStream bais = new ByteArrayInputStream(buf.toString().getBytes());
  +         Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(bais);
  +         connector.setConfiguration(xml.getDocumentElement());
  +         
  +         connector.create();
  +         connector.addInvocationHandler("sample", new SampleInvocationHandler());
  +         connector.start();
  +         
  +         
  +         /////////////////////////////////////
  +         /////    Set up client side.     //// 
  +         /////////////////////////////////////
  +         HashMap cconfig = new HashMap();
  +
  +         // Make Client use remote invoker.
  +         cconfig.put(InvokerLocator.FORCE_REMOTE, "true");
  +         
  +         // Create Client.
  +         Client client = new Client(locator, cconfig);
  +         
  +         // Set SocketFactory in Client.
  +         // Note. There is no provision for using xml configuration on client side.
  +         SocketFactory sf = getDefaultSocketFactory();
  +         client.setSocketFactory(sf);
  +         client.connect();
  +         System.out.println(getName() + ": " + client.invoke("test invoke()"));
  +         
  +         
  +         //////////////////////////////////////////////
  +         /////       Set up callback handling.     //// 
  +         //////////////////////////////////////////////
  +         
  +         // Get callback Connector.
  +         freeport = PortUtil.findFreePort(getHostName());
  +         InvokerLocator callbackLocator = new InvokerLocator(getTransport() + "://" + getHostName() + ":" + freeport);
  +         Connector callbackConnector = new Connector();
  +         
  +         // Set xml configuration element.
  +         buf = new StringBuffer();
  +         buf.append("<?xml version=\"1.0\"?>\n");
  +         buf.append("<config>");
  +         buf.append(   "<invoker transport=\"" + getTransport() +"\">");
  +         buf.append(      "<attribute name=\"serverBindAddress\">" + getHostName() + "</attribute>");
  +         buf.append(      "<attribute name=\"serverBindPort\">" + freeport + "</attribute>");
  +         buf.append(      "<attribute name=\"serverSocketFactory\">" );
  +         buf.append(         getDefaultCallbackServerSocketFactoryClass().getName());
  +         buf.append(      "</attribute>");
  +         buf.append(   "</invoker>");
  +         buf.append("</config>");
  +         bais = new ByteArrayInputStream(buf.toString().getBytes());
  +         xml = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(bais);
  +         callbackConnector.setConfiguration(xml.getDocumentElement());
  +         
  +         callbackConnector.create();
  +         callbackConnector.addInvocationHandler("sample", new SampleInvocationHandler());
  +         callbackConnector.start();
  +         
  +         // Add callback handler.
  +         CallbackHandler callbackHandler = new CallbackHandler();
  +         String callbackHandleObject = "myCallbackHandleObject";
  +         client.addListener(callbackHandler, callbackLocator, callbackHandleObject);
  +         
  +         client.disconnect();
  +         callbackConnector.stop();
  +         connector.stop();
  +      }
  +      catch (Throwable t)
  +      {
  +         log.error(t);
  +         t.printStackTrace();
  +         fail();
  +      }
  +   }
  +   
  +   
  +  /** This test illustrates the following set of configuration options:
  +    * <p>
  +    * <table border cellpadding="5">
  +    *  <tr><td align="center"><b>side<td align="center"><b>factory<td><b>option</tr>
  +    *  <tr><td>server side<td align="center">server socket<td align="center">7</tr>
  +    *  <tr><td>server side<td align="center">socket       <td align="center">7</tr>
       *  <tr><td>client side<td align="center">server socket<td align="center">4</tr>
       *  <tr><td>client side<td align="center">socket       <td align="center">4</tr>
       * </table>
  
  
  
  1.2       +117 -4    JBossRemoting/src/main/org/jboss/remoting/samples/config/factories/FactoryConfigSSLSample.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: FactoryConfigSSLSample.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/samples/config/factories/FactoryConfigSSLSample.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- FactoryConfigSSLSample.java	23 Jul 2006 03:44:52 -0000	1.1
  +++ FactoryConfigSSLSample.java	24 Jul 2006 05:46:16 -0000	1.2
  @@ -21,6 +21,7 @@
    */
   package org.jboss.remoting.samples.config.factories;
   
  +import java.io.ByteArrayInputStream;
   import java.io.File;
   import java.util.HashMap;
   
  @@ -29,6 +30,7 @@
   import javax.management.ObjectName;
   import javax.net.ServerSocketFactory;
   import javax.net.SocketFactory;
  +import javax.xml.parsers.DocumentBuilderFactory;
   
   import junit.framework.TestCase;
   
  @@ -37,11 +39,13 @@
   import org.jboss.remoting.InvokerLocator;
   import org.jboss.remoting.ServerInvoker;
   import org.jboss.remoting.samples.config.factories.FactoryConfigSample.CallbackHandler;
  +import org.jboss.remoting.samples.config.factories.FactoryConfigSample.SampleInvocationHandler;
   import org.jboss.remoting.security.SSLServerSocketFactoryService;
   import org.jboss.remoting.security.SSLSocketBuilder;
   import org.jboss.remoting.security.SSLSocketFactoryService;
   import org.jboss.remoting.transport.Connector;
   import org.jboss.remoting.transport.PortUtil;
  +import org.w3c.dom.Document;
   
   /**
    * These methods illustrate configuring socket factories and server socket factories
  @@ -70,6 +74,7 @@
      private static Logger log = Logger.getLogger(FactoryConfigSSLSample.class);
      
      
  +   
      /** This test illustrates the following set of configuration options:
       * <p>
       * <table border cellpadding="5">
  @@ -79,6 +84,114 @@
       *  <tr><td>client side<td align="center">server socket<td align="center">1</tr>
       *  <tr><td>client side<td align="center">socket       <td align="center">1</tr>
       * </table>
  +    */
  +   public void testFactoriesByPassingMBeanInXml()
  +   {
  +      try
  +      {
  +         /////////////////////////////////////
  +         /////    Set up server side.     //// 
  +         /////////////////////////////////////
  +         HashMap sconfig = new HashMap();
  +         
  +         // Make callback Client use remote invoker.
  +         sconfig.put(InvokerLocator.FORCE_REMOTE, "true");
  +           
  +         // Create ServerSocketFactory MBean.
  +         ServerSocketFactory service = getDefaultServerSocketFactory();
  +         String serverSocketFactoryName = "jboss:type=serversocketfactory";
  +         ObjectName objName = new ObjectName(serverSocketFactoryName);
  +         MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
  +         mbeanServer.registerMBean(service, objName);
  +         
  +         // Get Connector.
  +         int freeport = PortUtil.findFreePort(getHostName());
  +         InvokerLocator locator = new InvokerLocator(getTransport() + "://" + getHostName() + ":" + freeport);
  +         Connector connector = new Connector(sconfig);
  +         mbeanServer.registerMBean(connector, new ObjectName("test:type=connector"));
  +         
  +         // Set xml configuration element.
  +         StringBuffer buf = new StringBuffer();
  +         buf.append("<?xml version=\"1.0\"?>\n");
  +         buf.append("<config>");
  +         buf.append(   "<invoker transport=\"" + getTransport() +"\">");
  +         buf.append(      "<attribute name=\"serverBindAddress\">" + getHostName() + "</attribute>");
  +         buf.append(      "<attribute name=\"serverBindPort\">" + freeport + "</attribute>");
  +         buf.append(      "<attribute name=\"serverSocketFactory\">" );
  +         buf.append(          serverSocketFactoryName);
  +         buf.append(      "</attribute>");
  +         buf.append(   "</invoker>");
  +         buf.append("</config>");
  +         ByteArrayInputStream bais = new ByteArrayInputStream(buf.toString().getBytes());
  +         Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(bais);
  +         connector.setConfiguration(xml.getDocumentElement());
  +         
  +         connector.create();
  +         connector.addInvocationHandler("sample", new SampleInvocationHandler());
  +         connector.start();
  +         
  +         
  +         /////////////////////////////////////
  +         /////    Set up client side.     //// 
  +         /////////////////////////////////////
  +         HashMap cconfig = new HashMap();
  +
  +         // Make Client use remote invoker.
  +         cconfig.put(InvokerLocator.FORCE_REMOTE, "true");
  +         
  +         // Create Client.
  +         Client client = new Client(locator, cconfig);
  +         
  +         // Set SocketFactory in Client.
  +         // Note. There is no provision for using xml configuration on client side.
  +         SocketFactory sf = getDefaultSocketFactory();
  +         client.setSocketFactory(sf);
  +         client.connect();
  +         System.out.println(getName() + ": " + client.invoke("test invoke()"));
  +
  +         
  +         //////////////////////////////////////////////
  +         /////       Set up callback handling.     //// 
  +         //////////////////////////////////////////////
  +
  +         // Start callback Connector.
  +         // Note: there is no provision for using MBeanServer on client side.
  +         freeport = PortUtil.findFreePort(getHostName());
  +         InvokerLocator callbackLocator = new InvokerLocator(getTransport() + "://" + getHostName() + ":" + freeport);
  +         Connector callbackConnector = new Connector(callbackLocator.getLocatorURI());
  +         ServerSocketFactory ssf = getDefaultCallbackServerSocketFactory();
  +         callbackConnector.setServerSocketFactory(ssf);
  +         callbackConnector.create();
  +         callbackConnector.addInvocationHandler("sample", new FactoryConfigSample.SampleInvocationHandler());
  +         callbackConnector.start();
  +         
  +         // Add callback handler.
  +         CallbackHandler callbackHandler = new FactoryConfigSample.CallbackHandler();
  +         String callbackHandleObject = "myCallbackHandleObject";
  +         client.addListener(callbackHandler, callbackLocator, callbackHandleObject);
  +         
  +         client.disconnect();
  +         callbackConnector.stop();
  +         connector.stop();
  +      }
  +      catch (Throwable t)
  +      {
  +         log.error(t);
  +         t.printStackTrace();
  +         fail();
  +      }
  +   }
  +   
  +   
  +   /** This test illustrates the following set of configuration options:
  +    * <p>
  +    * <table border cellpadding="5">
  +    *  <tr><td align="center"><b>side<td align="center"><b>factory<td><b>option</tr>
  +    *  <tr><td>server side<td align="center">server socket<td align="center">6</tr>
  +    *  <tr><td>server side<td align="center">socket       <td align="center">6</tr>
  +    *  <tr><td>client side<td align="center">server socket<td align="center">1</tr>
  +    *  <tr><td>client side<td align="center">socket       <td align="center">1</tr>
  +    * </table>
       * <p>
       * <b>Note.</b>  There is no provision for using an <code>MBeanServer</code> on
       * the client side.  
  @@ -169,8 +282,8 @@
       * <p>
       * <table border cellpadding="5">
       *  <tr><td align="center"><b>side<td align="center"><b>factory<td><b>option</tr>
  -    *  <tr><td>server side<td align="center">server socket<td align="center">6</tr>
  -    *  <tr><td>server side<td align="center">socket       <td align="center">6</tr>
  +    *  <tr><td>server side<td align="center">server socket<td align="center">8</tr>
  +    *  <tr><td>server side<td align="center">socket       <td align="center">8</tr>
       *  <tr><td>client side<td align="center">server socket<td align="center">5</tr>
       *  <tr><td>client side<td align="center">socket       <td align="center">5</tr>
       * </table>
  @@ -266,8 +379,8 @@
       * <p>
       * <table border cellpadding="5">
       *  <tr><td align="center"><b>side<td align="center"><b>factory<td><b>option</tr>
  -    *  <tr><td>server side<td align="center">server socket<td align="center">7</tr>
  -    *  <tr><td>server side<td align="center">socket       <td align="center">7</tr>
  +    *  <tr><td>server side<td align="center">server socket<td align="center">9</tr>
  +    *  <tr><td>server side<td align="center">socket       <td align="center">9</tr>
       *  <tr><td>client side<td align="center">server socket<td align="center">6</tr>
       *  <tr><td>client side<td align="center">socket       <td align="center">6</tr>
       * </table>
  
  
  



More information about the jboss-cvs-commits mailing list