[jboss-cvs] JBossAS SVN: r100740 - in projects/kernel/branches/resolver: dependency/src/main/java/org/jboss/dependency/plugins and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 9 06:14:28 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-02-09 06:14:28 -0500 (Tue, 09 Feb 2010)
New Revision: 100740

Modified:
   projects/kernel/branches/resolver/
   projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java
   projects/kernel/branches/resolver/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/DescribeAction.java
   projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithEnableds.xml
Log:
Merged revisions 100652,100669,100690,100692,100695,100699 via svnmerge from 
https://svn.jboss.org/repos/jbossas/projects/kernel/trunk

.......
  r100652 | alesj | 2010-02-06 14:17:53 +0000 (Sat, 06 Feb 2010) | 1 line
  
  [JBKERNEL-89]; add MDR population for ServiceControllerContext.
.......
  r100669 | alesj | 2010-02-07 22:45:53 +0000 (Sun, 07 Feb 2010) | 1 line
  
  [JBKERNEL-90]; fix MDR init for contexts - lazy metadata get.
.......
  r100690 | alesj | 2010-02-08 09:12:20 +0000 (Mon, 08 Feb 2010) | 1 line
  
  [JBKERNEL-90]; only keep ref on the owning context.
.......
  r100692 | kabir.khan at jboss.com | 2010-02-08 10:21:14 +0000 (Mon, 08 Feb 2010) | 1 line
  
  Use normal characters in xml and tests to avoid encoding issues
.......
  r100695 | alesj | 2010-02-08 12:31:10 +0000 (Mon, 08 Feb 2010) | 1 line
  
  Add more info - so it's not random.
.......
  r100699 | alesj | 2010-02-08 14:24:40 +0000 (Mon, 08 Feb 2010) | 1 line
  
  Repeat previous get.
.......



Property changes on: projects/kernel/branches/resolver
___________________________________________________________________
Name: svnmerge-integrated
   - /projects/kernel/trunk:1-100410
   + /projects/kernel/trunk:1-100738

Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java	2010-02-09 11:07:02 UTC (rev 100739)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/AbstractScopeInfo.java	2010-02-09 11:14:28 UTC (rev 100740)
@@ -43,6 +43,7 @@
  * AbstractScopeInfo.
  * 
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
  * @version $Revision: 1.1 $
  */
 public class AbstractScopeInfo implements ScopeInfo
@@ -59,12 +60,15 @@
    /** The install scope */
    private ScopeKey installScope;
    
+   /** The added scopes */
+   private CopyOnWriteArraySet<ScopeKey> addedScopes = new CopyOnWriteArraySet<ScopeKey>();
+
    /** The repository */
-   private MutableMetaDataRepository repository;
+   private volatile MutableMetaDataRepository repository;
 
-   /** The added scopes */
-   private CopyOnWriteArraySet<ScopeKey> addedScopes = new CopyOnWriteArraySet<ScopeKey>();
-   
+   /** The owning context */
+   private volatile ControllerContext context;
+
    /**
     * Create a new AbstractScopeInfo.
     * 
@@ -110,13 +114,24 @@
    {
       if (repository == null)
          return null;
-      
-      return repository.getMetaData(getScope());
+
+      MetaData metaData = repository.getMetaData(getScope());
+      if (metaData == null && context != null)
+      {
+         initMetaDataRetrieval(repository, context);
+         metaData = repository.getMetaData(getScope());
+      }
+      return metaData;
    }
 
    public void addMetaData(MutableMetaDataRepository repository, ControllerContext context)
    {
       this.repository = repository;
+
+      // only keep ref on the owning context
+      if (context != null && context.getScopeInfo() == this)
+         this.context = context;
+
       ScopeKey scope = getMutableScope();
       MetaDataRetrieval retrieval = repository.getMetaDataRetrieval(scope);
       MutableMetaDataLoader mutable;
@@ -130,7 +145,7 @@
       {
          mutable = getMutableMetaDataLoader(retrieval);
       }
-      
+
       if (mutable == null)
       {
          log.warn("MetaData context is not mutable: " + retrieval + " for " + context.toShortString());
@@ -176,8 +191,11 @@
          }
       }
       addedScopes.clear();
+
+      if (context != null && context.getScopeInfo() == this)
+         this.context = null;
+
       this.repository = null;
-      
    }
 
    /**

Modified: projects/kernel/branches/resolver/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/DescribeAction.java
===================================================================
--- projects/kernel/branches/resolver/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/DescribeAction.java	2010-02-09 11:07:02 UTC (rev 100739)
+++ projects/kernel/branches/resolver/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/DescribeAction.java	2010-02-09 11:14:28 UTC (rev 100740)
@@ -22,33 +22,56 @@
 package org.jboss.system.microcontainer;
 
 import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.metadata.KernelMetaDataRepository;
+import org.jboss.metadata.spi.repository.MutableMetaDataRepository;
+import org.jboss.system.ServiceController;
 
 /**
  * DescribeAction.
- * This does not do anything. Called when installing to/uninstalling from the 
+ * Populate MDR with context info.
+ * Called when installing to/uninstalling from the
  * {@link ControllerState#DESCRIBED} state.
  * 
  * @see ServiceControllerContextActions
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
  * @version $Revision$
  */
 public class DescribeAction extends ServiceControllerContextAction
 {
    /**
-    * No-op
+    * Get kernel metadata repository.
+    *
+    * @param context the service controller context
+    * @return kernel metadata reposiory
+    */
+   protected KernelMetaDataRepository getRepository(ServiceControllerContext context)
+   {
+      ServiceController controller = context.getServiceController();
+      Kernel kernel = controller.getKernel();
+      return kernel.getMetaDataRepository();
+   }
+
+   /**
+    * Push context to MDR.
     * 
     * @param context The ServiceControllerContext we are installing
     */
    public void installAction(ServiceControllerContext context) throws Throwable
    {
+      KernelMetaDataRepository repository = getRepository(context);
+      repository.addMetaData(context);
    }
 
    /**
-    * No-op
+    * Remove context form MDR.
     * 
     * @param context The ServiceControllerContext we are uninstalling
     */
    public void uninstallAction(ServiceControllerContext context)
    {
+      KernelMetaDataRepository repository = getRepository(context);
+      repository.removeMetaData(context);
    }
 }

Modified: projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithEnableds.xml
===================================================================
--- projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithEnableds.xml	2010-02-09 11:07:02 UTC (rev 100739)
+++ projects/kernel/branches/resolver/kernel/src/test/resources/org/jboss/test/kernel/deployment/xml/test/QualifierBeanWithEnableds.xml	2010-02-09 11:14:28 UTC (rev 100740)
@@ -4,12 +4,12 @@
    <qualifier>
       <javabean xmlns="urn:jboss:javabean:2.0" class="java.lang.String">
          <constructor>
-            <parameter>123</parameter>
+            <parameter paramClass="java.lang.String">123</parameter>
          </constructor>
       </javabean>     
       <javabean xmlns="urn:jboss:javabean:2.0" class="java.lang.String"> 
          <constructor>
-            <parameter>abc</parameter>
+            <parameter paramClass="java.lang.String">abc</parameter>
          </constructor>
       </javabean>     
    </qualifier>




More information about the jboss-cvs-commits mailing list