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)); }
