private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { useTransactionOfExecutionThread = in.readBoolean(); // reconstruct invocation String componentId = (String) in.readObject(); String appName = (String) in.readObject(); String moduleName = (String) in.readObject(); invocation = createComponentInvocation(componentId, appName, moduleName); // reconstruct securityContext String principalName = (String) in.readObject(); boolean defaultSecurityContext = in.readBoolean(); Subject subject = (Subject) in.readObject(); if (principalName != null) { if (defaultSecurityContext) { securityContext = SecurityContext.getDefaultSecurityContext(); } else { securityContext = new SecurityContext(principalName, subject, null); } } // reconstruct contextClassLoader ApplicationRegistry applicationRegistry = ConcurrentRuntime.getRuntime().getApplicationRegistry(); if (appName != null) { ApplicationInfo applicationInfo = applicationRegistry.get(appName); if (applicationInfo != null) { contextClassLoader = applicationInfo.getAppClassLoader(); } } }
private void registerIfBatchJobsDirExists(ApplicationInfo applicationInfo) { if (applicationInfo != null && applicationInfo.isLoaded()) { ClassLoader appClassLoader = applicationInfo.getAppClassLoader(); if (appClassLoader != null && appClassLoader.getResource("META-INF/batch-jobs") != null) { tagNamesRequiringCleanup.add(config.getName() + ":" + applicationInfo.getName()); return; } for (ModuleInfo moduleInfo : applicationInfo.getModuleInfos()) { ClassLoader moduleClassLoader = moduleInfo.getModuleClassLoader(); if (moduleClassLoader != null && moduleClassLoader.getResource("META-INF/batch-jobs") != null) { tagNamesRequiringCleanup.add(config.getName() + ":" + applicationInfo.getName()); } } } }
Thread.currentThread().setContextClassLoader(appInfo.getAppClassLoader()); try { WeldBootstrap bootstrap = appInfo.getTransientAppMetaData(WELD_BOOTSTRAP, WeldBootstrap.class);