[jboss-cvs] JBossAS SVN: r60749 - in trunk/profileservice/src/main/org/jboss/profileservice: management/builders and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Feb 21 00:48:22 EST 2007


Author: scott.stark at jboss.org
Date: 2007-02-21 00:48:22 -0500 (Wed, 21 Feb 2007)
New Revision: 60749

Modified:
   trunk/profileservice/src/main/org/jboss/profileservice/management/ComponentTypeOverridesVisitor.java
   trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ConnectionFactoryDeployerManagedObjectBuilder.java
   trunk/profileservice/src/main/org/jboss/profileservice/management/builders/DomDataSourceManagedObject.java
   trunk/profileservice/src/main/org/jboss/profileservice/remoting/ProxyFactory.java
Log:
Update the fake datasource type to FakeDataSource and add a DataSource type based on the connmgr mbean keys

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/ComponentTypeOverridesVisitor.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/ComponentTypeOverridesVisitor.java	2007-02-21 05:15:52 UTC (rev 60748)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/ComponentTypeOverridesVisitor.java	2007-02-21 05:48:22 UTC (rev 60749)
@@ -21,21 +21,18 @@
  */
 package org.jboss.profileservice.management;
 
-import java.util.Set;
-
-import javax.management.ObjectName;
-
 import org.jboss.deployers.spi.deployer.DeploymentUnit;
 import org.jboss.deployers.spi.management.ComponentType;
 import org.jboss.deployers.spi.management.ComponentTypeVisitor;
-import org.jboss.deployers.spi.structure.DeploymentContext;
 import org.jboss.logging.Logger;
 import org.jboss.system.metadata.ServiceMetaData;
 
 /**
+ * A ComponentTypeVisitor installed into DeployerAspects to allow for
+ * a pluggable override of the ComponentType of a deployment.
  * 
  * @author Scott.Stark at jboss.org
- * @version $Revision:$
+ * @version $Revision$
  */
 public class ComponentTypeOverridesVisitor
    implements ComponentTypeVisitor
@@ -57,6 +54,8 @@
    {
       ComponentType type = checkDataSource(ctx);
       if( type == null )
+         type = checkFakeDataSource(ctx);
+      if( type == null )
          type = checkJmsDestination(ctx);
       return type;
    }
@@ -68,8 +67,28 @@
       if( smd != null )
       {
          String code = smd.getCode();
+         if( code.startsWith("org.jboss.resource.connectionmanager") )
+         {
+            String keys = smd.getObjectName().getKeyPropertyListString();
+            if( keys.startsWith("service=NoTxCM"))
+               type = new ComponentType("DataSource", "NoTx");
+            else if( keys.startsWith("service=LocalTxCM"))
+               type = new ComponentType("DataSource", "LocalTx");
+            else if( keys.startsWith("service=XATxCM"))
+               type = new ComponentType("DataSource", "XATx");
+         }
+      }
+      return type;
+   }
+   protected ComponentType checkFakeDataSource(DeploymentUnit ctx)
+   {
+      ComponentType type = null;
+      ServiceMetaData smd = ctx.getAttachment(ServiceMetaData.class);
+      if( smd != null )
+      {
+         String code = smd.getCode();
          if( code.indexOf("FakeDataSourceConn") > 0 )
-            type = new ComponentType("DataSource", "LocalTx");
+            type = new ComponentType("FakeDataSource", "LocalTx");
       }
       return type;
    }


Property changes on: trunk/profileservice/src/main/org/jboss/profileservice/management/ComponentTypeOverridesVisitor.java
___________________________________________________________________
Name: svn:keywords
   - Id,Revision
   + Id Revision

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ConnectionFactoryDeployerManagedObjectBuilder.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ConnectionFactoryDeployerManagedObjectBuilder.java	2007-02-21 05:15:52 UTC (rev 60748)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/builders/ConnectionFactoryDeployerManagedObjectBuilder.java	2007-02-21 05:48:22 UTC (rev 60749)
@@ -21,26 +21,15 @@
  */
 package org.jboss.profileservice.management.builders;
 
-import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentUnit;
 import org.jboss.deployers.spi.managed.ManagedObjectBuilder;
-import org.jboss.deployers.spi.structure.DeploymentContext;
 import org.jboss.logging.Logger;
-import org.jboss.managed.api.Fields;
 import org.jboss.managed.api.ManagedObject;
