You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2010/11/02 00:32:56 UTC
svn commit: r1029892 - in /myfaces/extensions/cdi/trunk:
core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/
core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/
core/api/src/main/java/org/apache/myfaces/extensions/c...
Author: gpetracek
Date: Mon Nov 1 23:32:54 2010
New Revision: 1029892
URL: http://svn.apache.org/viewvc?rev=1029892&view=rev
Log:
cleanup and basic javadoc for core-api
Added:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/qualifier/
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/qualifier/BeanValidation.java
- copied, changed from r1022888, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/BeanValidation.java
Removed:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/BeanValidation.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/CodiWebConfig12.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/DefaultCodiWebConfig.java
Modified:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/AbstractClassDeactivator.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/BeanNames.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/ClassDeactivator.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CodiInformation.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CoreModuleBeanNames.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/Deactivatable.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AbstractCodiConfig.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AttributeAware.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CodiConfig.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CoreCodiConfigParameter.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/View.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewConfig.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewMetaData.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/ConfigResolver.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/GenericResolver.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/CloseConversationGroup.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationConfig.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessScoped.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContext.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContextConfig.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowScoped.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AbstractAccessDecisionVoter.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDecisionVoter.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDeniedException.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/DefaultErrorView.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/Secured.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/SecurityViolation.java
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/SecurityUtils.java
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/ConfigDemoBean.java
myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/FacesDemoBean.java
myfaces/extensions/cdi/trunk/jee-modules/bv-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/bv/impl/CdiAwareBeanValidationProducer.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/ConfigParameter.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter1.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter2.java
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/AbstractClassDeactivator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/AbstractClassDeactivator.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/AbstractClassDeactivator.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/AbstractClassDeactivator.java Mon Nov 1 23:32:54 2010
@@ -22,12 +22,17 @@ import java.util.Set;
import java.util.HashSet;
/**
+ * Base implementation which allows an easier class-deactivator implementation
+ *
* @author Gerhard Petracek
*/
public abstract class AbstractClassDeactivator implements ClassDeactivator
{
private Set<Class> deactivatedClasses;
+ /**
+ * {@inheritDoc}
+ */
public final Set<Class> getDeactivatedClasses()
{
if(this.deactivatedClasses == null)
@@ -38,10 +43,19 @@ public abstract class AbstractClassDeact
return this.deactivatedClasses;
}
+ /**
+ * Can be used by sub-classes to add deactivated classes easily.
+ *
+ * @param deactivatedClass class to deactivate
+ */
protected final void addDeactivatedClass(Class deactivatedClass)
{
this.deactivatedClasses.add(deactivatedClass);
}
+ /**
+ * An implementation has to add classes which shouldn't be used by CODI.
+ * (use {@link #addDeactivatedClass(Class)} for adding classes)
+ */
protected abstract void deactivateClasses();
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/BeanNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/BeanNames.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/BeanNames.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/BeanNames.java Mon Nov 1 23:32:54 2010
@@ -19,7 +19,7 @@
package org.apache.myfaces.extensions.cdi.core.api;
/**
- * Marker interface
+ * Interface which marks all interfaces which provide bean-names.
*
* @author Gerhard Petracek
*/
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/ClassDeactivator.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/ClassDeactivator.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/ClassDeactivator.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/ClassDeactivator.java Mon Nov 1 23:32:54 2010
@@ -21,9 +21,16 @@ package org.apache.myfaces.extensions.cd
import java.util.Set;
/**
+ * Interface for an implementation which provides classes of default implementations which should be deactivated.
+ *
* @author Gerhard Petracek
*/
public interface ClassDeactivator
{
+ /**
+ * Provides classes which should be deactivated.
+ *
+ * @return classes which should be deactivated
+ */
public Set<Class> getDeactivatedClasses();
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CodiInformation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CodiInformation.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CodiInformation.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CodiInformation.java Mon Nov 1 23:32:54 2010
@@ -21,6 +21,8 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.util.ClassUtils;
/**
+ * Allows to get the version of the active CODI-Core.
+ *
* @author Gerhard Petracek
*/
public interface CodiInformation
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CoreModuleBeanNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CoreModuleBeanNames.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CoreModuleBeanNames.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/CoreModuleBeanNames.java Mon Nov 1 23:32:54 2010
@@ -19,6 +19,8 @@
package org.apache.myfaces.extensions.cdi.core.api;
/**
+ * Core-impl has to provide beans for the names specified below.
+ *
* @author Gerhard Petracek
*/
public interface CoreModuleBeanNames extends BeanNames
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/Deactivatable.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/Deactivatable.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/Deactivatable.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/Deactivatable.java Mon Nov 1 23:32:54 2010
@@ -19,11 +19,19 @@
package org.apache.myfaces.extensions.cdi.core.api;
/**
- * Interface to allow easier detection of deactivatable classes
+ * Interface to allow easier detection of deactivatable classes.
+ * These classes are activated by default (e.g. via CDI config).
+ * Since CDI, JSF,... currently don't allow to deactivate default implementations,
+ * CODI has to introduce a proprietary mechanism.
*
* @author Gerhard Petracek
*/
public interface Deactivatable
{
+ /**
+ * Returns if the current instance is active or not.
+ *
+ * @return true if the current instance is active, false otherwise
+ */
boolean isActivated();
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AbstractCodiConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AbstractCodiConfig.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AbstractCodiConfig.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AbstractCodiConfig.java Mon Nov 1 23:32:54 2010
@@ -22,9 +22,12 @@ import java.util.Map;
import java.util.HashMap;
/**
+ * Base config implementation which implements {@link org.apache.myfaces.extensions.cdi.core.api.config.AttributeAware}
+ * to support custom attributes for existing configs.
+ *
* @author Gerhard Petracek
*/
-public abstract class AbstractCodiConfig implements CodiConfig
+public abstract class AbstractCodiConfig implements CodiConfig, AttributeAware
{
private Map<String, Object> configAttributes;
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AttributeAware.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AttributeAware.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AttributeAware.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/AttributeAware.java Mon Nov 1 23:32:54 2010
@@ -21,6 +21,10 @@ package org.apache.myfaces.extensions.cd
import java.io.Serializable;
/**
+ * This interface is just for internal use.
+ * It should ensure that refactorings don't lead to different method-names for the same purpose.
+ * Furthermore, it allows to easily find all artifacts which allow generic attributes.
+ *
* @author Gerhard Petracek
*/
public interface AttributeAware extends Serializable
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CodiConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CodiConfig.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CodiConfig.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CodiConfig.java Mon Nov 1 23:32:54 2010
@@ -19,8 +19,10 @@
package org.apache.myfaces.extensions.cdi.core.api.config;
/**
+ * Marker interface for all type-safe framework configs.
+ *
* @author Gerhard Petracek
*/
-public interface CodiConfig extends AttributeAware
+public interface CodiConfig
{
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CoreCodiConfigParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CoreCodiConfigParameter.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CoreCodiConfigParameter.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/CoreCodiConfigParameter.java Mon Nov 1 23:32:54 2010
@@ -21,7 +21,7 @@ package org.apache.myfaces.extensions.cd
/**
* @author Gerhard Petracek
*/
-public interface CoreCodiConfigParameter extends AttributeAware
+public interface CoreCodiConfigParameter
{
static final String BASE_NAME = "org.apache.myfaces.extensions.cdi.";
}
\ No newline at end of file
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/View.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/View.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/View.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/View.java Mon Nov 1 23:32:54 2010
@@ -28,6 +28,9 @@ import static java.lang.annotation.Reten
import java.lang.annotation.Target;
/**
+ * Allows to restrict e.g. phase-listener methods to specific views.
+ * Use an existing view-config OR ManualView.class + the view-id string/s.
+ *
* @author Gerhard Petracek
*/
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewConfig.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewConfig.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewConfig.java Mon Nov 1 23:32:54 2010
@@ -19,6 +19,8 @@
package org.apache.myfaces.extensions.cdi.core.api.config.view;
/**
+ * Marker interface for type-safe view-config classes.
+ *
* @author Gerhard Petracek
*/
public interface ViewConfig
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewMetaData.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewMetaData.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewMetaData.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/config/view/ViewMetaData.java Mon Nov 1 23:32:54 2010
@@ -25,6 +25,8 @@ import static java.lang.annotation.Reten
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
/**
+ * This meta-annotation allows to create custom meta-data which can be used for view-configs.
+ *
* @author Gerhard Petracek
*/
@Target({ANNOTATION_TYPE})
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/ConfigResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/ConfigResolver.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/ConfigResolver.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/ConfigResolver.java Mon Nov 1 23:32:54 2010
@@ -23,9 +23,19 @@ import org.apache.myfaces.extensions.cdi
import java.io.Serializable;
/**
+ * Resolver which allows to resolve type-safe configs.
+ * It allows an easier handling of config values.
+ *
* @author Gerhard Petracek
*/
public interface ConfigResolver extends Serializable
{
+ /**
+ * Returns the active config for the given type.
+ *
+ * @param targetType the target config-type
+ * @param <T> generic type
+ * @return the config instance for the given type
+ */
public <T extends CodiConfig> T resolve(Class<T> targetType);
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/GenericResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/GenericResolver.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/GenericResolver.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/GenericResolver.java Mon Nov 1 23:32:54 2010
@@ -19,9 +19,17 @@
package org.apache.myfaces.extensions.cdi.core.api.resolver;
/**
+ * Generic resolver to decouple different modules.
+ *
* @author Gerhard Petracek
*/
public interface GenericResolver<T>
{
+ /**
+ * Provides the artifact specified by a qualifier.
+ * The artifact might be produced by a different module.
+ *
+ * @return the artifact for the specified qualifier.
+ */
T resolve();
}
Copied: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/qualifier/BeanValidation.java (from r1022888, myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/BeanValidation.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/qualifier/BeanValidation.java?p2=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/qualifier/BeanValidation.java&p1=myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/BeanValidation.java&r1=1022888&r2=1029892&rev=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/BeanValidation.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resolver/qualifier/BeanValidation.java Mon Nov 1 23:32:54 2010
@@ -1,48 +1,51 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.extensions.cdi.core.api.resolver;
-
-import javax.inject.Qualifier;
-import java.lang.annotation.Target;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Documented;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.CONSTRUCTOR;
-import static java.lang.annotation.ElementType.TYPE;
-
-/**
- * @author Gerhard Petracek
- */
-@Target({PARAMETER, FIELD, METHOD, CONSTRUCTOR, TYPE})
-@Retention(RUNTIME)
-@Documented
-
-@Qualifier
-public @interface BeanValidation
-{
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.extensions.cdi.core.api.resolver.qualifier;
+
+import javax.inject.Qualifier;
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.TYPE;
+
+/**
+ * Qualifier which allows to decouple the bean-validation module and the other modules like the jsf module.
+ * It can be used in combination with {@link org.apache.myfaces.extensions.cdi.core.api.resolver.GenericResolver}
+ *
+ * @author Gerhard Petracek
+ */
+@Target({PARAMETER, FIELD, METHOD, CONSTRUCTOR, TYPE})
+@Retention(RUNTIME)
+@Documented
+
+@Qualifier
+public @interface BeanValidation
+{
public enum ArtifactType
- {
- ValidatorFactory, Validator, ConstraintValidatorFactory, MessageInterpolator, TraversableResolver
- }
-
- ArtifactType value() default ArtifactType.ValidatorFactory;
+ {
+ ValidatorFactory, Validator, ConstraintValidatorFactory, MessageInterpolator, TraversableResolver
+ }
+
+ ArtifactType value() default ArtifactType.ValidatorFactory;
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/CloseConversationGroup.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/CloseConversationGroup.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/CloseConversationGroup.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/CloseConversationGroup.java Mon Nov 1 23:32:54 2010
@@ -29,6 +29,9 @@ import static java.lang.annotation.Eleme
import static java.lang.annotation.ElementType.METHOD;
/**
+ * Interceptor which allows to close a conversation-group after the invocation of the intercepted method.
+ * If a custom {@link RuntimeException} is specified, the conversation is just closed if the exception occurred.
+ *
* @author Gerhard Petracek
*/
@InterceptorBinding
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationConfig.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationConfig.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationConfig.java Mon Nov 1 23:32:54 2010
@@ -21,12 +21,24 @@ package org.apache.myfaces.extensions.cd
import java.io.Serializable;
/**
+ * TODO check if we should implement CodiConfig
+ *
* @author Gerhard Petracek
*/
public interface ConversationConfig extends Serializable
{
+ /**
+ * Timeout for {@link org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped} beans,
+ * which will be used if the conversation doesn't get closed manually.
+ *
+ * @return timeout in minutes
+ */
int getConversationTimeoutInMinutes();
+ /*
+ * event config
+ */
+
boolean isScopeBeanEventEnable();
boolean isAccessBeanEventEnable();
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationGroup.java Mon Nov 1 23:32:54 2010
@@ -30,6 +30,15 @@ import static java.lang.annotation.Eleme
import static java.lang.annotation.ElementType.CONSTRUCTOR;
/**
+ * CODI uses {@link org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowScoped} for providing a global
+ * conversation per window. {@link org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped} is
+ * a fine-grained version of std. CDI conversations. Per default a
+ * {@link org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationScoped} bean exists in an isolated
+ * conversation which just contains this bean. If multiple beans belong to the same logical conversations,
+ * it's possible to use this special qualifier for grouping such beans.
+ *
+ * Operations like {@link Conversation#close()} will be performed on the whole group.
+ *
* @author Gerhard Petracek
*/
@Target({PARAMETER, FIELD, METHOD, CONSTRUCTOR, TYPE})
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ConversationScoped.java Mon Nov 1 23:32:54 2010
@@ -30,6 +30,9 @@ import static java.lang.annotation.Reten
/**
+ * A fine-grained conversation scope.
+ * (It isn't required to start the scope manually.)
+ *
* @author Gerhard Petracek
*/
@Target({METHOD,TYPE,FIELD})
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessScoped.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessScoped.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessScoped.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/ViewAccessScoped.java Mon Nov 1 23:32:54 2010
@@ -29,6 +29,8 @@ import static java.lang.annotation.Eleme
import static java.lang.annotation.ElementType.FIELD;
/**
+ * The scope is active as long as it's accessed by a view.
+ *
* @author Gerhard Petracek
*/
@Target({METHOD,TYPE,FIELD})
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContext.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContext.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContext.java Mon Nov 1 23:32:54 2010
@@ -25,6 +25,8 @@ import java.lang.annotation.Annotation;
import java.util.Set;
/**
+ * Interface for handling the current window context as well as the conversations of the current window.
+ *
* @author Gerhard Petracek
*/
public interface WindowContext extends AttributeAware, Serializable
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContextConfig.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContextConfig.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContextConfig.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowContextConfig.java Mon Nov 1 23:32:54 2010
@@ -25,18 +25,44 @@ import java.io.Serializable;
*/
public interface WindowContextConfig extends Serializable
{
- //deactivate it e.g. for higher security
+ /**
+ * Specifies if it is allowed to use URL params for forwarding the current window-id.
+ * (deactivate it e.g. for higher security - in this case it's required to use a window id provided by a
+ * component lib or a server-side window-handler)
+ *
+ * @return true if it is allowed to add the window-id as URL parameter
+ */
boolean isUrlParameterSupported();
+ /**
+ * Allows to restrict window-ids.
+ *
+ * @return true to allow window-ids which aren't generated by CODI, false otherwise
+ */
boolean isUnknownWindowIdsAllowed();
@Deprecated
boolean isAddWindowIdToActionUrlsEnabled();
-
+
+ /**
+ * Specifies the time for the timeout for a window. After a timeout is detected all beans which are only linked
+ * to the window will be destroyed.
+ *
+ * @return the time for the timeout for a window
+ */
int getWindowContextTimeoutInMinutes();
+ /**
+ * Restricts the number of active windows.
+ *
+ * @return limit for active windows
+ */
int getMaxWindowContextCount();
+ /*
+ * event config
+ */
+
boolean isCreateWindowContextEventEnable();
boolean isCloseWindowContextEventEnable();
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowScoped.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowScoped.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowScoped.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/scope/conversation/WindowScoped.java Mon Nov 1 23:32:54 2010
@@ -29,6 +29,8 @@ import static java.lang.annotation.Eleme
import static java.lang.annotation.ElementType.FIELD;
/**
+ * Beans which use this scope are bound to a window (or tab).
+ *
* @author Gerhard Petracek
*/
@Target({METHOD,TYPE,FIELD})
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AbstractAccessDecisionVoter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AbstractAccessDecisionVoter.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AbstractAccessDecisionVoter.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AbstractAccessDecisionVoter.java Mon Nov 1 23:32:54 2010
@@ -18,11 +18,47 @@
*/
package org.apache.myfaces.extensions.cdi.core.api.security;
+import javax.interceptor.InvocationContext;
+import java.util.Set;
+import java.util.HashSet;
+
/**
+ * Base implementation which provides helper methods.
+ *
* @author Gerhard Petracek
*/
public abstract class AbstractAccessDecisionVoter implements AccessDecisionVoter
{
+ /**
+ * It should be final - but proxy-libs won't support it.
+ *
+ * {@inheritDoc}
+ */
+ public Set<SecurityViolation> checkPermission(InvocationContext invocationContext)
+ {
+ Set<SecurityViolation> result = new HashSet<SecurityViolation>();
+
+ checkPermission(invocationContext, result);
+
+ return result;
+ }
+
+ /**
+ * Allows an easier implementation in combination with {@link #newSecurityViolation(String)}.
+ *
+ * @param invocationContext current invocationContext
+ * @param violations set for adding violations
+ */
+ protected abstract void checkPermission(InvocationContext invocationContext, Set<SecurityViolation> violations);
+
+ /**
+ * Creates an instance of {@link org.apache.myfaces.extensions.cdi.core.api.security.SecurityViolation} for a given
+ * string which will be used as reason to describe the violation.
+ *
+ * @param reason description of the violation
+ * @return A new instance of {@link org.apache.myfaces.extensions.cdi.core.api.security.SecurityViolation}
+ * which provides details about the found restriction.
+ */
protected SecurityViolation newSecurityViolation(final String reason)
{
return new SecurityViolation()
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDecisionVoter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDecisionVoter.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDecisionVoter.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDecisionVoter.java Mon Nov 1 23:32:54 2010
@@ -22,9 +22,21 @@ import javax.interceptor.InvocationConte
import java.util.Set;
/**
+ * Interface for implementing concrete voters.
+ * A voter has to add an instance of
+ * {@link org.apache.myfaces.extensions.cdi.core.api.security.SecurityViolation} to the given result-set,
+ * if a restriction is detected.
+ *
* @author Gerhard Petracek
*/
public interface AccessDecisionVoter
{
- void checkPermission(InvocationContext invocationContext, Set<SecurityViolation> violations);
+ /**
+ * Checks the permission for the given {@link javax.interceptor.InvocationContext}.
+ * If a violation is detected, it should be added to a set which gets returned by the method.
+ *
+ * @param invocationContext current invocationContext
+ * @return a set which contains violations which have been detected
+ */
+ Set<SecurityViolation> checkPermission(InvocationContext invocationContext);
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDeniedException.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDeniedException.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDeniedException.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/AccessDeniedException.java Mon Nov 1 23:32:54 2010
@@ -23,6 +23,9 @@ import org.apache.myfaces.extensions.cdi
import java.util.Set;
/**
+ * Exception occurs in case of a security-violation.
+ * It's aware of the reason for the violation as well as the error-view which should be used to display the restriction.
+ *
* @author Gerhard Petracek
*/
public class AccessDeniedException extends SecurityException
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/DefaultErrorView.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/DefaultErrorView.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/DefaultErrorView.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/DefaultErrorView.java Mon Nov 1 23:32:54 2010
@@ -21,6 +21,8 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
/**
+ * Interface which marks an error view.
+ *
* @author Gerhard Petracek
*/
public interface DefaultErrorView extends ViewConfig
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/Secured.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/Secured.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/Secured.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/Secured.java Mon Nov 1 23:32:54 2010
@@ -30,6 +30,9 @@ import static java.lang.annotation.Eleme
import static java.lang.annotation.ElementType.METHOD;
/**
+ * Interceptor for securing beans.
+ * It's also possible to use it as meta-annotation for type-safe view-configs.
+ *
* @author Gerhard Petracek
*/
@InterceptorBinding
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/SecurityViolation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/SecurityViolation.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/SecurityViolation.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/security/SecurityViolation.java Mon Nov 1 23:32:54 2010
@@ -19,9 +19,16 @@
package org.apache.myfaces.extensions.cdi.core.api.security;
/**
+ * Provides the concrete reason for the restriction.
+ *
* @author Gerhard Petracek
*/
public interface SecurityViolation
{
+ /**
+ * Provides a description of the violation.
+ *
+ * @return description of the violation
+ */
String getReason();
}
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/SecurityUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/SecurityUtils.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/SecurityUtils.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/SecurityUtils.java Mon Nov 1 23:32:54 2010
@@ -27,7 +27,6 @@ import static org.apache.myfaces.extensi
import javax.interceptor.InvocationContext;
import javax.enterprise.inject.spi.BeanManager;
import java.util.Set;
-import java.util.HashSet;
/**
* @author Gerhard Petracek
@@ -44,15 +43,16 @@ public class SecurityUtils
return;
}
- Set<SecurityViolation> violations = new HashSet<SecurityViolation>();
+ Set<SecurityViolation> violations;
AccessDecisionVoter voter;
for(Class<? extends AccessDecisionVoter> voterClass : accessDecisionVoters)
{
voter = getOrCreateScopedInstanceOfBeanByClass(beanManager, voterClass);
- voter.checkPermission(invocationContext, violations);
- if(violations.size() > 0)
+ violations = voter.checkPermission(invocationContext);
+
+ if(violations != null && violations.size() > 0)
{
throw new AccessDeniedException(violations, errorView);
}
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/ConfigDemoBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/ConfigDemoBean.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/ConfigDemoBean.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/ConfigDemoBean.java Mon Nov 1 23:32:54 2010
@@ -20,7 +20,8 @@ package org.apache.myfaces.examples.codi
import org.apache.myfaces.extensions.cdi.core.api.config.CodiConfig;
import org.apache.myfaces.extensions.cdi.core.api.resolver.ConfigResolver;
-import org.apache.myfaces.extensions.cdi.jsf.api.config.CodiWebConfig12;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.DefaultWindowContextConfig;
+import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.JsfAwareWindowContextConfig;
import javax.enterprise.inject.Model;
import javax.enterprise.inject.Typed;
@@ -30,7 +31,7 @@ import java.util.Set;
//just an internal demo
@Model
@Typed(ConfigDemoBean.class)
-public class ConfigDemoBean extends CodiWebConfig12
+public class ConfigDemoBean extends DefaultWindowContextConfig
{
private static final long serialVersionUID = -6915243682321970384L;
@@ -50,14 +51,15 @@ public class ConfigDemoBean extends Codi
this.codiConfig = codiConfig;
this.configResolver = configResolver;
- if(this.codiConfig.isEmpty() || this.configResolver.resolve(CodiWebConfig12.class) == null)
+ if(this.codiConfig.isEmpty() || this.configResolver.resolve(JsfAwareWindowContextConfig.class) == null)
{
throw new IllegalStateException("invalid config");
}
}
- public boolean isTransactionTokenEnabled()
+ @Override
+ public boolean isInitialRedirectDisable()
{
- return this.configResolver.resolve(CodiWebConfig12.class).isTransactionTokenEnabled();
+ return this.configResolver.resolve(JsfAwareWindowContextConfig.class).isInitialRedirectDisable();
}
}
Modified: myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/FacesDemoBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/FacesDemoBean.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/FacesDemoBean.java (original)
+++ myfaces/extensions/cdi/trunk/examples/jsf-examples/hello_myfaces-codi_jsf12/src/main/java/org/apache/myfaces/examples/codi/jsf12/listener/phase/FacesDemoBean.java Mon Nov 1 23:32:54 2010
@@ -56,7 +56,7 @@ public class FacesDemoBean
@PostConstruct
public void triggerInternalDemos()
{
- this.configDemoBean.isTransactionTokenEnabled();
+ this.configDemoBean.isInitialRedirectDisable();
}
//no restriction via @View -> invoked before rendering any view
Modified: myfaces/extensions/cdi/trunk/jee-modules/bv-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/bv/impl/CdiAwareBeanValidationProducer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/bv-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/bv/impl/CdiAwareBeanValidationProducer.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/bv-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/bv/impl/CdiAwareBeanValidationProducer.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/bv-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/bv/impl/CdiAwareBeanValidationProducer.java Mon Nov 1 23:32:54 2010
@@ -19,7 +19,7 @@
package org.apache.myfaces.extensions.cdi.bv.impl;
import org.apache.myfaces.extensions.cdi.core.api.Advanced;
-import org.apache.myfaces.extensions.cdi.core.api.resolver.BeanValidation;
+import org.apache.myfaces.extensions.cdi.core.api.resolver.qualifier.BeanValidation;
import org.apache.myfaces.extensions.cdi.core.api.resolver.GenericResolver;
import static org.apache.myfaces.extensions.cdi.bv.api.BeanValidationModuleBeanNames.VALIDATOR_FACTORY;
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/ConfigParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/ConfigParameter.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/ConfigParameter.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/ConfigParameter.java Mon Nov 1 23:32:54 2010
@@ -25,10 +25,12 @@ import org.apache.myfaces.extensions.cdi
*/
public interface ConfigParameter
{
+ /*
static final String TRANSACTION_TOKEN_ENABLED =
CoreCodiConfigParameter.BASE_NAME + "TRANSACTION_TOKEN_ENABLED";
static final Boolean TRANSACTION_TOKEN_ENABLED_DEFAULT = Boolean.FALSE;
+ */
static final String URL_PARAMETER_ENABLED =
CoreCodiConfigParameter.BASE_NAME + "URL_PARAMETER_ENABLED";
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter1.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter1.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter1.java Mon Nov 1 23:32:54 2010
@@ -29,8 +29,9 @@ import java.util.Set;
*/
class TestAccessDecisionVoter1 implements AccessDecisionVoter
{
- public void checkPermission(InvocationContext invocationContext, Set<SecurityViolation> violations)
+ public Set<SecurityViolation> checkPermission(InvocationContext invocationContext)
{
//do nothing
+ return null;
}
}
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter2.java?rev=1029892&r1=1029891&r2=1029892&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter2.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/TestAccessDecisionVoter2.java Mon Nov 1 23:32:54 2010
@@ -29,8 +29,9 @@ import java.util.Set;
*/
class TestAccessDecisionVoter2 implements AccessDecisionVoter
{
- public void checkPermission(InvocationContext invocationContext, Set<SecurityViolation> violations)
+ public Set<SecurityViolation> checkPermission(InvocationContext invocationContext)
{
//do nothing
+ return null;
}
}
\ No newline at end of file