You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2004/02/08 21:21:57 UTC

cvs commit: incubator-geronimo/modules/connector/src/test-data/connector_1_5 geronimo-ra.xml

djencks     2004/02/08 12:21:57

  Modified:    modules/connector/src/java/org/apache/geronimo/connector/deployment
                        Connector_1_0Module.java Connector_1_5Module.java
               modules/connector/src/schema geronimo-connector_1_5.xsd
                        xmlconfig.xml
               modules/connector/src/test/org/apache/geronimo/connector/deployment
                        Connector_1_0Test.java Connector_1_5Test.java
               modules/connector/src/test-data/connector_1_0
                        geronimo-ra.xml
               modules/connector/src/test-data/connector_1_5
                        geronimo-ra.xml
  Added:       modules/connector/src/java/org/apache/geronimo/connector/deployment
                        RARConfigurationFactory.java
  Removed:     modules/connector/src/java/org/apache/geronimo/connector/deployment
                        RAR_1_0ConfigurationFactory.java
                        RAR_1_5ConfigurationFactory.java
  Log:
  incremental approach towards usable dconfigbeans
  
  Revision  Changes    Path
  1.4       +69 -63    incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/Connector_1_0Module.java
  
  Index: Connector_1_0Module.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/Connector_1_0Module.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Connector_1_0Module.java	6 Feb 2004 08:56:42 -0000	1.3
  +++ Connector_1_0Module.java	8 Feb 2004 20:21:57 -0000	1.4
  @@ -88,6 +88,7 @@
   import org.apache.geronimo.xbeans.geronimo.GerConnectionmanagerType;
   import org.apache.geronimo.xbeans.geronimo.GerResourceadapterType;
   import org.apache.geronimo.xbeans.geronimo.GerConnectorDocument;
  +import org.apache.geronimo.xbeans.geronimo.GerConnectionfactoryInstanceType;
   import org.apache.geronimo.xbeans.j2ee.connector_1_0.ConfigPropertyType;
   import org.apache.geronimo.xbeans.j2ee.connector_1_0.ConnectorDocument;
   import org.apache.geronimo.xbeans.j2ee.connector_1_0.ResourceadapterType;
  @@ -119,71 +120,76 @@
               GerConnectionDefinitionType geronimoConnectionDefinition = geronimoResourceAdapter.getOutboundResourceadapter().getConnectionDefinitionArray(i);
               assert geronimoConnectionDefinition != null: "Null GeronimoConnectionDefinition";
               //ConnectionManagerFactory
  -            GerConnectionmanagerType connectionManagerFactory = geronimoConnectionDefinition.getConnectionmanager();
  -            GBeanInfo connectionManagerFactoryGBeanInfo;
  -            try {
  -                connectionManagerFactoryGBeanInfo = GBeanInfo.getGBeanInfo(ConnectionManagerDeployment.class.getName(), cl);
  -            } catch (InvalidConfigurationException e) {
  -                throw new DeploymentException("Unable to get GBeanInfo from ConnectionManagerDeployment", e);
  -            }
  +            for (int j = 0; j < geronimoConnectionDefinition.getConnectionfactoryInstanceArray().length; j++) {
  +                GerConnectionfactoryInstanceType gerConnectionfactoryInstance = geronimoConnectionDefinition.getConnectionfactoryInstanceArray()[j];
   
  -            GBeanMBean connectionManagerFactoryGBean;
  -            try {
  -                connectionManagerFactoryGBean = new GBeanMBean(connectionManagerFactoryGBeanInfo, cl);
  -            } catch (InvalidConfigurationException e) {
  -                throw new DeploymentException("Unable to create GMBean", e);
  -            }
  -            try {
  -                connectionManagerFactoryGBean.setAttribute("Name", connectionManagerFactory.getName());
  -                connectionManagerFactoryGBean.setAttribute("BlockingTimeout", new Integer(connectionManagerFactory.getBlockingTimeout().intValue()));
  -                connectionManagerFactoryGBean.setAttribute("MaxSize", new Integer(connectionManagerFactory.getMaxSize().intValue()));
  -                connectionManagerFactoryGBean.setAttribute("UseTransactions", Boolean.valueOf(connectionManagerFactory.getUseTransactions()));
  -                connectionManagerFactoryGBean.setAttribute("UseLocalTransactions", Boolean.valueOf(connectionManagerFactory.getUseLocalTransactions()));
  -                connectionManagerFactoryGBean.setAttribute("UseTransactionCaching", Boolean.valueOf(connectionManagerFactory.getUseTransactionCaching()));
  -                connectionManagerFactoryGBean.setAttribute("UseConnectionRequestInfo", Boolean.valueOf(connectionManagerFactory.getUseConnectionRequestInfo()));
  -                connectionManagerFactoryGBean.setAttribute("UseSubject", Boolean.valueOf(connectionManagerFactory.getUseSubject()));
  -                connectionManagerFactoryGBean.setReferencePatterns("Kernel", Collections.singleton(Kernel.KERNEL));
  -                connectionManagerFactoryGBean.setReferencePatterns("ConnectionTracker", Collections.singleton(connectionTrackerNamePattern));
  -                if (connectionManagerFactory.getRealmBridge() != null) {
  -                    connectionManagerFactoryGBean.setReferencePatterns("RealmBridge", Collections.singleton(ObjectName.getInstance(BASE_REALM_BRIDGE_NAME + connectionManagerFactory.getRealmBridge())));
  +                GerConnectionmanagerType connectionManagerFactory = gerConnectionfactoryInstance.getConnectionmanager();
  +                GBeanInfo connectionManagerFactoryGBeanInfo;
  +                try {
  +                    connectionManagerFactoryGBeanInfo = GBeanInfo.getGBeanInfo(ConnectionManagerDeployment.class.getName(), cl);
  +                } catch (InvalidConfigurationException e) {
  +                    throw new DeploymentException("Unable to get GBeanInfo from ConnectionManagerDeployment", e);
                   }
  -            } catch (Exception e) {
  -                throw new DeploymentException("Problem setting up ConnectionManagerFactory", e);
  -            }
  -            ObjectName connectionManagerFactoryObjectName = null;
  -            try {
  -                connectionManagerFactoryObjectName = ObjectName.getInstance(BASE_CONNECTION_MANAGER_FACTORY_NAME + geronimoConnectionDefinition.getName());
  -            } catch (MalformedObjectNameException e) {
  -                throw new DeploymentException("Could not name ConnectionManagerFactory", e);
  -            }
  -            callback.addGBean(connectionManagerFactoryObjectName, connectionManagerFactoryGBean);
  -            //ManagedConnectionFactory
  -            GBeanInfoFactory managedConnectionFactoryInfoFactory = new GBeanInfoFactory(ManagedConnectionFactoryWrapper.class.getName(), ManagedConnectionFactoryWrapper.getGBeanInfo());
  -            GBeanMBean managedConnectionFactoryGBean = setUpDynamicGBean(managedConnectionFactoryInfoFactory, resourceAdapter.getConfigPropertyArray(), geronimoConnectionDefinition.getConfigPropertySettingArray());
  -            try {
  -                managedConnectionFactoryGBean.setAttribute("ManagedConnectionFactoryClass", cl.loadClass(resourceAdapter.getManagedconnectionfactoryClass().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionFactoryInterface", cl.loadClass(resourceAdapter.getConnectionfactoryInterface().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionFactoryImplClass", cl.loadClass(resourceAdapter.getConnectionfactoryImplClass().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionInterface", cl.loadClass(resourceAdapter.getConnectionInterface().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionImplClass", cl.loadClass(resourceAdapter.getConnectionImplClass().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("GlobalJNDIName", geronimoConnectionDefinition.getGlobalJndiName());
  -                managedConnectionFactoryGBean.setReferencePatterns("ConnectionManagerFactory", Collections.singleton(connectionManagerFactoryObjectName));
  -                //TODO also set up the login module
  -                /*
  -                if (geronimoConnectionDefinition.getAuthentication().equals("BasicUserPassword")) {
  -                    managedConnectionFactoryGBean.setReferencePatterns("ManagedConnectionFactoryListener", Collections.singleton(ObjectName.getInstance(BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME + geronimoConnectionDefinition.getName())));
  -                }
  -                */
  -            } catch (Exception e) {
  -                throw new DeploymentException(e);
  -            }
  -            ObjectName managedConnectionFactoryObjectName = null;
  -            try {
  -                managedConnectionFactoryObjectName = ObjectName.getInstance(BASE_MANAGED_CONNECTION_FACTORY_NAME + geronimoConnectionDefinition.getName());
  -            } catch (MalformedObjectNameException e) {
  -                throw new DeploymentException("Could not construct ManagedConnectionFactory object name", e);
  +
  +                GBeanMBean connectionManagerFactoryGBean;
  +                try {
  +                    connectionManagerFactoryGBean = new GBeanMBean(connectionManagerFactoryGBeanInfo, cl);
  +                } catch (InvalidConfigurationException e) {
  +                    throw new DeploymentException("Unable to create GMBean", e);
  +                }
  +                try {
  +                    connectionManagerFactoryGBean.setAttribute("Name", connectionManagerFactory.getName());
  +                    connectionManagerFactoryGBean.setAttribute("BlockingTimeout", new Integer(connectionManagerFactory.getBlockingTimeout().intValue()));
  +                    connectionManagerFactoryGBean.setAttribute("MaxSize", new Integer(connectionManagerFactory.getMaxSize().intValue()));
  +                    connectionManagerFactoryGBean.setAttribute("UseTransactions", Boolean.valueOf(connectionManagerFactory.getUseTransactions()));
  +                    connectionManagerFactoryGBean.setAttribute("UseLocalTransactions", Boolean.valueOf(connectionManagerFactory.getUseLocalTransactions()));
  +                    connectionManagerFactoryGBean.setAttribute("UseTransactionCaching", Boolean.valueOf(connectionManagerFactory.getUseTransactionCaching()));
  +                    connectionManagerFactoryGBean.setAttribute("UseConnectionRequestInfo", Boolean.valueOf(connectionManagerFactory.getUseConnectionRequestInfo()));
  +                    connectionManagerFactoryGBean.setAttribute("UseSubject", Boolean.valueOf(connectionManagerFactory.getUseSubject()));
  +                    connectionManagerFactoryGBean.setReferencePatterns("Kernel", Collections.singleton(Kernel.KERNEL));
  +                    connectionManagerFactoryGBean.setReferencePatterns("ConnectionTracker", Collections.singleton(connectionTrackerNamePattern));
  +                    if (connectionManagerFactory.getRealmBridge() != null) {
  +                        connectionManagerFactoryGBean.setReferencePatterns("RealmBridge", Collections.singleton(ObjectName.getInstance(BASE_REALM_BRIDGE_NAME + connectionManagerFactory.getRealmBridge())));
  +                    }
  +                } catch (Exception e) {
  +                    throw new DeploymentException("Problem setting up ConnectionManagerFactory", e);
  +                }
  +                ObjectName connectionManagerFactoryObjectName = null;
  +                try {
  +                    connectionManagerFactoryObjectName = ObjectName.getInstance(BASE_CONNECTION_MANAGER_FACTORY_NAME + gerConnectionfactoryInstance.getName());
  +                } catch (MalformedObjectNameException e) {
  +                    throw new DeploymentException("Could not name ConnectionManagerFactory", e);
  +                }
  +                callback.addGBean(connectionManagerFactoryObjectName, connectionManagerFactoryGBean);
  +                //ManagedConnectionFactory
  +                GBeanInfoFactory managedConnectionFactoryInfoFactory = new GBeanInfoFactory(ManagedConnectionFactoryWrapper.class.getName(), ManagedConnectionFactoryWrapper.getGBeanInfo());
  +                GBeanMBean managedConnectionFactoryGBean = setUpDynamicGBean(managedConnectionFactoryInfoFactory, resourceAdapter.getConfigPropertyArray(), gerConnectionfactoryInstance.getConfigPropertySettingArray());
  +                try {
  +                    managedConnectionFactoryGBean.setAttribute("ManagedConnectionFactoryClass", cl.loadClass(resourceAdapter.getManagedconnectionfactoryClass().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionFactoryInterface", cl.loadClass(resourceAdapter.getConnectionfactoryInterface().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionFactoryImplClass", cl.loadClass(resourceAdapter.getConnectionfactoryImplClass().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionInterface", cl.loadClass(resourceAdapter.getConnectionInterface().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionImplClass", cl.loadClass(resourceAdapter.getConnectionImplClass().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("GlobalJNDIName", gerConnectionfactoryInstance.getGlobalJndiName());
  +                    managedConnectionFactoryGBean.setReferencePatterns("ConnectionManagerFactory", Collections.singleton(connectionManagerFactoryObjectName));
  +                    //TODO also set up the login module
  +                    /*
  +                    if (geronimoConnectionDefinition.getAuthentication().equals("BasicUserPassword")) {
  +                        managedConnectionFactoryGBean.setReferencePatterns("ManagedConnectionFactoryListener", Collections.singleton(ObjectName.getInstance(BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME + geronimoConnectionDefinition.getName())));
  +                    }
  +                    */
  +                } catch (Exception e) {
  +                    throw new DeploymentException(e);
  +                }
  +                ObjectName managedConnectionFactoryObjectName = null;
  +                try {
  +                    managedConnectionFactoryObjectName = ObjectName.getInstance(BASE_MANAGED_CONNECTION_FACTORY_NAME + gerConnectionfactoryInstance.getName());
  +                } catch (MalformedObjectNameException e) {
  +                    throw new DeploymentException("Could not construct ManagedConnectionFactory object name", e);
  +                }
  +                callback.addGBean(managedConnectionFactoryObjectName, managedConnectionFactoryGBean);
  +
               }
  -            callback.addGBean(managedConnectionFactoryObjectName, managedConnectionFactoryGBean);
           }
   
       }
  
  
  
  1.4       +85 -75    incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/Connector_1_5Module.java
  
  Index: Connector_1_5Module.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/Connector_1_5Module.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Connector_1_5Module.java	6 Feb 2004 08:56:42 -0000	1.3
  +++ Connector_1_5Module.java	8 Feb 2004 20:21:57 -0000	1.4
  @@ -92,6 +92,8 @@
   import org.apache.geronimo.xbeans.geronimo.GerConnectionmanagerType;
   import org.apache.geronimo.xbeans.geronimo.GerConnectorDocument;
   import org.apache.geronimo.xbeans.geronimo.GerResourceadapterType;
  +import org.apache.geronimo.xbeans.geronimo.GerConnectionfactoryInstanceType;
  +import org.apache.geronimo.xbeans.geronimo.GerAdminobjectInstanceType;
   import org.apache.geronimo.xbeans.j2ee.AdminobjectType;
   import org.apache.geronimo.xbeans.j2ee.ConfigPropertyType;
   import org.apache.geronimo.xbeans.j2ee.ConnectionDefinitionType;
  @@ -153,76 +155,80 @@
               String connectionFactoryInterfaceName = geronimoConnectionDefinition.getConnectionfactoryInterface().getStringValue();
               ConnectionDefinitionType connectionDefinition = (ConnectionDefinitionType) connectionDefinitions.get(connectionFactoryInterfaceName);
               assert connectionDefinition != null: "No connection definition for ConnectionFactory class: " + connectionFactoryInterfaceName;
  -            //ConnectionManagerFactory
  -            GerConnectionmanagerType connectionManagerFactory = geronimoConnectionDefinition.getConnectionmanager();
  -            GBeanInfo connectionManagerFactoryGBeanInfo;
  -            try {
  -                connectionManagerFactoryGBeanInfo = GBeanInfo.getGBeanInfo(ConnectionManagerDeployment.class.getName(), cl);
  -            } catch (InvalidConfigurationException e) {
  -                throw new DeploymentException("Unable to get GBeanInfo from ConnectionManagerDeployment", e);
  -            }
  +            for (int j = 0; j < geronimoConnectionDefinition.getConnectionfactoryInstanceArray().length; j++) {
  +                GerConnectionfactoryInstanceType connectionfactoryInstance = geronimoConnectionDefinition.getConnectionfactoryInstanceArray()[j];
   
  -            GBeanMBean connectionManagerFactoryGBean;
  -            try {
  -                connectionManagerFactoryGBean = new GBeanMBean(connectionManagerFactoryGBeanInfo, cl);
  -            } catch (InvalidConfigurationException e) {
  -                throw new DeploymentException("Unable to create GMBean", e);
  -            }
  -            try {
  -                connectionManagerFactoryGBean.setAttribute("Name", connectionManagerFactory.getName());
  -                connectionManagerFactoryGBean.setAttribute("BlockingTimeout", new Integer(connectionManagerFactory.getBlockingTimeout().intValue()));
  -                connectionManagerFactoryGBean.setAttribute("MaxSize", new Integer(connectionManagerFactory.getMaxSize().intValue()));
  -                connectionManagerFactoryGBean.setAttribute("UseTransactions", Boolean.valueOf(connectionManagerFactory.getUseTransactions()));
  -                connectionManagerFactoryGBean.setAttribute("UseLocalTransactions", Boolean.valueOf(connectionManagerFactory.getUseLocalTransactions()));
  -                connectionManagerFactoryGBean.setAttribute("UseTransactionCaching", Boolean.valueOf(connectionManagerFactory.getUseTransactionCaching()));
  -                connectionManagerFactoryGBean.setAttribute("UseConnectionRequestInfo", Boolean.valueOf(connectionManagerFactory.getUseConnectionRequestInfo()));
  -                connectionManagerFactoryGBean.setAttribute("UseSubject", Boolean.valueOf(connectionManagerFactory.getUseSubject()));
  -                connectionManagerFactoryGBean.setReferencePatterns("Kernel", Collections.singleton(Kernel.KERNEL));
  -                connectionManagerFactoryGBean.setReferencePatterns("ConnectionTracker", Collections.singleton(connectionTrackerNamePattern));
  -                if (connectionManagerFactory.getRealmBridge() != null) {
  -                    connectionManagerFactoryGBean.setReferencePatterns("RealmBridge", Collections.singleton(ObjectName.getInstance(BASE_REALM_BRIDGE_NAME + connectionManagerFactory.getRealmBridge())));
  +                //ConnectionManagerFactory
  +                GerConnectionmanagerType connectionManagerFactory = connectionfactoryInstance.getConnectionmanager();
  +                GBeanInfo connectionManagerFactoryGBeanInfo;
  +                try {
  +                    connectionManagerFactoryGBeanInfo = GBeanInfo.getGBeanInfo(ConnectionManagerDeployment.class.getName(), cl);
  +                } catch (InvalidConfigurationException e) {
  +                    throw new DeploymentException("Unable to get GBeanInfo from ConnectionManagerDeployment", e);
                   }
  -            } catch (Exception e) {
  -                throw new DeploymentException("Problem setting up ConnectionManagerFactory", e);
  -            }
  -            ObjectName connectionManagerFactoryObjectName = null;
  -            try {
  -                connectionManagerFactoryObjectName = ObjectName.getInstance(BASE_CONNECTION_MANAGER_FACTORY_NAME + geronimoConnectionDefinition.getName());
  -            } catch (MalformedObjectNameException e) {
  -                throw new DeploymentException("Could not name ConnectionManagerFactory", e);
  -            }
  -            callback.addGBean(connectionManagerFactoryObjectName, connectionManagerFactoryGBean);
  -            //ManagedConnectionFactory
   
  -            GBeanInfoFactory managedConnectionFactoryInfoFactory = new GBeanInfoFactory(ManagedConnectionFactoryWrapper.class.getName(), ManagedConnectionFactoryWrapper.getGBeanInfo());
  -            GBeanMBean managedConnectionFactoryGBean = setUpDynamicGBean(managedConnectionFactoryInfoFactory, connectionDefinition.getConfigPropertyArray(), geronimoConnectionDefinition.getConfigPropertySettingArray());
  -            try {
  -                managedConnectionFactoryGBean.setAttribute("ManagedConnectionFactoryClass", cl.loadClass(connectionDefinition.getManagedconnectionfactoryClass().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionFactoryInterface", cl.loadClass(connectionDefinition.getConnectionfactoryInterface().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionFactoryImplClass", cl.loadClass(connectionDefinition.getConnectionfactoryImplClass().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionInterface", cl.loadClass(connectionDefinition.getConnectionInterface().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("ConnectionImplClass", cl.loadClass(connectionDefinition.getConnectionImplClass().getStringValue()));
  -                managedConnectionFactoryGBean.setAttribute("GlobalJNDIName", geronimoConnectionDefinition.getGlobalJndiName());
  -                if (resourceAdapterClassName != null) {
  -                    managedConnectionFactoryGBean.setReferencePatterns("ResourceAdapterWrapper", Collections.singleton(resourceAdapterObjectName));
  -                }
  -                managedConnectionFactoryGBean.setReferencePatterns("ConnectionManagerFactory", Collections.singleton(connectionManagerFactoryObjectName));
  -                /*
  -                //TODO also set up the login module
  -                if (geronimoConnectionDefinition.getAuthentication().equals("BasicUserPassword")) {
  -                    managedConnectionFactoryGBean.setReferencePatterns("ManagedConnectionFactoryListener", Collections.singleton(ObjectName.getInstance(BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME + geronimoConnectionDefinition.getName())));
  -                }
  -                */
  -            } catch (Exception e) {
  -                throw new DeploymentException(e);
  -            }
  -            ObjectName managedConnectionFactoryObjectName = null;
  -            try {
  -                managedConnectionFactoryObjectName = ObjectName.getInstance(BASE_MANAGED_CONNECTION_FACTORY_NAME + geronimoConnectionDefinition.getName());
  -            } catch (MalformedObjectNameException e) {
  -                throw new DeploymentException("Could not construct ManagedConnectionFactory object name", e);
  +                GBeanMBean connectionManagerFactoryGBean;
  +                try {
  +                    connectionManagerFactoryGBean = new GBeanMBean(connectionManagerFactoryGBeanInfo, cl);
  +                } catch (InvalidConfigurationException e) {
  +                    throw new DeploymentException("Unable to create GMBean", e);
  +                }
  +                try {
  +                    connectionManagerFactoryGBean.setAttribute("Name", connectionManagerFactory.getName());
  +                    connectionManagerFactoryGBean.setAttribute("BlockingTimeout", new Integer(connectionManagerFactory.getBlockingTimeout().intValue()));
  +                    connectionManagerFactoryGBean.setAttribute("MaxSize", new Integer(connectionManagerFactory.getMaxSize().intValue()));
  +                    connectionManagerFactoryGBean.setAttribute("UseTransactions", Boolean.valueOf(connectionManagerFactory.getUseTransactions()));
  +                    connectionManagerFactoryGBean.setAttribute("UseLocalTransactions", Boolean.valueOf(connectionManagerFactory.getUseLocalTransactions()));
  +                    connectionManagerFactoryGBean.setAttribute("UseTransactionCaching", Boolean.valueOf(connectionManagerFactory.getUseTransactionCaching()));
  +                    connectionManagerFactoryGBean.setAttribute("UseConnectionRequestInfo", Boolean.valueOf(connectionManagerFactory.getUseConnectionRequestInfo()));
  +                    connectionManagerFactoryGBean.setAttribute("UseSubject", Boolean.valueOf(connectionManagerFactory.getUseSubject()));
  +                    connectionManagerFactoryGBean.setReferencePatterns("Kernel", Collections.singleton(Kernel.KERNEL));
  +                    connectionManagerFactoryGBean.setReferencePatterns("ConnectionTracker", Collections.singleton(connectionTrackerNamePattern));
  +                    if (connectionManagerFactory.getRealmBridge() != null) {
  +                        connectionManagerFactoryGBean.setReferencePatterns("RealmBridge", Collections.singleton(ObjectName.getInstance(BASE_REALM_BRIDGE_NAME + connectionManagerFactory.getRealmBridge())));
  +                    }
  +                } catch (Exception e) {
  +                    throw new DeploymentException("Problem setting up ConnectionManagerFactory", e);
  +                }
  +                ObjectName connectionManagerFactoryObjectName = null;
  +                try {
  +                    connectionManagerFactoryObjectName = ObjectName.getInstance(BASE_CONNECTION_MANAGER_FACTORY_NAME + connectionfactoryInstance.getName());
  +                } catch (MalformedObjectNameException e) {
  +                    throw new DeploymentException("Could not name ConnectionManagerFactory", e);
  +                }
  +                callback.addGBean(connectionManagerFactoryObjectName, connectionManagerFactoryGBean);
  +                //ManagedConnectionFactory
  +
  +                GBeanInfoFactory managedConnectionFactoryInfoFactory = new GBeanInfoFactory(ManagedConnectionFactoryWrapper.class.getName(), ManagedConnectionFactoryWrapper.getGBeanInfo());
  +                GBeanMBean managedConnectionFactoryGBean = setUpDynamicGBean(managedConnectionFactoryInfoFactory, connectionDefinition.getConfigPropertyArray(), connectionfactoryInstance.getConfigPropertySettingArray());
  +                try {
  +                    managedConnectionFactoryGBean.setAttribute("ManagedConnectionFactoryClass", cl.loadClass(connectionDefinition.getManagedconnectionfactoryClass().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionFactoryInterface", cl.loadClass(connectionDefinition.getConnectionfactoryInterface().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionFactoryImplClass", cl.loadClass(connectionDefinition.getConnectionfactoryImplClass().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionInterface", cl.loadClass(connectionDefinition.getConnectionInterface().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("ConnectionImplClass", cl.loadClass(connectionDefinition.getConnectionImplClass().getStringValue()));
  +                    managedConnectionFactoryGBean.setAttribute("GlobalJNDIName", connectionfactoryInstance.getGlobalJndiName());
  +                    if (resourceAdapterClassName != null) {
  +                        managedConnectionFactoryGBean.setReferencePatterns("ResourceAdapterWrapper", Collections.singleton(resourceAdapterObjectName));
  +                    }
  +                    managedConnectionFactoryGBean.setReferencePatterns("ConnectionManagerFactory", Collections.singleton(connectionManagerFactoryObjectName));
  +                    /*
  +                    //TODO also set up the login module
  +                    if (geronimoConnectionDefinition.getAuthentication().equals("BasicUserPassword")) {
  +                        managedConnectionFactoryGBean.setReferencePatterns("ManagedConnectionFactoryListener", Collections.singleton(ObjectName.getInstance(BASE_PASSWORD_CREDENTIAL_LOGIN_MODULE_NAME + geronimoConnectionDefinition.getName())));
  +                    }
  +                    */
  +                } catch (Exception e) {
  +                    throw new DeploymentException(e);
  +                }
  +                ObjectName managedConnectionFactoryObjectName = null;
  +                try {
  +                    managedConnectionFactoryObjectName = ObjectName.getInstance(BASE_MANAGED_CONNECTION_FACTORY_NAME + connectionfactoryInstance.getName());
  +                } catch (MalformedObjectNameException e) {
  +                    throw new DeploymentException("Could not construct ManagedConnectionFactory object name", e);
  +                }
  +                callback.addGBean(managedConnectionFactoryObjectName, managedConnectionFactoryGBean);
               }
  -            callback.addGBean(managedConnectionFactoryObjectName, managedConnectionFactoryGBean);
   
           }
           //admin objects
  @@ -235,15 +241,19 @@
               GerAdminobjectType gerAdminObject = geronimoResourceAdapter.getAdminobjectArray()[i];
               AdminobjectType adminobject = (AdminobjectType) adminObjectInterfaceMap.get(gerAdminObject.getAdminobjectInterface().getStringValue());
               assert adminobject != null;
  -            GBeanInfoFactory adminObjectInfoFactory = new GBeanInfoFactory(AdminObjectWrapper.class.getName(), AdminObjectWrapper.getGBeanInfo());
  -            GBeanMBean adminObjectGBean = setUpDynamicGBean(adminObjectInfoFactory, adminobject.getConfigPropertyArray(), gerAdminObject.getConfigPropertySettingArray());
  -            ObjectName adminObjectObjectName = null;
  -            try {
  -                adminObjectObjectName = ObjectName.getInstance(BASE_ADMIN_OBJECT_NAME + gerAdminObject.getAdminObjectName());
  -            } catch (MalformedObjectNameException e) {
  -                throw new DeploymentException("Could not construct ManagedConnectionFactory object name", e);
  +            for (int j = 0; j < gerAdminObject.getAdminobjectInstanceArray().length; j++) {
  +                GerAdminobjectInstanceType gerAdminobjectInstance = gerAdminObject.getAdminobjectInstanceArray()[j];
  +                GBeanInfoFactory adminObjectInfoFactory = new GBeanInfoFactory(AdminObjectWrapper.class.getName(), AdminObjectWrapper.getGBeanInfo());
  +                GBeanMBean adminObjectGBean = setUpDynamicGBean(adminObjectInfoFactory, adminobject.getConfigPropertyArray(), gerAdminobjectInstance.getConfigPropertySettingArray());
  +                ObjectName adminObjectObjectName = null;
  +                try {
  +                    adminObjectObjectName = ObjectName.getInstance(BASE_ADMIN_OBJECT_NAME + gerAdminobjectInstance.getAdminobjectName());
  +                } catch (MalformedObjectNameException e) {
  +                    throw new DeploymentException("Could not construct ManagedConnectionFactory object name", e);
  +                }
  +                callback.addGBean(adminObjectObjectName, adminObjectGBean);
  +
               }
  -            callback.addGBean(adminObjectObjectName, adminObjectGBean);
           }
   
       }
  
  
  
  1.3       +25 -45    incubator-geronimo/modules/connector/src/java/org/apache/geronimo/connector/deployment/RARConfigurationFactory.java
  
  
  
  
  1.2       +33 -40    incubator-geronimo/modules/connector/src/schema/geronimo-connector_1_5.xsd
  
  Index: geronimo-connector_1_5.xsd
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/schema/geronimo-connector_1_5.xsd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- geronimo-connector_1_5.xsd	2 Feb 2004 22:10:35 -0000	1.1
  +++ geronimo-connector_1_5.xsd	8 Feb 2004 20:21:57 -0000	1.2
  @@ -43,14 +43,7 @@
       <xsd:complexType name="adminobjectType">
           <xsd:annotation>
               <xsd:documentation>
  -
  -                The adminobjectType specifies information about an
  -                administered object.  Administered objects are specific to a
  -                messaging style or message provider.  This contains
  -                information on the Java type of the interface implemented by
  -                an administered object, its Java class name and its
  -                configuration properties.
  -
  +                reference back into standard dd
               </xsd:documentation>
           </xsd:annotation>
   
  @@ -59,17 +52,7 @@
                   type="j2ee:fully-qualified-classType">
                   <xsd:annotation>
                       <xsd:documentation>
  -                        <![CDATA[
  -
  -                        The element adminobject-interface specifies the
  -                        fully qualified name of the Java type of the
  -                        interface implemented by an administered object.
  -
  -                        Example:
  -                          <adminobject-interface>javax.jms.Destination
  -                          </adminobject-interface>
  -
  -                        ]]>
  +                        believe it or not, there are no uniqueness constraints on admin object intf or class
                       </xsd:documentation>
                   </xsd:annotation>
   
  @@ -77,30 +60,24 @@
               <xsd:element name="adminobject-class"
                   type="j2ee:fully-qualified-classType">
                   <xsd:annotation>
  -                    <xsd:documentation>
  -                        <![CDATA[
  -
  -                        The element adminobject-class specifies the fully
  -                        qualified Java class name of an administered object.
  -
  -                        Example:
  -                            <adminobject-class>com.wombat.DestinationImpl
  -                            </adminobject-class>
  -
  -                        ]]>
  -                    </xsd:documentation>
  +                    <xsd:documentation>reference back into the standard dd</xsd:documentation>
                   </xsd:annotation>
               </xsd:element>
  +            <xsd:element name="adminobject-instance"
  +                type="ger:adminobject-instanceType"
  +                minOccurs="0"
  +                maxOccurs="unbounded"/>
  +        </xsd:sequence>
  +    </xsd:complexType>
   
  -            <xsd:element name="admin-object-name"
  -                         type="xsd:string">
  -              <xsd:annotation>
  -                <xsd:documentation>
  -                  <![CDATA[
  -      unique name for admin object instance.  Used in object name of mbean for it.
  -                    ]]>
  -                </xsd:documentation>
  -              </xsd:annotation>
  +    <xsd:complexType name="adminobject-instanceType">
  +        <xsd:sequence>
  +            <xsd:element name="adminobject-name"
  +                type="xsd:string">
  +                <xsd:annotation>
  +                    <xsd:documentation>unique name for admin object instance.  Used in object name of mbean for it.
  +                    </xsd:documentation>
  +                </xsd:annotation>
               </xsd:element>
               <xsd:element name="config-property-setting"
                   type="ger:config-property-settingType"
  @@ -213,6 +190,14 @@
                       </xsd:documentation>
                   </xsd:annotation>
               </xsd:element>
  +            <xsd:element name="connectionfactory-instance"
  +                type="ger:connectionfactory-instanceType"
  +                minOccurs="0"
  +                maxOccurs="unbounded"/>
  +        </xsd:sequence>
  +    </xsd:complexType>
  +    <xsd:complexType name="connectionfactory-instanceType">
  +        <xsd:sequence>
               <xsd:element name="name"
                   type="xsd:string"/>
               <xsd:element name="config-property-setting"
  @@ -280,8 +265,16 @@
                   type="ger:resourceadapterType"/>
   
           </xsd:sequence>
  +        <xsd:attribute name="version" type="ger:versionType" use="required"/>
       </xsd:complexType>
   
  +    <xsd:simpleType name="versionType">
  +      <xsd:restriction base="xsd:string">
  +        <xsd:whiteSpace value="collapse"/>
  +          <xsd:enumeration value="1.0"/>
  +          <xsd:enumeration value="1.5"/>
  +      </xsd:restriction>
  +    </xsd:simpleType>
       <!-- **************************************************** -->
   
       <xsd:complexType name="credential-interfaceType">
  
  
  
  1.2       +2 -2      incubator-geronimo/modules/connector/src/schema/xmlconfig.xml
  
  Index: xmlconfig.xml
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/schema/xmlconfig.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- xmlconfig.xml	2 Feb 2004 22:10:35 -0000	1.1
  +++ xmlconfig.xml	8 Feb 2004 20:21:57 -0000	1.2
  @@ -1,9 +1,9 @@
   <xb:config xmlns:xb="http://www.bea.com/2002/09/xbean/config"
       >
   
  -    <xb:namespace uri="http://java.sun.com/xml/ns/j2ee">
  +    <!--xb:namespace uri="http://java.sun.com/xml/ns/j2ee">
           <xb:package>org.apache.geronimo.xbeans.j2ee</xb:package>
  -    </xb:namespace>
  +    </xb:namespace-->
   
       <xb:namespace uri="##local">
           <xb:package>org.apache.geronimo.xbeans.j2ee.connector_1_0</xb:package>
  
  
  
  1.3       +18 -2     incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/Connector_1_0Test.java
  
  Index: Connector_1_0Test.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/Connector_1_0Test.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Connector_1_0Test.java	3 Feb 2004 06:51:21 -0000	1.2
  +++ Connector_1_0Test.java	8 Feb 2004 20:21:57 -0000	1.3
  @@ -60,6 +60,8 @@
   import java.net.URI;
   import java.util.Map;
   import java.util.HashMap;
  +import java.util.ArrayList;
  +import java.util.List;
   import java.util.zip.ZipEntry;
   import java.util.jar.JarOutputStream;
   import java.io.InputStream;
  @@ -76,6 +78,7 @@
   import org.apache.geronimo.deployment.DeploymentModule;
   import org.apache.geronimo.deployment.ConfigurationCallback;
   import org.apache.geronimo.gbean.jmx.GBeanMBean;
  +import org.apache.xmlbeans.XmlOptions;
   
   /**
    *
  @@ -88,17 +91,26 @@
       private URL geronimoDD;
       private URI configID = URI.create("geronimo/connector10/test");
       private Map gbeans = new HashMap();
  +    XmlOptions xmlOptions;
  +    private List errors;
   
       public void testLoadJ2eeDeploymentDescriptor() throws Exception {
           InputStream j2eeInputStream = j2eeDD.openStream();
           ConnectorDocument connectorDocument = ConnectorDocument.Factory.parse(j2eeInputStream);
           assertNotNull(connectorDocument.getConnector().getResourceadapter());
  +        if (!connectorDocument.validate(xmlOptions)) {
  +            fail(errors.toString());
  +        }
       }
   
       public void testLoadGeronimoDeploymentDescriptor() throws Exception {
           InputStream geronimoInputStream = geronimoDD.openStream();
           GerConnectorDocument connectorDocument = GerConnectorDocument.Factory.parse(geronimoInputStream);
           assertNotNull(connectorDocument.getConnector().getResourceadapter());
  +        if (!connectorDocument.validate(xmlOptions)) {
  +            fail(errors.toString());
  +        }
  +
       }
   
       public void testCreateConnector_1_0Module() throws Exception {
  @@ -119,7 +131,7 @@
           InputStream moduleArchive = new ByteArrayInputStream(baos.toByteArray());
           InputStream geronimoInputStream = geronimoDD.openStream();
           GerConnectorDocument connectorDocument = GerConnectorDocument.Factory.parse(geronimoInputStream);
  -        RAR_1_0ConfigurationFactory rarConfigurationFactory = new RAR_1_0ConfigurationFactory(ObjectName.getInstance("geronimo.test:role=ConnectionTracker"));
  +        RARConfigurationFactory rarConfigurationFactory = new RARConfigurationFactory(ObjectName.getInstance("geronimo.test:role=ConnectionTracker"));
           DeploymentModule connector_1_0Module = rarConfigurationFactory.createModule(moduleArchive, connectorDocument, configID, true);
           connector_1_0Module.init();
           connector_1_0Module.generateClassPath(this);
  @@ -130,6 +142,10 @@
           File docDir = new File("src/test-data/connector_1_0");
           j2eeDD = new File(docDir, "ra.xml").toURL();
           geronimoDD = new File(docDir, "geronimo-ra.xml").toURL();
  +        xmlOptions = new XmlOptions();
  +        xmlOptions.setLoadLineNumbers();
  +        errors = new ArrayList();
  +        xmlOptions.setErrorListener(errors);
       }
   
       public void addFile(URI path, InputStream source) throws IOException {
  
  
  
  1.3       +17 -2     incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/Connector_1_5Test.java
  
  Index: Connector_1_5Test.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/test/org/apache/geronimo/connector/deployment/Connector_1_5Test.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Connector_1_5Test.java	3 Feb 2004 06:51:21 -0000	1.2
  +++ Connector_1_5Test.java	8 Feb 2004 20:21:57 -0000	1.3
  @@ -65,6 +65,8 @@
   import java.net.URI;
   import java.util.Map;
   import java.util.HashMap;
  +import java.util.List;
  +import java.util.ArrayList;
   import java.util.zip.ZipEntry;
   import java.util.jar.JarOutputStream;
   
  @@ -76,6 +78,7 @@
   import org.apache.geronimo.deployment.DeploymentModule;
   import org.apache.geronimo.deployment.ConfigurationCallback;
   import org.apache.geronimo.gbean.jmx.GBeanMBean;
  +import org.apache.xmlbeans.XmlOptions;
   
   /**
    *
  @@ -88,17 +91,25 @@
       private URL geronimoDD;
       private URI configID = URI.create("geronimo/connector15/test");
       private Map gbeans = new HashMap();
  +    XmlOptions xmlOptions;
  +    private List errors;
   
       public void testLoadJ2eeDeploymentDescriptor() throws Exception {
           InputStream j2eeInputStream = j2eeDD.openStream();
           ConnectorDocument connectorDocument = ConnectorDocument.Factory.parse(j2eeInputStream);
           assertNotNull(connectorDocument.getConnector().getResourceadapter());
  +        if (!connectorDocument.validate(xmlOptions)) {
  +            fail(errors.toString());
  +        }
       }
   
       public void testLoadGeronimoDeploymentDescriptor() throws Exception {
           InputStream geronimoInputStream = geronimoDD.openStream();
           GerConnectorDocument connectorDocument = GerConnectorDocument.Factory.parse(geronimoInputStream);
           assertNotNull(connectorDocument.getConnector().getResourceadapter());
  +        if (!connectorDocument.validate(xmlOptions)) {
  +            fail(errors.toString());
  +        }
       }
   
       public void testCreateConnector_1_5Module() throws Exception {
  @@ -119,7 +130,7 @@
           InputStream moduleArchive = new ByteArrayInputStream(baos.toByteArray());
           InputStream geronimoInputStream = geronimoDD.openStream();
           GerConnectorDocument connectorDocument = GerConnectorDocument.Factory.parse(geronimoInputStream);
  -        RAR_1_5ConfigurationFactory rarConfigurationFactory = new RAR_1_5ConfigurationFactory(ObjectName.getInstance("geronimo.test:role=ConnectionTracker"));
  +        RARConfigurationFactory rarConfigurationFactory = new RARConfigurationFactory(ObjectName.getInstance("geronimo.test:role=ConnectionTracker"));
           DeploymentModule connector_1_5Module = rarConfigurationFactory.createModule(moduleArchive, connectorDocument, configID, true);
           connector_1_5Module.init();
           connector_1_5Module.generateClassPath(this);
  @@ -130,6 +141,10 @@
           File docDir = new File("src/test-data/connector_1_5");
           j2eeDD = new File(docDir, "ra.xml").toURL();
           geronimoDD = new File(docDir, "geronimo-ra.xml").toURL();
  +        xmlOptions = new XmlOptions();
  +        xmlOptions.setLoadLineNumbers();
  +        errors = new ArrayList();
  +        xmlOptions.setErrorListener(errors);
       }
   
       public void addFile(URI path, InputStream source) throws IOException {
  
  
  
  1.2       +49 -54    incubator-geronimo/modules/connector/src/test-data/connector_1_0/geronimo-ra.xml
  
  Index: geronimo-ra.xml
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/test-data/connector_1_0/geronimo-ra.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- geronimo-ra.xml	2 Feb 2004 22:10:35 -0000	1.1
  +++ geronimo-ra.xml	8 Feb 2004 20:21:57 -0000	1.2
  @@ -1,64 +1,59 @@
   <?xml version="1.0" encoding="UTF-8"?>
  -<connector xmlns="http://org.apache.geronimo/xml/ns/j2ee"
  -    version="1.5">
  +<connector xmlns="http://org.apache.geronimo/xml/ns/j2ee" version="1.0">
       <resourceadapter>
           <outbound-resourceadapter>
               <connection-definition>
                   <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
  -                <name>FirstTestOutboundConnectionFactory</name>
  -                <config-property-setting name="OutboundStringProperty1">newvalue1</config-property-setting>
  -                <config-property-setting name="OutboundStringProperty3">newvalue2</config-property-setting>
  -                <connectionmanager>
  -                    <realm-bridge>TargetRealm</realm-bridge>
  -                    <name>Test</name>
  -                    <blockingTimeout>5000</blockingTimeout>
  -                    <maxSize>10</maxSize>
  -                    <useTransactions>true</useTransactions>
  -                    <useLocalTransactions>false</useLocalTransactions>
  -                    <useTransactionCaching>true</useTransactionCaching>
  -                    <useSubject>true</useSubject>
  -                    <useConnectionRequestInfo>false</useConnectionRequestInfo>
  -                </connectionmanager>
  -                <global-jndi-name>connectionfactories/testcf</global-jndi-name>
  -            </connection-definition>
  -            <connection-definition>
  -                <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
  -                <name>SecondTestOutboundConnectionFactory</name>
  -                <config-property-setting name="OutboundStringProperty4">newvalue3</config-property-setting>
  -                <config-property-setting name="OutboundStringProperty1">newvalue4</config-property-setting>
  -                <connectionmanager>
  -                    <realm-bridge>TargetRealm</realm-bridge>
  -                    <name>Test</name>
  -                    <blockingTimeout>5000</blockingTimeout>
  -                    <maxSize>10</maxSize>
  -                    <useTransactions>true</useTransactions>
  -                    <useLocalTransactions>false</useLocalTransactions>
  -                    <useTransactionCaching>true</useTransactionCaching>
  -                    <useSubject>true</useSubject>
  -                    <useConnectionRequestInfo>false</useConnectionRequestInfo>
  -                </connectionmanager>
  -                <security-domain>YourSecurityDomain</security-domain>
  -            </connection-definition>
  -            <connection-definition>
  -                <connectionfactory-interface>org.apache.geronimo.connector.mock.MockConnectionFactory</connectionfactory-interface>
  -                <name>ThirdTestOutboundConnectionFactory</name>
  -                <config-property-setting name="OutboundStringProperty">StringValue3</config-property-setting>
  -                <connectionmanager>
  -                    <realm-bridge>TargetRealm</realm-bridge>
  -                    <name>Test</name>
  -                    <blockingTimeout>5000</blockingTimeout>
  -                    <maxSize>10</maxSize>
  -                    <useTransactions>true</useTransactions>
  -                    <useLocalTransactions>false</useLocalTransactions>
  -                    <useTransactionCaching>true</useTransactionCaching>
  -                    <useSubject>true</useSubject>
  -                    <useConnectionRequestInfo>false</useConnectionRequestInfo>
  -                </connectionmanager>
  -                <security-domain>TheirSecurityDomain</security-domain>
  +                <connectionfactory-instance>
  +                    <name>FirstTestOutboundConnectionFactory</name>
  +                    <config-property-setting name="OutboundStringProperty1">newvalue1</config-property-setting>
  +                    <config-property-setting name="OutboundStringProperty3">newvalue2</config-property-setting>
  +                    <connectionmanager>
  +                        <realm-bridge>TargetRealm</realm-bridge>
  +                        <name>Test</name>
  +                        <blockingTimeout>5000</blockingTimeout>
  +                        <maxSize>10</maxSize>
  +                        <useTransactions>true</useTransactions>
  +                        <useLocalTransactions>false</useLocalTransactions>
  +                        <useTransactionCaching>true</useTransactionCaching>
  +                        <useConnectionRequestInfo>false</useConnectionRequestInfo>
  +                        <useSubject>true</useSubject>
  +                    </connectionmanager>
  +                    <global-jndi-name>connectionfactories/testcf</global-jndi-name>
  +                </connectionfactory-instance>
  +                <connectionfactory-instance>
  +                    <name>SecondTestOutboundConnectionFactory</name>
  +                    <config-property-setting name="OutboundStringProperty4">newvalue3</config-property-setting>
  +                    <config-property-setting name="OutboundStringProperty1">newvalue4</config-property-setting>
  +                    <connectionmanager>
  +                        <realm-bridge>TargetRealm</realm-bridge>
  +                        <name>Test</name>
  +                        <blockingTimeout>5000</blockingTimeout>
  +                        <maxSize>10</maxSize>
  +                        <useTransactions>true</useTransactions>
  +                        <useLocalTransactions>false</useLocalTransactions>
  +                        <useTransactionCaching>true</useTransactionCaching>
  +                        <useConnectionRequestInfo>false</useConnectionRequestInfo>
  +                        <useSubject>true</useSubject>
  +                    </connectionmanager>
  +                </connectionfactory-instance>
  +                <connectionfactory-instance>
  +                    <name>ThirdTestOutboundConnectionFactory</name>
  +                    <config-property-setting name="OutboundStringProperty">StringValue3</config-property-setting>
  +                    <connectionmanager>
  +                        <realm-bridge>TargetRealm</realm-bridge>
  +                        <name>Test</name>
  +                        <blockingTimeout>5000</blockingTimeout>
  +                        <maxSize>10</maxSize>
  +                        <useTransactions>true</useTransactions>
  +                        <useLocalTransactions>false</useLocalTransactions>
  +                        <useTransactionCaching>true</useTransactionCaching>
  +                        <useConnectionRequestInfo>false</useConnectionRequestInfo>
  +                        <useSubject>true</useSubject>
  +                    </connectionmanager>
  +                </connectionfactory-instance>
               </connection-definition>
               <transaction-support>XATransaction</transaction-support>
           </outbound-resourceadapter>
  -        <inbound-resourceadapter>
  -        </inbound-resourceadapter>
       </resourceadapter>
   </connector>
  
  
  
  1.2       +57 -57    incubator-geronimo/modules/connector/src/test-data/connector_1_5/geronimo-ra.xml
  
  Index: geronimo-ra.xml
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/connector/src/test-data/connector_1_5/geronimo-ra.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- geronimo-ra.xml	2 Feb 2004 22:10:35 -0000	1.1
  +++ geronimo-ra.xml	8 Feb 2004 20:21:57 -0000	1.2
  @@ -1,76 +1,76 @@
   <?xml version="1.0" encoding="UTF-8"?>
  -<connector xmlns="http://org.apache.geronimo/xml/ns/j2ee"
  -    version="1.5">
  +<connector xmlns="http://org.apache.geronimo/xml/ns/j2ee" version="1.5">
       <resourceadapter>
           <config-property-setting name="RAStringProperty">NewStringValue</config-property-setting>
           <bootstrapcontext-name>geronimo.jca:service=bootstrapcontext</bootstrapcontext-name>
           <outbound-resourceadapter>
               <connection-definition>
                   <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
  -                <name>FirstTestOutboundConnectionFactory</name>
  -                <config-property-setting name="OutboundStringProperty1">newvalue1</config-property-setting>
  -                <config-property-setting name="OutboundStringProperty3">newvalue2</config-property-setting>
  -                <connectionmanager>
  -                    <realm-bridge>TargetRealm</realm-bridge>
  -                    <name>Test</name>
  -                    <blockingTimeout>5000</blockingTimeout>
  -                    <maxSize>10</maxSize>
  -                    <useTransactions>true</useTransactions>
  -                    <useLocalTransactions>false</useLocalTransactions>
  -                    <useTransactionCaching>true</useTransactionCaching>
  -                    <useSubject>true</useSubject>
  -                    <useConnectionRequestInfo>false</useConnectionRequestInfo>
  -                </connectionmanager>
  -                <global-jndi-name>connectionfactories/testcf</global-jndi-name>
  -            </connection-definition>
  -            <connection-definition>
  -                <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
  -                <name>SecondTestOutboundConnectionFactory</name>
  -                <config-property-setting name="OutboundStringProperty4">newvalue3</config-property-setting>
  -                <config-property-setting name="OutboundStringProperty1">newvalue4</config-property-setting>
  -                <connectionmanager>
  -                    <realm-bridge>TargetRealm</realm-bridge>
  -                    <name>Test</name>
  -                    <blockingTimeout>5000</blockingTimeout>
  -                    <maxSize>10</maxSize>
  -                    <useTransactions>true</useTransactions>
  -                    <useLocalTransactions>false</useLocalTransactions>
  -                    <useTransactionCaching>true</useTransactionCaching>
  -                    <useSubject>true</useSubject>
  -                    <useConnectionRequestInfo>false</useConnectionRequestInfo>
  -                </connectionmanager>
  -                <security-domain>YourSecurityDomain</security-domain>
  +                <connectionfactory-instance>
  +                    <name>FirstTestOutboundConnectionFactory</name>
  +                    <config-property-setting name="OutboundStringProperty1">newvalue1</config-property-setting>
  +                    <config-property-setting name="OutboundStringProperty3">newvalue2</config-property-setting>
  +                    <connectionmanager>
  +                        <realm-bridge>TargetRealm</realm-bridge>
  +                        <name>Test</name>
  +                        <blockingTimeout>5000</blockingTimeout>
  +                        <maxSize>10</maxSize>
  +                        <useTransactions>true</useTransactions>
  +                        <useLocalTransactions>false</useLocalTransactions>
  +                        <useTransactionCaching>true</useTransactionCaching>
  +                        <useConnectionRequestInfo>false</useConnectionRequestInfo>
  +                        <useSubject>true</useSubject>
  +                    </connectionmanager>
  +                    <global-jndi-name>connectionfactories/testcf</global-jndi-name>
  +                </connectionfactory-instance>
  +                <connectionfactory-instance>
  +                    <name>SecondTestOutboundConnectionFactory</name>
  +                    <config-property-setting name="OutboundStringProperty4">newvalue3</config-property-setting>
  +                    <config-property-setting name="OutboundStringProperty1">newvalue4</config-property-setting>
  +                    <connectionmanager>
  +                        <realm-bridge>TargetRealm</realm-bridge>
  +                        <name>Test</name>
  +                        <blockingTimeout>5000</blockingTimeout>
  +                        <maxSize>10</maxSize>
  +                        <useTransactions>true</useTransactions>
  +                        <useLocalTransactions>false</useLocalTransactions>
  +                        <useTransactionCaching>true</useTransactionCaching>
  +                        <useConnectionRequestInfo>false</useConnectionRequestInfo>
  +                        <useSubject>true</useSubject>
  +                     </connectionmanager>
  +                </connectionfactory-instance>
               </connection-definition>
               <connection-definition>
                   <connectionfactory-interface>org.apache.geronimo.connector.mock.MockConnectionFactory</connectionfactory-interface>
  -                <name>ThirdTestOutboundConnectionFactory</name>
  -                <config-property-setting name="OutboundStringProperty">StringValue3</config-property-setting>
  -                <connectionmanager>
  -                    <realm-bridge>TargetRealm</realm-bridge>
  -                    <name>Test</name>
  -                    <blockingTimeout>5000</blockingTimeout>
  -                    <maxSize>10</maxSize>
  -                    <useTransactions>true</useTransactions>
  -                    <useLocalTransactions>false</useLocalTransactions>
  -                    <useTransactionCaching>true</useTransactionCaching>
  -                    <useSubject>true</useSubject>
  -                    <useConnectionRequestInfo>false</useConnectionRequestInfo>
  -                </connectionmanager>
  -                <security-domain>TheirSecurityDomain</security-domain>
  +                <connectionfactory-instance>
  +                    <name>ThirdTestOutboundConnectionFactory</name>
  +                    <config-property-setting name="OutboundStringProperty">StringValue3</config-property-setting>
  +                    <connectionmanager>
  +                        <realm-bridge>TargetRealm</realm-bridge>
  +                        <name>Test</name>
  +                        <blockingTimeout>5000</blockingTimeout>
  +                        <maxSize>10</maxSize>
  +                        <useTransactions>true</useTransactions>
  +                        <useLocalTransactions>false</useLocalTransactions>
  +                        <useTransactionCaching>true</useTransactionCaching>
  +                        <useConnectionRequestInfo>false</useConnectionRequestInfo>
  +                        <useSubject>true</useSubject>
  +                    </connectionmanager>
  +                </connectionfactory-instance>
               </connection-definition>
               <transaction-support>XATransaction</transaction-support>
           </outbound-resourceadapter>
  -        <inbound-resourceadapter>
  -        </inbound-resourceadapter>
  -        <adminobject>
  -            <adminobject-interface>org.apache.geronimo.connector.mock.MockAdminObject</adminobject-interface>
  -            <adminobject-class>org.apache.geronimo.connector.mock.AdminObjectImpl</adminobject-class>
  -            <config-property-setting name="Tweedle">Dee-value</config-property-setting>
  -        </adminobject>
           <adminobject>
               <adminobject-interface>org.apache.geronimo.connector.mock.MockAdminObject</adminobject-interface>
               <adminobject-class>org.apache.geronimo.connector.mock.AdminObjectImpl</adminobject-class>
  -            <config-property-setting name="Tweedle">Dum-value</config-property-setting>
  +            <adminobject-instance>
  +                <adminobject-name>tweedledee</adminobject-name>
  +                <config-property-setting name="Tweedle">Dee-value</config-property-setting>
  +            </adminobject-instance>
  +            <adminobject-instance>
  +                <adminobject-name>tweedledum</adminobject-name>
  +                <config-property-setting name="Tweedle">Dum-value</config-property-setting>
  +            </adminobject-instance>
           </adminobject>
       </resourceadapter>
   </connector>