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 2011/03/06 15:54:07 UTC

svn commit: r1078478 [1/2] - in /myfaces/extensions/cdi/trunk: jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/v...

Author: gpetracek
Date: Sun Mar  6 14:54:06 2011
New Revision: 1078478

URL: http://svn.apache.org/viewvc?rev=1078478&view=rev
Log:
EXTCDI-150 ViewConfigResolver (first draft)

Added:
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/PageBeanDescriptor.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigDescriptor.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigResolver.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanDescriptor.java
      - copied, changed from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigDescriptor.java
      - copied, changed from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigResolver.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigDescriptor.java
      - copied, changed from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/EditableViewConfigDescriptor.java
      - copied, changed from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/LifecycleAwarePageBeanDescriptor.java
      - copied, changed from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/PageBeanConfigEntry.java
Removed:
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/PageBeanConfigEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigEntry.java
Modified:
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/Page.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PhasesLifecycleCallbackPhaseListener.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PreRenderViewBeanLoader.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigCache.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigExtension.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewControllerActionListener.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigExtractor.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/DefaultViewControllerStrategy.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/navigation/ViewConfigAwareNavigationHandler.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/security/SecurityAwareViewHandler.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/security/SecurityViewListener.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/util/SecurityUtils.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/test/java/org/apache/myfaces/extensions/cdi/jsf/test/impl/config/view/ViewConfigTest.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/navigation/NavigationCaseMapWrapper.java
    myfaces/extensions/cdi/trunk/test-modules/base-test-infrastructure-module/src/main/java/org/apache/myfaces/extensions/cdi/test/cargo/SimplePageInteraction.java

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/Page.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/config/view/Page.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/Page.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/Page.java Sun Mar  6 14:54:06 2011
@@ -53,7 +53,7 @@ public @interface Page
      * for including view params in jsf2
      * @return
      */
-    ViewParameter viewParams() default ViewParameter.DEFAULT;
+    ViewParameterMode viewParams() default ViewParameterMode.DEFAULT;
 
     public interface Extension
     {
@@ -68,7 +68,7 @@ public @interface Page
         DEFAULT, FORWARD, REDIRECT
     }
 
-    public enum ViewParameter
+    public enum ViewParameterMode
     {
         DEFAULT, INCLUDE, EXCLUDE
     }

Added: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/PageBeanDescriptor.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/config/view/PageBeanDescriptor.java?rev=1078478&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/PageBeanDescriptor.java (added)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/PageBeanDescriptor.java Sun Mar  6 14:54:06 2011
@@ -0,0 +1,29 @@
+/*
+ * 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.jsf.api.config.view;
+
+/**
+ * @author Gerhard Petracek
+ */
+public interface PageBeanDescriptor
+{
+    Class getBeanClass();
+
+    String getBeanName();
+}

Added: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigDescriptor.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/config/view/ViewConfigDescriptor.java?rev=1078478&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigDescriptor.java (added)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigDescriptor.java Sun Mar  6 14:54:06 2011
@@ -0,0 +1,43 @@
+/*
+ * 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.jsf.api.config.view;
+
+import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
+import org.apache.myfaces.extensions.cdi.core.api.security.AccessDecisionVoter;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+/**
+ * @author Gerhard Petracek
+ */
+public interface ViewConfigDescriptor
+{
+    String getViewId();
+
+    Class<? extends ViewConfig> getViewConfig();
+
+    Page.NavigationMode getNavigationMode();
+
+    List<Annotation> getMetaData();
+
+    List<Class<? extends AccessDecisionVoter>> getAccessDecisionVoters();
+
+    List<PageBeanDescriptor> getPageBeanConfigs();
+}

Added: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigResolver.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/config/view/ViewConfigResolver.java?rev=1078478&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigResolver.java (added)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/api/src/main/java/org/apache/myfaces/extensions/cdi/jsf/api/config/view/ViewConfigResolver.java Sun Mar  6 14:54:06 2011
@@ -0,0 +1,39 @@
+/*
+ * 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.jsf.api.config.view;
+
+import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
+
+import java.util.List;
+
+/**
+ * @author Gerhard Petracek
+ */
+public interface ViewConfigResolver
+{
+    ViewConfigDescriptor getViewConfig(String viewId);
+
+    ViewConfigDescriptor getViewConfig(Class<? extends ViewConfig> viewDefinitionClass);
+
+    List<ViewConfigDescriptor> getViewConfigs();
+
+    ViewConfigDescriptor getDefaultErrorViewConfig();
+
+    ViewConfigDescriptor getErrorViewConfig(Class<? extends ViewConfig> viewDefinitionClass);
+}

