You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Thomas Diesler (JIRA)" <ji...@apache.org> on 2015/04/15 09:30:58 UTC

[jira] [Created] (CAMEL-8638) Enforce immutability of camel context properties

Thomas Diesler created CAMEL-8638:
-------------------------------------

             Summary: Enforce immutability of camel context properties 
                 Key: CAMEL-8638
                 URL: https://issues.apache.org/jira/browse/CAMEL-8638
             Project: Camel
          Issue Type: Improvement
          Components: camel-core
            Reporter: Thomas Diesler
             Fix For: 3.0.0


There are properties on CamelContext that should be immutable after context start.

For example the application classloader associated with a CamelContext is not a dynamic thing. You are supposed to

1. Create the CamelContext 
2. Configure it (i.e. setApplicationContextClassLoader, etc)
3. Start the CamelContext

Reconfiguring the CamelContext at runtime would lead to undefined behaviour. If a higher level (i.e. your code) supports dynamicity in that classloader, it should set the application classloader to something that supports that.

Dynamicity in classloading is generally problematic because Java does not have a notion of "unload class", which would apply to the remove and replace cases.

For example:

* CL loads type A1 - CL gets reconfigured so that A1 is no longer available - loading of A1 is now inconsistent
* CL loads type A1 - CL gets reconfigured so that A1 is something else - loading of A1 is again inconsistent



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)