You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2013/03/31 22:58:17 UTC

git commit: DELTASPIKE-288 unified lookup

Updated Branches:
  refs/heads/master 73b2664c6 -> 91faa0052


DELTASPIKE-288 unified lookup


Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/91faa005
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/91faa005
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/91faa005

Branch: refs/heads/master
Commit: 91faa00528fbb51d4ba472f1c8f210330b78d987
Parents: 73b2664
Author: gpetracek <gp...@apache.org>
Authored: Sun Mar 31 22:53:14 2013 +0200
Committer: gpetracek <gp...@apache.org>
Committed: Sun Mar 31 22:53:14 2013 +0200

----------------------------------------------------------------------
 .../config/view/DefaultViewConfigResolver.java     |   42 +++++++++------
 1 files changed, 25 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/91faa005/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultViewConfigResolver.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultViewConfigResolver.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultViewConfigResolver.java
index 255e123..32f5de1 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultViewConfigResolver.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultViewConfigResolver.java
@@ -41,16 +41,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Stack;
-import java.util.concurrent.ConcurrentHashMap;
 
 @Typed()
 public class DefaultViewConfigResolver implements ViewConfigResolver
 {
-    private Map<String, ViewConfigDescriptor> viewIdToViewDefinitionEntryMapping =
-        new ConcurrentHashMap<String, ViewConfigDescriptor>();
     private Map<Class<? extends ViewConfig>, ViewConfigDescriptor> viewDefinitionToViewDefinitionEntryMapping;
+    private Map<String, ViewConfigDescriptor> viewPathToViewDefinitionEntryMapping;
+
     private Map<Class, ConfigDescriptor> folderDefinitionToViewDefinitionEntryMapping;
     private Map<String, ConfigDescriptor> folderPathToViewDefinitionEntryMapping;
+
     private ViewConfigDescriptor defaultErrorView;
 
     public DefaultViewConfigResolver(ViewConfigNode rootViewConfigNode,
@@ -183,7 +183,7 @@ public class DefaultViewConfigResolver implements ViewConfigResolver
             return null;
         }
 
-        return this.viewIdToViewDefinitionEntryMapping.get(viewId);
+        return this.viewPathToViewDefinitionEntryMapping.get(viewId);
     }
 
     @Override
@@ -206,10 +206,16 @@ public class DefaultViewConfigResolver implements ViewConfigResolver
     @Override
     public List<ConfigDescriptor<?>> getConfigDescriptors()
     {
-        ConfigDescriptor<?>[] result = this.folderDefinitionToViewDefinitionEntryMapping.values()
+        ConfigDescriptor<?>[] folderResult = this.folderDefinitionToViewDefinitionEntryMapping.values()
                 .toArray(new ConfigDescriptor<?>[this.folderDefinitionToViewDefinitionEntryMapping.size()]);
 
-        return new ArrayList<ConfigDescriptor<?>>(Arrays.asList(result));
+        ConfigDescriptor<?>[] viewResult = this.viewDefinitionToViewDefinitionEntryMapping.values()
+                .toArray(new ConfigDescriptor<?>[this.viewDefinitionToViewDefinitionEntryMapping.size()]);
+
+        List<ConfigDescriptor<?>> result = new ArrayList<ConfigDescriptor<?>>();
+        result.addAll(Arrays.asList(folderResult));
+        result.addAll(Arrays.asList(viewResult));
+        return result;
     }
 
     @Override
@@ -241,30 +247,32 @@ public class DefaultViewConfigResolver implements ViewConfigResolver
     {
         //folders
         Map<String, ConfigDescriptor> folderPathMapping = new HashMap<String, ConfigDescriptor>();
-        for (ConfigDescriptor configDescriptor : this.folderDefinitionToViewDefinitionEntryMapping.values())
+        for (ConfigDescriptor folderConfigDescriptor : this.folderDefinitionToViewDefinitionEntryMapping.values())
         {
-            if (folderPathMapping.containsKey(configDescriptor.toString()))
+            if (folderPathMapping.containsKey(folderConfigDescriptor.toString()))
             {
                 throw new IllegalStateException("Duplicated config for the same folder configured. See: " +
                     folderPathMapping.get(
-                            configDescriptor.toString()).getConfigClass().getName() +
-                    " and " + configDescriptor.getConfigClass().getName());
+                            folderConfigDescriptor.toString()).getConfigClass().getName() +
+                    " and " + folderConfigDescriptor.getConfigClass().getName());
             }
-            folderPathMapping.put(configDescriptor.toString(), configDescriptor);
+            folderPathMapping.put(folderConfigDescriptor.getPath(), folderConfigDescriptor);
         }
         this.folderPathToViewDefinitionEntryMapping = Collections.unmodifiableMap(folderPathMapping);
 
         //pages
-        for (ViewConfigDescriptor viewConfigDescriptor : this.viewDefinitionToViewDefinitionEntryMapping.values())
+        Map<String, ViewConfigDescriptor> viewPathMapping = new HashMap<String, ViewConfigDescriptor>();
+        for (ViewConfigDescriptor pageConfigDescriptor : this.viewDefinitionToViewDefinitionEntryMapping.values())
         {
-            if (viewIdToViewDefinitionEntryMapping.containsKey(viewConfigDescriptor.getViewId()))
+            if (viewPathMapping.containsKey(pageConfigDescriptor.getViewId()))
             {
                 throw new IllegalStateException("Duplicated config for the same page configured. See: " +
-                    viewIdToViewDefinitionEntryMapping.get(
-                            viewConfigDescriptor.getViewId()).getConfigClass().getName() +
-                    " and " + viewConfigDescriptor.getConfigClass().getName());
+                        viewPathMapping.get(
+                            pageConfigDescriptor.getViewId()).getConfigClass().getName() +
+                    " and " + pageConfigDescriptor.getConfigClass().getName());
             }
-            this.viewIdToViewDefinitionEntryMapping.put(viewConfigDescriptor.getViewId(), viewConfigDescriptor);
+            viewPathMapping.put(pageConfigDescriptor.getPath(), pageConfigDescriptor);
         }
+        this.viewPathToViewDefinitionEntryMapping = Collections.unmodifiableMap(viewPathMapping);
     }
 }