[exo-jcr-commits] exo-jcr SVN: r2443 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: config and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri May 28 06:29:30 EDT 2010


Author: areshetnyak
Date: 2010-05-28 06:29:30 -0400 (Fri, 28 May 2010)
New Revision: 2443

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/RepositoryServiceConfigurationImpl.java
Log:
EXOJCR-735 : Add merge extend configuration with persisted config.

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java	2010-05-28 09:59:52 UTC (rev 2442)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/RepositoryContainer.java	2010-05-28 10:29:30 UTC (rev 2443)
@@ -62,6 +62,7 @@
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -534,8 +535,27 @@
 
    private void registerWorkspacesComponents() throws RepositoryException, RepositoryConfigurationException
    {
-      List<WorkspaceEntry> wsEntries = config.getWorkspaceEntries();
-      Collections.sort(wsEntries, new WorkspaceOrderComparator(config.getSystemWorkspaceName()));
+      List<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
+      
+      for (WorkspaceEntry ws : config.getWorkspaceEntries())
+      {
+         if (ws.getName().equals(config.getSystemWorkspaceName())) 
+         {
+            if (wsEntries.size() == 0)
+            {
+               wsEntries.add(ws);
+            } 
+            else
+            {
+               wsEntries.add(0, ws);
+            }
+         } 
+         else 
+         {
+            wsEntries.add(ws);
+         }
+      }
+      
       for (int i = 0; i < wsEntries.size(); i++)
       {
          registerWorkspace(wsEntries.get(i));

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/RepositoryServiceConfigurationImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/RepositoryServiceConfigurationImpl.java	2010-05-28 09:59:52 UTC (rev 2442)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/config/RepositoryServiceConfigurationImpl.java	2010-05-28 10:29:30 UTC (rev 2443)
@@ -254,6 +254,20 @@
          if (configExtensionPaths.isEmpty() || (configurationPersister != null && configurationPersister.hasConfig()))
          {
             initFromStream(configurationService.getInputStream(param.getValue()));
+            
+            if (!configExtensionPaths.isEmpty()) 
+            {
+               String[] paths = (String[])configExtensionPaths.toArray(new String[configExtensionPaths.size()]);
+               for (int i = paths.length - 1; i >= 0; i--)
+               {
+                     merge(configurationService.getInputStream(paths[i]));
+               }
+               // Store the merged configuration
+               if (configurationPersister != null)
+               {
+                  retain();
+               }
+            }
          }
          else
          {



More information about the exo-jcr-commits mailing list