Extend the servicemix-commons to provide better classloading semantics ----------------------------------------------------------------------
Key: SM-591 URL: https://issues.apache.org/activemq/browse/SM-591 Project: ServiceMix Issue Type: Improvement Affects Versions: 3.0 Reporter: Philip Dodds Fix For: 3.1 Add a getConfigurationClassLoader to the ServiceUnit class in org.apache.servicemix.common. This can be used to ensure that is a ServiceUnit is going to contain Java Code then it needs to ensure that it provides a classloader. This method can then be used in the AsyncBaseLifeCycle in the method processExchange: Refactor the processExchange to be doProcessExchange and then create a new processExchange akin to this: ClassLoader oldCl = Thread.currentThread().getContextClassLoader(); try { if (getServiceUnit().getConfigurationClassLoader()!=null) { ClassLoader classLoader = endpoint.getServiceUnit().getConfigurationClassLoader(); Thread.currentThread().setContextClassLoader(classLoader); } doProcessExchange(exchange); } finally { Thread.currentThread().setContextClassLoader(oldCl); } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira