cdi-1.1 Refactoring to make full use of cdi.

CdiConfiguration is now built totally on @Inject dependencies.


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8b68cc7a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8b68cc7a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8b68cc7a

Branch: refs/heads/master
Commit: 8b68cc7adc92c4518dc2ab53fa42f0338d01661b
Parents: befbf9c
Author: John Sarman <[email protected]>
Authored: Wed Jun 26 17:04:35 2013 -0400
Committer: John Sarman <[email protected]>
Committed: Wed Jun 26 17:04:35 2013 -0400

----------------------------------------------------------------------
 .../apache/wicket/cdi/AbstractCdiContainer.java | 57 +-------------
 .../org/apache/wicket/cdi/AbstractInjector.java | 60 +++++++++-----
 .../org/apache/wicket/cdi/AutoConversation.java | 48 -----------
 .../org/apache/wicket/cdi/BehaviorInjector.java | 15 +---
 .../org/apache/wicket/cdi/CdiConfiguration.java | 83 +++++++++++++-------
 .../apache/wicket/cdi/CdiShutdownCleaner.java   |  3 -
 .../apache/wicket/cdi/ComponentInjector.java    | 31 ++------
 .../wicket/cdi/ConversationExpiryChecker.java   |  5 +-
 .../wicket/cdi/ConversationPropagation.java     |  2 +-
 .../apache/wicket/cdi/DetachEventEmitter.java   |  5 +-
 .../java/org/apache/wicket/cdi/IgnoreList.java  | 36 +++++++++
 .../org/apache/wicket/cdi/NonContextual.java    |  2 +-
 .../org/apache/wicket/cdi/SessionInjector.java  | 15 +---
 .../wicket/cdi/weld/WeldCdiContainer.java       | 23 +-----
 14 files changed, 153 insertions(+), 232 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractCdiContainer.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractCdiContainer.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractCdiContainer.java
index 3e302eb..da7ea5e 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractCdiContainer.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractCdiContainer.java
@@ -16,11 +16,7 @@
  */
 package org.apache.wicket.cdi;
 
-import javax.inject.Inject;
 import javax.servlet.http.HttpServletRequest;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.MetaDataKey;
 import org.apache.wicket.Page;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.util.lang.Args;
@@ -32,21 +28,7 @@ import org.apache.wicket.util.lang.Args;
  * 
  */
 public abstract class AbstractCdiContainer
