[jboss-cvs] JBossAS SVN: r111119 - in projects/jboss-jca/trunk/rhq: src/main/java/org/jboss/jca/rhq/core and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 7 12:20:14 EDT 2011


Author: jeff.zhang
Date: 2011-04-07 12:20:13 -0400 (Thu, 07 Apr 2011)
New Revision: 111119

Added:
   projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/Deploy.java
   projects/jboss-jca/trunk/rhq/src/test/resources/h2-ds.xml
Modified:
   projects/jboss-jca/trunk/rhq/build.xml
   projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/util/ContainerHelper.java
   projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/embed/core/EmbeddedJcaDiscover.java
   projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/test/XATestCase.java
Log:
[JBJCA-500] use deploy(undeploy) method to deploy(undeploy) rar/ds.xml for testcase

Modified: projects/jboss-jca/trunk/rhq/build.xml
===================================================================
--- projects/jboss-jca/trunk/rhq/build.xml	2011-04-07 16:13:37 UTC (rev 111118)
+++ projects/jboss-jca/trunk/rhq/build.xml	2011-04-07 16:20:13 UTC (rev 111119)
@@ -205,7 +205,7 @@
 
     <copy todir="${build.rhq.dir}/test">
       <fileset dir="src/test/resources"
-               includes="*.properties"/>
+               includes="*.properties *.xml"/>
     </copy>
 
     <jar destfile="${build.rhq.dir}/test/${name}-rhq-test.jar"
@@ -230,6 +230,12 @@
        <fileset dir="src/test/resources/xa.rar"/>
     </jar>
 
+    <!-- local-jdbc.rar -->
+    <copy todir="${build.rhq.dir}/test">
+      <fileset dir="${target.dir}"
+               includes="jdbc-local.rar"/>
+    </copy>
+
     <antcall target="plugin"/>
   </target>
 

Added: projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/Deploy.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/Deploy.java	                        (rev 0)
+++ projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/Deploy.java	2011-04-07 16:20:13 UTC (rev 111119)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, 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.rhq.core;
+
+import java.net.URL;
+
+/**
+ * Deploy interface
+ * deploy and undeploy for jca container
+ * 
+ * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a> 
+ */
+public interface Deploy
+{
+   /**
+    * deploy file
+    * 
+    * @param url deployment file
+    * @throws Throwable if some error
+    */
+   public void deploy(URL url) throws Throwable;
+
+   /**
+    * undeploy file
+    * 
+    * @param url deployment file
+    * @throws Throwable if some error
+    */
+   public void undeploy(URL url) throws Throwable;
+}

