User: schaefera
Date: 01/12/08 21:01:43
Modified: src/main/org/jboss/management/j2ee JDBC.java
JDBCDataSource.java
Added: src/main/org/jboss/management/j2ee JDBCDataSourceMBean.java
JDBCDriver.java JDBCDriverMBean.java JDBCMBean.java
Removed: src/main/org/jboss/management/j2ee JDBCConnection.java
JDBCConnectionPool.java
Log:
Added Notification Transport to JSR-77 which works similar to EJB-Connector
but with the tweak of JSR-77 interface.
Added the adjusted JDBC JSR-77 shadow objects.
Added JSR-77 to the Connector Factory enabling JSR-77 to start and stop
Datasources.
Added a testsuite for JSR-77 which tests the basic stuff inclusive the
notification delivery.
Revision Changes Path
1.4 +281 -30 jboss/src/main/org/jboss/management/j2ee/JDBC.java
Index: JDBC.java
===================================================================
RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/management/j2ee/JDBC.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JDBC.java 2001/11/27 06:15:26 1.3
+++ JDBC.java 2001/12/09 05:01:43 1.4
@@ -6,68 +6,319 @@
*/
package org.jboss.management.j2ee;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.management.AttributeChangeNotification;
+import javax.management.JMException;
import javax.management.MalformedObjectNameException;
+import javax.management.MBeanServer;
+import javax.management.Notification;
+import javax.management.NotificationListener;
import javax.management.ObjectName;
-import javax.management.j2ee.JDBCConnection;
+import org.jboss.logging.Logger;
+import org.jboss.system.ServiceMBean;
/**
-* @author Marc Fleury
-**/
+ * Root class of the JBoss JSR-77 implementation of
+ * {@link javax.management.j2ee.JDBC JDBC}.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Andreas Schaefer</a>.
+ * @version $Revision: 1.4 $
+ *
+ * <p><b>Revisions:</b>
+ *
+ * <p><b>20011126 Andreas Schaefer:</b>
+ * <ul>
+ * <li> Creation
+ * </ul>
+ **/
public class JDBC
extends J2EEResource
- implements javax.management.j2ee.JDBC
+ implements JDBCMBean
{
- // -------------------------------------------------------------------------
- // Members
- // -------------------------------------------------------------------------
-
- private JDBCConnection[] mConnections;
-
- // -------------------------------------------------------------------------
- // Constructors
- // -------------------------------------------------------------------------
-
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private long mStartTime = -1;
+ private int mState = ServiceMBean.STOPPED;
+ private ObjectName mService;
+
+ private List mDatasources = new ArrayList();
+
+ // Static --------------------------------------------------------
+
+ private static final String[] sTypes = new String[] {
+ "j2ee.object.created",
+ "j2ee.object.deleted",
+ "state.stopped",
+ "state.stopping",
+ "state.starting",
+ "state.running",
+ "state.failed"
+ };
+
+ public static ObjectName create( MBeanServer pServer, String pName ) {
+ Logger lLog = Logger.getLogger( JNDI.class );
+ ObjectName lServer = null;
+ try {
+ lServer = (ObjectName) pServer.queryNames(
+ new ObjectName( J2EEManagedObject.getDomainName() +
":type=J2EEServer,*" ),
+ null
+ ).iterator().next();
+ }
+ catch( Exception e ) {
+ lLog.error( "Could not create JSR-77 JDBC Manager", e );
+ return null;
+ }
+ try {
+ // Now create the JNDI Representant
+ return pServer.createMBean(
+ "org.jboss.management.j2ee.JDBC",
+ null,
+ new Object[] {
+ pName,
+ lServer
+ },
+ new String[] {
+ String.class.getName(),
+ ObjectName.class.getName()
+ }
+ ).getObjectName();
+ }
+ catch( Exception e ) {
+ lLog.error( "Could not create JSR-77 JDBC Manager", e );
+ return null;
+ }
+ }
+
+ public static void destroy( MBeanServer pServer, String pName ) {
+ Logger lLog = Logger.getLogger( JNDI.class );
+ try {
+ // Find the Object to be destroyed
+ ObjectName lSearch = new ObjectName(
+ J2EEManagedObject.getDomainName() + ":type=JDBC,name=" + pName + ",*"
+ );
+ Set lNames = pServer.queryNames(
+ lSearch,
+ null
+ );
+ if( !lNames.isEmpty() ) {
+ ObjectName lJDBC = (ObjectName) lNames.iterator().next();
+ // Now check if the JDBC Manager does not contains another DataSources
+ ObjectName[] lDataSources = (ObjectName[]) pServer.getAttribute(
+ lJDBC,
+ "DataSources"
+ );
+ if( lDataSources.length == 0 ) {
+ // Remove it because it does not reference any JDBC DataSources
+ pServer.unregisterMBean( lJDBC );
+ }
+ }
+ }
+ catch( Exception e ) {
+ lLog.error( "Could not destroy JSR-77 JDBC Manager", e );
+ }
+ }
+
+ // Constructors --------------------------------------------------
+
/**
* @param pName Name of the JDBC
*
* @throws InvalidParameterException If list of nodes or ports was null or empty
**/
- public JDBC( String pName, ObjectName pServer, JDBCConnection[] pConnections )
+ public JDBC( String pName, ObjectName pServer )
throws
MalformedObjectNameException,
InvalidParentException
{
super( "JDBC", pName, pServer );
- if( pConnections == null ) {
- mConnections = new JDBCConnection[ 0 ];
- }
- else {
- mConnections = pConnections;
+ }
+
+ // Public --------------------------------------------------------
+
+ // javax.managment.j2ee.EventProvider implementation -------------
+
+ public String[] getTypes() {
+ return sTypes;
+ }
+
+ public String getType( int pIndex ) {
+ if( pIndex >= 0 && pIndex < sTypes.length ) {
+ return sTypes[ pIndex ];
+ } else {
+ return null;
}
}
+
+ // javax.management.j2ee.StateManageable implementation ----------
+
+ public long getStartTime() {
+ return mStartTime;
+ }
+
+ public int getState() {
+ return mState;
+ }
- // -------------------------------------------------------------------------
- // Properties (Getters/Setters)
- // -------------------------------------------------------------------------
+ public void startService() {
+ mState = ServiceMBean.STARTING;
+ sendNotification(
+ new Notification(
+ sTypes[ 4 ],
+ getName(),
+ 1,
+ System.currentTimeMillis(),
+ "JDBC Manager starting"
+ )
+ );
+ mState = ServiceMBean.STARTED;
+ sendNotification(
+ new Notification(
+ sTypes[ 5 ],
+ getName(),
+ 2,
+ System.currentTimeMillis(),
+ "JDBC Manager started"
+ )
+ );
+ }
- public JDBCConnection[] getJDBCConnections() {
- return mConnections;
+ public void startRecursive() {
+ // No recursive start here
+ start();
+ Iterator i = mDatasources.iterator();
+ ObjectName lDataSource = null;
+ while( i.hasNext() ) {
+ lDataSource = (ObjectName) i.next();
+ try {
+ getServer().invoke(
+ lDataSource,
+ "start",
+ new Object[] {},
+ new String[] {}
+ );
+ }
+ catch( JMException jme ) {
+ getLog().error( "Could not stop JSR-77 JDBC-DataSource: " +
lDataSource, jme );
+ }
+ }
+ }
+
+ public void stopService() {
+ Iterator i = mDatasources.iterator();
+ while( i.hasNext() ) {
+ ObjectName lDataSource = (ObjectName) i.next();
+ try {
+ getServer().invoke(
+ lDataSource,
+ "stop",
+ new Object[] {},
+ new String[] {}
+ );
+ }
+ catch( JMException jme ) {
+ getLog().error( "Could not stop JSR-77 JDBC-DataSource: " +
lDataSource, jme );
+ }
+ }
+ mState = ServiceMBean.STOPPING;
+ sendNotification(
+ new Notification(
+ sTypes[ 2 ],
+ getName(),
+ 1,
+ System.currentTimeMillis(),
+ "JDBC Manager stopping"
+ )
+ );
+ mState = ServiceMBean.STOPPED;
+ sendNotification(
+ new Notification(
+ sTypes[ 3 ],
+ getName(),
+ 2,
+ System.currentTimeMillis(),
+ "JDBC Manager stopped"
+ )
+ );
+ }
+
+ // org.jboss.ServiceMBean overrides ------------------------------------
+
+ public void postRegister( Boolean pRegisterationDone ) {
+ super.postRegister( pRegisterationDone );
+ sendNotification(
+ new J2EEManagementEvent(
+ sTypes[ 0 ],
+ getName(),
+ 1,
+ System.currentTimeMillis(),
+ "JDBC Resource created"
+ ).getNotification()
+ );
+ }
+
+ public void preDeregister() {
+ sendNotification(
+ new J2EEManagementEvent(
+ sTypes[ 1 ],
+ getName(),
+ 1,
+ System.currentTimeMillis(),
+ "JDBC Resource deleted"
+ ).getNotification()
+ );
}
- public JDBCConnection getJDBCConnection( int pIndex ) {
- if( pIndex >= 0 && pIndex < mConnections.length ) {
- return mConnections[ pIndex ];
+ // javax.management.j2ee.JDBC implementation ---------------------
+
+ public ObjectName[] getDataSources() {
+ return (ObjectName[]) mDatasources.toArray( new ObjectName[
mDatasources.size() ] );
+ }
+
+ public ObjectName getDataSource( int pIndex ) {
+ if( pIndex >= 0 && pIndex < mDatasources.size() ) {
+ return (ObjectName) mDatasources.get( pIndex );
}
else {
return null;
}
}
+ // J2EEManagedObjectMBean implementation -------------------------
+
+ public void addChild( ObjectName pChild ) {
+ String lType = J2EEManagedObject.getType( pChild );
+ if( "JDBCDataSource".equals( lType ) ) {
+ mDatasources.add( pChild );
+ }
+ }
+
+ public void removeChild( ObjectName pChild ) {
+ String lType = J2EEManagedObject.getType( pChild );
+ if( "JDBCDataSource".equals( lType ) ) {
+ mDatasources.remove( pChild );
+ }
+ }
+
+ // java.lang.Object overrides ------------------------------------
+
public String toString() {
- return "JDBC[ " + super.toString() +
- ", JDBC Connection: " + java.util.Arrays.asList( getJDBCConnections() ) +
+ return "JDBC { " + super.toString() + " } [ " +
+ "Datasources: " + mDatasources +
" ]";
}
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
}
1.4 +282 -15 jboss/src/main/org/jboss/management/j2ee/JDBCDataSource.java
Index: JDBCDataSource.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/management/j2ee/JDBCDataSource.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JDBCDataSource.java 2001/11/27 06:15:26 1.3
+++ JDBCDataSource.java 2001/12/09 05:01:43 1.4
@@ -6,15 +6,25 @@
*/
package org.jboss.management.j2ee;
+import java.util.Set;
+
+import javax.management.AttributeChangeNotification;
+import javax.management.JMException;
import javax.management.MalformedObjectNameException;
+import javax.management.MBeanServer;
+import javax.management.Notification;
+import javax.management.NotificationListener;
import javax.management.ObjectName;
+import org.jboss.logging.Logger;
+import org.jboss.system.ServiceMBean;
+
/**
* Root class of the JBoss JSR-77 implementation of
* {@link javax.management.j2ee.JDBCDataSource JDBCDataSource}.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Andreas Schaefer</a>.
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*
* <p><b>Revisions:</b>
*
@@ -22,39 +32,296 @@
* <ul>
* <li> Adjustments to the JBoss Guidelines
* </ul>
+ * <p><b>20011206 Andreas Schaefer:</b>
+ * <ul>
+ * <li> Finishing first real implementation
+ * </ul>
**/
public class JDBCDataSource
extends J2EEManagedObject
- implements javax.management.j2ee.JDBCDataSource
+ implements JDBCDataSourceMBean
{
- // -------------------------------------------------------------------------
- // Members
- // -------------------------------------------------------------------------
-
- // -------------------------------------------------------------------------
- // Constructors
- // -------------------------------------------------------------------------
-
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private long mStartTime = -1;
+ private int mState = ServiceMBean.STOPPED;
+ private ObjectName mService;
+
+ // Static --------------------------------------------------------
+
+ private static final String[] sTypes = new String[] {
+ "j2ee.object.created",
+ "j2ee.object.deleted",
+ "state.stopped",
+ "state.stopping",
+ "state.starting",
+ "state.running",
+ "state.failed"
+ };
+
+ public static ObjectName create( MBeanServer pServer, String pName, ObjectName
pService ) {
+ Logger lLog = Logger.getLogger( JNDI.class );
+ ObjectName lServer = null;
+ try {
+ lServer = (ObjectName) pServer.queryNames(
+ new ObjectName( J2EEManagedObject.getDomainName() +
":type=J2EEServer,*" ),
+ null
+ ).iterator().next();
+ }
+ catch( Exception e ) {
+ lLog.error( "Could not locate JSR-77 Server: " + pName, e );
+ // Return because without the JDBC manager go on does not work
+ return null;
+ }
+ // First create its parent the JDBC resource
+ ObjectName lJDBC = null;
+ try {
+ // Check if the JDBC Manager exists and if not create one
+ Set lNames = pServer.queryNames(
+ new ObjectName( J2EEManagedObject.getDomainName() + ":type=JDBC,*" ),
+ null
+ );
+ if( lNames.isEmpty() ) {
+ // Now create the JDBC Manager
+ lJDBC = JDBC.create( pServer, "JDBC" );
+ } else {
+ lJDBC = (ObjectName) lNames.iterator().next();
+ }
+ }
+ catch( Exception e ) {
+ lLog.error( "Could not create JSR-77 JDBC Manager", e );
+ // Return because without the JDBC manager go on does not work
+ return null;
+ }
+
+ try {
+ //AS ToDo: Replace any ':' by '~' do avoid ObjectName conflicts for now
+ //AS FixMe: look for a solution
+ pName = pName.replace( ':', '~' );
+ // Now create the JNDI Representant
+ return pServer.createMBean(
+ "org.jboss.management.j2ee.JDBCDataSource",
+ null,
+ new Object[] {
+ pName,
+ lJDBC,
+ pService
+ },
+ new String[] {
+ String.class.getName(),
+ ObjectName.class.getName(),
+ ObjectName.class.getName()
+ }
+ ).getObjectName();
+ }
+ catch( Exception e ) {
+ lLog.error( "Could not create JSR-77 JDBC DataSource: " + pName, e );
+ return null;
+ }
+ }
+
+ public static void destroy( MBeanServer pServer, String pName ) {
+ Logger lLog = Logger.getLogger( JNDI.class );
+ try {
+ // Find the Object to be destroyed
+ ObjectName lSearch = new ObjectName(
+ J2EEManagedObject.getDomainName() + ":type=JDBCDataSource,name=" +
pName + ",*"
+ );
+ ObjectName lJNDI = (ObjectName) pServer.queryNames(
+ lSearch,
+ null
+ ).iterator().next();
+ // Now remove the J2EEApplication
+ pServer.unregisterMBean( lJNDI );
+ // Now let us try to destroy the JDBC Manager
+ JDBC.destroy( pServer, "JDBC" );
+ }
+ catch( Exception e ) {
+ lLog.error( "Could not destroy JSR-77 JDBC DataSource: " + pName, e );
+ }
+ }
+
+ // Constructors --------------------------------------------------
+
/**
* @param pName Name of the JDBCDataSource
*
* @throws InvalidParameterException If list of nodes or ports was null or empty
**/
- public JDBCDataSource( String pName, ObjectName pServer )
+ public JDBCDataSource( String pName, ObjectName pServer, ObjectName pService )
throws
MalformedObjectNameException,
InvalidParentException
{
super( "JDBCDataSource", pName, pServer );
+ mService = pService;
+ }
+
+ // Public --------------------------------------------------------
+
+ // javax.managment.j2ee.EventProvider implementation -------------
+
+ public String[] getTypes() {
+ return sTypes;
+ }
+
+ public String getType( int pIndex ) {
+ if( pIndex >= 0 && pIndex < sTypes.length ) {
+ return sTypes[ pIndex ];
+ } else {
+ return null;
+ }
}
+
+ // javax.management.j2ee.StateManageable implementation ----------
+
+ public long getStartTime() {
+ return mStartTime;
+ }
+
+ public int getState() {
+ return mState;
+ }
- // -------------------------------------------------------------------------
- // Properties (Getters/Setters)
- // -------------------------------------------------------------------------
+ public void startService() {
+ try {
+ getServer().invoke(
+ mService,
+ "start",
+ new Object[] {},
+ new String[] {}
+ );
+ }
+ catch( JMException jme ) {
+ //AS ToDo: later on we have to define what happens when service could not
be started
+ jme.printStackTrace();
+ }
+ }
+ public void startRecursive() {
+ // No recursive start here
+ try {
+ start();
+ }
+ catch( Exception e ) {
+ getLog().error( "start failed", e );
+ }
+ }
+
+ public void stopService() {
+ try {
+ getServer().invoke(
+ mService,
+ "stop",
+ new Object[] {},
+ new String[] {}
+ );
+ }
+ catch( JMException jme ) {
+ //AS ToDo: later on we have to define what happens when service could not
be started
+ jme.printStackTrace();
+ }
+ }
+
+ // org.jboss.ServiceMBean overrides ------------------------------------
+
+ public void postRegister( Boolean pRegisterationDone ) {
+ super.postRegister( pRegisterationDone );
+ // If set then register for its events
+ try {
+ getServer().addNotificationListener( mService, new Listener(), null, null
);
+ }
+ catch( JMException jme ) {
+ //AS ToDo: later on we have to define what happens when service is null or
+ //AS ToDo: not found.
+ jme.printStackTrace();
+ }
+ sendNotification(
+ new J2EEManagementEvent(
+ sTypes[ 0 ],
+ getName(),
+ 1,
+ System.currentTimeMillis(),
+ "JDBC DataSource Resource created"
+ ).getNotification()
+ );
+ }
+
+ public void preDeregister() {
+ getLog().info( "JDBCDataSource.preDeregister(): " + getName() );
+ sendNotification(
+ new J2EEManagementEvent(
+ sTypes[ 1 ],
+ getName(),
+ 1,
+ System.currentTimeMillis(),
+ "JDBC DataSource Resource deleted"
+ ).getNotification()
+ );
+ }
+
+ // ServiceMBeanSupport overrides ---------------------------------
+
+ /**
+ * This method is only overwriten because to catch the exception
+ * which is not specified in {@link javax.management.j2ee.StateManageable
+ * StateManageable} interface.
+ **/
+ public void start()
+ {
+ try {
+ super.start();
+ }
+ catch( Exception e ) {
+ getLog().error( "start failed", e );
+ }
+ }
+
+ // java.lang.Object overrides ------------------------------------
+
public String toString() {
- return "JDBCDatasource[ " + super.toString() +
+ return "JDBCDatasource { " + super.toString() + " } [ " +
" ]";
}
-
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+
+ private class Listener implements NotificationListener {
+
+ public void handleNotification( Notification pNotification, Object pHandback )
+ {
+ if( pNotification instanceof AttributeChangeNotification ) {
+ AttributeChangeNotification lChange = (AttributeChangeNotification)
pNotification;
+ if( "State".equals( lChange.getAttributeName() ) )
+ {
+ mState = ( (Integer) lChange.getNewValue() ).intValue();
+ if( mState == ServiceMBean.STARTED ) {
+ mStartTime = lChange.getTimeStamp();
+ } else {
+ mStartTime = -1;
+ }
+ // Now send the event to the JSR-77 listeners
+ sendNotification(
+ new Notification(
+ sTypes[ getState() + 2 ],
+ getName(),
+ 1,
+ System.currentTimeMillis(),
+ "State changed"
+ )
+ );
+ }
+ }
+ }
+
+ }
+
}
1.1
jboss/src/main/org/jboss/management/j2ee/JDBCDataSourceMBean.java
Index: JDBCDataSourceMBean.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.management.j2ee;
import javax.management.j2ee.JDBCDataSource;
import javax.management.j2ee.StateManageable;
/**
* MBean Mangement Inteface for {@link org.jboss.management.j2ee.JDBCDataSource
* JDBCDataSource}.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Andreas Schaefer</a>.
* @version $Revision: 1.1 $
*
* <p><b>Revisions:</b>
*
* <p><b>20011206 Andreas Schaefer:</b>
* <ul>
* <li> Creation
* </ul>
**/
public interface JDBCDataSourceMBean
extends JDBCDataSource, StateManageable, J2EEManagedObjectMBean
{
}
1.1 jboss/src/main/org/jboss/management/j2ee/JDBCDriver.java
Index: JDBCDriver.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.management.j2ee;
import javax.management.MalformedObjectNameException;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.jboss.logging.Logger;
/**
* Root class of the JBoss JSR-77 implementation of
* {@link javax.management.j2ee.JDBCDataSource JDBCDataSource}.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Andreas Schaefer</a>.
* @version $Revision: 1.1 $
*
* <p><b>Revisions:</b>
*
* <p><b>20011126 Andreas Schaefer:</b>
* <ul>
* <li> Adjustments to the JBoss Guidelines
* </ul>
* <p><b>20011206 Andreas Schaefer:</b>
* <ul>
* <li> Finishing first real implementation
* </ul>
**/
public class JDBCDriver
extends J2EEManagedObject
implements JDBCDriverMBean
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
// Static --------------------------------------------------------
public static ObjectName create( MBeanServer pServer, String pName, ObjectName
pService ) {
Logger lLog = Logger.getLogger( JNDI.class );
ObjectName lServer = null;
try {
lServer = (ObjectName) pServer.queryNames(
new ObjectName( J2EEManagedObject.getDomainName() +
":type=J2EEServer,*" ),
null
).iterator().next();
}
catch( Exception e ) {
//AS lLog.error( "Could not create JSR-77 JNDI: " + pName, e );
return null;
}
try {
// Now create the JNDI Representant
return pServer.createMBean(
"org.jboss.management.j2ee.JDBCDriver",
null,
new Object[] {
pName,
lServer
},
new String[] {
String.class.getName(),
ObjectName.class.getName()
}
).getObjectName();
}
catch( Exception e ) {
//AS lLog.error( "Could not create JSR-77 JNDI: " + pName, e );
return null;
}
}
public static void destroy( MBeanServer pServer, String pName ) {
Logger lLog = Logger.getLogger( JNDI.class );
try {
// Find the Object to be destroyed
ObjectName lSearch = new ObjectName(
J2EEManagedObject.getDomainName() + ":type=JDBCDriver,name=" + pName +
",*"
);
ObjectName lJNDI = (ObjectName) pServer.queryNames(
lSearch,
null
).iterator().next();
// Now remove the J2EEApplication
pServer.unregisterMBean( lJNDI );
}
catch( Exception e ) {
//AS lLog.error( "Could not destroy JSR-77 JNDI: " + pName, e );
}
}
// Constructors --------------------------------------------------
/**
* @param pName Name of the JDBCDataSource
*
* @throws InvalidParameterException If list of nodes or ports was null or empty
**/
public JDBCDriver( String pName, ObjectName pServer )
throws
MalformedObjectNameException,
InvalidParentException
{
super( "JDBCDriver", pName, pServer );
}
// Public --------------------------------------------------------
// org.jboss.ServiceMBean overrides ------------------------------------
// java.lang.Object overrides ------------------------------------
public String toString() {
return "JDBCDriver { " + super.toString() + " } [ " +
" ]";
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 jboss/src/main/org/jboss/management/j2ee/JDBCDriverMBean.java
Index: JDBCDriverMBean.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.management.j2ee;
import javax.management.j2ee.JDBCDriver;
/**
* MBean Mangement Inteface for {@link org.jboss.management.j2ee.JDBCDriver
* JDBCDriver}.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Andreas Schaefer</a>.
* @version $Revision: 1.1 $
*
* <p><b>Revisions:</b>
*
* <p><b>20011206 Andreas Schaefer:</b>
* <ul>
* <li> Creation
* </ul>
**/
public interface JDBCDriverMBean
extends JDBCDriver, J2EEManagedObjectMBean
{
}
1.1 jboss/src/main/org/jboss/management/j2ee/JDBCMBean.java
Index: JDBCMBean.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.management.j2ee;
import javax.management.j2ee.JDBC;
import javax.management.j2ee.StateManageable;
/**
* MBean Mangement Inteface for {@link org.jboss.management.j2ee.JDBC
* JDBC}.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Andreas Schaefer</a>.
* @version $Revision: 1.1 $
*
* <p><b>Revisions:</b>
*
* <p><b>20011206 Andreas Schaefer:</b>
* <ul>
* <li> Creation
* </ul>
**/
public interface JDBCMBean
extends JDBC, StateManageable, J2EEManagedObjectMBean
{
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development