-{
-       private static final MetaDataKey<AbstractCdiContainer> CONTEXT_KEY = 
new MetaDataKey<AbstractCdiContainer>()
-       {
-               private static final long serialVersionUID = 1L;
-       };
-               
-       /**
-        * Constructor
-        *      
-        */
-       public AbstractCdiContainer()
-       {
-       }
-
-       protected abstract INonContextualManager getNonContextualManager();
+{              
        
        /**
         * Deactivates conversational context
@@ -96,41 +78,4 @@ public abstract class AbstractCdiContainer
                
page.getPageParameters().remove(ConversationPropagator.CID_ATTR);
        }
 
-       /**
-        * Binds this container instance to the {@link Application}, making it 
possible to retrieve it
-        * later
-        * 
-        * @param application
-        */
-       protected void bind(Application application)
-       {
-               application.setMetaData(CONTEXT_KEY, this);
-       }
-
-       /**
-        * Retrieves container instance stored in the application
-        * 
-        * @param application
-        * @return container instance or {@code null} if none
-        */
-       public static final AbstractCdiContainer get(Application application)
-       {
-               AbstractCdiContainer ctx = application.getMetaData(CONTEXT_KEY);
-               if (ctx == null)
-               {
-                       throw new IllegalStateException("No CDI Context bound 
to application");
-               }
-               return ctx;
-       }
-
-       /**
-        * Retrieves container instance stored in the current thread's 
application
-        * 
-        * @return container instance or {@code null} if none
-        */
-       public static final AbstractCdiContainer get()
-       {
-               return get(Application.get());
-       }
-
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractInjector.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractInjector.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractInjector.java
index 51967d4..63523f4 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractInjector.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AbstractInjector.java
@@ -16,50 +16,68 @@
  */
 package org.apache.wicket.cdi;
 
-import org.apache.wicket.util.lang.Args;
+import java.lang.reflect.Modifier;
+import javax.enterprise.inject.Instance;
+import javax.inject.Inject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Base class for injectors
  * 
  * @author igor
  */
-class AbstractInjector
+class AbstractInjector <T>
 {
-       private final AbstractCdiContainer container;
-       private static final String[] ignoredPackages =new String[]{
-               "org.apache.wicket.markup.html",       
-               "org.apache.wicket.protocol.html",
-               "org.apache.wicket.behavior",    
-       };
+    
+       private static final Logger LOG = 
LoggerFactory.getLogger(AbstractInjector.class);
 
-       public AbstractInjector(AbstractCdiContainer container)
-       {
-               Args.notNull(container, "container");
-               this.container = container;
-       }
+       @Inject
+       INonContextualManager nonContextualManager;
+
+       @Inject 
+       @IgnoreList
+       Instance<String[]> ignorePackages;
 
-       protected <T> void postConstruct(T instance)
+       protected void postConstruct(T instance)
        {
-               container.getNonContextualManager().postConstruct(instance);
+               if(!ignore(instance.getClass()))
+               {
+                       nonContextualManager.postConstruct(instance);
+               }
        }
 
-       protected <T> void inject(T instance)
+       protected void inject(T instance)
        {
-               if(!ignore(instance.getClass())) {
-                       container.getNonContextualManager().inject(instance);
+               
+               if(!ignore(instance.getClass()))
+               {
+                       nonContextualManager.inject(instance);
                }
        }
         
-       private static boolean ignore(Class clazz)
+        
+       private boolean ignore(Class instanceClass)
        {
-               String packageName = clazz.getName();
-               for(String ignore:ignoredPackages)
+               if (instanceClass.isAnonymousClass() ||
+                               (instanceClass.isMemberClass() && 
Modifier.isStatic(instanceClass.getModifiers()) == false))
+               {
+                       LOG.debug("Skipping non-static inner class '{}' ", 
instanceClass);
+                        return true;
+               }
+               
+               String packageName = instanceClass.getPackage().getName();
+               for(String ignore:ignorePackages.get())
                {
                        if(packageName.contains(ignore))
                        {
+                               LOG.debug("Skipping {} which is in a package to 
ignore {}",instanceClass,packageName);  
                                return true;
                        }
                }           
+                        
                return false;
+               
        }
+
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AutoConversation.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AutoConversation.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AutoConversation.java
deleted file mode 100644
index 4d21530..0000000
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/AutoConversation.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.wicket.cdi;
-
-import javax.enterprise.context.ConversationScoped;
-import org.apache.wicket.util.io.IClusterable;
-
-/**
- * A bean that can be used to override whether the lifecycle of the 
conversation should be managed
- * automatically or not. See {@link 
CdiConfiguration#setAutoConversationManagement(boolean)} for
- * details.
- * 
- * @author igor
- */
-@ConversationScoped
-public class AutoConversation implements IClusterable
-{
-       private boolean automatic;
-
-       public AutoConversation()
-       {
-               automatic = false;
-       }
-
-       public void setAutomatic(boolean automatic)
-       {
-               this.automatic = automatic;
-       }
-
-       public boolean isAutomatic()
-       {
-               return automatic;
-       }
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BehaviorInjector.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BehaviorInjector.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BehaviorInjector.java
index 53f0f58..372e74d 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BehaviorInjector.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/BehaviorInjector.java
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.cdi;
 
+import javax.enterprise.context.ApplicationScoped;
 import org.apache.wicket.IBehaviorInstantiationListener;
 import org.apache.wicket.behavior.Behavior;
 
@@ -25,18 +26,10 @@ import org.apache.wicket.behavior.Behavior;
  * @author igor
  * 
  */
-class BehaviorInjector extends AbstractInjector implements 
IBehaviorInstantiationListener
+@ApplicationScoped
+class BehaviorInjector extends AbstractInjector<Behavior> implements 
IBehaviorInstantiationListener
 {
-       /**
-        * Constructor
-        * 
-        * @param container
-        */
-       public BehaviorInjector(AbstractCdiContainer container)
-       {
-               super(container);
-       }
-
+       
        @Override
        public void onInstantiation(Behavior behavior)
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
index 56d7dd0..96371c1 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiConfiguration.java
@@ -16,7 +16,11 @@
  */
 package org.apache.wicket.cdi;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
+import java.util.List;
+import javax.annotation.PostConstruct;
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.Instance;
@@ -25,7 +29,6 @@ import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.CDI;
 import javax.inject.Inject;
-import javax.inject.Named;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.request.cycle.RequestCycleListenerCollection;
@@ -39,6 +42,12 @@ import 
org.apache.wicket.request.cycle.RequestCycleListenerCollection;
 @ApplicationScoped
 public class CdiConfiguration
 {
+       private static final String[] defaultIgnoredPackages = new String[]
+       {
+               "org.apache.wicket.markup",       
+               "org.apache.wicket.protocol.http",
+               "org.apache.wicket.behavior",
+       };
     
        private IConversationPropagation propagation = 
ConversationPropagation.NONBOOKMARKABLE;
 
@@ -49,9 +58,6 @@ public class CdiConfiguration
        INonContextualManager nonContextualManager;
 
        @Inject
-       AbstractCdiContainer container;
-
-       @Inject
        Instance<ConversationPropagator> conversationPropagatorSource;
 
        @Inject
@@ -59,22 +65,31 @@ public class CdiConfiguration
 
        @Inject
        Instance<DetachEventEmitter> detachEventEmitterSource;
+        
+       @Inject
+       BehaviorInjector behaviorInjector;
+
+       @Inject
+       ComponentInjector componentInjector;
+
+       @Inject
+       SessionInjector sessionInjector;
        
        private boolean injectComponents = true;
        private boolean injectApplication = true;
        private boolean injectSession = true;
        private boolean injectBehaviors = true;
        private boolean autoConversationManagement = false;
+       private boolean configured = false;
+       private List<String> ignoredPackages;
 
-       /**
-        * Constructor
-        * 
-        * @param beanManager
-        */
-       public CdiConfiguration()
-       {                               
+       @PostConstruct
+       public void init()
+       {
+               ignoredPackages = new ArrayList<>();
+               ignoredPackages.addAll(Arrays.asList(defaultIgnoredPackages));
        }
-
+        
        /**
         * Gets the configured bean manager
         * 
@@ -94,7 +109,7 @@ public class CdiConfiguration
         * Checks if auto conversation management is enabled. See
         * {@link #setAutoConversationManagement(boolean)} for details.
         */
-       public @Produces @Auto boolean isAutoConversationManagement()
+       public @Produces @Auto Boolean isAutoConversationManagement()
        {
                return autoConversationManagement;
        }
@@ -133,12 +148,7 @@ public class CdiConfiguration
                return nonContextualManager;
        }
 
-       public CdiConfiguration setNonContextualManager(INonContextualManager 
nonContextualManager)
-       {
-               this.nonContextualManager = nonContextualManager;
-               return this;
-       }
-
+       
        public boolean isInjectComponents()
        {
                return injectComponents;
@@ -183,17 +193,35 @@ public class CdiConfiguration
                return this;
        }
 
+       public @Produces @IgnoreList String[] getPackagesToIgnore()
+       {
+               String[] ignore = new String[ignoredPackages.size()];
+               return ignoredPackages.toArray(ignore);
+       }
+
+       public void addPackageToIgnore(String packageName )
+       {
+               ignoredPackages.add(packageName);
+       }
+
+       public void removePackageToIgnore(String packageName)
+       {
+               ignoredPackages.remove(packageName);
+       }
+
        /**
         * Configures the specified application
         * 
         * @param application
         * @return
         */
-       public AbstractCdiContainer configure(Application application)
+       public synchronized void configure(Application application)
        {               
+               if(configured)
+               {
+                       throw new IllegalStateException("Cannot configure 
CdiConfiguration multiple times");
+               }
                
-               container.bind(application);
-
                RequestCycleListenerCollection listeners = new 
RequestCycleListenerCollection();
                application.getRequestCycleListeners().add(listeners);
 
@@ -212,24 +240,24 @@ public class CdiConfiguration
                // inject application instance
                if (isInjectApplication())
                {
-                       
container.getNonContextualManager().postConstruct(application);
+                       nonContextualManager.postConstruct(application);
                }
 
                // enable injection of various framework components
 
                if (isInjectSession())
                {
-                       application.getSessionListeners().add(new 
SessionInjector(container));
+                       application.getSessionListeners().add(sessionInjector);
                }
 
                if (isInjectComponents())
                {
-                       
application.getComponentInstantiationListeners().add(new 
ComponentInjector(container));
+                       
application.getComponentInstantiationListeners().add(componentInjector);
                }
 
                if (isInjectBehaviors())
                {
-                       application.getBehaviorInstantiationListeners().add(new 
BehaviorInjector(container));
+                       
application.getBehaviorInstantiationListeners().add(behaviorInjector);
                }
 
                // enable cleanup
@@ -237,7 +265,8 @@ public class CdiConfiguration
                application.getApplicationListeners().add(
                        new CdiShutdownCleaner(isInjectApplication()));
 
-               return container;
+               configured = true;
+
        }
         
        public static CdiConfiguration get()

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiShutdownCleaner.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiShutdownCleaner.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiShutdownCleaner.java
index 98a6e92..38c5351 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiShutdownCleaner.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/CdiShutdownCleaner.java
@@ -16,11 +16,8 @@
  */
 package org.apache.wicket.cdi;
 
-import javax.enterprise.inject.spi.BeanManager;
-
 import org.apache.wicket.Application;
 import org.apache.wicket.IApplicationListener;
-import org.apache.wicket.util.lang.Args;
 
 /**
  * Listens to application shutdown and cleans up

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ComponentInjector.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ComponentInjector.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ComponentInjector.java
index ce4eee2..3b284b9 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ComponentInjector.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ComponentInjector.java
@@ -17,7 +17,8 @@
 package org.apache.wicket.cdi;
 
 import java.lang.reflect.Modifier;
-
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
 import org.apache.wicket.Component;
 import org.apache.wicket.application.IComponentInstantiationListener;
 import org.slf4j.Logger;
@@ -29,33 +30,13 @@ import org.slf4j.LoggerFactory;
  * @author igor
  * 
  */
-class ComponentInjector extends AbstractInjector implements 
IComponentInstantiationListener
+@ApplicationScoped
+class ComponentInjector extends AbstractInjector<Component> implements 
IComponentInstantiationListener
 {
-       private static final Logger LOG = 
LoggerFactory.getLogger(ComponentInjector.class);
-
-       /**
-        * Constructor
-        * 
-        * @param container
-        */
-       public ComponentInjector(AbstractCdiContainer container)
-       {
-               super(container);
-       }
 
        @Override
        public void onInstantiation(Component component)
-       {
-               Class<? extends Component> componentClass = 
component.getClass();
-
-               if (componentClass.isAnonymousClass() ||
-                               (componentClass.isMemberClass() && 
Modifier.isStatic(componentClass.getModifiers()) == false))
-               {
-                       LOG.debug("Skipping non-static inner class '{}' ", 
componentClass);
-               }
-               else
-               {
-                       inject(component);
-               }
+       {               
+                       inject(component);              
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationExpiryChecker.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationExpiryChecker.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationExpiryChecker.java
index aff4627..b8c7871 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationExpiryChecker.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationExpiryChecker.java
@@ -19,6 +19,7 @@ package org.apache.wicket.cdi;
 import java.io.Serializable;
 import javax.enterprise.context.Conversation;
 import javax.enterprise.context.ConversationScoped;
+import javax.enterprise.inject.Instance;
 import javax.inject.Inject;
 
 import org.apache.wicket.Component;
@@ -47,7 +48,7 @@ public class ConversationExpiryChecker implements 
IComponentOnBeforeRenderListen
        private static final Logger logger = 
LoggerFactory.getLogger(ConversationExpiryChecker.class);
        
        @Inject 
-       AbstractCdiContainer  container;
+       Instance<AbstractCdiContainer>  containerSource;
 
        @Inject
        private Conversation conversation;
@@ -63,7 +64,7 @@ public class ConversationExpiryChecker implements 
IComponentOnBeforeRenderListen
                if (component instanceof Page || 
RequestCycle.get().find(AjaxRequestTarget.class) != null)
                {
                        Page page = component.getPage();
-                       String cid = container.getConversationMarker(page);
+                       String cid = 
containerSource.get().getConversationMarker(page);
                        if (cid != null && 
!Objects.isEqual(conversation.getId(), cid))
                        {
                                logger.info("Conversation {} has expired for 
{}", cid, page);

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
index e937506..e9ef296 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
@@ -43,7 +43,7 @@ public enum ConversationPropagation implements 
IConversationPropagation {
                }
        },
        /**
-        * Pesistent conversations are propagated between non-bookmarkable 
pages only
+        * Persistent conversations are propagated between non-bookmarkable 
pages only
         */
        NONBOOKMARKABLE {
                @Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/DetachEventEmitter.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/DetachEventEmitter.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/DetachEventEmitter.java
index e60ec2e..6e6a957 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/DetachEventEmitter.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/DetachEventEmitter.java
@@ -20,7 +20,6 @@ import java.io.Serializable;
 import javax.enterprise.context.SessionScoped;
 import javax.enterprise.event.Event;
 import javax.inject.Inject;
-
 import org.apache.wicket.MetaDataKey;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.cycle.AbstractRequestCycleListener;
@@ -46,9 +45,7 @@ public class DetachEventEmitter extends 
AbstractRequestCycleListener implements
 
        @Inject
        Event<DetachEvent> detachEvent;
-
-       @Inject
-       AbstractCdiContainer container;
+       
        /**
         * Constructor
         * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/IgnoreList.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/IgnoreList.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/IgnoreList.java
new file mode 100644
index 0000000..d45f099
--- /dev/null
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/IgnoreList.java
@@ -0,0 +1,36 @@
+/*
+ * 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.wicket.cdi;
+
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.inject.Qualifier;
+
+/**
+ * Qualifier for injecting the Ignore Package List 
+ * 
+ * @author jsarman
+ */
+@Qualifier
+@Target( { ElementType.TYPE,ElementType.METHOD, ElementType.PARAMETER, 
ElementType.FIELD })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface IgnoreList 
+{
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
index 135075a..1bae109 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/NonContextual.java
@@ -35,7 +35,7 @@ import org.apache.wicket.util.collections.ClassMetaCache;
  * 
  * @param <T>
  */
-public class NonContextual<T>
+public class NonContextual <T>
 {
        private static final Object lock = new Object();
        private static volatile Map<BeanManager, 
ClassMetaCache<NonContextual<?>>> cache = Collections.emptyMap();

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/SessionInjector.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/SessionInjector.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/SessionInjector.java
index 2b75baf..a0a8169 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/SessionInjector.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-core/src/main/java/org/apache/wicket/cdi/SessionInjector.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.cdi;
 
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
 import org.apache.wicket.ISessionListener;
 import org.apache.wicket.Session;
 
@@ -25,18 +27,9 @@ import org.apache.wicket.Session;
  * @author igor
  * 
  */
-class SessionInjector extends AbstractInjector implements ISessionListener
+@ApplicationScoped
+class SessionInjector extends AbstractInjector<Session> implements 
ISessionListener
 {
-       /**
-        * Constructor
-        * 
-        * @param container
-        */
-       public SessionInjector(AbstractCdiContainer container)
-       {
-               super(container);
-       }
-
        @Override
        public void onCreated(Session session)
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/8b68cc7a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-weld/src/main/java/org/apache/wicket/cdi/weld/WeldCdiContainer.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-weld/src/main/java/org/apache/wicket/cdi/weld/WeldCdiContainer.java
 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-weld/src/main/java/org/apache/wicket/cdi/weld/WeldCdiContainer.java
index e290847..b186ca9 100644
--- 
a/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-weld/src/main/java/org/apache/wicket/cdi/weld/WeldCdiContainer.java
+++ 
b/wicket-experimental/wicket-cdi-1.1/wicket-cdi-1.1-weld/src/main/java/org/apache/wicket/cdi/weld/WeldCdiContainer.java
@@ -17,9 +17,9 @@
 package org.apache.wicket.cdi.weld;
 
 import javax.enterprise.context.ApplicationScoped;
-import org.apache.wicket.cdi.*;
 import javax.enterprise.inject.Instance;
 import javax.inject.Inject;
+import org.apache.wicket.cdi.AbstractCdiContainer;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.jboss.weld.context.http.HttpConversationContext;
 
@@ -35,23 +35,6 @@ public class WeldCdiContainer extends AbstractCdiContainer
        @Inject 
        Instance<HttpConversationContext> conversationContextSource;
        
-       @Inject
-       INonContextualManager nonContextualManager;
-       
-       /**
-        * Constructor           
-        */
-       public WeldCdiContainer()
-       {
-
-       }
-
-       @Override
-       protected INonContextualManager getNonContextualManager()
-       {
-               return nonContextualManager;
-       }
-
        /**
         * Deactivates conversational context
         * 
@@ -74,10 +57,6 @@ public class WeldCdiContainer extends AbstractCdiContainer
        @Override
        public void activateConversationalContext(RequestCycle cycle, String 
cid)
        {
-               // Force a session created if one does not exist 
-               // Glassfish does not have a session initially to store the 
transactions
-               // so it gets lost in the request.              
-               getRequest(cycle).getSession(true);
                HttpConversationContext conversationContext = 
conversationContextSource.get();               
                conversationContext.associate(getRequest(cycle)); 
                if(conversationContext.isActive())

Reply via email to