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/01/14 21:19:58 UTC
svn commit: r1059154 - in /myfaces/extensions/cdi/trunk:
core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/
core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/
core/api/src/main/java/org/apache/myfaces/ex...
Author: gpetracek
Date: Fri Jan 14 20:19:57 2011
New Revision: 1059154
URL: http://svn.apache.org/viewvc?rev=1059154&view=rev
Log:
EXTCDI-120 first draft
Added:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/CodiStartupBroadcaster.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/event/StartupEventBroadcaster.java
Modified:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/CodiDeactivatorExtension.java
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageActivationExtension.java
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/CodiUtils.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/listener/phase/PhaseListenerExtension.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/CodiRenderKitFactory.java
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/GroupedConversationContextExtension.java
myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/CodiRenderKitFactory.java
myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/mapped/MappedJsf2ScopeExtension.java
myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/view/ViewScopedExtension.java
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/provider/BeanManagerProvider.java Fri Jan 14 20:19:57 2011
@@ -18,6 +18,7 @@
*/
package org.apache.myfaces.extensions.cdi.core.api.provider;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.api.util.ClassUtils;
import javax.enterprise.event.Observes;
@@ -48,6 +49,10 @@ public class BeanManagerProvider impleme
private volatile Map<ClassLoader, BeanManager> bms = new ConcurrentHashMap<ClassLoader, BeanManager>();
+ public static boolean isActive()
+ {
+ return bmp != null;
+ }
/**
* Singleton accessor
@@ -57,6 +62,13 @@ public class BeanManagerProvider impleme
{
if(bmp == null)
{
+ //workaround for Mojarra (in combination with OWB and a custom WebBeansConfigurationListener and a custom
+ //StartupBroadcaster for bootstrapping CDI)
+ CodiStartupBroadcaster.broadcastStartup();
+ //here bmp might not be null (depends on the broadcasters)
+ }
+ if(bmp == null)
+ {
throw new IllegalStateException("no " + BeanManagerProvider.class.getName() + " in place! " +
"Please ensure that you configured the CDI implementation of your choice properly.");
}
@@ -119,6 +131,8 @@ public class BeanManagerProvider impleme
ClassLoader cl = ClassUtils.getClassLoader(null);
bmpFirst.bms.put(cl, beanManager);
+
+ CodiStartupBroadcaster.broadcastStartup();
}
/**
Added: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/CodiStartupBroadcaster.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/CodiStartupBroadcaster.java?rev=1059154&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/CodiStartupBroadcaster.java (added)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/CodiStartupBroadcaster.java Fri Jan 14 20:19:57 2011
@@ -0,0 +1,83 @@
+/*
+ * 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.startup;
+
+import org.apache.myfaces.extensions.cdi.core.api.startup.event.StartupEventBroadcaster;
+import org.apache.myfaces.extensions.cdi.core.api.util.ClassUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.ServiceLoader;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * @author Gerhard Petracek
+ */
+public abstract class CodiStartupBroadcaster
+{
+ private CodiStartupBroadcaster()
+ {
+ }
+
+ private static volatile Map<ClassLoader, Boolean> initialized = new HashMap<ClassLoader, Boolean>();
+
+ private static transient Map<ClassLoader, List<Class<? extends StartupEventBroadcaster>>> broadcasterFilter =
+ new ConcurrentHashMap<ClassLoader, List<Class<? extends StartupEventBroadcaster>>>();
+
+
+ public static void broadcastStartup()
+ {
+ ClassLoader classLoader = ClassUtils.getClassLoader(null);
+ if (!initialized.containsKey(classLoader))
+ {
+ invokeStartupEventBroadcaster(classLoader);
+ }
+ }
+
+ private static synchronized void invokeStartupEventBroadcaster(ClassLoader classLoader)
+ {
+ if (initialized.containsKey(classLoader))
+ {
+ return;
+ }
+
+ ServiceLoader<StartupEventBroadcaster> eventBroadcasterServiceLoader =
+ ServiceLoader.load(StartupEventBroadcaster.class, classLoader);
+
+ List<Class<? extends StartupEventBroadcaster>> filter = broadcasterFilter.get(classLoader);
+ if (filter == null)
+ {
+ filter = new CopyOnWriteArrayList<Class<? extends StartupEventBroadcaster>>();
+ broadcasterFilter.put(classLoader, filter);
+ }
+
+ for (StartupEventBroadcaster startupEventBroadcaster : eventBroadcasterServiceLoader)
+ {
+ if (!filter.contains(startupEventBroadcaster.getClass()))
+ {
+ filter.add(startupEventBroadcaster.getClass());
+ startupEventBroadcaster.broadcastStartup();
+ }
+ }
+
+ initialized.put(classLoader, Boolean.TRUE);
+ }
+}
Added: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/event/StartupEventBroadcaster.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/event/StartupEventBroadcaster.java?rev=1059154&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/event/StartupEventBroadcaster.java (added)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/startup/event/StartupEventBroadcaster.java Fri Jan 14 20:19:57 2011
@@ -0,0 +1,27 @@
+/*
+ * 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.startup.event;
+
+/**
+ * @author Gerhard Petracek
+ */
+public interface StartupEventBroadcaster
+{
+ void broadcastStartup();
+}
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/CodiDeactivatorExtension.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/CodiDeactivatorExtension.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/CodiDeactivatorExtension.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/CodiDeactivatorExtension.java Fri Jan 14 20:19:57 2011
@@ -20,6 +20,7 @@ package org.apache.myfaces.extensions.cd
import static org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation.isClassActivated;
import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
@@ -40,6 +41,8 @@ public class CodiDeactivatorExtension im
return;
}
+ CodiStartupBroadcaster.broadcastStartup();
+
if (processAnnotatedType.getAnnotatedType().isAnnotationPresent(Interceptor.class))
{
if(!isClassActivated(processAnnotatedType.getAnnotatedType().getJavaClass()))
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageActivationExtension.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageActivationExtension.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageActivationExtension.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageActivationExtension.java Fri Jan 14 20:19:57 2011
@@ -25,6 +25,7 @@ import javax.enterprise.inject.spi.Proce
import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStageActivated;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
@@ -57,6 +58,8 @@ public class ProjectStageActivationExten
return;
}
+ CodiStartupBroadcaster.broadcastStartup();
+
if (pat.getAnnotatedType().getJavaClass().isAnnotationPresent(ProjectStageActivated.class))
{
Class<? extends ProjectStage>[] activatedIn =
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/CodiUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/CodiUtils.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/CodiUtils.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/CodiUtils.java Fri Jan 14 20:19:57 2011
@@ -463,6 +463,6 @@ public class CodiUtils
public static boolean isCdiInitialized()
{
- return BeanManagerProvider.getInstance() != null;
+ return BeanManagerProvider.isActive();
}
}
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=1059154&r1=1059153&r2=1059154&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 Fri Jan 14 20:19:57 2011
@@ -20,6 +20,7 @@ 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.config.view.View;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
import org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils;
@@ -54,6 +55,8 @@ public class ViewConfigExtension impleme
return;
}
+ CodiStartupBroadcaster.broadcastStartup();
+
if (processAnnotatedType.getAnnotatedType().isAnnotationPresent(Page.class))
{
addPageDefinition(processAnnotatedType.getAnnotatedType().getJavaClass());
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/PhaseListenerExtension.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/PhaseListenerExtension.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/PhaseListenerExtension.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/phase/PhaseListenerExtension.java Fri Jan 14 20:19:57 2011
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.jsf.impl.listener.phase;
import org.apache.myfaces.extensions.cdi.core.api.config.CodiCoreConfig;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.api.util.ClassUtils;
import org.apache.myfaces.extensions.cdi.core.impl.InvocationOrderComparator;
import org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils;
@@ -52,6 +53,8 @@ public class PhaseListenerExtension impl
public void filterJsfPhaseListeners(@Observes ProcessAnnotatedType processAnnotatedType)
{
+ CodiStartupBroadcaster.broadcastStartup();
+
if (processAnnotatedType.getAnnotatedType().isAnnotationPresent(JsfPhaseListener.class))
{
Class<? extends PhaseListener> phaseListenerClass
@@ -86,6 +89,9 @@ public class PhaseListenerExtension impl
public static List<PhaseListener> consumePhaseListeners()
{
+ //workaround for mojarra
+ CodiStartupBroadcaster.broadcastStartup();
+
ClassLoader classLoader = getClassLoader();
List<Class<? extends PhaseListener>> foundPhaseListeners = phaseListeners.get(classLoader);
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/CodiRenderKitFactory.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/scope/conversation/CodiRenderKitFactory.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/CodiRenderKitFactory.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/CodiRenderKitFactory.java Fri Jan 14 20:19:57 2011
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation;
import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
import org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils;
import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.RenderKitWrapperFactory;
@@ -95,10 +96,16 @@ public class CodiRenderKitFactory extend
private void lazyInit()
{
- if(this.renderKitWrapperFactory == null && CodiUtils.isCdiInitialized())
+ if(this.renderKitWrapperFactory == null)
{
- this.renderKitWrapperFactory = CodiUtils
- .getContextualReferenceByClass(RenderKitWrapperFactory.class, true);
+ //workaround for mojarra
+ CodiStartupBroadcaster.broadcastStartup();
+
+ if(CodiUtils.isCdiInitialized())
+ {
+ this.renderKitWrapperFactory = CodiUtils
+ .getContextualReferenceByClass(RenderKitWrapperFactory.class, true);
+ }
}
if(CodiUtils.isCdiInitialized())
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/GroupedConversationContextExtension.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/scope/conversation/GroupedConversationContextExtension.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/GroupedConversationContextExtension.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/GroupedConversationContextExtension.java Fri Jan 14 20:19:57 2011
@@ -22,6 +22,7 @@ import org.apache.myfaces.extensions.cdi
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowScoped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessScoped;
import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ConversationGroup;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext;
import org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter;
@@ -49,6 +50,8 @@ public class GroupedConversationContextE
return;
}
+ //here we don't need CodiStartupBroadcaster.broadcastStartup(); see #validateScopes
+
AbstractGroupedConversationContext codiConversationContext = new GroupedConversationContext(manager);
event.addContext(new ConversationContextAdapter(WindowScoped.class, codiConversationContext));
event.addContext(new ConversationContextAdapter(ConversationScoped.class, codiConversationContext));
@@ -63,6 +66,8 @@ public class GroupedConversationContextE
return;
}
+ CodiStartupBroadcaster.broadcastStartup();
+
Bean<?> bean = processBean.getBean();
Set<Annotation> qualifiers = bean.getQualifiers();
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/CodiRenderKitFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/CodiRenderKitFactory.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/CodiRenderKitFactory.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/conversation/CodiRenderKitFactory.java Fri Jan 14 20:19:57 2011
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.cdi.jsf2.impl.scope.conversation;
import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
import org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils;
import org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.RenderKitWrapperFactory;
@@ -96,10 +97,16 @@ public class CodiRenderKitFactory extend
private void lazyInit()
{
- if(this.renderKitWrapperFactory == null && CodiUtils.isCdiInitialized())
+ if(this.renderKitWrapperFactory == null)
{
- this.renderKitWrapperFactory = CodiUtils
- .getContextualReferenceByClass(RenderKitWrapperFactory.class, true);
+ //workaround for mojarra
+ CodiStartupBroadcaster.broadcastStartup();
+
+ if(CodiUtils.isCdiInitialized())
+ {
+ this.renderKitWrapperFactory = CodiUtils
+ .getContextualReferenceByClass(RenderKitWrapperFactory.class, true);
+ }
}
if(CodiUtils.isCdiInitialized())
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/mapped/MappedJsf2ScopeExtension.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/mapped/MappedJsf2ScopeExtension.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/mapped/MappedJsf2ScopeExtension.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/mapped/MappedJsf2ScopeExtension.java Fri Jan 14 20:19:57 2011
@@ -20,6 +20,7 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
import org.apache.myfaces.extensions.cdi.core.impl.projectstage.ProjectStageProducer;
@@ -64,6 +65,8 @@ public class MappedJsf2ScopeExtension im
return;
}
+ CodiStartupBroadcaster.broadcastStartup();
+
Class<? extends Annotation> jsf2ScopeAnnotation = getJsf2ScopeAnnotation(processAnnotatedType);
if(jsf2ScopeAnnotation != null && !beanUsesUnsupportedManagedBeanAnnotation(processAnnotatedType))
Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/view/ViewScopedExtension.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/view/ViewScopedExtension.java?rev=1059154&r1=1059153&r2=1059154&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/view/ViewScopedExtension.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf20-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf2/impl/scope/view/ViewScopedExtension.java Fri Jan 14 20:19:57 2011
@@ -21,6 +21,7 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.Deactivatable;
import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
+import org.apache.myfaces.extensions.cdi.core.api.startup.CodiStartupBroadcaster;
import org.apache.myfaces.extensions.cdi.core.impl.util.ClassDeactivation;
import org.apache.myfaces.extensions.cdi.core.impl.projectstage.ProjectStageProducer;
@@ -70,6 +71,8 @@ public class ViewScopedExtension impleme
return;
}
+ CodiStartupBroadcaster.broadcastStartup();
+
try
{
// we need to do this manually because there is no dependency injection in place