Copied: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanDescriptor.java (from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanConfigEntry.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanDescriptor.java?p2=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanDescriptor.java&p1=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanConfigEntry.java&r1=1074791&r2=1078478&rev=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanConfigEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultPageBeanDescriptor.java Sun Mar  6 14:54:06 2011
@@ -24,7 +24,7 @@ import org.apache.myfaces.extensions.cdi
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PreRenderView;
 import org.apache.myfaces.extensions.cdi.jsf.api.listener.phase.AfterPhase;
 import org.apache.myfaces.extensions.cdi.jsf.api.listener.phase.BeforePhase;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.PageBeanConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.LifecycleAwarePageBeanDescriptor;
 import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.RequestLifecycleCallbackEntry;
 
 import javax.faces.event.PhaseId;
@@ -41,7 +41,7 @@ import static org.apache.myfaces.extensi
 /**
  * @author Gerhard Petracek
  */
-class DefaultPageBeanConfigEntry implements PageBeanConfigEntry
+class DefaultPageBeanDescriptor implements LifecycleAwarePageBeanDescriptor
 {
     private final String beanName;
 
@@ -54,7 +54,7 @@ class DefaultPageBeanConfigEntry impleme
     private List<Method> preRenderViewMethods = new ArrayList<Method>();
     private List<Method> postRenderViewMethods = new ArrayList<Method>();
 
-    DefaultPageBeanConfigEntry(String beanName, Class beanClass)
+    DefaultPageBeanDescriptor(String beanName, Class beanClass)
     {
         this.beanName = beanName;
         this.beanClass = beanClass;

Copied: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigDescriptor.java (from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigEntry.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigDescriptor.java?p2=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigDescriptor.java&p1=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigEntry.java&r1=1074791&r2=1078478&rev=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigDescriptor.java Sun Mar  6 14:54:06 2011
@@ -24,8 +24,10 @@ import org.apache.myfaces.extensions.cdi
 import org.apache.myfaces.extensions.cdi.core.api.security.AccessDecisionVoter;
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page;
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBean;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.PageBeanConfigEntry;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBeanDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.LifecycleAwarePageBeanDescriptor;
 
 import javax.enterprise.inject.spi.BeanManager;
 import javax.inject.Named;
@@ -43,7 +45,7 @@ import static org.apache.myfaces.extensi
 /**
  * @author Gerhard Petracek
  */
-public class DefaultViewConfigEntry implements ViewConfigEntry
+public class DefaultViewConfigDescriptor implements EditableViewConfigDescriptor
 {
     private final String viewId;
 
@@ -51,13 +53,13 @@ public class DefaultViewConfigEntry impl
 
     private final Page.NavigationMode navigationMode;
 
-    private List<PageBeanConfigEntry> beanDefinition;
+    private List<PageBeanDescriptor> pageBeanDescriptors;
 
     //security
     private final List<Class<? extends AccessDecisionVoter>> accessDecisionVoters;
     private final Class<? extends ViewConfig> customErrorView;
 
-    private Page.ViewParameter viewParameter;
+    private Page.ViewParameterMode viewParameterMode;
     //meta-data
     private List<Annotation> metaDataList;
 
@@ -65,22 +67,22 @@ public class DefaultViewConfigEntry impl
 
     private transient BeanManager beanManager;
 
-    public DefaultViewConfigEntry(String viewId,
-                                  Class<? extends ViewConfig> viewDefinitionClass,
-                                  Page.NavigationMode navigationMode,
-                                  Page.ViewParameter viewParameter,
-                                  List<Class<? extends AccessDecisionVoter>> accessDecisionVoters,
-                                  Class<? extends ViewConfig> errorView,
-                                  List<Annotation> metaDataList)
+    public DefaultViewConfigDescriptor(String viewId,
+                                       Class<? extends ViewConfig> viewDefinitionClass,
+                                       Page.NavigationMode navigationMode,
+                                       Page.ViewParameterMode viewParameterMode,
+                                       List<Class<? extends AccessDecisionVoter>> accessDecisionVoters,
+                                       Class<? extends ViewConfig> errorView,
+                                       List<Annotation> metaDataList)
     {
         this.viewId = viewId;
         this.viewDefinitionClass = viewDefinitionClass;
         this.navigationMode = navigationMode;
-        this.viewParameter = viewParameter;
+        this.viewParameterMode = viewParameterMode;
 
         this.metaDataList = metaDataList;
 
-        beanDefinition = Collections.unmodifiableList(findPageBeanDefinitions(viewDefinitionClass));
+        pageBeanDescriptors = Collections.unmodifiableList(findPageBeanDefinitions(viewDefinitionClass));
         //TODO validate view-id
 
         //noinspection unchecked
@@ -101,7 +103,7 @@ public class DefaultViewConfigEntry impl
         return viewId;
     }
 
-    public Class<? extends ViewConfig> getViewDefinitionClass()
+    public Class<? extends ViewConfig> getViewConfig()
     {
         return viewDefinitionClass;
     }
@@ -111,49 +113,61 @@ public class DefaultViewConfigEntry impl
         return navigationMode;
     }
 
-    public Page.ViewParameter getViewParameter()
+    public Page.ViewParameterMode getViewParameterMode()
     {
-        return viewParameter;
+        return viewParameterMode;
     }
 
-    public List<PageBeanConfigEntry> getPageBeanDefinitions()
+    public List<PageBeanDescriptor> getPageBeanConfigs()
     {
-        return beanDefinition;
+        return pageBeanDescriptors;
     }
 
     public void invokeInitViewMethods()
     {
-        for(PageBeanConfigEntry beanEntry : getPageBeanDefinitions())
+        for(PageBeanDescriptor beanEntry : getPageBeanConfigs())
         {
-            processCallbacks(beanEntry, beanEntry.getInitViewMethods());
+            if(beanEntry instanceof LifecycleAwarePageBeanDescriptor)
+            {
+                processCallbacks(beanEntry, ((LifecycleAwarePageBeanDescriptor)beanEntry).getInitViewMethods());
+            }
         }
     }
 
     public void invokePrePageActionMethods()
     {
-        for(PageBeanConfigEntry beanEntry : getPageBeanDefinitions())
+        for(PageBeanDescriptor beanEntry : getPageBeanConfigs())
         {
-            processCallbacks(beanEntry, beanEntry.getPrePageActionMethods());
+            if(beanEntry instanceof LifecycleAwarePageBeanDescriptor)
+            {
+                processCallbacks(beanEntry, ((LifecycleAwarePageBeanDescriptor)beanEntry).getPrePageActionMethods());
+            }
         }
     }
 
     public void invokePreRenderViewMethods()
     {
-        for(PageBeanConfigEntry beanEntry : getPageBeanDefinitions())
+        for(PageBeanDescriptor beanEntry : getPageBeanConfigs())
         {
-            processCallbacks(beanEntry, beanEntry.getPreRenderViewMethods());
+            if(beanEntry instanceof LifecycleAwarePageBeanDescriptor)
+            {
+                processCallbacks(beanEntry, ((LifecycleAwarePageBeanDescriptor)beanEntry).getPreRenderViewMethods());
+            }
         }
     }
 
     public void invokePostRenderViewMethods()
     {
-        for(PageBeanConfigEntry beanEntry : getPageBeanDefinitions())
+        for(PageBeanDescriptor beanEntry : getPageBeanConfigs())
         {
-            processCallbacks(beanEntry, beanEntry.getPostRenderViewMethods());
+            if(beanEntry instanceof LifecycleAwarePageBeanDescriptor)
+            {
+                processCallbacks(beanEntry, ((LifecycleAwarePageBeanDescriptor)beanEntry).getPostRenderViewMethods());
+            }
         }
     }
 
-    private void processCallbacks(PageBeanConfigEntry beanEntry, List<Method> methodList)
+    private void processCallbacks(PageBeanDescriptor beanEntry, List<Method> methodList)
     {
         Object bean;
         if (!methodList.isEmpty())
@@ -220,13 +234,13 @@ public class DefaultViewConfigEntry impl
 
     public void addPageBean(Class pageBeanClass)
     {
-        List<PageBeanConfigEntry> newList = new ArrayList<PageBeanConfigEntry>(this.beanDefinition);
+        List<PageBeanDescriptor> newList = new ArrayList<PageBeanDescriptor>(this.pageBeanDescriptors);
 
-        PageBeanConfigEntry newEntry = new DefaultPageBeanConfigEntry(getBeanName(pageBeanClass) , pageBeanClass);
+        PageBeanDescriptor newEntry = new DefaultPageBeanDescriptor(getBeanName(pageBeanClass) , pageBeanClass);
 
         newList.add(newEntry);
 
-        this.beanDefinition = Collections.unmodifiableList(newList);
+        this.pageBeanDescriptors = Collections.unmodifiableList(newList);
     }
 
     void activateSimpleEntryMode()
@@ -239,7 +253,7 @@ public class DefaultViewConfigEntry impl
         return simpleEntryMode;
     }
 
-    private List<PageBeanConfigEntry> findPageBeanDefinitions(Class<? extends ViewConfig> viewDefinitionClass)
+    private List<PageBeanDescriptor> findPageBeanDefinitions(Class<? extends ViewConfig> viewDefinitionClass)
     {
         if(!viewDefinitionClass.isAnnotationPresent(PageBean.class) &&
                 !viewDefinitionClass.isAnnotationPresent(PageBean.List.class))
@@ -247,7 +261,7 @@ public class DefaultViewConfigEntry impl
             return Collections.emptyList();
         }
 
-        List<PageBeanConfigEntry> result = new ArrayList<PageBeanConfigEntry>();
+        List<PageBeanDescriptor> result = new ArrayList<PageBeanDescriptor>();
 
         if(viewDefinitionClass.isAnnotationPresent(PageBean.class))
         {
@@ -262,9 +276,9 @@ public class DefaultViewConfigEntry impl
         return result;
     }
 
-    private List<PageBeanConfigEntry> extractBeanEntries(PageBean.List pageBeanList)
+    private List<PageBeanDescriptor> extractBeanEntries(PageBean.List pageBeanList)
     {
-        List<PageBeanConfigEntry> result = new ArrayList<PageBeanConfigEntry>();
+        List<PageBeanDescriptor> result = new ArrayList<PageBeanDescriptor>();
         for(PageBean pageBean : pageBeanList.value())
         {
             result.add(extractBeanEntry(pageBean));
@@ -272,11 +286,11 @@ public class DefaultViewConfigEntry impl
         return result;
     }
 
-    private PageBeanConfigEntry extractBeanEntry(PageBean pageBean)
+    private PageBeanDescriptor extractBeanEntry(PageBean pageBean)
     {
         if(!"".equals(pageBean.name()))
         {
-            return new DefaultPageBeanConfigEntry(pageBean.name(), pageBean.value());
+            return new DefaultPageBeanDescriptor(pageBean.name(), pageBean.value());
         }
 
         Class<?> pageBeanClass = pageBean.value();
@@ -285,7 +299,7 @@ public class DefaultViewConfigEntry impl
         //TODO allow indirect usage of @Named
         pageBeanName = getBeanName(pageBeanClass);
 
-        return new DefaultPageBeanConfigEntry(pageBeanName, pageBeanClass);
+        return new DefaultPageBeanDescriptor(pageBeanName, pageBeanClass);
     }
 
     private String getBeanName(Class<?> pageBeanClass)
@@ -320,12 +334,12 @@ public class DefaultViewConfigEntry impl
         {
             return true;
         }
-        if (!(o instanceof ViewConfigEntry))
+        if (!(o instanceof ViewConfigDescriptor))
         {
             return false;
         }
 
-        ViewConfigEntry that = (ViewConfigEntry) o;
+        ViewConfigDescriptor that = (ViewConfigDescriptor) o;
 
         if (!viewId.equals(that.getViewId()))
         {

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigExtractor.java Sun Mar  6 14:54:06 2011
@@ -23,7 +23,8 @@ import org.apache.myfaces.extensions.cdi
 import org.apache.myfaces.extensions.cdi.core.api.config.view.DefaultErrorView;
 import org.apache.myfaces.extensions.cdi.core.api.security.Secured;
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
 import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigExtractor;
 
 import javax.inject.Named;
@@ -41,12 +42,12 @@ class DefaultViewConfigExtractor impleme
 {
     private static final long serialVersionUID = 5794817257216134993L;
 
-    public ViewConfigEntry extractViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
+    public ViewConfigDescriptor extractViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
     {
         //use the interface to make clear which information we really need
-        ViewConfigEntry viewConfigEntry = new ExtractedViewConfigDefinitionEntry(viewDefinitionClass);
+        ViewConfigDescriptor viewConfigDescriptor = new ExtractedViewConfigDefinitionEntry(viewDefinitionClass);
 
-        return extractViewConfigEntry(viewDefinitionClass, viewConfigEntry);
+        return extractViewConfigDescriptor(viewDefinitionClass, viewConfigDescriptor);
     }
 
     public boolean isInlineViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
@@ -54,7 +55,7 @@ class DefaultViewConfigExtractor impleme
         return isResolvable(viewDefinitionClass, new ArrayList<Class<? extends Annotation>>());
     }
 
-    public ViewConfigEntry extractInlineViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
+    public ViewConfigDescriptor extractInlineViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
     {
         Class viewConfigRootMarker = ViewConfigCache.getInlineViewConfigRootMarker();
 
@@ -79,23 +80,34 @@ class DefaultViewConfigExtractor impleme
         }
 
         //use the interface to make clear which information we really need
-        ViewConfigEntry viewConfigEntry = new ExtractedInlineViewConfigDefinitionEntry(viewDefinitionClass, basePath);
+        ViewConfigDescriptor viewConfigDescriptor =
+                new ExtractedInlineViewConfigDefinitionEntry(viewDefinitionClass, basePath);
 
-        return extractViewConfigEntry(viewDefinitionClass, viewConfigEntry);
+        return extractViewConfigDescriptor(viewDefinitionClass, viewConfigDescriptor);
     }
 
-    private ViewConfigEntry extractViewConfigEntry(Class<? extends ViewConfig> viewDefinitionClass,
-                                                   ViewConfigEntry viewConfigEntry)
+    private ViewConfigDescriptor extractViewConfigDescriptor(Class<? extends ViewConfig> viewDefinitionClass,
+                                                             ViewConfigDescriptor viewConfigDescriptor)
     {
-        scanViewConfigClass(viewDefinitionClass, (ExtractedViewConfigDefinitionEntry)viewConfigEntry);
+        scanViewConfigClass(viewDefinitionClass, (ExtractedViewConfigDefinitionEntry)viewConfigDescriptor);
 
-        return new DefaultViewConfigEntry(viewConfigEntry.getViewId(),
+        Class<? extends ViewConfig> errorView = null;
+
+        Page.ViewParameterMode viewParameterMode = Page.ViewParameterMode.DEFAULT;
+
+        if(viewConfigDescriptor instanceof EditableViewConfigDescriptor)
+        {
+            errorView = ((EditableViewConfigDescriptor)viewConfigDescriptor).getErrorView();
+            viewParameterMode = ((EditableViewConfigDescriptor)viewConfigDescriptor).getViewParameterMode();
+        }
+
+        return new DefaultViewConfigDescriptor(viewConfigDescriptor.getViewId(),
                                           viewDefinitionClass,
-                                          viewConfigEntry.getNavigationMode(),
-                                          viewConfigEntry.getViewParameter(),
-                                          viewConfigEntry.getAccessDecisionVoters(),
-                                          viewConfigEntry.getErrorView(),
-                                          viewConfigEntry.getMetaData());
+                                          viewConfigDescriptor.getNavigationMode(),
+                                          viewParameterMode,
+                                          viewConfigDescriptor.getAccessDecisionVoters(),
+                                          errorView,
+                                          viewConfigDescriptor.getMetaData());
     }
 
     private Collection<Annotation> extractViewMetaData(
@@ -187,9 +199,9 @@ class DefaultViewConfigExtractor impleme
                 }
 
                 if (!scannedViewConfig.isKnownViewParameter() &&
-                        !pageAnnotation.viewParams().equals(Page.ViewParameter.DEFAULT))
+                        !pageAnnotation.viewParams().equals(Page.ViewParameterMode.DEFAULT))
                 {
-                    scannedViewConfig.setViewParameter(pageAnnotation.viewParams());
+                    scannedViewConfig.setViewParameterMode(pageAnnotation.viewParams());
                 }
 
                 if (!pageAnnotation.name().equals(defaultPageName))

Added: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigResolver.java?rev=1078478&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigResolver.java (added)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/DefaultViewConfigResolver.java Sun Mar  6 14:54:06 2011
@@ -0,0 +1,73 @@
+/*
+ * 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.jsf.impl.config.view;
+
+import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigResolver;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
+
+import javax.enterprise.context.ApplicationScoped;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author Gerhard Petracek
+ */
+@ApplicationScoped
+public class DefaultViewConfigResolver implements ViewConfigResolver
+{
+    public ViewConfigDescriptor getViewConfig(String viewId)
+    {
+        return ViewConfigCache.getViewConfig(viewId);
+    }
+
+    public ViewConfigDescriptor getDefaultErrorViewConfig()
+    {
+        return ViewConfigCache.getDefaultErrorView();
+    }
+
+    public ViewConfigDescriptor getErrorViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
+    {
+        ViewConfigDescriptor viewConfigDescriptor = getViewConfig(viewDefinitionClass);
+
+        Class<? extends ViewConfig> errorView = null;
+        if(viewConfigDescriptor instanceof EditableViewConfigDescriptor)
+        {
+            errorView = ((EditableViewConfigDescriptor)viewConfigDescriptor).getErrorView();
+        }
+
+        if(errorView == null)
+        {
+            return getDefaultErrorViewConfig();
+        }
+        return getViewConfig(errorView);
+    }
+
+    public List<ViewConfigDescriptor> getViewConfigs()
+    {
+        return Collections
+                .unmodifiableList((List<? extends ViewConfigDescriptor>) ViewConfigCache.getViewConfigDescriptors());
+    }
+
+    public ViewConfigDescriptor getViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
+    {
+        return ViewConfigCache.getViewConfig(viewDefinitionClass);
+    }
+}

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ExtractedViewConfigDefinitionEntry.java Sun Mar  6 14:54:06 2011
@@ -21,8 +21,8 @@ package org.apache.myfaces.extensions.cd
 import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
 import org.apache.myfaces.extensions.cdi.core.api.security.AccessDecisionVoter;
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.PageBeanConfigEntry;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBeanDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
 
 import java.lang.annotation.Annotation;
 import java.util.Map;
@@ -35,7 +35,7 @@ import java.util.Collections;
 /**
  * @author Gerhard Petracek
  */
-class ExtractedViewConfigDefinitionEntry implements ViewConfigEntry
+class ExtractedViewConfigDefinitionEntry implements EditableViewConfigDescriptor
 {
     static final String ROOT_PATH = "/";
     static final String DEFAULT_EXTENSION = Page.Extension.XHTML;
@@ -59,7 +59,7 @@ class ExtractedViewConfigDefinitionEntry
     protected String pageName = DEFAULT_PAGE_NAME;
     private String extension = DEFAULT_EXTENSION;
     private Page.NavigationMode navigationMode = null;
-    private Page.ViewParameter viewParameter = null;
+    private Page.ViewParameterMode viewParameterMode = null;
 
     public ExtractedViewConfigDefinitionEntry(Class<? extends ViewConfig> viewDefinitionClass)
     {
@@ -87,16 +87,16 @@ class ExtractedViewConfigDefinitionEntry
 
     public boolean isKnownViewParameter()
     {
-        return this.viewParameter != null;
+        return this.viewParameterMode != null;
     }
 
-    public Page.ViewParameter getViewParameter()
+    public Page.ViewParameterMode getViewParameterMode()
     {
-        if(this.viewParameter == null)
+        if(this.viewParameterMode == null)
         {
-            return Page.ViewParameter.DEFAULT;
+            return Page.ViewParameterMode.DEFAULT;
         }
-        return this.viewParameter;
+        return this.viewParameterMode;
     }
 
     public Class<? extends ViewConfig> getErrorView()
@@ -134,9 +134,9 @@ class ExtractedViewConfigDefinitionEntry
         this.navigationMode = navigationMode;
     }
 
-    public void setViewParameter(Page.ViewParameter viewParameter)
+    public void setViewParameterMode(Page.ViewParameterMode viewParameterMode)
     {
-        this.viewParameter = viewParameter;
+        this.viewParameterMode = viewParameterMode;
     }
 
     public void setPageName(String pageName)
@@ -230,7 +230,7 @@ class ExtractedViewConfigDefinitionEntry
     /*
      * TODO refactor it!
      */
-    public Class<? extends ViewConfig> getViewDefinitionClass()
+    public Class<? extends ViewConfig> getViewConfig()
     {
         throw new IllegalStateException(NOT_IMPLEMENTED_MESSAGE);
     }
@@ -298,7 +298,7 @@ class ExtractedViewConfigDefinitionEntry
         throw new IllegalStateException(NOT_IMPLEMENTED_MESSAGE);
     }
 
-    public List<PageBeanConfigEntry> getPageBeanDefinitions()
+    public List<PageBeanDescriptor> getPageBeanConfigs()
     {
         throw new IllegalStateException(NOT_IMPLEMENTED_MESSAGE);
     }

Copied: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigDescriptor.java (from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigEntry.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigDescriptor.java?p2=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigDescriptor.java&p1=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigEntry.java&r1=1074791&r2=1078478&rev=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/InlineViewConfigDescriptor.java Sun Mar  6 14:54:06 2011
@@ -24,12 +24,13 @@ import org.apache.myfaces.extensions.cdi
 /**
  * @author Gerhard Petracek
  */
-class InlineViewConfigEntry
+class InlineViewConfigDescriptor
 {
     private final ViewConfigExtractor viewConfigExtractor;
     private final Class<? extends ViewConfig> viewConfigDefinition;
 
-    InlineViewConfigEntry(ViewConfigExtractor viewConfigExtractor, Class<? extends ViewConfig> viewConfigDefinition)
+    InlineViewConfigDescriptor(ViewConfigExtractor viewConfigExtractor,
+                               Class<? extends ViewConfig> viewConfigDefinition)
     {
         this.viewConfigExtractor = viewConfigExtractor;
         this.viewConfigDefinition = viewConfigDefinition;

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PhasesLifecycleCallbackPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PhasesLifecycleCallbackPhaseListener.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PhasesLifecycleCallbackPhaseListener.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PhasesLifecycleCallbackPhaseListener.java Sun Mar  6 14:54:06 2011
@@ -24,9 +24,11 @@ import org.apache.myfaces.extensions.cdi
 import org.apache.myfaces.extensions.cdi.core.api.UnhandledException;
 import static org.apache.myfaces.extensions.cdi.jsf.impl.util.ExceptionUtils.invalidPhasesCallbackMethod;
 import org.apache.myfaces.extensions.cdi.jsf.api.listener.phase.JsfPhaseListener;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.PageBeanConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBeanDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.LifecycleAwarePageBeanDescriptor;
 import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.RequestLifecycleCallbackEntry;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
 
 import javax.faces.event.PhaseEvent;
 import javax.faces.event.PhaseListener;
@@ -96,11 +98,11 @@ public final class PhasesLifecycleCallba
         //override the view-id if we have a new view
         this.windowContext.setAttribute(INITIALIZED_VIEW_ID_MARKER_KEY, viewId);
 
-        ViewConfigEntry viewDefinitionEntry = ViewConfigCache.getViewDefinition(viewId);
+        ViewConfigDescriptor viewDefinitionEntry = ViewConfigCache.getViewConfig(viewId);
 
-        if (viewDefinitionEntry != null)
+        if (viewDefinitionEntry instanceof EditableViewConfigDescriptor)
         {
-            viewDefinitionEntry.invokeInitViewMethods();
+            ((EditableViewConfigDescriptor)viewDefinitionEntry).invokeInitViewMethods();
         }
     }
 
@@ -122,21 +124,21 @@ public final class PhasesLifecycleCallba
 
     private void processPreRenderView(String viewId)
     {
-        ViewConfigEntry viewDefinitionEntry = ViewConfigCache.getViewDefinition(viewId);
+        ViewConfigDescriptor viewDefinitionEntry = ViewConfigCache.getViewConfig(viewId);
 
-        if (viewDefinitionEntry != null)
+        if (viewDefinitionEntry instanceof EditableViewConfigDescriptor)
         {
-            viewDefinitionEntry.invokePreRenderViewMethods();
+            ((EditableViewConfigDescriptor)viewDefinitionEntry).invokePreRenderViewMethods();
         }
     }
 
     private void processPostRenderView(String viewId)
     {
-        ViewConfigEntry viewDefinitionEntry = ViewConfigCache.getViewDefinition(viewId);
+        ViewConfigDescriptor viewDefinitionEntry = ViewConfigCache.getViewConfig(viewId);
 
-        if (viewDefinitionEntry != null)
+        if (viewDefinitionEntry instanceof EditableViewConfigDescriptor)
         {
-            viewDefinitionEntry.invokePostRenderViewMethods();
+            ((EditableViewConfigDescriptor)viewDefinitionEntry).invokePostRenderViewMethods();
         }
     }
 
@@ -156,29 +158,34 @@ public final class PhasesLifecycleCallba
 
         String viewId = viewRoot.getViewId();
 
-        ViewConfigEntry viewDefinitionEntry = ViewConfigCache.getViewDefinition(viewId);
+        ViewConfigDescriptor viewDefinitionEntry = ViewConfigCache.getViewConfig(viewId);
 
         if(viewDefinitionEntry == null)
         {
             return;
         }
 
-        List<PageBeanConfigEntry> beanEntries = viewDefinitionEntry.getPageBeanDefinitions();
+        List<PageBeanDescriptor> beanEntries = viewDefinitionEntry.getPageBeanConfigs();
 
         Object bean;
         RequestLifecycleCallbackEntry phasesLifecycleCallbackEntry;
         List<Method> lifecycleCallbacks;
 
-        for(PageBeanConfigEntry beanEntry : beanEntries)
+        for(PageBeanDescriptor beanEntry : beanEntries)
         {
-            phasesLifecycleCallbackEntry = beanEntry.getPhasesLifecycleCallback(phaseEvent.getPhaseId());
+            if(!(beanEntry instanceof LifecycleAwarePageBeanDescriptor))
+            {
+                continue;
+            }
+
+            phasesLifecycleCallbackEntry = ((LifecycleAwarePageBeanDescriptor)beanEntry)
+                    .getPhasesLifecycleCallback(phaseEvent.getPhaseId());
 
             if(phasesLifecycleCallbackEntry == null)
             {
                 continue;
             }
 
-
             if(beforePhase)
             {
                 lifecycleCallbacks = phasesLifecycleCallbackEntry.getBeforePhaseCallbacks();

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PreRenderViewBeanLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PreRenderViewBeanLoader.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PreRenderViewBeanLoader.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/PreRenderViewBeanLoader.java Sun Mar  6 14:54:06 2011
@@ -18,11 +18,11 @@
  */
 package org.apache.myfaces.extensions.cdi.jsf.impl.config.view;
 
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBeanDescriptor;
 import org.apache.myfaces.extensions.cdi.jsf.api.listener.phase.BeforePhase;
 import org.apache.myfaces.extensions.cdi.jsf.api.listener.phase.JsfPhaseId;
 import org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.PageBeanConfigEntry;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.event.Observes;
@@ -41,16 +41,16 @@ public class PreRenderViewBeanLoader
     {
         String viewId = event.getFacesContext().getViewRoot().getViewId();
 
-        ViewConfigEntry viewDefinitionEntry = ViewConfigCache.getViewDefinition(viewId);
+        ViewConfigDescriptor viewDefinitionEntry = ViewConfigCache.getViewConfig(viewId);
 
         if(viewDefinitionEntry == null)
         {
             return;
         }
 
-        List<PageBeanConfigEntry> beanEntries = viewDefinitionEntry.getPageBeanDefinitions();
+        List<PageBeanDescriptor> beanEntries = viewDefinitionEntry.getPageBeanConfigs();
 
-        for(PageBeanConfigEntry beanEntry : beanEntries)
+        for(PageBeanDescriptor beanEntry : beanEntries)
         {
             //resolve bean to trigger @PostConstruct if it isn't scoped
             CodiUtils.getOrCreateScopedInstanceOfBeanByName(beanManager, beanEntry.getBeanName(), Object.class);

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigCache.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigCache.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigCache.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigCache.java Sun Mar  6 14:54:06 2011
@@ -19,7 +19,8 @@
 package org.apache.myfaces.extensions.cdi.jsf.impl.config.view;
 
 import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
 import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigExtractor;
 
 import org.apache.myfaces.extensions.cdi.core.api.config.view.DefaultErrorView;
@@ -45,21 +46,21 @@ public class ViewConfigCache
 {
     //we don't need a ConcurrentHashMap - write access is only allowed during the startup (by one thread)
 
-    private static Map<ClassLoader, Map<String, ViewConfigEntry>>
+    private static Map<ClassLoader, Map<String, ViewConfigDescriptor>>
             viewIdToViewDefinitionEntryMapping
-            = new HashMap<ClassLoader, Map<String, ViewConfigEntry>>();
+            = new HashMap<ClassLoader, Map<String, ViewConfigDescriptor>>();
 
-    private static Map<ClassLoader, Map<Class<? extends ViewConfig>, ViewConfigEntry>>
+    private static Map<ClassLoader, Map<Class<? extends ViewConfig>, ViewConfigDescriptor>>
             viewDefinitionToViewDefinitionEntryMapping =
-            new HashMap<ClassLoader, Map<Class<? extends ViewConfig>, ViewConfigEntry>>();
+            new HashMap<ClassLoader, Map<Class<? extends ViewConfig>, ViewConfigDescriptor>>();
 
-    private static Map<ClassLoader, List<InlineViewConfigEntry>>
+    private static Map<ClassLoader, List<InlineViewConfigDescriptor>>
             inlineViewDefinitionEntryList =
-            new HashMap<ClassLoader, List<InlineViewConfigEntry>>();
+            new HashMap<ClassLoader, List<InlineViewConfigDescriptor>>();
 
-    private static Map<ClassLoader, ViewConfigEntry>
+    private static Map<ClassLoader, ViewConfigDescriptor>
             defaultErrorView =
-            new HashMap<ClassLoader, ViewConfigEntry>();
+            new HashMap<ClassLoader, ViewConfigDescriptor>();
 
     private static Map<ClassLoader, Class>
             inlineViewConfigRootMarker =
@@ -88,34 +89,34 @@ public class ViewConfigCache
         lazyInitAllowed.put(getClassloader(), newValue);
     }
 
-    static void addViewDefinition(String viewId, ViewConfigEntry viewDefinitionEntry)
+    static void addViewConfigDescriptor(String viewId, ViewConfigDescriptor viewConfigDescriptor)
     {
-        storeViewDefinition(viewId, viewDefinitionEntry, false);
+        storeViewConfigDescriptor(viewId, viewConfigDescriptor, false);
     }
 
-    static void replaceViewDefinition(String viewId, ViewConfigEntry viewDefinitionEntry)
+    static void replaceViewConfigDescriptor(String viewId, ViewConfigDescriptor viewDefinitionEntry)
     {
-        storeViewDefinition(viewId, viewDefinitionEntry, true);
+        storeViewConfigDescriptor(viewId, viewDefinitionEntry, true);
     }
 
-    public static ViewConfigEntry getViewDefinition(String viewId)
+    public static ViewConfigDescriptor getViewConfig(String viewId)
     {
         return getViewIdToViewDefinitionEntryMapping(true).get(viewId);
     }
 
-    public static Collection<ViewConfigEntry> getViewConfigEntries()
+    public static Collection<ViewConfigDescriptor> getViewConfigDescriptors()
     {
-        Map<String, ViewConfigEntry> entryMap = getViewIdToViewDefinitionEntryMapping(true);
+        Map<String, ViewConfigDescriptor> entryMap = getViewIdToViewDefinitionEntryMapping(true);
 
         return entryMap.values();
     }
 
-    public static ViewConfigEntry getViewDefinition(Class<? extends ViewConfig> viewDefinitionClass)
+    public static ViewConfigDescriptor getViewConfig(Class<? extends ViewConfig> viewDefinitionClass)
     {
         return getViewDefinitionToViewDefinitionEntryMapping(true).get(viewDefinitionClass);
     }
 
-    public static ViewConfigEntry getDefaultErrorView()
+    public static ViewConfigDescriptor getDefaultErrorView()
     {
         lazyInlineViewConfigCompilation();
         return defaultErrorView.get(getClassloader());
@@ -137,7 +138,7 @@ public class ViewConfigCache
     static void queueInlineViewConfig(ViewConfigExtractor viewConfigExtractor, Class<? extends ViewConfig> beanClass)
     {
         getInlineViewDefinitionToViewDefinitionEntryList()
-                .add(new InlineViewConfigEntry(viewConfigExtractor, beanClass));
+                .add(new InlineViewConfigDescriptor(viewConfigExtractor, beanClass));
     }
 
     static void setInlineViewConfigRootMarker(Class viewConfigRootClass)
@@ -163,7 +164,7 @@ public class ViewConfigCache
     }
 
     static void storeViewDefinition(String viewId,
-                                    ViewConfigEntry viewDefinitionEntry,
+                                    ViewConfigDescriptor viewDefinitionEntry,
                                     boolean allowReplace,
                                     boolean lazyInit)
     {
@@ -171,41 +172,43 @@ public class ViewConfigCache
         {
             throw ambiguousViewDefinitionException(
                     viewId,
-                    viewDefinitionEntry.getViewDefinitionClass(),
-                    getViewIdToViewDefinitionEntryMapping(lazyInit).get(viewId).getViewDefinitionClass());
+                    viewDefinitionEntry.getViewConfig(),
+                    getViewIdToViewDefinitionEntryMapping(lazyInit).get(viewId).getViewConfig());
         }
 
         tryToStorePageAsDefaultErrorPage(viewDefinitionEntry);
 
         getViewIdToViewDefinitionEntryMapping(lazyInit).put(viewId, viewDefinitionEntry);
         getViewDefinitionToViewDefinitionEntryMapping(lazyInit)
-                .put(viewDefinitionEntry.getViewDefinitionClass(), viewDefinitionEntry);
+                .put(viewDefinitionEntry.getViewConfig(), viewDefinitionEntry);
     }
 
-    static void storeViewDefinition(String viewId, ViewConfigEntry viewDefinitionEntry, boolean allowReplace)
+    static void storeViewConfigDescriptor(String viewId,
+                                          ViewConfigDescriptor viewConfigDescriptor,
+                                          boolean allowReplace)
     {
-        storeViewDefinition(viewId, viewDefinitionEntry, allowReplace, true);
+        storeViewDefinition(viewId, viewConfigDescriptor, allowReplace, true);
     }
 
-    private static Map<String, ViewConfigEntry> getViewIdToViewDefinitionEntryMapping(boolean lazyInit)
+    private static Map<String, ViewConfigDescriptor> getViewIdToViewDefinitionEntryMapping(boolean lazyInit)
     {
         if(lazyInit)
         {
             lazyInlineViewConfigCompilation();
         }
 
-        Map<String, ViewConfigEntry> result = viewIdToViewDefinitionEntryMapping.get(getClassloader());
+        Map<String, ViewConfigDescriptor> result = viewIdToViewDefinitionEntryMapping.get(getClassloader());
 
         if(result == null)
         {
-            result = new HashMap<String, ViewConfigEntry>();
+            result = new HashMap<String, ViewConfigDescriptor>();
             viewIdToViewDefinitionEntryMapping.put(getClassloader(), result);
         }
 
         return result;
     }
 
-    private static Map<Class<? extends ViewConfig>, ViewConfigEntry>
+    private static Map<Class<? extends ViewConfig>, ViewConfigDescriptor>
         getViewDefinitionToViewDefinitionEntryMapping(boolean lazyInit)
     {
         if(lazyInit)
@@ -213,45 +216,46 @@ public class ViewConfigCache
             lazyInlineViewConfigCompilation();
         }
 
-        Map<Class<? extends ViewConfig>, ViewConfigEntry> result =
+        Map<Class<? extends ViewConfig>, ViewConfigDescriptor> result =
                 viewDefinitionToViewDefinitionEntryMapping.get(getClassloader());
 
         if(result == null)
         {
-            result = new HashMap<Class<? extends ViewConfig>, ViewConfigEntry>();
+            result = new HashMap<Class<? extends ViewConfig>, ViewConfigDescriptor>();
             viewDefinitionToViewDefinitionEntryMapping.put(getClassloader(), result);
         }
         return result;
     }
 
-    private static List<InlineViewConfigEntry> getInlineViewDefinitionToViewDefinitionEntryList()
+    private static List<InlineViewConfigDescriptor> getInlineViewDefinitionToViewDefinitionEntryList()
     {
-        List<InlineViewConfigEntry> inlineViewConfigEntryList = inlineViewDefinitionEntryList.get(getClassloader());
+        List<InlineViewConfigDescriptor> inlineViewConfigDescriptors =
+                inlineViewDefinitionEntryList.get(getClassloader());
 
-        if(inlineViewConfigEntryList == null)
+        if(inlineViewConfigDescriptors == null)
         {
-            inlineViewConfigEntryList = new ArrayList<InlineViewConfigEntry>();
-            inlineViewDefinitionEntryList.put(getClassloader(), inlineViewConfigEntryList);
+            inlineViewConfigDescriptors = new ArrayList<InlineViewConfigDescriptor>();
+            inlineViewDefinitionEntryList.put(getClassloader(), inlineViewConfigDescriptors);
         }
-        return inlineViewConfigEntryList;
+        return inlineViewConfigDescriptors;
     }
 
-    private static void tryToStorePageAsDefaultErrorPage(ViewConfigEntry viewDefinitionEntry)
+    private static void tryToStorePageAsDefaultErrorPage(ViewConfigDescriptor viewDefinitionEntry)
     {
-        if(DefaultErrorView.class.isAssignableFrom(viewDefinitionEntry.getViewDefinitionClass()))
+        if(DefaultErrorView.class.isAssignableFrom(viewDefinitionEntry.getViewConfig()))
         {
-            ViewConfigEntry currentErrorView = getDefaultErrorView();
+            ViewConfigDescriptor currentErrorView = getDefaultErrorView();
             if(currentErrorView != null)
             {
-                throw ambiguousDefaultErrorViewDefinitionException(viewDefinitionEntry.getViewDefinitionClass(),
-                                                                   currentErrorView.getViewDefinitionClass());
+                throw ambiguousDefaultErrorViewDefinitionException(viewDefinitionEntry.getViewConfig(),
+                                                                   currentErrorView.getViewConfig());
             }
 
             setDefaultErrorView(viewDefinitionEntry);
         }
     }
 
-    private static void setDefaultErrorView(ViewConfigEntry viewDefinitionEntry)
+    private static void setDefaultErrorView(ViewConfigDescriptor viewDefinitionEntry)
     {
         //TODO
         defaultErrorView.put(getClassloader(), viewDefinitionEntry);
@@ -264,10 +268,10 @@ public class ViewConfigCache
 
     private static void lazyInlineViewConfigCompilation()
     {
-        List<InlineViewConfigEntry> inlineViewConfigEntryList =
+        List<InlineViewConfigDescriptor> inlineViewConfigDescriptors =
                 inlineViewDefinitionEntryList.get(getClassloader());
 
-        if(inlineViewConfigEntryList == null)
+        if(inlineViewConfigDescriptors == null)
         {
             //there is no inline view config or it is already processed
             return;
@@ -278,7 +282,7 @@ public class ViewConfigCache
             return;
         }
 
-        registerInlineViewConfigEntry();
+        registerInlineViewConfigDescriptor();
     }
 
     private static boolean isInWriteMode()
@@ -286,29 +290,32 @@ public class ViewConfigCache
         return !Boolean.TRUE.equals(lazyInitAllowed.get(getClassloader()));
     }
 
-    private static synchronized void registerInlineViewConfigEntry()
+    private static synchronized void registerInlineViewConfigDescriptor()
     {
-        List<InlineViewConfigEntry> inlineViewConfigEntryList =
+        List<InlineViewConfigDescriptor> inlineViewConfigDescriptors =
                 inlineViewDefinitionEntryList.get(getClassloader());
 
         // switch into paranoia mode
-        if(inlineViewConfigEntryList == null)
+        if(inlineViewConfigDescriptors == null)
         {
             return;
         }
 
-        ViewConfigEntry viewConfigEntry;
-        for(InlineViewConfigEntry inlineViewConfigEntry : inlineViewConfigEntryList)
+        ViewConfigDescriptor viewConfig;
+        for(InlineViewConfigDescriptor inlineViewConfigDescriptor : inlineViewConfigDescriptors)
         {
-            viewConfigEntry = inlineViewConfigEntry.getViewConfigExtractor()
-                    .extractInlineViewConfig(inlineViewConfigEntry.getViewConfigDefinition());
+            viewConfig = inlineViewConfigDescriptor.getViewConfigExtractor()
+                    .extractInlineViewConfig(inlineViewConfigDescriptor.getViewConfigDefinition());
 
-            if(viewConfigEntry != null)
+            if(viewConfig != null)
             {
-                //activate view controller annotations
-                viewConfigEntry.addPageBean(viewConfigEntry.getViewDefinitionClass());
+                if(viewConfig instanceof EditableViewConfigDescriptor)
+                {
+                    //activate view controller annotations
+                    ((EditableViewConfigDescriptor)viewConfig).addPageBean(viewConfig.getViewConfig());
+                }
 
-                storeViewDefinition(viewConfigEntry.getViewId(), viewConfigEntry, false, false);
+                storeViewDefinition(viewConfig.getViewId(), viewConfig, false, false);
             }
         }
 

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigExtension.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigExtension.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigExtension.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigExtension.java Sun Mar  6 14:54:06 2011
@@ -26,8 +26,9 @@ import org.apache.myfaces.extensions.cdi
 import org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils;
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page;
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.InlineViewConfigRoot;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.PageBeanConfigEntry;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBeanDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
 import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigExtractor;
 import org.apache.myfaces.extensions.cdi.jsf.impl.listener.phase.ViewControllerInterceptor;
 
@@ -126,32 +127,35 @@ public class ViewConfigExtension impleme
             this.logger.info(pageDefinitionClass.getName() + " will be used as page-definition.");
         }
 
-        ViewConfigEntry newEntry = createViewConfigEntry(pageDefinitionClass);
+        ViewConfigDescriptor newEntry = createViewConfigDescriptor(pageDefinitionClass);
 
         if(newEntry != null)
         {
-            ViewConfigEntry existingEntry = ViewConfigCache.getViewDefinition(newEntry.getViewDefinitionClass());
+            ViewConfigDescriptor existingDescriptor = ViewConfigCache.getViewConfig(newEntry.getViewConfig());
 
             //TODO introduce an SPI with a better name
-            if(/*viewConfigEntry != null*/existingEntry instanceof DefaultViewConfigEntry
-                    && ((DefaultViewConfigEntry)existingEntry).isSimpleEntryMode())
+            if(/*viewConfigDescriptor != null*/existingDescriptor instanceof DefaultViewConfigDescriptor
+                    && ((DefaultViewConfigDescriptor)existingDescriptor).isSimpleEntryMode())
             {
                 //in this case the alternative view-controller approach which just adds page-beans was invoked before
                 //-> we just have to use the page bean of the existing entry
 
                 //here we have a simple-entry!   (which just contains page-bean definitions)
-                for(PageBeanConfigEntry pageBeanConfigEntry : existingEntry.getPageBeanDefinitions())
+                for(PageBeanDescriptor pageBeanDescriptor : existingDescriptor.getPageBeanConfigs())
                 {
                     //add page-beans to the real entry
-                    newEntry.addPageBean(pageBeanConfigEntry.getBeanClass());
+                    if(newEntry instanceof EditableViewConfigDescriptor)
+                    {
+                        ((EditableViewConfigDescriptor)newEntry).addPageBean(pageBeanDescriptor.getBeanClass());
+                    }
                 }
-                ViewConfigCache.replaceViewDefinition(newEntry.getViewId(), newEntry);
+                ViewConfigCache.replaceViewConfigDescriptor(newEntry.getViewId(), newEntry);
                 return;
             }
 
             //add created entry
             //if there is already an normal (not simple!) entry force an exception
-            ViewConfigCache.addViewDefinition(newEntry.getViewId(), newEntry);
+            ViewConfigCache.addViewConfigDescriptor(newEntry.getViewId(), newEntry);
         }
     }
 
@@ -204,32 +208,38 @@ public class ViewConfigExtension impleme
 
         for(Class<? extends ViewConfig> viewConfigClass : view.value())
         {
-            ViewConfigEntry viewConfigEntry = ViewConfigCache.getViewDefinition(viewConfigClass);
+            ViewConfigDescriptor viewConfigDescriptor = ViewConfigCache.getViewConfig(viewConfigClass);
 
-            if(viewConfigEntry == null)
+            if(viewConfigDescriptor == null)
             {
-                ViewConfigEntry entry = createViewConfigEntry(viewConfigClass);
+                ViewConfigDescriptor entry = createViewConfigDescriptor(viewConfigClass);
 
                 if(entry != null)
                 {
-                    entry.addPageBean(annotatedType.getJavaClass());
+                    if(entry instanceof EditableViewConfigDescriptor)
+                    {
+                        ((EditableViewConfigDescriptor)entry).addPageBean(annotatedType.getJavaClass());
+                    }
 
-                    //TODO introduce an SPI with a better name
-                    if(entry instanceof DefaultViewConfigEntry)
+                    if(entry instanceof DefaultViewConfigDescriptor)
                     {
-                        ((DefaultViewConfigEntry)entry).activateSimpleEntryMode();
+                        //TODO introduce an SPI with a better name
+                        ((DefaultViewConfigDescriptor)entry).activateSimpleEntryMode();
                     }
-                    ViewConfigCache.addViewDefinition(entry.getViewId(), entry);
+                    ViewConfigCache.addViewConfigDescriptor(entry.getViewId(), entry);
                 }
             }
             else
             {
-                viewConfigEntry.addPageBean(annotatedType.getJavaClass());
+                if(viewConfigDescriptor instanceof EditableViewConfigDescriptor)
+                {
+                    ((EditableViewConfigDescriptor)viewConfigDescriptor).addPageBean(annotatedType.getJavaClass());
+                }
             }
         }
     }
 
-    protected ViewConfigEntry createViewConfigEntry(Class<? extends ViewConfig> viewDefinitionClass)
+    protected ViewConfigDescriptor createViewConfigDescriptor(Class<? extends ViewConfig> viewDefinitionClass)
     {
         //we use abstract classes for nesting definitions
         //TODO log a warning in case of project-stage dev
@@ -238,7 +248,7 @@ public class ViewConfigExtension impleme
             return null;
         }
 
-        ViewConfigEntry result = getViewConfigExtractor().extractViewConfig(viewDefinitionClass);
+        ViewConfigDescriptor result = getViewConfigExtractor().extractViewConfig(viewDefinitionClass);
         return result;
     }
 

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewControllerActionListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewControllerActionListener.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewControllerActionListener.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewControllerActionListener.java Sun Mar  6 14:54:06 2011
@@ -20,7 +20,8 @@ package org.apache.myfaces.extensions.cd
 
 import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
 import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
-import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.ViewConfigEntry;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
+import org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi.EditableViewConfigDescriptor;
 
 import javax.faces.event.ActionListener;
 import javax.faces.event.ActionEvent;
@@ -48,12 +49,12 @@ public class ViewControllerActionListene
             return;
         }
         
-        ViewConfigEntry viewConfigEntry =
-                ViewConfigCache.getViewDefinition(FacesContext.getCurrentInstance().getViewRoot().getViewId());
+        ViewConfigDescriptor viewConfigDescriptor =
+                ViewConfigCache.getViewConfig(FacesContext.getCurrentInstance().getViewRoot().getViewId());
 
-        if(viewConfigEntry != null)
+        if(viewConfigDescriptor instanceof EditableViewConfigDescriptor)
         {
-            viewConfigEntry.invokePrePageActionMethods();
+            ((EditableViewConfigDescriptor)viewConfigDescriptor).invokePrePageActionMethods();
         }
 
         this.wrapped.processAction(actionEvent);

Copied: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/EditableViewConfigDescriptor.java (from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigEntry.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/EditableViewConfigDescriptor.java?p2=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/EditableViewConfigDescriptor.java&p1=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigEntry.java&r1=1074791&r2=1078478&rev=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/EditableViewConfigDescriptor.java Sun Mar  6 14:54:06 2011
@@ -19,30 +19,20 @@
 package org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi;
 
 import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
-import org.apache.myfaces.extensions.cdi.core.api.security.AccessDecisionVoter;
 import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page;
-
-import java.lang.annotation.Annotation;
-import java.util.List;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
 
 /**
  * @author Gerhard Petracek
  */
-public interface ViewConfigEntry
+public interface EditableViewConfigDescriptor extends ViewConfigDescriptor
 {
-    String getViewId();
-
-    Class<? extends ViewConfig> getViewDefinitionClass();
-
+    //it isn't available in ViewConfigDescriptor to avoid confusions of app-developers
+    //(e.g. navigation to the error view should be handled differently)
     Class<? extends ViewConfig> getErrorView();
 
-    Page.NavigationMode getNavigationMode();
-
-    Page.ViewParameter getViewParameter();
-
-    List<Annotation> getMetaData();
-
-    List<Class<? extends AccessDecisionVoter>> getAccessDecisionVoters();
+    //due to the usage in @Page we can't move it to the api of the jsf2 module
+    Page.ViewParameterMode getViewParameterMode();
 
     void addPageBean(Class pageBeanClass);
 
@@ -53,6 +43,4 @@ public interface ViewConfigEntry
     void invokePreRenderViewMethods();
 
     void invokePostRenderViewMethods();
-
-    List<PageBeanConfigEntry> getPageBeanDefinitions();
 }

Copied: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/LifecycleAwarePageBeanDescriptor.java (from r1074791, myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/PageBeanConfigEntry.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/LifecycleAwarePageBeanDescriptor.java?p2=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/LifecycleAwarePageBeanDescriptor.java&p1=myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/PageBeanConfigEntry.java&r1=1074791&r2=1078478&rev=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/PageBeanConfigEntry.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/LifecycleAwarePageBeanDescriptor.java Sun Mar  6 14:54:06 2011
@@ -18,6 +18,8 @@
  */
 package org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi;
 
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBeanDescriptor;
+
 import javax.faces.event.PhaseId;
 import java.lang.reflect.Method;
 import java.util.List;
@@ -25,12 +27,8 @@ import java.util.List;
 /**
  * @author Gerhard Petracek
  */
-public interface PageBeanConfigEntry
+public interface LifecycleAwarePageBeanDescriptor extends PageBeanDescriptor
 {
-    Class getBeanClass();
-
-    String getBeanName();
-
     List<Method> getInitViewMethods();
 
     List<Method> getPrePageActionMethods();

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigExtractor.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigExtractor.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/spi/ViewConfigExtractor.java Sun Mar  6 14:54:06 2011
@@ -19,6 +19,7 @@
 package org.apache.myfaces.extensions.cdi.jsf.impl.config.view.spi;
 
 import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
+import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
 
 import java.io.Serializable;
 
@@ -27,9 +28,9 @@ import java.io.Serializable;
  */
 public interface ViewConfigExtractor extends Serializable
 {
-    ViewConfigEntry extractViewConfig(Class<? extends ViewConfig> viewDefinitionClass);
+    ViewConfigDescriptor extractViewConfig(Class<? extends ViewConfig> viewDefinitionClass);
 
     boolean isInlineViewConfig(Class<? extends ViewConfig> viewDefinitionClass);
 
-    ViewConfigEntry extractInlineViewConfig(Class<? extends ViewConfig> viewDefinitionClass);
+    ViewConfigDescriptor extractInlineViewConfig(Class<? extends ViewConfig> viewDefinitionClass);
 }

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/DefaultViewControllerStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/DefaultViewControllerStrategy.java?rev=1078478&r1=1078477&r2=1078478&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/DefaultViewControllerStrategy.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/DefaultViewControllerStrategy.java Sun Mar  6 14:54:06 2011
@@ -126,6 +126,6 @@ public class DefaultViewControllerStrate
 
     private String resolveViewId(Class<? extends ViewConfig> viewDefinitionClass)
     {
-        return ViewConfigCache.getViewDefinition(viewDefinitionClass).getViewId();
+        return ViewConfigCache.getViewConfig(viewDefinitionClass).getViewId();
     }
 }