-import org.jboss.managed.api.ManagedProperty;
-import org.jboss.managed.plugins.DefaultFieldsImpl;
-import org.jboss.managed.plugins.ManagedObjectImpl;
-import org.jboss.managed.plugins.ManagedPropertyImpl;
 import org.jboss.managed.plugins.advice.WrapperAdvice;
-import org.jboss.metatype.api.types.SimpleMetaType;
 import org.jboss.system.metadata.ServiceDeployment;
-import org.jboss.system.metadata.ServiceMetaData;
 
 /**
  * A ManagedObjectBuilder for use as an override to the ConnectionFactoryDeployer

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/builders/DomDataSourceManagedObject.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/builders/DomDataSourceManagedObject.java	2007-02-21 05:15:52 UTC (rev 60748)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/builders/DomDataSourceManagedObject.java	2007-02-21 05:48:22 UTC (rev 60749)
@@ -21,6 +21,7 @@
  */
 package org.jboss.profileservice.management.builders;
 
+import java.util.HashSet;
 import java.util.Set;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -31,12 +32,16 @@
 import org.jboss.managed.plugins.ManagedObjectImpl;
 import org.jboss.managed.plugins.ManagedPropertyImpl;
 import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.jboss.util.xml.DOMWriter;
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 /**
+ * A ManagedObject impl that manages a jaxp Document attachment.
+ * 
  * @author Scott.Stark at jboss.org
  * @version $Revision:$
  */
@@ -49,7 +54,7 @@
    private Document document;
 
    /**
-    * MockDataSourceManaged ctor
+    * DomDataSourceManagedObject ctor
     */
    public DomDataSourceManagedObject(String attachmentName)
    {
@@ -62,7 +67,7 @@
          DOMImplementation impl = builder.getDOMImplementation();
          document = impl.createDocument(null, null, null);
          
-         element = document.createElement("data-source");
+         element = document.createElement("datasources");
          document.appendChild(element);
       }
       catch (RuntimeException e)
@@ -75,37 +80,76 @@
       }
       
       Set<ManagedProperty> properties = getProperties();
+      // The datasource-type
+      DomFields dsType = new DomFields(element, "datasource-type");
+      dsType.setField(Fields.DESCRIPTION, "The type of DataSource");
+      dsType.setField(Fields.MANDATORY, Boolean.TRUE);
+      dsType.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      HashSet<MetaValue> values = new HashSet<MetaValue>();
+      values.add(SimpleValueSupport.wrap("local-tx-datasource"));
+      values.add(SimpleValueSupport.wrap("no-tx-datasource"));
+      values.add(SimpleValueSupport.wrap("xa-datasource"));
+      dsType.setLegalValues(values);
+
       // The jndi name field info
       DomFields jndiName = new DomFields(element, "jndi-name");
       jndiName.setField(Fields.DESCRIPTION, "The jndi name to bind the DataSource under");
       jndiName.setField(Fields.MANDATORY, Boolean.TRUE);
       jndiName.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      // The driver-class field info
+      DomFields driverClass = new DomFields(element, "driver-class");
+      driverClass.setField(Fields.DESCRIPTION, "The jdbc driver class DataSource");
+      driverClass.setField(Fields.MANDATORY, Boolean.TRUE);
+      driverClass.setField(Fields.META_TYPE, SimpleMetaType.STRING);
       // The connection-url field info
       DomFields connURL = new DomFields(element, "connection-url");
-      jndiName.setField(Fields.DESCRIPTION, "The jdbc url of the DataSource");
-      jndiName.setField(Fields.MANDATORY, Boolean.TRUE);
-      jndiName.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      connURL.setField(Fields.DESCRIPTION, "The jdbc url of the DataSource");
+      connURL.setField(Fields.MANDATORY, Boolean.TRUE);
+      connURL.setField(Fields.META_TYPE, SimpleMetaType.STRING);
       // The user field info
       DomFields user = new DomFields(element, "user-name");
-      jndiName.setField(Fields.DESCRIPTION, "The username for the connection-url");
-      jndiName.setField(Fields.MANDATORY, Boolean.FALSE);
-      jndiName.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      user.setField(Fields.DESCRIPTION, "The username for the connection-url");
+      user.setField(Fields.MANDATORY, Boolean.FALSE);
+      user.setField(Fields.META_TYPE, SimpleMetaType.STRING);
       // The user field info
       DomFields password = new DomFields(element, "password");
