[jboss-cvs] JBossAS SVN: r86107 - in projects/jboss-jca/trunk/core/src: main/java/org/jboss/jca/core/api and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 19 13:08:51 EDT 2009


Author: jesper.pedersen
Date: 2009-03-19 13:08:51 -0400 (Thu, 19 Mar 2009)
New Revision: 86107

Added:
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/MetaDataRepository.java
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/MetaDataRepositoryImpl.java
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/package.html
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase.java
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/package.html
   projects/jboss-jca/trunk/core/src/test/resources/org/jboss/jca/test/core/mdr/
   projects/jboss-jca/trunk/core/src/test/resources/org/jboss/jca/test/core/mdr/unit/
   projects/jboss-jca/trunk/core/src/test/resources/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase-jboss-beans.xml
Log:
[JBJCA-6] Use MDR as the foundation for the JCA metadata repository

Added: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/MetaDataRepository.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/MetaDataRepository.java	                        (rev 0)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/api/MetaDataRepository.java	2009-03-19 17:08:51 UTC (rev 86107)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.core.api;
+
+import org.jboss.metadata.rar.jboss.mcf.ManagedConnectionFactoryDeploymentGroup;
+import org.jboss.metadata.rar.spec.ConnectorMetaData;
+
+/**
+ * MetaDataRepository API
+ *
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
+ * @version $Revision: $
+ */
+public interface MetaDataRepository
+{
+   /**
+    * Add connector metadata
+    * @param name The name
+    * @param cmd The connector metadata
+    * @return The previous value
+    */
+   public ConnectorMetaData addConnectorMetaData(String name, ConnectorMetaData cmd);
+
+   /**
+    * Get connector metadata
+    * @param name The name
+    * @return The connector metadata
+    */
+   public ConnectorMetaData getConnectorMetaData(String name);
+
+   /**
+    * Remove connector metadata
+    * @param name The name
+    * @return True if the metadata was removed; otherwise
+    */
+   public boolean removeConnectorMetaData(String name);
+
+   /**
+    * Add managed connecton metadata
+    * @param name The name
+    * @param group The managed connection metadata
+    * @return The previous value
+    */
+   public ManagedConnectionFactoryDeploymentGroup 
+   addManagedConnectionFactoryDeploymentGroup(String name, ManagedConnectionFactoryDeploymentGroup group);
+
+   /**
+    * Get managed connection metadata
+    * @param name The name
+    * @return The managed connection metadata
+    */
+   public ManagedConnectionFactoryDeploymentGroup getManagedConnectionFactoryDeploymentGroup(String name);
+
+   /**
+    * Remove managed connection metadata
+    * @param name The name
+    * @return True if the metadata was removed; otherwise
+    */
+   public boolean removeManagedConnectionFactoryDeploymentGroup(String name);
+}

