You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/06/27 10:04:25 UTC
[3/5] git commit: cdi-1.1 Refactoring to make full use of cdi.
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 <jo...@gmail.com>
Authored: Wed Jun 26 17:04:35 2013 -0400
Committer: John Sarman <jo...@gmail.com>
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())