Look on WebLogic console as example

It basicly look like
        -Server1
                +EJB beans
                        
        -Server2
                +EJB beans
        
etc...
        per left  selction it show on the left one a window of properties
and enable to tab it for further view.
It also show summery of transcatiion and current EJB entitys instance
per selected EJB


> -----Original Message-----
> From: Rickard �berg [SMTP:[EMAIL PROTECTED]]
> Sent: Monday, July 24, 2000 9:40 AM
> To:   jBoss Developer
> Subject:      Re: [jBoss-Dev] jBoss Administration Tools
> 
> Hey
> 
> (let's keep this on jboss-dev for now)
> 
> Andreas Schaefer wrote:
> > - Within EJX I would create a Panel containing a vertical SplitPanel
> 
> Is this for a particular server? In that case I would suggest that you
> also do a separate window with a "server finder" that lists the
> available server. One should be able to add servers manually. Later on
> this could be changed to find servers automagically through Jini too.
> When one clicks on a server in the list the below panel would open up.
> 
> > - The left hand side of the SplitPanel contains a list of the found
> services
> >   within jBoss. The query has to be performed in order to get the list
> >   of services (or through properties the program can also during startup
> >   perform a certain query).
> 
> This should be done automagically.
> 
> > - The list is a Tree where I would suggest the following hirarchy
> >     - 1. jBoss Application
> >     - 2. Domains of services
> >     - 3. Services within its domain
> >     - 4. Attributes or Operations
> 
> What would the first level (1.) contain? Only a root?
> 
> > - The right hand side gives a more detailed with of the selected item
> within
> >   the list (like infos about the attribute (is type, read only or
> writable,
> > ...) or
> >   a list of the parameters of the operation)
> > - The user can changes the attributes if they are writable
> > - The user can invoke an operation with a list of paramters he/she can
> enter
> >   in a dialog
> > - The user can record and replay maintenace steps to ease repeative work
> > 
> > This week I will create a simple GUI with the Tree and the simple detail
> > panels
> > on the right hand side. But if you have already some comments or
> critiques
> > please let me know because then I can save time.
> 
> Sounds good to me. If you use the BeanContext and GUI components that
> are available in EJX you should be able to do this very fast. All the
> necessary code is already available, so you would only have to put it
> together really. Shouldn't take long at all.
> 
> > 2. Short introduction to JMX and our JMX-RMI Adaptor
> > =======================================
> > 
> > This is a short introduction to JMX for all of you who do not know JMX
> and
> > for me a way to see if I understand it (when I am wrong please correct
> me).
> > 
> > JMX is an architecture to make parts of an application or system
> manageable
> > from the outside of the application/system even when it is part of it.
> And
> > if the
> > user likes he/she can replace the management tool by another one like
> SNMP
> > (Simple network management protocol) client. This gives the user the
> > possiblity
> > to manage their environment in one tools (if desired) instead of
> learning
> > all the
> > different tools to manage all your applications.
> 
> Correct. 
> 
> > JMX architecture are divided roughly in five parts:
> > 1) Manage(able) Beans (or short MBeans)
> > 2) Manage Bean Server (or short MBeanServer)
> > 3) Adaptor
> 
> Which is a kind of MBean at the same time.
> 
> > 4) Connector Server
> 
> What is a Connector Server? Never saw that in the JMX spec.
> 
> > 3) Client
> 
> Or "management console".
> 
> > The client is seperated into two parts:
> > 1) Connector Client
> > 2) Management program
> > 
> > If a Java class becomes a MBean it can be managed from the outside. It
> > provides
> > the MBeanServer with the necessary information about itself:
> > - Service, Class etc.
> > - All attributes it will expose to the outside
> > - All operations it will expose to the outside
> > The MBeanServer collects the MBeans together and is the visible part to
> the
> > outside
> > world. The MBeanServer itself is a MBean also manageable by the client.
> 
> Correct.
> 
> > The Adaptor is a view for the MBeans to a given protocol. This protocol
> can
> > be
> > HTML or like in our case RMI. 
> 
> To be precise the protocol would be HTTP and the "client" HTML.
> 
> > The Adaptor is part of the
> > The Connector is an interface which allows the client to work the same
> way
> > on
> > different protocols. Therefore it is necessary to have an Connection on
> > Server and
> > Client side.
> 
> Not quite with you here. Can you explain further what you are referring
> to? An adaptor provides a means through which you can access the server,
> that much I agree on.
> 
> > For jBoss the outside view is the
> >     org.jboss.jmx.interface.JMXAdaptor
> > which is our RMI Adaptor supporting the RMI protocol. It allows a Java
> class
> > running
> > in a different JVM to access the jBoss services (MBeans) and manipulate
> > their attributes
> > and invoke operations on them.
> 
> Correct.
> 
> > Here is now an example Java class printing all the available services,
> its
> > attributes and
> > operations. When you want to run it do the following:
> > - add /lib/jmxri.jar, /lib/ext/jboss.jar,/lib/ext.jar and your local
> > directory to the classpath
> > - add /client/stop.jar to your classpath (it needs JMXAdaptor.class and
> > JMXAdaptorImpl_Stub.class)
> > - copy jndi.properties from /conf to your local directory
> > - compile this class
> > - add /client/jnp-client.jar to the classpath (!!)
> > - start jBoss if not already done (wait till it is completely loaded)
> > - let it run
> > 
> > Here is now the Java class (have
> > fun): -------------------------------------------
> > /*
> >  * jBoss, the OpenSource EJB server
> >  *
> >  * Distributable under GPL license.
> >  * See terms of license at gnu.org.
> >  */
> > 
> > import java.util.Collection;
> > import java.util.Iterator;
> > 
> > import javax.management.MBeanAttributeInfo;
> > import javax.management.MBeanInfo;
> > import javax.management.MBeanOperationInfo;
> > import javax.management.ObjectInstance;
> > import javax.naming.InitialContext;
> > 
> > import org.jboss.jmx.interfaces.JMXAdaptor;
> > 
> > /**
> >  *   <description>
> >  *
> >  *   @see <related>
> >  *   @author Andreas "Mad" Schaefer ([EMAIL PROTECTED])
> >  */
> > public class TestJmxClient
> > {
> >    // Constants -----------------------------------------------------
> > 
> >    // Attributes ----------------------------------------------------
> > 
> >    // Static --------------------------------------------------------
> >  public static void main(String[] args)
> >   throws Exception
> >  {
> >   System.out.println( "Testing JMX connection to server" );
> >   new TestJmxClient().listServices();
> >   System.out.println( "Testing JMX connection to server finished" );
> >  }
> > 
> >    // Constructors --------------------------------------------------
> > 
> >    // Public --------------------------------------------------------
> >    public void listServices()
> >   throws Exception
> >    {
> >     JMXAdaptor server = (JMXAdaptor) new InitialContext().lookup( "jmx"
> );
> >   try
> >   {
> >    Iterator i = server.getMBeanInfos().iterator();
> >    while( i.hasNext() ) {
> >     MBeanInfo info = (MBeanInfo) i.next();
> >     System.out.println( "MBean: " + info.getClassName() );
> >     MBeanAttributeInfo[] aInfos = info.getAttributes();
> >     for( int k = 0; k < aInfos.length; k++ ) {
> >      System.out.println( "\t" + k + ". Attribute: " +
> > aInfos[ k ].getName() );
> >     }
> >     MBeanOperationInfo[] oInfos = info.getOperations();
> >     for( int k = 0; k < oInfos.length; k++ ) {
> >      System.out.println( "\t" + k + ". Operation: " +
> > oInfos[ k ].getName() );
> >     }
> >    }
> >   } catch (Exception e)
> >   {
> >    System.err.println( e );
> >   }
> >    }
> > 
> >    // Protected -----------------------------------------------------
> > }
> 
> Yes, that's the basics of it.
> 
> Preferably, I would add something on top of the JMX/RMI adaptor that
> implements MBeanServer. That way the GUI can work on MBeanServer *only*
> and not care about what adaptor is used (now, is that cool or what?).
> Currently that is impossible, since the version of JMX we have provides
> MBeanServer as a class. The final version will have it as an interface,
> which will allow this.
> 
> /Rickard
> 
> -- 
> Rickard �berg
> 
> Email: [EMAIL PROTECTED]
> http://www.telkel.com
> http://www.jboss.org
> http://www.dreambean.com

Reply via email to