[jboss-cvs] jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1 ...

Norman Richards norman.richards at jboss.com
Wed Nov 1 13:14:19 EST 2006


  User: nrichards
  Date: 06/11/01 13:14:19

  Added:       jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1       
                        JNDIMap.java JNDIMapMBean.java MyClass.java
                        MyClassMBean.java MySubclass.java
                        MySubclassMBean.java TestMySubclass.java
  Log:
  modified for j2ee guide
  
  Revision  Changes    Path
  1.1      date: 2006/11/01 18:14:19;  author: nrichards;  state: Exp;jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1/JNDIMap.java
  
  Index: JNDIMap.java
  ===================================================================
  package org.jboss.book.jmx.ex1;
  
  // The JNDIMap MBean implementation
  
  import java.util.HashMap;
  import javax.naming.InitialContext;
  import javax.naming.Name;
  import javax.naming.NamingException;
  import org.jboss.naming.NonSerializableFactory;
  
  /** An example MBean that implicitly implements the Service interface methods.
   This is version 1 as shown in Listing 2.4.
   */
  public class JNDIMap implements JNDIMapMBean
  {
     private String jndiName;
     private HashMap contextMap = new HashMap();
     private String[] keyValuePairs;
     private boolean started;
  
     public String getJndiName()
     {
        return jndiName;
     }
  
     public void setJndiName(String jndiName) throws NamingException
     {
        String oldName = this.jndiName;
        this.jndiName = jndiName;
        if (started)
        {
           unbind(oldName);
           try
           {
              rebind();
           }
           catch (Exception e)
           {
              NamingException ne = new
                 NamingException("Failed to update jndiName");
              ne.setRootCause(e);
              throw ne;
           }
        }
     }
  
     public String[] getInitialValues()
     {
        return keyValuePairs;
     }
  
     public void setInitialValues(String[] keyValuePairs)
     {
        if (keyValuePairs == null)
           keyValuePairs = new String[0];
        this.keyValuePairs = keyValuePairs;
        for (int n = 0; n < keyValuePairs.length; n += 2)
        {
           String key = keyValuePairs[n];
           String value = keyValuePairs[n + 1];
           contextMap.put(key, value);
        }
     }
  
     public void start() throws Exception
     {
        started = true;
        rebind();
     }
  
     public void stop()
     {
        started = false;
        unbind(jndiName);
     }
  
     private void rebind() throws NamingException
     {
        InitialContext rootCtx = new InitialContext();
        Name fullName = rootCtx.getNameParser("").parse(jndiName);
        System.out.println("fullName=" + fullName);
        NonSerializableFactory.rebind(fullName, contextMap, true);
     }
  
     private void unbind(String jndiName)
     {
        try
        {
           InitialContext rootCtx = new InitialContext();
           rootCtx.unbind(jndiName);
           NonSerializableFactory.unbind(jndiName);
        }
        catch (NamingException e)
        {
           e.printStackTrace();
        }
     }
  }
  
  
  
  1.1      date: 2006/11/01 18:14:19;  author: nrichards;  state: Exp;jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1/JNDIMapMBean.java
  
  Index: JNDIMapMBean.java
  ===================================================================
  package org.jboss.book.jmx.ex1;
  
  import javax.naming.NamingException;
  
  /** An example MBean that implicitly implements the Service interface methods.
   This is version 1 as shown in Listing 2.7.
   */
  public interface JNDIMapMBean
  {
     public String getJndiName();
     public void setJndiName(String jndiName) throws NamingException;
  
     public String[] getInitialValues();
     public void setInitialValues(String[] keyValuePairs);
  
     public void start() throws Exception;
     public void stop() throws Exception;
  }
  
  
  
  
  1.1      date: 2006/11/01 18:14:19;  author: nrichards;  state: Exp;jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1/MyClass.java
  
  Index: MyClass.java
  ===================================================================
  package org.jboss.book.jmx.ex1;
  
  /**
   * @author Scott.Stark at jboss.org
   * @version $Revision: 1.1 $
   */
  public class MyClass implements MyClassMBean
  {
     private Integer state = null;
     private String hidden = null;
  
     public Integer getState()
     {
        return state;
     }
  
     public void setState(Integer s)
     {
        state = s;
     }
  
     public String getHidden()
     {
        return hidden;
     }
  
     public void setHidden(String h)
     {
        hidden = h;
     }
  
     public void reset()
     {
        state = null;
        hidden = null;
     }
  }
  
  
  
  1.1      date: 2006/11/01 18:14:19;  author: nrichards;  state: Exp;jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1/MyClassMBean.java
  
  Index: MyClassMBean.java
  ===================================================================
  package org.jboss.book.jmx.ex1;
  
  /**
   * @author Scott.Stark at jboss.org
   * @version $Revision: 1.1 $
   */
  public interface MyClassMBean
  {
     public Integer getState();
     public void setState(Integer s);
     public void reset();
  }
  
  
  
  1.1      date: 2006/11/01 18:14:19;  author: nrichards;  state: Exp;jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1/MySubclass.java
  
  Index: MySubclass.java
  ===================================================================
  package org.jboss.book.jmx.ex1;
  
  /**
   * @author Scott.Stark at jboss.org
   * @version $Revision: 1.1 $
   */
  public class MySubclass extends MyClass
     implements MySubclassMBean
  {
  }
  
  
  
  1.1      date: 2006/11/01 18:14:19;  author: nrichards;  state: Exp;jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1/MySubclassMBean.java
  
  Index: MySubclassMBean.java
  ===================================================================
  package org.jboss.book.jmx.ex1;
  
  /**
   * @author Scott.Stark at jboss.org
   * @version $Revision: 1.1 $
   */
  public interface MySubclassMBean
  {
     public void reset();
  }
  
  
  
  1.1      date: 2006/11/01 18:14:19;  author: nrichards;  state: Exp;jboss-docs/jbossas/j2ee/examples/src/main/org/jboss/book/jmx/ex1/TestMySubclass.java
  
  Index: TestMySubclass.java
  ===================================================================
  package org.jboss.book.jmx.ex1;
  
  import javax.management.MBeanInfo;
  import javax.management.MBeanServer;
  import javax.management.MBeanServerFactory;
  import javax.management.ObjectName;
  import javax.management.MBeanAttributeInfo;
  import javax.management.MBeanOperationInfo;
  
  /**
   * @author Scott.Stark at jboss.org
   * @version $Revision: 1.1 $
   */
  public class TestMySubclass
  {
     public static void main(String[] args) throws Exception
     {
        MBeanServer server = MBeanServerFactory.createMBeanServer("chap2.ex1.test");
        MySubclass mbean = new MySubclass();
        ObjectName name = new ObjectName("chap2.ex1.test:name=TestMysubclass");
        System.out.println("Registering: "+name);
        server.registerMBean(mbean, name);
        MBeanInfo info = server.getMBeanInfo(name);
        MBeanAttributeInfo[] attrInfo = info.getAttributes();
        System.out.println("+++ Attributes("+attrInfo.length+"):");
        for(int a = 0; a < attrInfo.length; a ++)
           System.out.println("  "+attrInfo[a].getName());
        MBeanOperationInfo[] opInfo = info.getOperations();
        System.out.println("+++ Operations("+opInfo.length+"):");
        for(int n= 0; n < opInfo.length; n ++)
           System.out.println("  "+opInfo[n].getName());
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list