protected ClassLoader getPluginsClassloader() { ClassLoader pluginsClassLoader = ClassLoaderUtil.getContextClassloader(); if(pluginsClassLoader == null) { // if context classloader is null, use classloader which loaded the camunda-engine jar. pluginsClassLoader = BpmPlatform.class.getClassLoader(); } return pluginsClassLoader; }
public ClassLoader getProcessApplicationClassloader() { // the default implementation uses the classloader that loaded // the application-provided subclass of this class. return ClassLoaderUtil.getClassloader(getClass()); }
protected ClassLoader initProcessApplicationClassloader(ServletContextEvent sce) { if (isServlet30ApiPresent(sce) && getClass().equals(ServletProcessApplication.class)) { return ClassLoaderUtil.getServletContextClassloader(sce); } else { return ClassLoaderUtil.getClassloader(getClass()); } }
public <T> T execute(Callable<T> callable) throws ProcessApplicationExecutionException { ClassLoader originalClassloader = ClassLoaderUtil.getContextClassloader(); ClassLoader processApplicationClassloader = getProcessApplicationClassloader(); try { ClassLoaderUtil.setContextClassloader(processApplicationClassloader); return callable.call(); } catch (Exception e) { throw LOG.processApplicationExecutionException(e); } finally { ClassLoaderUtil.setContextClassloader(originalClassloader); } }
ClassLoader contextClassloader = ClassLoaderUtil.getContextClassloader(); if(contextClassloader != null) { LOG.debugClassLoading(className, "current thread context classloader", contextClassloader); ClassLoader localClassloader = ClassLoaderUtil.getClassloader(ReflectUtil.class); LOG.debugClassLoading(className, "local classloader", localClassloader); clazz = Class.forName(className, true, localClassloader);
public <T> T execute(Callable<T> callable) throws ProcessApplicationExecutionException { ClassLoader originalClassloader = ClassLoaderUtil.getContextClassloader(); ClassLoader processApplicationClassloader = getProcessApplicationClassloader(); try { ClassLoaderUtil.setContextClassloader(processApplicationClassloader); return callable.call(); } catch (Exception e) { throw LOG.processApplicationExecutionException(e); } finally { ClassLoaderUtil.setContextClassloader(originalClassloader); } }
ClassLoader contextClassloader = ClassLoaderUtil.getContextClassloader(); if(contextClassloader != null) { LOG.debugClassLoading(className, "current thread context classloader", contextClassloader); ClassLoader localClassloader = ClassLoaderUtil.getClassloader(ReflectUtil.class); LOG.debugClassLoading(className, "local classloader", localClassloader); clazz = Class.forName(className, true, localClassloader);
protected ClassLoader getPluginsClassloader() { ClassLoader pluginsClassLoader = ClassLoaderUtil.getContextClassloader(); if(pluginsClassLoader == null) { // if context classloader is null, use classloader which loaded the camunda-engine jar. pluginsClassLoader = BpmPlatform.class.getClassLoader(); } return pluginsClassLoader; }
public <T> T execute(Callable<T> callable) throws ProcessApplicationExecutionException { ClassLoader originalClassloader = ClassLoaderUtil.getContextClassloader(); ClassLoader processApplicationClassloader = getProcessApplicationClassloader(); try { if (originalClassloader != processApplicationClassloader) { ClassLoaderUtil.setContextClassloader(processApplicationClassloader); } return callable.call(); } catch(Exception e) { throw LOG.processApplicationExecutionException(e); } finally { ClassLoaderUtil.setContextClassloader(originalClassloader); } }
ClassLoader contextClassloader = ClassLoaderUtil.getContextClassloader(); if(contextClassloader != null) { LOG.debugClassLoading(className, "current thread context classloader", contextClassloader); ClassLoader localClassloader = ClassLoaderUtil.getClassloader(ReflectUtil.class); LOG.debugClassLoading(className, "local classloader", localClassloader); clazz = Class.forName(className, true, localClassloader);
public ClassLoader getProcessApplicationClassloader() { // the default implementation uses the classloader that loaded // the application-provided subclass of this class. return ClassLoaderUtil.getClassloader(getClass()); }
protected ClassLoader initProcessApplicationClassloader(ServletContextEvent sce) { if (isServlet30ApiPresent(sce) && getClass().equals(ServletProcessApplication.class)) { return ClassLoaderUtil.getServletContextClassloader(sce); } else { return ClassLoaderUtil.getClassloader(getClass()); } }
public T call() throws Exception { try { // record thread context right after context switch PA_CLASSLOADER.set(ClassLoaderUtil.getContextClassloader()); // proceed with delegate callable invocation return delegate.call(); } finally { PA_CLASSLOADER.remove(); } }
public <T> T execute(Callable<T> callable) throws ProcessApplicationExecutionException { ClassLoader originalClassloader = ClassLoaderUtil.getContextClassloader(); ClassLoader processApplicationClassloader = getProcessApplicationClassloader(); try { if (originalClassloader != processApplicationClassloader) { ClassLoaderUtil.setContextClassloader(processApplicationClassloader); } return callable.call(); } catch(Exception e) { throw LOG.processApplicationExecutionException(e); } finally { ClassLoaderUtil.setContextClassloader(originalClassloader); } }
public URL lookupBpmPlatformXmlFromClassPath(String resourceLocation) { URL fileLocation = ClassLoaderUtil.getClassloader(getClass()).getResource(resourceLocation); if (fileLocation != null) { LOG.foundConfigAtLocation(resourceLocation, fileLocation.toString()); } return fileLocation; }
protected ClassLoader initProcessApplicationClassloader(ServletContextEvent sce) { if (isServlet30ApiPresent(sce) && getClass().equals(ServletProcessApplication.class)) { return ClassLoaderUtil.getServletContextClassloader(sce); } else { return ClassLoaderUtil.getClassloader(getClass()); } }
public T call() throws Exception { try { // record thread context right after context switch PA_CLASSLOADER.set(ClassLoaderUtil.getContextClassloader()); // proceed with delegate callable invocation return delegate.call(); } finally { PA_CLASSLOADER.remove(); } }
public <T> T execute(Callable<T> callable) throws ProcessApplicationExecutionException { ClassLoader originalClassloader = ClassLoaderUtil.getContextClassloader(); ClassLoader processApplicationClassloader = getProcessApplicationClassloader(); try { ClassLoaderUtil.setContextClassloader(processApplicationClassloader); return callable.call(); } catch (Exception e) { throw LOG.processApplicationExecutionException(e); } finally { ClassLoaderUtil.setContextClassloader(originalClassloader); } }
@Override public void preInit(ProcessEngineConfigurationImpl processEngineConfiguration) { // use classloader which loaded the plugin ClassLoader classloader = ClassLoaderUtil.getClassloader(SpinProcessEnginePlugin.class); DataFormats.loadDataFormats(classloader); }
public static boolean requiresContextSwitch(ProcessApplicationReference processApplicationReference) { final ProcessApplicationReference currentProcessApplication = Context.getCurrentProcessApplication(); if(processApplicationReference == null) { return false; } if(currentProcessApplication == null) { return true; } else { if(!processApplicationReference.getName().equals(currentProcessApplication.getName())) { return true; } else { // check whether the thread context has been manipulated since last context switch. This can happen as a result of // an operation causing the container to switch to a different application. // Example: JavaDelegate implementation (inside PA) invokes an EJB from different application which in turn interacts with the Process engine. ClassLoader processApplicationClassLoader = ProcessApplicationClassloaderInterceptor.getProcessApplicationClassLoader(); ClassLoader currentClassloader = ClassLoaderUtil.getContextClassloader(); return currentClassloader != processApplicationClassLoader; } } }