[jboss-cvs] JBossAS SVN: r99337 - in projects/kernel/trunk: aop-mc-int and 12 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 13 08:00:29 EST 2010


Author: alesj
Date: 2010-01-13 08:00:29 -0500 (Wed, 13 Jan 2010)
New Revision: 99337

Modified:
   projects/kernel/trunk/aop-mc-int/pom.xml
   projects/kernel/trunk/build/pom.xml
   projects/kernel/trunk/dependency/pom.xml
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerState.java
   projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateModelTestCase.java
   projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateTestCase.java
   projects/kernel/trunk/guice-int/pom.xml
   projects/kernel/trunk/jmx-aop-mc-int/pom.xml
   projects/kernel/trunk/jmx-mc-int/pom.xml
   projects/kernel/trunk/kernel/pom.xml
   projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ScopedKernelController.java
   projects/kernel/trunk/pom.xml
   projects/kernel/trunk/spring-int/pom.xml
   projects/kernel/trunk/weld-int/pom.xml
Log:
[JBKERNEL-71]; bring back deprecated 'new ControllerState'.
Fix pom.xml, check for null parent in scoped controller.

Modified: projects/kernel/trunk/aop-mc-int/pom.xml
===================================================================
--- projects/kernel/trunk/aop-mc-int/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/aop-mc-int/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -15,7 +15,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-aop-mc-int</artifactId>

Modified: projects/kernel/trunk/build/pom.xml
===================================================================
--- projects/kernel/trunk/build/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/build/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -12,12 +12,12 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.jboss.kernel</groupId>
   <artifactId>kernel-dist</artifactId>
-  <version>2.0.0-SNAPSHOT</version>
+  <version>2.2.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>JBoss Microcontainer Distribution Build</name>
   <description>

Modified: projects/kernel/trunk/dependency/pom.xml
===================================================================
--- projects/kernel/trunk/dependency/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/dependency/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-dependency</artifactId>

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/ScopedController.java	2010-01-13 13:00:29 UTC (rev 99337)
@@ -49,7 +49,7 @@
    protected Executor getExecutionEnvironment()
    {
       Executor executor = super.getExecutionEnvironment();
-      if (executor == null)
+      if (executor == null && getParentController() != null)
          executor = getParentController().getExecutionEnvironment();
       return executor;
    }
@@ -167,9 +167,10 @@
          {
             contexts.addAll(currentContexts);
          }
