public void build(final AppInfo appInfo, final AppContext appContext, final List<BeanContext> allDeployments, final WebContext webContext) { final ThreadSingletonService singletonService = initSingleton(); singletonService.initialize(new StartupObject(appContext, appInfo, allDeployments, webContext)); }
@Override // this method is called after the deployment (BeansDeployer) but need beans to be here to get events public void init(final Object initializeObject) { super.init(initializeObject); if (initializeObject != null) { Object event = initializeObject; if (StartupObject.class.isInstance(initializeObject)) { final StartupObject so = StartupObject.class.cast(initializeObject); if (so.isFromWebApp()) { // ear webapps event = so.getWebContext().getServletContext(); } else if (so.getAppInfo().webAppAlone) { event = SystemInstance.get().getComponent(ServletContext.class); } } else if (ServletContextEvent.class.isInstance(initializeObject)) { event = ServletContextEvent.class.cast(initializeObject).getServletContext(); } if (!FiredManually.class.isInstance(event)) { applicationStarted(event); } } }
private static boolean shouldThrowCouldNotLoadException(final StartupObject startupObject) { final AppInfo appInfo = startupObject.getAppInfo(); return appInfo.webAppAlone || appInfo.webApps.size() == 0 || startupObject.isFromWebApp(); }
final AppInfo appInfo = startupObject.getAppInfo(); final ClassLoader classLoader = startupObject.getClassLoader(); final ClassLoaderComparator comparator; if (classLoader instanceof ClassLoaderComparator) { final WebBeansContext webBeansContext = startupObject.getWebBeansContext(); final InterceptorsManager interceptorsManager = webBeansContext.getInterceptorsManager(); if (startupObject.isFromWebApp()) { // deploy only the related ejbmodule if (!ejbJar.moduleId.equals(startupObject.getWebContext().getId())) { continue; if (startupObject.getBeanContexts() != null) { for (final BeanContext bc : startupObject.getBeanContexts()) { final String name = bc.getBeanClass().getName(); if (BeanContext.Comp.class.getName().equals(name)) { logger.info("CDI beans for " + startupObject.getAppInfo().appId + (startupObject.getWebContext() != null ? " webcontext = " + startupObject.getWebContext().getContextRoot() : "")); final List<String> names = new ArrayList<>(classes.size()); for (final Class<?> c : classes) {
Thread.currentThread().setContextClassLoader(stuff.getClassLoader()); final AppContext appContext = stuff.getAppContext(); if (stuff.getWebContext() == null) { appContext.setWebBeansContext(webBeansContext); cdiPlugin.setClassLoader(stuff.getClassLoader()); cdiPlugin.setWebBeansContext(webBeansContext); cdiPlugin.startup(); cdiPlugin.configureDeployments(stuff.getBeanContexts()); injectionService.setAppContext(stuff.getAppContext()); CURRENT_APP_INFO.set(StartupObject.class.cast(startupObject).getAppInfo()); for (final BeanContext bc : stuff.getBeanContexts()) { final CdiEjbBean cdiEjbBean = bc.get(CdiEjbBean.class); if (cdiEjbBean == null) {
final AppContext appContext = startupObject.getAppContext(); appContext.setCdiEnabled(hasBeans(startupObject.getAppInfo())); Object old = null; try { if (startupObject.getWebContext() == null) { webBeansContext = new WebBeansContext(services, properties); appContext.set(WebBeansContext.class, webBeansContext); } else { webBeansContext = new WebappWebBeansContext(services, properties, appContext.getWebBeansContext()); startupObject.getWebContext().setWebbeansContext(webBeansContext);
ClassLoader cl = ((StartupObject) startup).getAppContext().getClassLoader(); try { services.put(ConversationService.class, Class.forName("org.apache.webbeans.jsf.DefaultConversationService", true, cl).newInstance()); if (startup == null) { StartupObject startupObject = new StartupObject(new AppContext("none", SystemInstance.get(), Thread.currentThread().getContextClassLoader(), null, null, true), new AppInfo(), Collections.<BeanContext> emptyList()); lifecycle.startApplication(startupObject);
public ClassLoader getClassLoader() { if (isFromWebApp()) { return webContext.getClassLoader(); } return appContext.getClassLoader(); }
@Override public void initialize(StartupObject startupObject) { //share owb singletons WebBeansContext webBeansContext = startupObject.getAppContext().get(WebBeansContext.class); if (webBeansContext != null) { return; } Object old = contextEntered(null); try { if (old == null) { OpenWebBeansWebInitializer.newWebBeansContext(startupObject); } else { // an existing OWBConfiguration will have already been initialized startupObject.getAppContext().set(WebBeansContext.class, (WebBeansContext) old); } } finally { contextExited(old); } }
private void process(final ClassLoader classLoader, final Iterator<String> it, final StartupObject startupObject, final ClassLoaderComparator comparator, final ClassLoader scl, final boolean filterByClassLoader) { final String className = it.next(); final Class clazz = load(className, classLoader); if (clazz == null) { return; } final boolean isNotEarWebApp = startupObject.getWebContext() == null; final ClassLoader cl = clazz.getClassLoader(); // 1. this classloader is the good one // 2. the classloader is the appclassloader one and we are in the ear parent // 3. it is a container class so if it is here it is designed // // main case it tries to filter is ear one ie lib classes shouldn't be in webapp classes // but embedded other cases should still work if (!filterByClassLoader || comparator.isSame(cl) || ((cl.equals(scl) || cl == containerLoader) && isNotEarWebApp)) { classes.add(clazz); } else { it.remove(); } }
final AppInfo appInfo = startupObject.getAppInfo(); final ClassLoader classLoader = startupObject.getClassLoader(); final ClassLoaderComparator comparator; if (classLoader instanceof ClassLoaderComparator) { final WebBeansContext webBeansContext = startupObject.getWebBeansContext(); final AlternativesManager alternativesManager = webBeansContext.getAlternativesManager(); final DecoratorsManager decoratorsManager = webBeansContext.getDecoratorsManager(); if (startupObject.isFromWebApp()) { // deploy only the related ejbmodule if (!ejbJar.moduleId.equals(startupObject.getWebContext().getId())) { continue; if (startupObject.getBeanContexts() != null) { // ensure ejbs are in managed beans otherwise they will not be deployed in CDI for (final BeanContext bc : startupObject.getBeanContexts()) { final String name = bc.getBeanClass().getName(); if (BeanContext.Comp.class.getName().equals(name)) {
Thread.currentThread().setContextClassLoader(stuff.getClassLoader()); final AppContext appContext = stuff.getAppContext(); if (stuff.getWebContext() == null) { // do it before any other things to keep our singleton finder working appContext.setWebBeansContext(webBeansContext); cdiPlugin.setClassLoader(stuff.getClassLoader()); cdiPlugin.setWebBeansContext(webBeansContext); cdiPlugin.configureDeployments(stuff.getBeanContexts()); injectionService.setAppContext(stuff.getAppContext(), stuff.getBeanContexts() != null ? stuff.getBeanContexts() : Collections.<BeanContext>emptyList()); CURRENT_APP_INFO.set(stuff.getAppInfo()); final Collection<Class<?>> ejbs = new ArrayList<>(stuff.getBeanContexts().size()); for (final BeanContext bc : stuff.getBeanContexts()) { ejbs.add(bc.getManagedClass());
final AppContext appContext = startupObject.getAppContext(); appContext.setCdiEnabled(hasBeans(startupObject.getAppInfo())); properties.setProperty(OpenWebBeansConfiguration.IGNORED_INTERFACES, "org.apache.aries.proxy.weaving.WovenProxy"); final String failoverService = startupObject.getAppInfo().properties.getProperty("org.apache.webbeans.spi.FailOverService", SystemInstance.get().getProperty("org.apache.webbeans.spi.FailOverService", null)); Object old = null; try { if (startupObject.getWebContext() == null) { webBeansContext = new WebBeansContext(services, properties); appContext.set(WebBeansContext.class, webBeansContext); } else { webBeansContext = new WebappWebBeansContext(services, properties, appContext.getWebBeansContext()); startupObject.getWebContext().setWebbeansContext(webBeansContext);
public ClassLoader getClassLoader() { if (isFromWebApp()) { return webContext.getClassLoader(); } return appContext.getClassLoader(); }
final boolean isNotEarWebApp = startupObject.getWebContext() == null;
public void build(final AppInfo appInfo, final AppContext appContext, final List<BeanContext> allDeployments, final WebContext webContext) { final ThreadSingletonService singletonService = initSingleton(); singletonService.initialize(new StartupObject(appContext, appInfo, allDeployments, webContext)); }
public WebBeansContext getWebBeansContext() { if (isFromWebApp()) { return webContext.getWebbeansContext(); } return appContext.getWebBeansContext(); }
public void build(final AppInfo appInfo, final AppContext appContext, final List<BeanContext> allDeployments) { initSingleton().initialize(new StartupObject(appContext, appInfo, allDeployments)); }
public WebBeansContext getWebBeansContext() { if (isFromWebApp()) { return webContext.getWebbeansContext(); } return appContext.getWebBeansContext(); }
public void build(final AppInfo appInfo, final AppContext appContext, final List<BeanContext> allDeployments) { initSingleton().initialize(new StartupObject(appContext, appInfo, allDeployments)); }