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())