-      jndiName.setField(Fields.DESCRIPTION, "The password for the connection-url");
-      jndiName.setField(Fields.MANDATORY, Boolean.FALSE);
-      jndiName.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      password.setField(Fields.DESCRIPTION, "The password for the connection-url");
+      password.setField(Fields.MANDATORY, Boolean.FALSE);
+      password.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      // The min-pool-size field info
+      DomFields minPoolSize = new DomFields(element, "min-pool-size");
+      password.setField(Fields.DESCRIPTION, "The min pool size");
+      password.setField(Fields.MANDATORY, Boolean.FALSE);
+      password.setField(Fields.META_TYPE, SimpleMetaType.INTEGER);
+      // The max-pool-size field info
+      DomFields maxPoolSize = new DomFields(element, "max-pool-size");
+      password.setField(Fields.DESCRIPTION, "The max pool size");
+      password.setField(Fields.MANDATORY, Boolean.FALSE);
+      password.setField(Fields.META_TYPE, SimpleMetaType.INTEGER);
+
       // The security-domain field info
       DomFields secDomain = new DomFields(element, "security-domain");
-      jndiName.setField(Fields.DESCRIPTION, "The security-domain used to validate connections");
-      jndiName.setField(Fields.MANDATORY, Boolean.FALSE);
-      jndiName.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      secDomain.setField(Fields.DESCRIPTION, "The security-domain used to validate connections");
+      secDomain.setField(Fields.MANDATORY, Boolean.FALSE);
+      secDomain.setField(Fields.META_TYPE, SimpleMetaType.STRING);
+      // prepared-statement-cache-size
+      DomFields psCacheSize = new DomFields(element, "prepared-statement-cache-size");
+      secDomain.setField(Fields.DESCRIPTION, "The prepared statement cache size");
+      secDomain.setField(Fields.MANDATORY, Boolean.FALSE);
+      secDomain.setField(Fields.META_TYPE, SimpleMetaType.INTEGER);
+      
 
+      properties.add(new ManagedPropertyImpl(this, dsType));
       properties.add(new ManagedPropertyImpl(this, jndiName));
+      properties.add(new ManagedPropertyImpl(this, driverClass));
       properties.add(new ManagedPropertyImpl(this, connURL));
       properties.add(new ManagedPropertyImpl(this, user));
       properties.add(new ManagedPropertyImpl(this, password));
+      properties.add(new ManagedPropertyImpl(this, minPoolSize));
+      properties.add(new ManagedPropertyImpl(this, maxPoolSize));
       properties.add(new ManagedPropertyImpl(this, secDomain));
+      properties.add(new ManagedPropertyImpl(this, psCacheSize));
+      
    }
 
    public String prettyPrint()

Modified: trunk/profileservice/src/main/org/jboss/profileservice/remoting/ProxyFactory.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/remoting/ProxyFactory.java	2007-02-21 05:15:52 UTC (rev 60748)
+++ trunk/profileservice/src/main/org/jboss/profileservice/remoting/ProxyFactory.java	2007-02-21 05:48:22 UTC (rev 60749)
@@ -33,6 +33,7 @@
 import org.jboss.aspects.remoting.Remoting;
 import org.jboss.aspects.security.SecurityClientInterceptor;
 import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.logging.Logger;
 import org.jboss.profileservice.spi.ProfileService;
 import org.jboss.remoting.InvokerLocator;
 import org.jboss.util.naming.Util;
@@ -46,6 +47,7 @@
  */
 public class ProxyFactory
 {
+   private static final Logger log = Logger.getLogger(ProxyFactory.class);
    private String dispatchName = "ProfileService";
    private String jndiName = "ProfileService";
    private InvokerLocator locator;
@@ -138,6 +140,7 @@
       Dispatcher.singleton.registerTarget(mvDispatchName, mgtView);
       mgtViewProxy = Remoting.createRemoteProxy(mvDispatchName, loader, mvIfaces, locator,
             interceptors, "ProfileService");
+      log.debug("Bound ProfileService proxy");
    }
 
    public void stop()
@@ -149,5 +152,6 @@
       Dispatcher.singleton.unregisterTarget(mvDispatchName);
       InitialContext ctx = new InitialContext();
       Util.unbind(ctx, jndiName);
+      log.debug("Unbound ProfileService proxy");
    }
 }




More information about the jboss-cvs-commits mailing list