[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