Added: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/MetaDataRepositoryImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/MetaDataRepositoryImpl.java	                        (rev 0)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/MetaDataRepositoryImpl.java	2009-03-19 17:08:51 UTC (rev 86107)
@@ -0,0 +1,196 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.core.mdr;
+
+import org.jboss.jca.core.api.MetaDataRepository;
+
+import org.jboss.logging.Logger;
+import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
+import org.jboss.metadata.plugins.repository.basic.BasicMetaDataRepository;
+import org.jboss.metadata.rar.jboss.mcf.ManagedConnectionFactoryDeploymentGroup;
+import org.jboss.metadata.rar.spec.ConnectorMetaData;
+import org.jboss.metadata.spi.loader.MutableMetaDataLoader;
+import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
+import org.jboss.metadata.spi.retrieval.MetaDataRetrieval;
+import org.jboss.metadata.spi.retrieval.MetaDataRetrievalToMetaDataBridge;
+import org.jboss.metadata.spi.scope.CommonLevels;
+import org.jboss.metadata.spi.scope.ScopeKey;
+
+/**
+ * MetaDataRepository implementation backed by MDR
+ *
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
+ * @version $Revision: $
+ */
+public class MetaDataRepositoryImpl implements MetaDataRepository
+{
+   /** The logger */
+   private static Logger log = Logger.getLogger(MetaDataRepositoryImpl.class);
+
+   /** The backing MDR */
+   private MutableMetaDataRepository mdr;
+
+   /**
+    * Constructor
+    */
+   public MetaDataRepositoryImpl()
+   {
+      mdr = new BasicMetaDataRepository();
+   }
+
+   /**
+    * Add connector metadata
+    * @param name The name
+    * @param cmd The connector metadata
+    * @return The previous value
+    */
+   public ConnectorMetaData addConnectorMetaData(String name, ConnectorMetaData cmd)
+   {
+      if (name == null)
+         throw new IllegalArgumentException("Null name");
+
+      if (cmd == null)
+         throw new IllegalArgumentException("Null cmd");
+
+      ScopeKey scopeKey = new ScopeKey(CommonLevels.JVM, name);
+      MutableMetaDataLoader loader = new MemoryMetaDataLoader(scopeKey);
+      loader.addMetaData(cmd, ConnectorMetaData.class);
+
+      MetaDataRetrieval r = mdr.addMetaDataRetrieval(loader);
+
+      if (r != null)
+      {
+         MetaDataRetrievalToMetaDataBridge b = new MetaDataRetrievalToMetaDataBridge(r);
+         return b.getMetaData(ConnectorMetaData.class);
+      }
+
+      return null;
+   }
+
+   /**
+    * Get connector metadata
+    * @param name The name
+    * @return The connector metadata
+    */
+   public ConnectorMetaData getConnectorMetaData(String name)
+   {
+      if (name == null)
+         throw new IllegalArgumentException("Null name");
+
+      ScopeKey scopeKey = new ScopeKey(CommonLevels.JVM, name);
+      MetaDataRetrieval r = mdr.getMetaDataRetrieval(scopeKey);
+
+      if (r != null)
+      {
+         MetaDataRetrievalToMetaDataBridge b = new MetaDataRetrievalToMetaDataBridge(r);
+         return b.getMetaData(ConnectorMetaData.class);
+      }
+
+      return null;
+   }
+
+   /**
+    * Remove connector metadata
+    * @param name The name
+    * @return True if the metadata was removed; otherwise
+    */
+   public boolean removeConnectorMetaData(String name)
+   {
+      if (name == null)
+         throw new IllegalArgumentException("Null name");
+
+      ScopeKey scopeKey = new ScopeKey(CommonLevels.JVM, name);
+      MetaDataRetrieval mr = mdr.removeMetaDataRetrieval(scopeKey);
+
+      return mr != null;
+   }
+
+   /**
+    * Add managed connecton metadata
+    * @param name The name
+    * @param group The managed connection metadata
+    * @return The previous value
+    */
+   public ManagedConnectionFactoryDeploymentGroup 
+   addManagedConnectionFactoryDeploymentGroup(String name, ManagedConnectionFactoryDeploymentGroup group)
+   {
+      if (name == null)
+         throw new IllegalArgumentException("Null name");
+
+      if (group == null)
+         throw new IllegalArgumentException("Null group");
+
+      ScopeKey scopeKey = new ScopeKey(CommonLevels.JVM, name);
+      MutableMetaDataLoader loader = new MemoryMetaDataLoader(scopeKey);
+      loader.addMetaData(group, ManagedConnectionFactoryDeploymentGroup.class);
+
+      MetaDataRetrieval r = mdr.addMetaDataRetrieval(loader);
+
+      if (r != null)
+      {
+         MetaDataRetrievalToMetaDataBridge b = new MetaDataRetrievalToMetaDataBridge(r);
+         return b.getMetaData(ManagedConnectionFactoryDeploymentGroup.class);
+      }
+
+      return null;
+   }
+
+   /**
+    * Get managed connection metadata
+    * @param name The name
+    * @return The managed connection metadata
+    */
+   public ManagedConnectionFactoryDeploymentGroup getManagedConnectionFactoryDeploymentGroup(String name)
+   {
+      if (name == null)
+         throw new IllegalArgumentException("Null name");
+
+      ScopeKey scopeKey = new ScopeKey(CommonLevels.JVM, name);
+      MetaDataRetrieval r = mdr.getMetaDataRetrieval(scopeKey);
+
+      if (r != null)
+      {
+         MetaDataRetrievalToMetaDataBridge b = new MetaDataRetrievalToMetaDataBridge(r);
+         return b.getMetaData(ManagedConnectionFactoryDeploymentGroup.class);
+      }
+
+      return null;
+   }
+
+   /**
+    * Remove managed connection metadata
+    * @param name The name
+    * @return True if the metadata was added; otherwise
+    */
+   public boolean removeManagedConnectionFactoryDeploymentGroup(String name)
+   {
+      if (name == null)
+         throw new IllegalArgumentException("Null name");
+
+      ScopeKey scopeKey = new ScopeKey(CommonLevels.JVM, name);
+      MetaDataRetrieval mr = mdr.removeMetaDataRetrieval(scopeKey);
+
+      return mr != null;
+   }
+}

