[jboss-cvs] JBossAS SVN: r111467 - in projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq: ra and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu May 26 21:28:40 EDT 2011
Author: gaol
Date: 2011-05-26 21:28:40 -0400 (Thu, 26 May 2011)
New Revision: 111467
Modified:
projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/AbstractResourceComponent.java
projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/IronJacamarResourceComponent.java
projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/RarResourceComponent.java
Log:
[JBJCA-578] adds support to undeploy rar resources.
Modified: projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/AbstractResourceComponent.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/AbstractResourceComponent.java 2011-05-26 20:45:31 UTC (rev 111466)
+++ projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/AbstractResourceComponent.java 2011-05-27 01:28:40 UTC (rev 111467)
@@ -387,5 +387,24 @@
}
return null;
}
+
+ /**
+ * Gets Uploaded Dir.
+ *
+ * @return directory where the RAR or -ds.xml will be uploaded to.
+ */
+ protected String getUploadedDir()
+ {
+ String uploadedDir = System.getProperty("jboss.server.temp.dir");
+ if (null == uploadedDir)
+ {
+ uploadedDir = System.getProperty("java.io.tmpdir");
+ }
+ if (null == uploadedDir)
+ {
+ uploadedDir = "/tmp";
+ }
+ return uploadedDir;
+ }
}
Modified: projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/IronJacamarResourceComponent.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/IronJacamarResourceComponent.java 2011-05-26 20:45:31 UTC (rev 111466)
+++ projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/core/IronJacamarResourceComponent.java 2011-05-27 01:28:40 UTC (rev 111467)
@@ -72,7 +72,7 @@
ResourcePackageDetails pkgDetail = report.getPackageDetails();
ContentContext contentContext = getResourceContext().getContentContext();
ContentServices contentServices = contentContext.getContentServices();
- String tmpDir = System.getProperty("java.io.tmpdir");
+ String tmpDir = getUploadedDir();
String fileName = pkgDetail.getFileName();
if (!fileName.toLowerCase().endsWith(".rar") && !fileName.toLowerCase().endsWith("-ds.xml"))
{
Modified: projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/RarResourceComponent.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/RarResourceComponent.java 2011-05-26 20:45:31 UTC (rev 111466)
+++ projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/RarResourceComponent.java 2011-05-27 01:28:40 UTC (rev 111467)
@@ -22,7 +22,11 @@
package org.jboss.jca.rhq.ra;
import org.jboss.jca.rhq.core.AbstractResourceComponent;
+import org.jboss.jca.rhq.core.Deploy;
+import org.jboss.jca.rhq.util.ContainerHelper;
+import java.io.File;
+import java.io.FilenameFilter;
import java.io.InputStream;
import java.util.HashSet;
import java.util.List;
@@ -36,6 +40,7 @@
import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
import org.rhq.core.pluginapi.content.ContentFacet;
import org.rhq.core.pluginapi.content.ContentServices;
+import org.rhq.core.pluginapi.inventory.DeleteResourceFacet;
/**
* RarResourceComponent
@@ -43,7 +48,7 @@
* @author <a href="mailto:yyang at gmail.com">Young Yang</a>
* @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
*/
-public class RarResourceComponent extends AbstractResourceComponent implements ContentFacet
+public class RarResourceComponent extends AbstractResourceComponent implements ContentFacet, DeleteResourceFacet
{
/**
* loadResourceConfiguration
@@ -103,4 +108,41 @@
// TODO Auto-generated method stub
return null;
}
+
+ /**
+ * Deletes the RAR resource.
+ * @throws Exception the exception
+ */
+ @Override
+ public void deleteResource() throws Exception
+ {
+ Deploy deployer = (Deploy)ContainerHelper.getEmbeddedDiscover();
+ final String rarUniqueId = getRarUniqueId();
+ String uploadDir = getUploadedDir();
+ File dir = new File(uploadDir);
+ File[] rarFiles = dir.listFiles(new FilenameFilter()
+ {
+
+ @Override
+ public boolean accept(File dir, String name)
+ {
+ return name.equals(rarUniqueId);
+ }
+
+ });
+ if (rarFiles.length == 0)
+ {
+ throw new IllegalStateException("Can not find associated file of the connector: " + rarUniqueId);
+ }
+ File rarFile = rarFiles[0];
+
+ try
+ {
+ deployer.undeploy(rarFile.toURI().toURL());
+ }
+ catch (Throwable e)
+ {
+ throw new Exception(e);
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list