The project I am working at the moment uses camel as the routing framework.
When configuring camel context in spring we pass a property file that contains a bunch of global properties needed when configuring camel routes or for controlling run time behavior:

```
<camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="my-id">
    <camel:propertyPlaceholder location="my-system.properties" id="global-properties"/>
    ...
</camel:camelContext>

```

and say my-system.properties has an entry like below:

```
my-system.properties
# Global properties that control my-system configuration and run time
...
foo={{bar}} 
...

```

When configuring the routes I can access `foo` property using the `{{foo}}` notation. It is also available to other beans using `@PropertyInject` annotation. However there is one use case in my design when a plain POJO not created by spring (an enum instead but this is not relevant) needs to access my `foo` property. Because this POJO it is passed the CamelContext as a method argument I find it natural to think I should be able to get the value of `foo` from there. However I spent a bit of time and could not figure out by myself how.

I know I can load the properties file again or even get the system property `System.getProperty("bar")` and everything will work but it looks like cheating to me.