Modified: projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/util/ContainerHelper.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/util/ContainerHelper.java	2011-04-07 16:13:37 UTC (rev 111118)
+++ projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/util/ContainerHelper.java	2011-04-07 16:20:13 UTC (rev 111119)
@@ -43,8 +43,8 @@
    {
       try
       {
-         Class<?> cls = Class.forName (EmbedDiscoverClassName);
-         Method method = cls.getMethod ("getInstance");
+         Class<?> cls = Class.forName(EmbedDiscoverClassName);
+         Method method = cls.getMethod("getInstance");
          Object discoverObject = method.invoke(cls, (Object[])null);
          return discoverObject;
       }

Modified: projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/embed/core/EmbeddedJcaDiscover.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/embed/core/EmbeddedJcaDiscover.java	2011-04-07 16:13:37 UTC (rev 111118)
+++ projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/embed/core/EmbeddedJcaDiscover.java	2011-04-07 16:20:13 UTC (rev 111119)
@@ -25,6 +25,7 @@
 
 import org.jboss.jca.embedded.Embedded;
 import org.jboss.jca.embedded.EmbeddedFactory;
+import org.jboss.jca.rhq.core.Deploy;
 import org.jboss.jca.rhq.core.Discover;
 import org.jboss.jca.rhq.core.Lifecycle;
 
@@ -33,8 +34,8 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.jboss.logging.Logger;
 
@@ -45,7 +46,7 @@
  * @author <a href="mailto:lgao at redhat.com">Lin Gao</a>
  * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a> 
  */
-public class EmbeddedJcaDiscover implements Discover, Lifecycle
+public class EmbeddedJcaDiscover implements Discover, Lifecycle, Deploy
 {
    /** log */
    private static final Logger logger = Logger.getLogger(EmbeddedJcaDiscover.class);
@@ -63,7 +64,7 @@
    private ManagementRepository mr = null;
    
    /** URL of rar file */
-   private List<URL> rarUrls = new ArrayList<URL>();
+   private Map<URL, URL> rarUrls = new HashMap<URL, URL>();
    
    /** 
     * singleton getInstance
@@ -100,9 +101,9 @@
          
          //embedJCA.deploy(EmbeddedJcaDiscover.class.getResource("h2-ds.xml"));
          
-         URL deployedURL = deployFile("/xa.rar");
-         logger.debug("xa.rar deployed");
-         rarUrls.add(deployedURL);
+         //URL deployedURL = deployFile("/xa.rar");
+         //logger.debug("xa.rar deployed");
+         //rarUrls.add(deployedURL);
          
          stopped = false;
       }
@@ -113,6 +114,55 @@
 
    }
    
+   /**
+    * deploy file
+    * 
+    * @param url deployment file
+    * @throws Throwable if some error
+    */
+   @Override
+   public void deploy(URL url) throws Throwable
+   {
+      if (url == null || url.toString().equals(""))
+         throw new IllegalArgumentException("url is null");
+
+      URL finalURL;
+      if (url.toExternalForm().startsWith("jar"))
+      {
+         String tmpPath = System.getProperty("java.io.tmpdir");
+         File outputFile = new File(tmpPath, url.getFile());
+         copyURLToFile(url, outputFile);
+         finalURL = outputFile.toURI().toURL();
+      }
+      else
+      {
+         finalURL = url;
+      }
+      embedJCA.deploy(finalURL);
+      logger.debug(url + " deployed");
+      rarUrls.put(url, finalURL);
+   }
+
+   /**
+    * undeploy file
+    * 
+    * @param url deployment file
+    * @throws Throwable if some error
+    */
+   @Override
+   public void undeploy(URL url) throws Throwable
+   {
+      if (url == null || url.toString().equals(""))
+         return;
+      
+      URL targetUrl = rarUrls.remove(url);
+      if (targetUrl != null)
+      {
+         embedJCA.undeploy(targetUrl);
+         logger.debug(url + " undeployed");
+      }
+   }
+   
    /** 
     * deploy file into container
     * 
@@ -214,7 +264,7 @@
    {
       try
       {
-         for (URL url : rarUrls)
+         for (URL url : rarUrls.values())
          {
             embedJCA.undeploy(url);
          }

Modified: projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/test/XATestCase.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/test/XATestCase.java	2011-04-07 16:13:37 UTC (rev 111118)
+++ projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/test/XATestCase.java	2011-04-07 16:20:13 UTC (rev 111119)
@@ -38,6 +38,7 @@
 import org.jboss.jca.rhq.util.ManagementRepositoryHelper;
 
 import java.io.File;
+import java.net.URL;
 import java.util.List;
 import java.util.Set;
 
@@ -77,6 +78,9 @@
    /** RAR resource */
    private static Resource rarServiceResource;
    
+   /** deployed url */
+   private static URL deployedUrl;
+   
    /**
     * Basic
     * @exception Throwable Thrown if case of an error
@@ -543,7 +547,7 @@
     * @throws Throwable throwable exception 
     */
    @BeforeClass
-   public static void setUp() throws Throwable
+   public static void beforeClass() throws Throwable
    {
       File pluginDir = new File(System.getProperty("archives.dir"));
       PluginContainerConfiguration pcConfig = new PluginContainerConfiguration();
@@ -556,6 +560,10 @@
       pc.setConfiguration(pcConfig);
       pc.initialize();
       
+      EmbeddedJcaDiscover jca = EmbeddedJcaDiscover.getInstance();
+      deployedUrl = XATestCase.class.getResource("/xa.rar");
+      jca.deploy(deployedUrl);
+      
       InventoryManager im = pc.getInventoryManager();
       im.executeServerScanImmediately();
 
@@ -564,7 +572,7 @@
 
       RuntimeDiscoveryExecutor discoverExecutor = new RuntimeDiscoveryExecutor(im, pcConfig, serverRes);
       discoverExecutor.run();
-      
+
       rarServiceResource = serverRes.getChildResources().iterator().next();
    }
 
@@ -573,8 +581,11 @@
     * @throws Throwable throwable exception 
     */
    @AfterClass
-   public static void tearDown() throws Throwable
+   public static void afterClass() throws Throwable
    {
+      EmbeddedJcaDiscover jca = EmbeddedJcaDiscover.getInstance();
+      jca.undeploy(deployedUrl);
+      
       PluginContainer pc = PluginContainer.getInstance();
       pc.shutdown();
    }

Added: projects/jboss-jca/trunk/rhq/src/test/resources/h2-ds.xml
===================================================================
--- projects/jboss-jca/trunk/rhq/src/test/resources/h2-ds.xml	                        (rev 0)
+++ projects/jboss-jca/trunk/rhq/src/test/resources/h2-ds.xml	2011-04-07 16:20:13 UTC (rev 111119)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<datasources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:noNamespaceSchemaLocation="http://www.jboss.org/jee/schema/ironjacamar/datasources_1_0.xsd">
+  <datasource jndi-name="java:/H2DS" pool-name="H2DS">
+    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
+    <driver-class>org.h2.Driver</driver-class>
+    <security>
+      <user-name>sa</user-name>
+      <password>sa</password>
+    </security>
+  </datasource>
+
+</datasources>



More information about the jboss-cvs-commits mailing list