Updated Branches:
  refs/heads/master 2b35b3834 -> ff93d559e

DELTASPIKE-390 support for (optional) custom ConfigPreProcessor for 
@ViewMetaData


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

Branch: refs/heads/master
Commit: ff93d559eeed7a5b0fbcfcee95f1c5be49852bd3
Parents: 2b35b38
Author: gpetracek <[email protected]>
Authored: Sun Jul 7 15:57:22 2013 +0200
Committer: gpetracek <[email protected]>
Committed: Sun Jul 7 15:57:44 2013 +0200

----------------------------------------------------------------------
 .../config/view/DefaultConfigNodeConverter.java   | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ff93d559/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultConfigNodeConverter.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultConfigNodeConverter.java
 
b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultConfigNodeConverter.java
index 6b5f0b3..c949dee 100644
--- 
a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultConfigNodeConverter.java
+++ 
b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/config/view/DefaultConfigNodeConverter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.deltaspike.jsf.impl.config.view;
 
+import org.apache.deltaspike.core.api.config.ConfigResolver;
 import org.apache.deltaspike.core.api.config.view.metadata.Aggregated;
 import org.apache.deltaspike.core.api.config.view.ViewConfig;
 import org.apache.deltaspike.core.api.config.view.metadata.ViewMetaData;
@@ -207,6 +208,23 @@ public class DefaultConfigNodeConverter implements 
ConfigNodeConverter
             Class<? extends ConfigPreProcessor> preProcessorClass = 
viewMetaData.preProcessor();
             if (!ConfigPreProcessor.class.equals(preProcessorClass))
             {
+                String customPreProcessorClassName = 
ConfigResolver.getPropertyValue(preProcessorClass.getName(), null);
+
+                if (customPreProcessorClassName != null)
+                {
+                    Class<? extends ConfigPreProcessor> 
customPreProcessorClass =
+                            
ClassUtils.tryToLoadClassForName(customPreProcessorClassName, 
ConfigPreProcessor.class);
+
+                    if (customPreProcessorClass != null)
+                    {
+                        preProcessorClass = customPreProcessorClass;
+                    }
+                    else
+                    {
+                        throw new 
IllegalStateException(customPreProcessorClassName + " is configured to replace 
" +
+                            preProcessorClass.getName() + ", but it wasn't 
possible to load it.");
+                    }
+                }
                 ConfigPreProcessor preProcessor = 
ClassUtils.tryToInstantiateClass(preProcessorClass);
                 result.add(preProcessor.beforeAddToConfig(annotation, node));
             }

Reply via email to