You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Philip Dodds (JIRA)" <ji...@apache.org> on 2006/09/21 15:53:23 UTC

[jira] Created: (SM-591) Extend the servicemix-commons to provide better classloading semantics

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

        

[jira] Closed: (SM-591) Extend the servicemix-commons to provide better classloading semantics

Posted by "Philip Dodds (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/SM-591?page=all ]

Philip Dodds closed SM-591.
---------------------------

    Resolution: Fixed

Refactored to add the support for the handling of Classloaders from within the ServiceUnit,  if a ServiceUnit implementation is going to provide Java classes then it should return a classloader for that SU.

> 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