[jboss-cvs] JBossAS SVN: r90154 - in projects/jboss-jca/trunk: sjc/src/main/java/org/jboss/jca/sjc and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 12 09:24:29 EDT 2009


Author: jesper.pedersen
Date: 2009-06-12 09:24:29 -0400 (Fri, 12 Jun 2009)
New Revision: 90154

Modified:
   projects/jboss-jca/trunk/build.xml
   projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java
   projects/jboss-jca/trunk/tools/findbugs/filter.xml
Log:
[JBJCA-95] Set classloader in shutdown() and added support for all primitive types

Modified: projects/jboss-jca/trunk/build.xml
===================================================================
--- projects/jboss-jca/trunk/build.xml	2009-06-12 12:01:42 UTC (rev 90153)
+++ projects/jboss-jca/trunk/build.xml	2009-06-12 13:24:29 UTC (rev 90154)
@@ -278,6 +278,7 @@
       <class location="${target.dir}/jboss-jca-deployers-main.jar" />
       <class location="${target.dir}/jboss-jca-deployers-rar.jar" />
       <class location="${target.dir}/jboss-jca-sjc.jar" />
+      <class location="${target.dir}/jboss-jca-sjc-ra-deployer.jar" />
       <class location="${target.dir}/jboss-jca-standalone.jar" />
     </findbugs>
   </target>

Modified: projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java	2009-06-12 12:01:42 UTC (rev 90153)
+++ projects/jboss-jca/trunk/sjc/src/main/java/org/jboss/jca/sjc/Main.java	2009-06-12 13:24:29 UTC (rev 90154)
@@ -27,6 +27,7 @@
 import org.jboss.jca.sjc.boot.PropertyType;
 import org.jboss.jca.sjc.deployers.Deployer;
 
+import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.io.Serializable;
@@ -59,6 +60,9 @@
    /** Services */
    private static Map<String, Object> services = new HashMap<String, Object>();
 
+   /** Container classloader */
+   private static URLClassLoader containerClassLoader;
+
    /** Logging */
    private static Object logging;
 
@@ -102,10 +106,10 @@
 
          URL[] urls = mergeUrls(libUrls, confUrls);
 
-         URLClassLoader classLoader = new URLClassLoader(urls, parent);
-         SecurityActions.setThreadContextClassLoader(classLoader);
+         containerClassLoader = new URLClassLoader(urls, parent);
+         SecurityActions.setThreadContextClassLoader(containerClassLoader);
 
-         initLogging(classLoader);
+         initLogging(containerClassLoader);
 
          SecurityActions.setSystemProperty("xb.builder.useUnorderedSequence", "true");
          SecurityActions.setSystemProperty("jboss.deploy.url", deployDirectory.toURI().toURL().toString());
