private static WebBeansContext superContext(final WebBeansContext ctx) { if (!WebappWebBeansContext.class.isInstance(ctx)) { return null; } return WebappWebBeansContext.class.cast(ctx).getParent(); }
private boolean isEvent(final Object event) { return !WebBeansUtil.isDefaultExtensionBeanEventType(event.getClass()) && !webappCtx.getWebBeansUtil().isContainerEventType(event); }
public void afterStart() { started = true; deploymentBeans = mergeBeans(); webappCtx.getBeanManagerImpl().getInjectionResolver().clearCaches(); // to force new resolution with new beans }
appContext.set(WebBeansContext.class, webBeansContext); } else { webBeansContext = new WebappWebBeansContext(services, properties, appContext.getWebBeansContext()); startupObject.getWebContext().setWebbeansContext(webBeansContext);
public void afterStart() { started = true; deploymentBeans = mergeBeans(); webappCtx.getBeanManagerImpl().getInjectionResolver().clearCaches(); // to force new resolution with new beans }
appContext.set(WebBeansContext.class, webBeansContext); } else { webBeansContext = new WebappWebBeansContext(services, properties, appContext.getWebBeansContext()); startupObject.getWebContext().setWebbeansContext(webBeansContext);
private static WebBeansContext superContext(final WebBeansContext ctx) { if (!WebappWebBeansContext.class.isInstance(ctx)) { return null; } return WebappWebBeansContext.class.cast(ctx).getParent(); }
public BeanManagerImpl getParentBm() { final WebBeansContext parent = webappCtx.getParent(); return parent != null ? parent.getBeanManagerImpl() : null; }
public BeanManagerImpl getParentBm() { return webappCtx.getParent().getBeanManagerImpl(); }
public void setWebBeansContext(final WebBeansContext webBeansContext) { this.webBeansContext = webBeansContext; if (!WebappWebBeansContext.class.isInstance(webBeansContext)) { cacheProxies = new ConcurrentHashMap<Contextual<?>, Object>(); } else { // share cache of proxies between the whole app otherwise hard to share an EJB between a webapp and the lib part of the app cacheProxies = CdiPlugin.class.cast(WebappWebBeansContext.class.cast(webBeansContext).getParent().getPluginLoader().getEjbPlugin()).cacheProxies; } }
public void setWebBeansContext(final WebBeansContext webBeansContext) { this.webBeansContext = webBeansContext; if (webBeansContext == null) { return; } if (!WebappWebBeansContext.class.isInstance(webBeansContext)) { cacheProxies = new ConcurrentHashMap<Contextual<?>, Object>(); } else { // share cache of proxies between the whole app otherwise hard to share an EJB between a webapp and the lib part of the app final WebBeansContext parent = WebappWebBeansContext.class.cast(webBeansContext).getParent(); if (parent != null) { cacheProxies = CdiPlugin.class.cast(parent.getPluginLoader().getEjbPlugin()).cacheProxies; } else { cacheProxies = new ConcurrentHashMap<Contextual<?>, Object>(); } } }
@Override public Set<Bean<?>> implResolveByType(final boolean delegate, final Type injectionPointType, final Class<?> injectinPointClass, final Annotation... qualifiers) { final Set<Bean<?>> set = super.implResolveByType(delegate, injectionPointType, injectinPointClass, qualifiers); if (set.isEmpty() && context.getParent() != null) { return context.getParent().getBeanManagerImpl().getInjectionResolver().implResolveByType(delegate, injectionPointType, injectinPointClass, qualifiers); } return set; } }
@Override public Set<Bean<?>> implResolveByType(final boolean delegate, final Type injectionPointType, final Class<?> injectinPointClass, final Annotation... qualifiers) { final Set<Bean<?>> set = super.implResolveByType(delegate, injectionPointType, injectinPointClass, qualifiers); if (set.isEmpty()) { return context.getParent().getBeanManagerImpl().getInjectionResolver().implResolveByType(delegate, injectionPointType, injectinPointClass, qualifiers); } return set; } }
@Override public boolean findMissingAnnotatedType(final Class<?> missing) { // annotated element caches are empty at this point for (final Bean<?> b : getParent().getBeanManagerImpl().getBeans()) { if (b.getBeanClass() == missing) { return true; } } return false; } }
/** * {@inheritDoc} */ @Override public void sessionCreated(final HttpSessionEvent event) { try { if (logger.isDebugEnabled()) { logger.debug("Starting a session with session id : [{0}]", event.getSession().getId()); } if (webBeansContext instanceof WebappWebBeansContext) { // start before child ((WebappWebBeansContext) webBeansContext).getParent().getContextsService().startContext(SessionScoped.class, event.getSession()); } contextsService.startContext(SessionScoped.class, event.getSession()); } catch (final Exception e) { logger.error(OWBLogConst.ERROR_0020, event.getSession()); WebBeansUtil.throwRuntimeExceptions(e); } }
/** * {@inheritDoc} */ @Override public void sessionCreated(final HttpSessionEvent event) { try { if (logger.isDebugEnabled()) { logger.debug("Starting a session with session id : [{0}]", event.getSession().getId()); } if (webBeansContext instanceof WebappWebBeansContext) { // start before child ((WebappWebBeansContext) webBeansContext).getParent().getContextsService().startContext(SessionScoped.class, event.getSession()); } this.webBeansContext.getContextsService().startContext(SessionScoped.class, event.getSession()); } catch (final Exception e) { logger.error(OWBLogConst.ERROR_0020, event.getSession()); WebBeansUtil.throwRuntimeExceptions(e); } }
/** * {@inheritDoc} */ @Override public void sessionDestroyed(final HttpSessionEvent event) { if (webBeansContext == null) { return; } if (logger.isDebugEnabled()) { logger.debug("Destroying a session with session id : [{0}]", event.getSession().getId()); } // ensure session ThreadLocal is set webBeansContext.getContextsService().startContext(SessionScoped.class, event.getSession()); webBeansContext.getContextsService().endContext(SessionScoped.class, event.getSession()); if (WebappWebBeansContext.class.isInstance(webBeansContext)) { // end after child WebappWebBeansContext.class.cast(webBeansContext).getParent().getContextsService().endContext(SessionScoped.class, event.getSession()); } final ConversationManager conversationManager = webBeansContext.getConversationManager(); final Map<Conversation, ConversationContext> cc = conversationManager.getAndRemoveConversationMapWithSessionId(event.getSession().getId()); for (final ConversationContext c : cc.values()) { if (c != null) { c.destroy(); } } destroyFakedRequest(); }
/** * {@inheritDoc} */ @Override public void requestInitialized(final ServletRequestEvent event) { final Object oldContext = ThreadSingletonServiceImpl.enter(this.webBeansContext); if (event != null) { event.getServletRequest().setAttribute(contextKey, oldContext); } try { if (logger.isDebugEnabled()) { logger.debug("Starting a new request : [{0}]", event == null ? "null" : event.getServletRequest().getRemoteAddr()); } if (webBeansContext instanceof WebappWebBeansContext) { // start before child ((WebappWebBeansContext) webBeansContext).getParent().getContextsService().startContext(RequestScoped.class, event); } contextsService.startContext(RequestScoped.class, event); // we don't initialise the Session here but do it lazily if it gets requested // the first time. See OWB-457 } catch (final Exception e) { logger.error(OWBLogConst.ERROR_0019, event == null ? "null" : event.getServletRequest()); WebBeansUtil.throwRuntimeExceptions(e); } }
((WebappWebBeansContext) webBeansContext).getParent().getContextsService().endContext(RequestScoped.class, event);
/** * {@inheritDoc} */ @Override public void requestInitialized(final ServletRequestEvent event) { final Object oldContext = ThreadSingletonServiceImpl.enter(this.webBeansContext); if (event != null) { event.getServletRequest().setAttribute(contextKey, oldContext); } try { if (logger.isDebugEnabled()) { logger.debug("Starting a new request : [{0}]", event == null ? "null" : event.getServletRequest().getRemoteAddr()); } if (webBeansContext instanceof WebappWebBeansContext) { // start before child ((WebappWebBeansContext) webBeansContext).getParent().getContextsService().startContext(RequestScoped.class, event); } this.webBeansContext.getContextsService().startContext(RequestScoped.class, event); // we don't initialise the Session here but do it lazily if it gets requested // the first time. See OWB-457 } catch (final Exception e) { logger.error(OWBLogConst.ERROR_0019, event == null ? "null" : event.getServletRequest()); WebBeansUtil.throwRuntimeExceptions(e); } }