Added: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/package.html
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/package.html	                        (rev 0)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/mdr/package.html	2009-03-19 17:08:51 UTC (rev 86107)
@@ -0,0 +1,3 @@
+<body>
+The implementation of the metadata repository.
+</body>

Added: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase.java	                        (rev 0)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase.java	2009-03-19 17:08:51 UTC (rev 86107)
@@ -0,0 +1,477 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.jca.test.core.mdr.unit;
+
+import org.jboss.jca.core.api.MetaDataRepository;
+
+import java.net.URL;
+
+import org.jboss.ejb3.test.mc.bootstrap.EmbeddedTestMcBootstrap;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.rar.jboss.mcf.ManagedConnectionFactoryDeploymentGroup;
+import org.jboss.metadata.rar.spec.ConnectorMetaData;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * MetaDataRepositoryTestCase.
+ * 
+ * Tests for the JBoss specific metadata repository functionality.
+ * 
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ * @version $Revision: $
+ */
+public class MetaDataRepositoryTestCase
+{
+
+   // --------------------------------------------------------------------------------||
+   // Class Members ------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   private static Logger log = Logger.getLogger(MetaDataRepositoryTestCase.class);
+
+   /*
+    * Bootstrap (MC Facade)
+    */
+   private static EmbeddedTestMcBootstrap bootstrap;
+
+   // --------------------------------------------------------------------------------||
+   // Tests --------------------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Test that the MetaDataRepository is defined in the MC
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testDefined() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+   }
+
+   /**
+    * Test null name for addConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testAddConnectorMetaDataNullName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         ConnectorMetaData cmd = mdr.addConnectorMetaData(null, null);
+         fail("Null name");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test null cmd for addConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testAddConnectorMetaDataNullCMD() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         ConnectorMetaData cmd = mdr.addConnectorMetaData("test", null);
+         fail("Null cmd");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test for addConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testAddConnectorMetaData() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ConnectorMetaData cmd = new ConnectorMetaData();
+      cmd = mdr.addConnectorMetaData("test", cmd);
+
+      mdr.removeConnectorMetaData("test");
+   }
+
+   /**
+    * Test null name for getConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testGetConnectorMetaDataNullName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         ConnectorMetaData cmd = mdr.getConnectorMetaData(null);
+         fail("Null name");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test undefined name for getConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testGetConnectorMetaDataUndefinedName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ConnectorMetaData cmd = mdr.getConnectorMetaData("test");
+      assertNull(cmd);
+   }
+
+   /**
+    * Test for getConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testGetConnectorMetaData() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ConnectorMetaData cmd1 = new ConnectorMetaData();
+      mdr.addConnectorMetaData("test", cmd1);
+
+      ConnectorMetaData cmd2 = mdr.getConnectorMetaData("test");
+      assertNotNull(cmd2);
+
+      assertEquals("Objects are not the same", cmd1, cmd2);
+
+      mdr.removeConnectorMetaData("test");
+   }
+
+   /**
+    * Test null name for removeConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testRemoveConnectorMetaDataNullName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         boolean result = mdr.removeConnectorMetaData(null);
+         fail("Null name");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test undefined name for removeConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testRemoveConnectorMetaDataUndefinedName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      assertFalse(mdr.removeConnectorMetaData("test"));
+   }
+
+   /**
+    * Test for removeConnectorMetaData
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testRemoveConnectorMetaData() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ConnectorMetaData cmd = new ConnectorMetaData();
+      mdr.addConnectorMetaData("test", cmd);
+
+      assertTrue(mdr.removeConnectorMetaData("test"));
+   }
+
+   /**
+    * Test null name for addMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testAddMCFDGNullName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         ManagedConnectionFactoryDeploymentGroup cmd = mdr.addManagedConnectionFactoryDeploymentGroup(null, null);
+         fail("Null name");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test null group for addMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testAddMCFDGNullGroup() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         ManagedConnectionFactoryDeploymentGroup group = mdr.addManagedConnectionFactoryDeploymentGroup("test", null);
+         fail("Null group");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test for addMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testAddMCFDG() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ManagedConnectionFactoryDeploymentGroup group = new ManagedConnectionFactoryDeploymentGroup();
+      mdr.addManagedConnectionFactoryDeploymentGroup("test", group);
+
+      mdr.removeManagedConnectionFactoryDeploymentGroup("test");
+   }
+
+   /**
+    * Test null name for getMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testGetMCFDGNullName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         ManagedConnectionFactoryDeploymentGroup group = mdr.getManagedConnectionFactoryDeploymentGroup(null);
+         fail("Null name");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test undefined name for getMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testGetMCFDGUndefinedName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ManagedConnectionFactoryDeploymentGroup group = mdr.getManagedConnectionFactoryDeploymentGroup("test");
+      assertNull(group);
+   }
+
+   /**
+    * Test for getMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testGetMCFDG() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ManagedConnectionFactoryDeploymentGroup group1 = new ManagedConnectionFactoryDeploymentGroup();
+      mdr.addManagedConnectionFactoryDeploymentGroup("test", group1);
+
+      ManagedConnectionFactoryDeploymentGroup group2 = mdr.getManagedConnectionFactoryDeploymentGroup("test");
+      assertNotNull(group2);
+
+      assertEquals("Objects are not the same", group1, group2);
+
+      mdr.removeManagedConnectionFactoryDeploymentGroup("test");
+   }
+
+   /**
+    * Test null name for removeMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testRemoveMCFDGNullName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      try
+      {
+         boolean result = mdr.removeManagedConnectionFactoryDeploymentGroup(null);
+         fail("Null name");
+      }
+      catch (Throwable t)
+      {
+         // Expected
+      }
+   }
+
+   /**
+    * Test undefined name for removeMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testRemoveMCFDGUndefinedName() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      assertFalse(mdr.removeManagedConnectionFactoryDeploymentGroup("test"));
+   }
+
+   /**
+    * Test for removeMCFDG
+    * @throws Throwable throwable exception 
+    */
+   @Test
+   public void testRemoveMCFDG() throws Throwable
+   {
+      MetaDataRepository mdr =
+         bootstrap.lookup("MetaDataRepository", MetaDataRepository.class);
+
+      assertNotNull(mdr);
+
+      ManagedConnectionFactoryDeploymentGroup group = new ManagedConnectionFactoryDeploymentGroup();
+      mdr.addManagedConnectionFactoryDeploymentGroup("test", group);
+
+      assertTrue(mdr.removeManagedConnectionFactoryDeploymentGroup("test"));
+   }
+
+   // --------------------------------------------------------------------------------||
+   // Lifecycle Methods --------------------------------------------------------------||
+   // --------------------------------------------------------------------------------||
+
+   /**
+    * Lifecycle start, before the suite is executed
+    * @throws Throwable throwable exception 
+    */
+   @BeforeClass
+   public static void beforeClass() throws Throwable
+   {
+      // Create and set a new MC Bootstrap
+      bootstrap = EmbeddedTestMcBootstrap.createEmbeddedMcBootstrap();
+
+      // Deploy Beans
+      bootstrap.deploy(MetaDataRepositoryTestCase.class);
+   }
+
+   /**
+    * Lifecycle stop, after the suite is executed
+    * @throws Throwable throwable exception 
+    */
+   @AfterClass
+   public static void afterClass() throws Throwable
+   {
+      // Undeploy Beans
+      bootstrap.undeploy(MetaDataRepositoryTestCase.class);
+
+      // Shutdown MC
+      bootstrap.shutdown();
+
+      // Set Bootstrap to null
+      bootstrap = null;
+   }
+}

Added: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/package.html
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/package.html	                        (rev 0)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/test/core/mdr/unit/package.html	2009-03-19 17:08:51 UTC (rev 86107)
@@ -0,0 +1,3 @@
+<body>
+Test cases covering the JBoss JCA MetaDataRepository implementation.
+</body>

Added: projects/jboss-jca/trunk/core/src/test/resources/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase-jboss-beans.xml
===================================================================
--- projects/jboss-jca/trunk/core/src/test/resources/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase-jboss-beans.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/core/src/test/resources/org/jboss/jca/test/core/mdr/unit/MetaDataRepositoryTestCase-jboss-beans.xml	2009-03-19 17:08:51 UTC (rev 86107)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+    JBoss JCA
+-->
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+  <bean name="MetaDataRepository" interface="org.jboss.jca.core.api.MetaDataRepository" class="org.jboss.jca.core.mdr.MetaDataRepositoryImpl">
+  </bean>
+  
+</deployment>




More information about the jboss-cvs-commits mailing list