@@ -124,7 +128,7 @@
             {
                if (services.get(bt.getName()) == null)
                {
-                  Object bean = createBean(bt, classLoader, deployDirectory);
+                  Object bean = createBean(bt, containerClassLoader, deployDirectory);
                   startup.add(bt.getName());
                   services.put(bt.getName(), bean);
                }
@@ -146,6 +150,8 @@
     */
    private static void shutdown()
    {
+      SecurityActions.setThreadContextClassLoader(containerClassLoader);
+
       List<String> shutdown = new LinkedList<String>(startup);
       Collections.reverse(shutdown);
 
@@ -419,6 +425,14 @@
 
             parameterValue = s;
          }
+         else if (parameterClass.equals(byte.class) || parameterClass.equals(Byte.class))
+         {
+            parameterValue = Byte.valueOf((String)element);
+         }
+         else if (parameterClass.equals(short.class) || parameterClass.equals(Short.class))
+         {
+            parameterValue = Short.valueOf((String)element);
+         }
          else if (parameterClass.equals(int.class) || parameterClass.equals(Integer.class))
          {
             parameterValue = Integer.valueOf((String)element);
@@ -427,10 +441,22 @@
          {
             parameterValue = Long.valueOf((String)element);
          }
+         else if (parameterClass.equals(float.class) || parameterClass.equals(Float.class))
+         {
+            parameterValue = Float.valueOf((String)element);
+         }
+         else if (parameterClass.equals(double.class) || parameterClass.equals(Double.class))
+         {
+            parameterValue = Double.valueOf((String)element);
+         }
          else if (parameterClass.equals(boolean.class) || parameterClass.equals(Boolean.class))
          {
             parameterValue = Boolean.valueOf((String)element);
          }
+         else if (parameterClass.equals(char.class) || parameterClass.equals(Character.class))
+         {
+            parameterValue = Character.valueOf(((String)element).charAt(0));
+         }
          else if (parameterClass.equals(InetAddress.class))
          {
             parameterValue = InetAddress.getByName((String)element);
@@ -456,7 +482,7 @@
          
          Method mGetLogger = clz.getMethod("getLogger", String.class);
 
-         logging = mGetLogger.invoke((Object)null, new Object[] { "Main" });
+         logging = mGetLogger.invoke((Object)null, new Object[] {"Main"});
       }
       catch (Exception e)
       {
@@ -477,7 +503,7 @@
          {
             Class clz = logging.getClass();
             Method mError = clz.getMethod("error", Object.class, Throwable.class);
-            mError.invoke(logging, new Object[] { s, t });
+            mError.invoke(logging, new Object[] {s, t});
          }
          catch (Exception e)
          {
@@ -503,7 +529,7 @@
          {
             Class clz = logging.getClass();
             Method mWarn = clz.getMethod("warn", Object.class);
-            mWarn.invoke(logging, new Object[] { s });
+            mWarn.invoke(logging, new Object[] {s});
          }
          catch (Exception e)
          {
@@ -528,7 +554,7 @@
          {
             Class clz = logging.getClass();
             Method mInfo = clz.getMethod("info", Object.class);
-            mInfo.invoke(logging, new Object[] { s });
+            mInfo.invoke(logging, new Object[] {s});
          }
          catch (Exception e)
          {
@@ -583,6 +609,18 @@
             public void run()
             {
                Main.shutdown();
+
+               if (containerClassLoader != null && containerClassLoader instanceof Closeable)
+               {
+                  try
+                  {
+                     ((Closeable)containerClassLoader).close();
+                  }
+                  catch (IOException ioe)
+                  {
+                     // Swallow
+                  }
+               }
             }
          });
 

Modified: projects/jboss-jca/trunk/tools/findbugs/filter.xml
===================================================================
--- projects/jboss-jca/trunk/tools/findbugs/filter.xml	2009-06-12 12:01:42 UTC (rev 90153)
+++ projects/jboss-jca/trunk/tools/findbugs/filter.xml	2009-06-12 13:24:29 UTC (rev 90154)
@@ -36,6 +36,14 @@
 
   <!--  org.jboss.jca.sjc filter -->
   <Match>
+    <Class name="org.jboss.jca.sjc.Main"/>
+    <Bug code="DE"/>
+  </Match>
+  <Match>
+    <Class name="org.jboss.jca.sjc.Main"/>
+    <Bug code="REC"/>
+  </Match>
+  <Match>
     <Class name="org.jboss.jca.sjc.Main$LifeThread"/>
     <Bug code="UW"/>
   </Match>
@@ -43,5 +51,12 @@
     <Class name="org.jboss.jca.sjc.Main$LifeThread"/>
     <Bug code="Wa"/>
   </Match>
-
+  <Match>
+    <Class name="org.jboss.jca.sjc.deployers.ra.ExtractUtil"/>
+    <Bug code="RV"/>
+  </Match>
+  <Match>
+    <Class name="org.jboss.jca.sjc.deployers.ra.RADeployer"/>
+    <Bug code="DLS"/>
+  </Match>
 </FindBugsFilter>




More information about the jboss-cvs-commits mailing list