User: starksm 
  Date: 01/04/20 23:01:24

  Added:       src/main/test/jboss/naming TestExternalContext.java
                        TestExternalContextMBean.java
  Log:
  Tests of the ExternalContext mbean
  
  Revision  Changes    Path
  1.1                  jboss/src/main/test/jboss/naming/TestExternalContext.java
  
  Index: TestExternalContext.java
  ===================================================================
  package test.jboss.naming;
  
  import java.net.InetAddress;
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.Set;
  import javax.management.MBeanServer;
  import javax.management.ObjectInstance;
  import javax.management.ObjectName;
  import javax.management.RuntimeMBeanException;
  import javax.naming.Context;
  import javax.naming.InitialContext;
  import javax.naming.NamingEnumeration;
  import javax.naming.NamingException;
  
  import org.jboss.util.ServiceMBeanSupport;
  
  /** A test of the ExternalContext naming mbean. To test there needs to be
  one or more ExternalContex mbeans setup. An example filesystem context
  setup would be:
  
    <mbean code="org.jboss.naming.ExternalContext" 
name="DefaultDomain:service=ExternalContext,jndiName=external/fs/tmp">
      <attribute name="JndiName">external/fs/Scott</attribute>
      <attribute name="Properties">tmp.fs</attribute>
    </mbean>
  
  where tmp.fs is a Properties file containing:
  # JNDI properties for /Scott filesystem directory
  java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory
  java.naming.provider.url=file:/tmp
  
  @author [EMAIL PROTECTED]
  @version $Revision: 1.1 $
  */
  public class TestExternalContext extends ServiceMBeanSupport implements 
TestExternalContextMBean
  {
      private ObjectName[] contextNames;
  
      public String getName()
      {
          return "TestExternalContext";
      }
  
      public void startService() throws Exception
      {
          try
          {
              contextNames = null;
              ObjectName pattern = new ObjectName("*:service=ExternalContext,*");
              MBeanServer server = super.getServer();
              Set names = server.queryMBeans(pattern, null);
              Iterator iter = names.iterator();
              ArrayList tmp = new ArrayList();
              while( iter.hasNext() )
              {
                  ObjectInstance oi = (ObjectInstance) iter.next();
                  ObjectName name = oi.getObjectName();
                  System.out.println(name);
                  tmp.add(name);
              }
              if( tmp.size() > 0 )
              {
                  contextNames = new ObjectName[tmp.size()];
                  tmp.toArray(contextNames);
              }
          }
          catch(Exception x)
          {
              x.printStackTrace();
              if (x instanceof RuntimeMBeanException)
              {
                  ((RuntimeMBeanException)x).getTargetException().printStackTrace();
              }
          }
          testExternalContexts();
      }
  
      public void testExternalContexts() throws Exception
      {
          if( contextNames == null )
          {
              System.out.println("No ExternalContext names exist");
              return;
          }
  
          InitialContext iniCtx = new InitialContext();
          for(int n = 0; n < contextNames.length; n ++)
          {
              ObjectName name = contextNames[n];
              String jndiName = name.getKeyProperty("jndiName");
              if( jndiName == null )
              {
                  System.out.println("Skipping "+name+" as it has no jndiName 
property");
                  continue;
              }
              Context ctx = (Context) iniCtx.lookup(jndiName);
              System.out.println("+++ Listing for: "+jndiName+", "+ctx);
              list(ctx);
              ctx.close();
          }
          // Repeat the lookups to test for side-effects of closing the ctx
          for(int n = 0; n < contextNames.length; n ++)
          {
              ObjectName name = contextNames[n];
              String jndiName = name.getKeyProperty("jndiName");
              if( jndiName == null )
              {
                  System.out.println("Skipping "+name+" as it has no jndiName 
property");
                  continue;
              }
              Context ctx = (Context) iniCtx.lookup(jndiName);
              System.out.println("+++ Listing for: "+jndiName+", "+ctx);
              list(ctx);
              ctx.close();
          }
          
      }
  
      private void list(Context ctx) throws NamingException
      {
          NamingEnumeration enum = ctx.list("");
          while( enum.hasMore() )
              System.out.println(enum.next());
          enum.close();
      }    
  }
  
  
  
  1.1                  jboss/src/main/test/jboss/naming/TestExternalContextMBean.java
  
  Index: TestExternalContextMBean.java
  ===================================================================
  package test.jboss.naming;
  
  /** 
  
  @author [EMAIL PROTECTED]
  @version $Revision: 1.1 $
  */
  public interface TestExternalContextMBean extends org.jboss.util.ServiceMBean
  {
      public void testExternalContexts() throws Exception;
  }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to