Return-Path: X-Original-To: apmail-incubator-deltaspike-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-deltaspike-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AB21CF07A for ; Sat, 23 Mar 2013 12:28:27 +0000 (UTC) Received: (qmail 84659 invoked by uid 500); 23 Mar 2013 12:28:27 -0000 Delivered-To: apmail-incubator-deltaspike-commits-archive@incubator.apache.org Received: (qmail 84601 invoked by uid 500); 23 Mar 2013 12:28:26 -0000 Mailing-List: contact deltaspike-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: deltaspike-dev@incubator.apache.org Delivered-To: mailing list deltaspike-commits@incubator.apache.org Received: (qmail 84576 invoked by uid 99); 23 Mar 2013 12:28:25 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Mar 2013 12:28:25 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 82417832E04; Sat, 23 Mar 2013 12:28:25 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: gpetracek@apache.org To: deltaspike-commits@incubator.apache.org Message-Id: <2ae1b5157707458789178ddf3f9b1a52@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: git commit: DELTASPIKE-288 improved javadoc and minor cleanup Date: Sat, 23 Mar 2013 12:28:25 +0000 (UTC) Updated Branches: refs/heads/master 2d839c526 -> 46879b6be DELTASPIKE-288 improved javadoc and minor cleanup Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/46879b6b Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/46879b6b Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/46879b6b Branch: refs/heads/master Commit: 46879b6bea4a3042794fd651f9ed72dbeadf6e79 Parents: 2d839c5 Author: gpetracek Authored: Sat Mar 23 13:05:49 2013 +0100 Committer: gpetracek Committed: Sat Mar 23 13:24:34 2013 +0100 ---------------------------------------------------------------------- .../core/api/config/view/ViewConfig.java | 1 + .../config/view/metadata/CallbackDescriptor.java | 4 ++ .../api/config/view/metadata/ConfigDescriptor.java | 7 ++-- .../metadata/ExecutableCallbackDescriptor.java | 3 +- .../view/metadata/SimpleCallbackDescriptor.java | 4 ++- .../config/view/metadata/ViewConfigDescriptor.java | 2 +- .../config/view/metadata/ViewConfigResolver.java | 5 +++ .../view/metadata/annotation/Aggregated.java | 9 +++-- .../view/metadata/annotation/DefaultCallback.java | 27 +++++++++++++- .../config/view/controller/ViewControllerBean.java | 24 ++++++------ .../api/navigation/NavigationParameterContext.java | 3 +- .../config/view/DefaultConfigNodeConverter.java | 20 +++++----- .../DefaultNavigationParameterContext.java | 2 + .../deltaspike/jsf/impl/util/SecurityUtils.java | 4 +- .../view/controller/uc003/ViewConfigTest.java | 1 - .../config/view/controller/uc004/TestSecured.java | 10 +++--- .../view/controller/uc004/ViewConfigTest.java | 4 +- .../config/view/custom/uc002/CustomMetaData.java | 1 - .../api/authorization/annotation/Secured.java | 10 +++--- 19 files changed, 91 insertions(+), 50 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/ViewConfig.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/ViewConfig.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/ViewConfig.java index 2e66aa8..66db48a 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/ViewConfig.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/ViewConfig.java @@ -20,6 +20,7 @@ package org.apache.deltaspike.core.api.config.view; /** * Marker interface for type-safe view-config classes. + * Required for view-configs which represent a (logical) page and optional for the rest (e.g. folder-configs). */ public interface ViewConfig { http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/CallbackDescriptor.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/CallbackDescriptor.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/CallbackDescriptor.java index dd500ff..168b939 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/CallbackDescriptor.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/CallbackDescriptor.java @@ -29,6 +29,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +/** + * Basic descriptor for a given class and callback-type. + * It finds and caches the method/s of the given class which are annotated with the given callback-type. + */ public abstract class CallbackDescriptor { protected List callbacks = new ArrayList(); http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ConfigDescriptor.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ConfigDescriptor.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ConfigDescriptor.java index d91b726..ad69b92 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ConfigDescriptor.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ConfigDescriptor.java @@ -22,7 +22,8 @@ import java.lang.annotation.Annotation; import java.util.List; /** - * Descriptor for type-safe configs + * Base descriptor for all type-safe view-configs which represents the + * config-class and meta-data, callbacks,... provided by/bound to this class. */ public interface ConfigDescriptor { @@ -65,7 +66,7 @@ public interface ConfigDescriptor /** * Callbacks which are configured for the entry and bound to the given meta-data type. * @param metaDataType type of the meta-data (e.g. PageBean.class) - * @param executorType type of the executor which allows to get a typed result (e.g. Secured.SecuredDescriptor) + * @param executorType type of the executor which allows to get a typed result (e.g. Secured.Descriptor) * @return descriptor for the callback which also allows to invoke it or null if there is no callback-method */ T getExecutableCallbackDescriptor(Class metaDataType, @@ -75,7 +76,7 @@ public interface ConfigDescriptor * Callbacks which are configured for the entry and bound to the given meta-data type. * @param metaDataType type of the meta-data (e.g. PageBean.class) * @param callbackType type of the callback (e.g. PreRenderView.class) - * @param executorType type of the executor which allows to get a typed result (e.g. Secured.SecuredDescriptor) + * @param executorType type of the executor which allows to get a typed result (e.g. Secured.Descriptor) * @return descriptor for the callback which also allows to invoke it or null if there is no callback-method */ T getExecutableCallbackDescriptor(Class metaDataType, http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ExecutableCallbackDescriptor.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ExecutableCallbackDescriptor.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ExecutableCallbackDescriptor.java index ff20b0b..417770c 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ExecutableCallbackDescriptor.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ExecutableCallbackDescriptor.java @@ -26,7 +26,8 @@ import java.util.ArrayList; import java.util.List; /** - * Provides {@link #execute} only for concrete descriptors, but doesn't expose it (-> can't get used by accident). + * Specialized {@link CallbackDescriptor} + * which provides {@link #execute} only for concrete descriptors, but doesn't expose it (-> can't get used by accident). * Concrete implementations can provide type-safe versions of it, but delegate the final execution to {@link #execute}. * * @param return type http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/SimpleCallbackDescriptor.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/SimpleCallbackDescriptor.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/SimpleCallbackDescriptor.java index c4787b2..ae27c13 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/SimpleCallbackDescriptor.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/SimpleCallbackDescriptor.java @@ -22,7 +22,9 @@ import java.lang.annotation.Annotation; import java.util.List; /** - * For callback-methods without (supported) parameters + * {@link ExecutableCallbackDescriptor} for simple callback-methods without (supported) parameters, + * which exposes #execute without parameters. + * * @param return type */ public abstract class SimpleCallbackDescriptor extends ExecutableCallbackDescriptor http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigDescriptor.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigDescriptor.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigDescriptor.java index 61fa0b4..e12d2d5 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigDescriptor.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigDescriptor.java @@ -21,7 +21,7 @@ package org.apache.deltaspike.core.api.config.view.metadata; import org.apache.deltaspike.core.api.config.view.ViewConfig; /** - * Descriptor for view-configs + * Descriptor which represents a concrete view (/page). */ public interface ViewConfigDescriptor extends ConfigDescriptor { http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigResolver.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigResolver.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigResolver.java index 9f7c1a0..6b03384 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigResolver.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/ViewConfigResolver.java @@ -24,6 +24,11 @@ import java.util.List; /** * Resolver for view-configs + * + * A {@link ConfigDescriptor} can be bound to any config-class (without required base-type). + * That's needed e.g. for folder-configs. Whereas {@link ViewConfigDescriptor}s only represent config-classes which + * inherit from {@link ViewConfig} which is required for all page-configs. + * * Use {@link org.apache.deltaspike.core.spi.config.view.ViewConfigRoot} to configure a custom resolver. */ //TODO re-visit name since we also need ConfigDescriptor http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/Aggregated.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/Aggregated.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/Aggregated.java index 316648c..cb18eca 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/Aggregated.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/Aggregated.java @@ -23,13 +23,16 @@ import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.ElementType.ANNOTATION_TYPE; -import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** - * Can be used to mark annotations as aggregated meta-data. + * This annotation can be used to mark annotations as aggregated meta-data. + * Core just provides this annotation, but the concrete behaviour is defined by a concrete ConfigNodeConverter. + * E.g. DefaultConfigNodeConverter uses the result stored in ViewConfigNode#getInheritedMetaData to replace + * default- (/ null-) values of "higher" levels with custom values of "lower" levels, + * if #value is 'true'. */ -@Target({ ANNOTATION_TYPE, METHOD }) +@Target({ ANNOTATION_TYPE }) //TODO re-visit and discuss method-level (for annotation-attributes) @Retention(RUNTIME) @Documented public @interface Aggregated http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/DefaultCallback.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/DefaultCallback.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/DefaultCallback.java index 83b94c0..594f3c7 100644 --- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/DefaultCallback.java +++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/view/metadata/annotation/DefaultCallback.java @@ -30,8 +30,31 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; @Documented /** - * Optional marker if there is only one callback bound to a view-meta-data type. - * If there are multiple callbacks it's needed to use custom annotations (e.g. see @Secured vs. @PageBean) + * A ConfigDescriptor can contain CallbackDescriptors in general as well as ExecutableCallbackDescriptors. + * An ExecutableCallbackDescriptor can reference one or multiple callback-method/s. If there is only one callback type, + * it's possible to annotate it with @DefaultCallback. + * That allows to handle it in an easier fashion + * (= without providing a special marker (-annotation) for the target method). + * + * If there are multiple callback types, it's needed to use custom annotations as marker for the target method. + * (e.g. see @Secured vs. @ViewControllerBean) + * + * ViewConfigDescriptor viewConfigDescriptor = viewConfigResolver.getViewConfigDescriptor(PageConfig.class); + * viewConfigDescriptor.getExecutableCallbackDescriptor( + * Secured.class, Secured.Descriptor.class).execute(accessDecisionVoterContext); + * is short for + * viewConfigDescriptor.getExecutableCallbackDescriptor( + * Secured.class, DefaultCallback.class, Secured.Descriptor.class).execute(accessDecisionVoterContext); + * + * whereas e.g. + * viewConfigDescriptor.getExecutableCallbackDescriptor( + * ViewControllerBean.class, PreRenderView.class, ViewControllerBean.ViewControllerDescriptor.class).execute(); + * or just + * viewConfigDescriptor.getExecutableCallbackDescriptor( + * ViewControllerBean.class, PreRenderView.class, SimpleCallbackDescriptor.class).execute(); + * + * are needed to call only @PreRenderView callbacks + * (and not the others like @InitView which are also bound to @ViewControllerBean) */ //TODO find a better name public @interface DefaultCallback http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/view/controller/ViewControllerBean.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/view/controller/ViewControllerBean.java b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/view/controller/ViewControllerBean.java index 6f08be5..071eeca 100644 --- a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/view/controller/ViewControllerBean.java +++ b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/view/controller/ViewControllerBean.java @@ -41,7 +41,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; @Retention(RUNTIME) @Documented -@ViewMetaData(preProcessor = ViewControllerBean.ViewControllerBeanConfigPreProcessor.class) +@ViewMetaData(preProcessor = ViewControllerBean.AnnotationPreProcessor.class) public @interface ViewControllerBean { /** @@ -59,29 +59,29 @@ public @interface ViewControllerBean //TODO String name() default ""; - public class ViewControllerBeanConfigPreProcessor implements ConfigPreProcessor + class AnnotationPreProcessor implements ConfigPreProcessor { @Override public ViewControllerBean beforeAddToConfig(ViewControllerBean metaData, ViewConfigNode viewConfigNode) { viewConfigNode.registerCallbackDescriptors( - ViewControllerBean.class, new ViewControllerDescriptor(metaData.value(), InitView.class)); + ViewControllerBean.class, new Descriptor(metaData.value(), InitView.class)); viewConfigNode.registerCallbackDescriptors( - ViewControllerBean.class, new ViewControllerDescriptor(metaData.value(), PreViewAction.class)); + ViewControllerBean.class, new Descriptor(metaData.value(), PreViewAction.class)); viewConfigNode.registerCallbackDescriptors( - ViewControllerBean.class, new ViewControllerDescriptor(metaData.value(), PreRenderView.class)); + ViewControllerBean.class, new Descriptor(metaData.value(), PreRenderView.class)); viewConfigNode.registerCallbackDescriptors( - ViewControllerBean.class, new ViewControllerDescriptor(metaData.value(), PostRenderView.class)); + ViewControllerBean.class, new Descriptor(metaData.value(), PostRenderView.class)); return metaData; //no change needed } + } - //not needed outside - private class ViewControllerDescriptor extends SimpleCallbackDescriptor + //not needed outside + static class Descriptor extends SimpleCallbackDescriptor + { + protected Descriptor(Class beanClass, Class callbackType) { - protected ViewControllerDescriptor(Class beanClass, Class callbackType) - { - super(beanClass, callbackType); - } + super(beanClass, callbackType); } } } http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/navigation/NavigationParameterContext.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/navigation/NavigationParameterContext.java b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/navigation/NavigationParameterContext.java index 98ce8b5..0b84013 100644 --- a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/navigation/NavigationParameterContext.java +++ b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/navigation/NavigationParameterContext.java @@ -18,12 +18,13 @@ */ package org.apache.deltaspike.jsf.api.navigation; +import java.io.Serializable; import java.util.Map; /** * Can be used to add parameters dynamically to the final navigation string */ -public interface NavigationParameterContext +public interface NavigationParameterContext extends Serializable { void addPageParameter(String key, Object value); http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/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 ea01fdc..68e98f7 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 @@ -103,16 +103,16 @@ public class DefaultConfigNodeConverter implements ConfigNodeConverter List mergedResult = new ArrayList(); - for (Annotation currentAnnotation : inheritedMetaData) + for (Annotation inheritedAnnotation : inheritedMetaData) { - ViewMetaData viewMetaData = currentAnnotation.annotationType().getAnnotation(ViewMetaData.class); + ViewMetaData viewMetaData = inheritedAnnotation.annotationType().getAnnotation(ViewMetaData.class); if (viewMetaData == null) { continue; } - Aggregated aggregated = currentAnnotation.annotationType().getAnnotation(Aggregated.class); + Aggregated aggregated = inheritedAnnotation.annotationType().getAnnotation(Aggregated.class); if (aggregated == null) { @@ -121,28 +121,28 @@ public class DefaultConfigNodeConverter implements ConfigNodeConverter if (aggregated.value()) //aggregation for the whole annotation is allowed { - mergedResult.add(currentAnnotation); + mergedResult.add(inheritedAnnotation); } else { - Annotation existingMetaData = findInResult(nodeViewMetaData, currentAnnotation); - if (existingMetaData == null) + Annotation currentNodeMetaData = findInResult(nodeViewMetaData, inheritedAnnotation); + if (currentNodeMetaData == null) { - Annotation mergedMetaData = findInResult(mergedResult, currentAnnotation); + Annotation mergedMetaData = findInResult(mergedResult, inheritedAnnotation); if (mergedMetaData == null) { - mergedResult.add(currentAnnotation); + mergedResult.add(inheritedAnnotation); } else { - Annotation mergedAnnotation = mergeAnnotationInstance(mergedMetaData, currentAnnotation); + Annotation mergedAnnotation = mergeAnnotationInstance(mergedMetaData, inheritedAnnotation); mergedResult.add(mergedAnnotation); } } else { - Annotation mergedAnnotation = mergeAnnotationInstance(existingMetaData, currentAnnotation); + Annotation mergedAnnotation = mergeAnnotationInstance(currentNodeMetaData, inheritedAnnotation); mergedResult.add(mergedAnnotation); } } http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/DefaultNavigationParameterContext.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/DefaultNavigationParameterContext.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/DefaultNavigationParameterContext.java index 050a826..62f1c3e 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/DefaultNavigationParameterContext.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/navigation/DefaultNavigationParameterContext.java @@ -33,6 +33,8 @@ import java.util.Map; @RequestScoped public class DefaultNavigationParameterContext implements NavigationParameterContext { + private static final long serialVersionUID = 6027959542775130265L; + private Map parameters = new HashMap(); protected DefaultNavigationParameterContext() http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/util/SecurityUtils.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/util/SecurityUtils.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/util/SecurityUtils.java index baf2022..2fca938 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/util/SecurityUtils.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/util/SecurityUtils.java @@ -59,8 +59,8 @@ public abstract class SecurityUtils return; } - Secured.SecuredDescriptor securedDescriptor = viewConfigDescriptor - .getExecutableCallbackDescriptor(Secured.class, Secured.SecuredDescriptor.class); + Secured.Descriptor securedDescriptor = viewConfigDescriptor + .getExecutableCallbackDescriptor(Secured.class, Secured.Descriptor.class); AccessDecisionState voterState = AccessDecisionState.VOTE_IN_PROGRESS; try http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc003/ViewConfigTest.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc003/ViewConfigTest.java b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc003/ViewConfigTest.java index f3de9f2..4765daf 100644 --- a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc003/ViewConfigTest.java +++ b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc003/ViewConfigTest.java @@ -22,7 +22,6 @@ import org.apache.deltaspike.core.api.config.view.metadata.ViewConfigDescriptor; import org.apache.deltaspike.core.api.config.view.metadata.ViewConfigResolver; import org.apache.deltaspike.core.spi.config.view.ViewConfigNode; import org.apache.deltaspike.jsf.api.config.view.controller.*; -import org.apache.deltaspike.jsf.api.config.view.controller.ViewControllerBean; import org.apache.deltaspike.jsf.impl.config.view.ViewConfigExtension; import org.apache.deltaspike.jsf.impl.config.view.ViewConfigResolverProducer; import org.junit.After; http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/TestSecured.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/TestSecured.java b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/TestSecured.java index 7a3ea00..75c8c1c 100644 --- a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/TestSecured.java +++ b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/TestSecured.java @@ -39,12 +39,12 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; @Retention(RUNTIME) @Documented -@ViewMetaData(preProcessor = TestSecured.SecuredConfigPreProcessor.class) +@ViewMetaData(preProcessor = TestSecured.AnnotationPreProcessor.class) public @interface TestSecured { Class[] value(); - class SecuredConfigPreProcessor implements ConfigPreProcessor + class AnnotationPreProcessor implements ConfigPreProcessor { //for a real implementation see e.g.: //org.apache.deltaspike.security.api.authorization.annotation.Secured @@ -56,16 +56,16 @@ public @interface TestSecured if (descriptors.isEmpty()) //just for testing different constellations - usually not needed! { - descriptors.add(new TestSecuredDescriptor(metaData.value(), DefaultCallback.class)); + descriptors.add(new Descriptor(metaData.value(), DefaultCallback.class)); } return metaData; //no change needed } } //can be used from outside to get a typed result - static class TestSecuredDescriptor extends ExecutableCallbackDescriptor> + static class Descriptor extends ExecutableCallbackDescriptor> { - public TestSecuredDescriptor(Class[] beanClasses, Class callbackMarker) + public Descriptor(Class[] beanClasses, Class callbackMarker) { super(beanClasses, callbackMarker); } http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/ViewConfigTest.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/ViewConfigTest.java b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/ViewConfigTest.java index ab7ecea..0a99b66 100644 --- a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/ViewConfigTest.java +++ b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/controller/uc004/ViewConfigTest.java @@ -121,7 +121,7 @@ public class ViewConfigTest ViewConfigNode node = this.viewConfigExtension.findNode(SimplePageConfig.class); //add it to avoid in-container test for this simple constellation - usually not needed! node.getCallbackDescriptors().put(TestSecured.class, new ArrayList() {{ - add(new TestSecured.TestSecuredDescriptor(new Class[] {SimpleTestAccessDecisionVoter.class}, DefaultCallback.class) { + add(new TestSecured.Descriptor(new Class[] {SimpleTestAccessDecisionVoter.class}, DefaultCallback.class) { @Override protected Object getTargetObject(Class targetType) { @@ -136,7 +136,7 @@ public class ViewConfigTest Assert.assertNotNull(viewConfigDescriptor); Assert.assertNotNull(viewConfigDescriptor.getCallbackDescriptor(TestSecured.class)); List /*return type of one callback*/> callbackResult = - viewConfigDescriptor.getExecutableCallbackDescriptor(TestSecured.class, TestSecured.TestSecuredDescriptor.class) + viewConfigDescriptor.getExecutableCallbackDescriptor(TestSecured.class, TestSecured.Descriptor.class) .execute("param1", "param2"); Assert.assertNotNull(callbackResult); Assert.assertEquals(1, callbackResult.size()); http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/custom/uc002/CustomMetaData.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/custom/uc002/CustomMetaData.java b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/custom/uc002/CustomMetaData.java index 4a97579..f2a8c9d 100644 --- a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/custom/uc002/CustomMetaData.java +++ b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/config/view/custom/uc002/CustomMetaData.java @@ -43,6 +43,5 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; int value1(); //TODO discuss value aggregation for arrays - @Aggregated(true) int[] value2(); } http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/46879b6b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/annotation/Secured.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/annotation/Secured.java b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/annotation/Secured.java index 35f80c9..07d36e5 100644 --- a/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/annotation/Secured.java +++ b/deltaspike/modules/security/api/src/main/java/org/apache/deltaspike/security/api/authorization/annotation/Secured.java @@ -53,7 +53,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; @SecurityBindingType //don't use @Aggregated(true) - we need to support different error-pages (per folder/page) -@ViewMetaData(preProcessor = Secured.SecuredConfigPreProcessor.class) +@ViewMetaData(preProcessor = Secured.AnnotationPreProcessor.class) public @interface Secured { /** @@ -73,20 +73,20 @@ public @interface Secured @Nonbinding Class errorView() default DefaultErrorView.class; - class SecuredConfigPreProcessor implements ConfigPreProcessor + class AnnotationPreProcessor implements ConfigPreProcessor { @Override public Secured beforeAddToConfig(Secured metaData, ViewConfigNode viewConfigNode) { - viewConfigNode.registerCallbackDescriptors(Secured.class, new SecuredDescriptor(metaData.value())); + viewConfigNode.registerCallbackDescriptors(Secured.class, new Descriptor(metaData.value())); return metaData; //no change needed } } //can be used from outside to get a typed result - static class SecuredDescriptor extends ExecutableCallbackDescriptor> + static class Descriptor extends ExecutableCallbackDescriptor> { - public SecuredDescriptor(Class[] accessDecisionVoterBeanClasses) + public Descriptor(Class[] accessDecisionVoterBeanClasses) { super(accessDecisionVoterBeanClasses, DefaultCallback.class); }