[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