-         if (getParentController() != null)
+         AbstractController parentController = getParentController();
+         if (parentController != null)
          {
-            Set<ControllerContext> parentContexts = getParentController().getInstantiatedContexts(clazz);
+            Set<ControllerContext> parentContexts = parentController.getInstantiatedContexts(clazz);
             if (parentContexts != null && parentContexts.size() > 0)
             {
                contexts.addAll(parentContexts);
@@ -193,9 +194,10 @@
          {
             contexts.addAll(currentContexts);
          }
-         if (getParentController() != null)
+         AbstractController parentController = getParentController();
+         if (parentController != null)
          {
-            Set<ControllerContext> parentContexts = getParentController().getContexts(clazz, state);
+            Set<ControllerContext> parentContexts = parentController.getContexts(clazz, state);
             if (parentContexts != null && parentContexts.size() > 0)
             {
                contexts.addAll(parentContexts);

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerState.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerState.java	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerState.java	2010-01-13 13:00:29 UTC (rev 99337)
@@ -23,6 +23,8 @@
 
 import java.io.ObjectStreamException;
 import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.xml.bind.annotation.XmlType;
@@ -39,6 +41,8 @@
  * 
  * @see ControllerContextActions
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
  * @version $Revision$
  */
 @XmlType(propOrder = {})
@@ -48,35 +52,38 @@
    private static final long serialVersionUID = 2L;
 
    /** Error */
-   public static final ControllerState ERROR = new ControllerState("**ERROR**");
+   public static final ControllerState ERROR = new ControllerState("**ERROR**", false);
 
    /** Not installed state */
-   public static final ControllerState NOT_INSTALLED = new ControllerState("Not Installed");
+   public static final ControllerState NOT_INSTALLED = new ControllerState("Not Installed", false);
 
    /** Pre install state */
-   public static final ControllerState PRE_INSTALL = new ControllerState("PreInstall");
+   public static final ControllerState PRE_INSTALL = new ControllerState("PreInstall", false);
 
    /** Described state */
-   public static final ControllerState DESCRIBED = new ControllerState("Described");
+   public static final ControllerState DESCRIBED = new ControllerState("Described", false);
 
    /** Instantiated state */
-   public static final ControllerState INSTANTIATED = new ControllerState("Instantiated");
+   public static final ControllerState INSTANTIATED = new ControllerState("Instantiated", false);
 
    /** Configured state */
-   public static final ControllerState CONFIGURED = new ControllerState("Configured");
+   public static final ControllerState CONFIGURED = new ControllerState("Configured", false);
 
    /** Create state */
-   public static final ControllerState CREATE = new ControllerState("Create");
+   public static final ControllerState CREATE = new ControllerState("Create", false);
 
    /** Start state */
-   public static final ControllerState START = new ControllerState("Start");
+   public static final ControllerState START = new ControllerState("Start", false);
 
    /** Installed state */
-   public static final ControllerState INSTALLED = new ControllerState("Installed");
+   public static final ControllerState INSTALLED = new ControllerState("Installed", false);
 
    /** The state string */
    protected final String stateString;
 
+   /** The deprecated callers */
+   private static Set<String> deprecatedCallers = new HashSet<String>();
+
    //Unlikely to have several threads updating at once
    private static ConcurrentHashMap<String, ControllerState> values = new ConcurrentHashMap<String, ControllerState>(16, .75f, 1);
 
@@ -95,20 +102,57 @@
 
    /**
     * Create a new state
-    * 
+    *
     * @param stateString the string representation
+    * @param warning do we log a warning
     */
-   private ControllerState(String stateString)
+   private ControllerState(String stateString, boolean warning)
    {
       if (stateString == null)
          throw new IllegalArgumentException("Null state string");
+
       this.stateString = stateString;
+
+      if (warning)
+      {
+         StackTraceElement[] stack = Thread.currentThread().getStackTrace();
+         StackTraceElement caller = null;
+         for (StackTraceElement element : stack)
+         {
+            String className = element.getClassName();
+            if (Thread.class.getName().equals(className) || ControllerState.class.getName().equals(className))
+               continue;
+
+            caller = element;
+            break;
+         }
+         if (caller != null)
+         {
+            String className = caller.getClassName();
+            if (deprecatedCallers.add(className))
+            {
+               log.warn("Deprecated usage of 'new ControllerState', use getInstance, caller: " + caller);
+            }
+         }
+      }
    }
+
+   /**
+    * Create a new state
+    * 
+    * @param stateString the string representation
+    * @deprecated use
+    */
+   @Deprecated
+   public ControllerState(String stateString)
+   {
+      this(stateString, true);
+   }
    
    /**
     * Get an existing state instance
     * 
-    * @param the name of the state
+    * @param stateString the name of the state
     * @return the state
     * @throws IllegalArgumentException if no state exists with that name
     */
@@ -121,7 +165,7 @@
     * Create and register a new state instance. If a state instance already exists with the given name
     * return that instance
     * 
-    * @param the name of the state
+    * @param stateString the name of the state
     * @return the state
     */
    public static ControllerState newState(String stateString)
@@ -172,6 +216,7 @@
       return stateString.hashCode();
    }
 
+   @SuppressWarnings({"UnusedDeclaration"})
    protected Object readResolve() throws ObjectStreamException
    {
       return values.get(stateString);   
@@ -190,7 +235,7 @@
          if (!create)
             throw new IllegalArgumentException("An invalid state was used: " + stateString);
          
-         state = new ControllerState(stateString);
+         state = new ControllerState(stateString, false);
          ControllerState old = values.putIfAbsent(stateString, state);
          if (old != null)
             state = old;

Modified: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateModelTestCase.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateModelTestCase.java	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateModelTestCase.java	2010-01-13 13:00:29 UTC (rev 99337)
@@ -32,6 +32,7 @@
  * Test to try out a new ControllerStateModel implementation 
  * 
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 37459 $
  */
 public class ControllerStateModelTestCase extends AbstractDependencyTest
@@ -261,7 +262,40 @@
       System.out.println(counter);
    }
    
-   
+   public void testDeprecatedNewControllerStateMap() throws Throwable
+   {
+      testDeprecatedNewControllerState(ControllerStateModelFactory.MAP);
+   }
+
+   public void testDeprecatedNewControllerStateExisting() throws Throwable
+   {
+      testDeprecatedNewControllerState(ControllerStateModelFactory.EXISITING);
+   }
+
+   @SuppressWarnings("deprecation")
+   private void testDeprecatedNewControllerState(ControllerStateModelFactory factory)
+   {
+      AbstractControllerStateModel model = factory.createControllerStateModel();
+
+      // test existing states
+
+      model.addState(ControllerState.CONFIGURED, null);
+      model.addState(ControllerState.CREATE, null);
+      model.addState(ControllerState.START, null);
+
+      ControllerState middle = new ControllerState("Create");
+      assertEquals(ControllerState.CONFIGURED, model.getPreviousState(middle));
+      assertEquals(ControllerState.START, model.getNextState(middle));
+      assertTrue(model.isValidState(middle));
+      assertTrue(model.isAfterState(middle, ControllerState.CONFIGURED));
+      assertTrue(model.isBeforeState(middle, ControllerState.START));
+      assertFalse(model.isAfterState(middle, ControllerState.CREATE));
+      assertFalse(model.isBeforeState(middle, ControllerState.CREATE));
+      assertFalse(model.isAfterState(middle, ControllerState.START));
+      assertFalse(model.isBeforeState(middle, ControllerState.CONFIGURED));
+      assertFalse(model.isValidState(new ControllerState("FooBar")));
+   }
+
    private interface StateFactory
    {
       ControllerState getState(String state);

Modified: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateTestCase.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateTestCase.java	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ControllerStateTestCase.java	2010-01-13 13:00:29 UTC (rev 99337)
@@ -26,9 +26,10 @@
 import org.jboss.dependency.spi.ControllerState;
 
 /**
- * Test to try out a new ControllerStateModel implementation 
+ * Test to try out a new ControllerState changes
  * 
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision: 37459 $
  */
 public class ControllerStateTestCase extends AbstractDependencyTest
@@ -45,7 +46,7 @@
 
    public void testExistingControllerState()
    {
-      ControllerState state = ControllerState.getInstance(ControllerState.CONFIGURED.getStateString());
+      ControllerState.getInstance(ControllerState.CONFIGURED.getStateString());
    }
    
    public void testNonExistingControllerStata()
@@ -69,6 +70,20 @@
       ControllerState existing = ControllerState.newState("Kabir");
       assertSame(created, existing);
       
-      existing = ControllerState.getInstance("Kabir");
+      ControllerState.getInstance("Kabir");
    }
+
+   @SuppressWarnings("deprecation")
+   public void testDeprecatedNewControllerStateUsage() throws Exception
+   {
+      ControllerState s1 = ControllerState.newState("Ales");
+      ControllerState s2 = ControllerState.getInstance("Ales");
+      ControllerState s3 = new ControllerState("Ales");
+      assertEquals(s1, s3);
+      assertEquals(s2, s3);
+      assertEquals(s1.hashCode(), s3.hashCode());
+      assertEquals(s2.hashCode(), s3.hashCode());
+
+      // TODO - more tests?
+   }
 }

Modified: projects/kernel/trunk/guice-int/pom.xml
===================================================================
--- projects/kernel/trunk/guice-int/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/guice-int/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-guice-int</artifactId>

Modified: projects/kernel/trunk/jmx-aop-mc-int/pom.xml
===================================================================
--- projects/kernel/trunk/jmx-aop-mc-int/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/jmx-aop-mc-int/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-jmx-aop-mc-int</artifactId>

Modified: projects/kernel/trunk/jmx-mc-int/pom.xml
===================================================================
--- projects/kernel/trunk/jmx-mc-int/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/jmx-mc-int/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-jmx-mc-int</artifactId>

Modified: projects/kernel/trunk/kernel/pom.xml
===================================================================
--- projects/kernel/trunk/kernel/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/kernel/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-kernel</artifactId>

Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ScopedKernelController.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ScopedKernelController.java	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/ScopedKernelController.java	2010-01-13 13:00:29 UTC (rev 99337)
@@ -29,6 +29,7 @@
 
 import org.jboss.dependency.plugins.AbstractController;
 import org.jboss.dependency.plugins.action.ControllerContextAction;
+import org.jboss.dependency.spi.Controller;
 import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.kernel.Kernel;
@@ -112,7 +113,12 @@
     */
    void release()
    {
-      getParentController().removeController(this);
+      AbstractController controller = getParentController();
+      if (controller != null)
+         controller.removeController(this);
+      else
+         log.debug("Parent controller already released, cannot remove this: " + toString());
+
       setUnderlyingController(null);
       setParentController(null);
       parentKernel = null;
@@ -140,12 +146,16 @@
       {
          return context;
       }
-      return getParentController().getContext(name, state);
+      Controller controller = getParentController();
+      return (controller != null) ? controller.getContext(name, state) : null;
    }
 
    public Set<ControllerContext> getNotInstalled()
    {
-      Set<ControllerContext> uninstalled = new HashSet<ControllerContext>(getParentController().getNotInstalled());
+      Set<ControllerContext> uninstalled = new HashSet<ControllerContext>();
+      Controller controller = getParentController();
+      if (controller != null)
+         uninstalled.addAll(controller.getNotInstalled());
       uninstalled.addAll(super.getNotInstalled());
       return uninstalled;
    }
@@ -153,7 +163,9 @@
    protected void install(ControllerContext context, boolean trace) throws Throwable
    {
       // we only allow install at top level
-      getParentController().install(context);
+      Controller controller = getParentController();
+      if (controller != null)
+         controller.install(context);
    }
 
    // KernelController methods

Modified: projects/kernel/trunk/pom.xml
===================================================================
--- projects/kernel/trunk/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -7,7 +7,7 @@
   </parent>
   <groupId>org.jboss.kernel</groupId>
   <artifactId>jboss-mc-kernel</artifactId>
-  <version>2.0.0-SNAPSHOT</version>
+  <version>2.2.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>JBoss Microcontainer Kernel Parent POM</name>
   <url>http://www.jboss.org/jbossmc/</url>

Modified: projects/kernel/trunk/spring-int/pom.xml
===================================================================
--- projects/kernel/trunk/spring-int/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/spring-int/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-spring-int</artifactId>

Modified: projects/kernel/trunk/weld-int/pom.xml
===================================================================
--- projects/kernel/trunk/weld-int/pom.xml	2010-01-13 12:11:48 UTC (rev 99336)
+++ projects/kernel/trunk/weld-int/pom.xml	2010-01-13 13:00:29 UTC (rev 99337)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.jboss.kernel</groupId>
     <artifactId>jboss-mc-kernel</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>jboss-weld-int</artifactId>




More information about the jboss-cvs-commits mailing list