[
https://issues.apache.org/jira/browse/ARIES-1858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16679420#comment-16679420
]
Grzegorz Grzybek commented on ARIES-1858:
-----------------------------------------
Here's a list of special things that
{{org.apache.camel.blueprint.BlueprintPropertiesParser}} does:
* checking hierarchy:
{code:java}
Class<?> clazz = ((ExtendedBeanMetadata) meta).getRuntimeClass();
if (clazz != null && AbstractPropertyPlaceholder.class.isAssignableFrom(clazz))
{
ids.add(id);
}
{code}
* casting:
{code:java}
Object component = container.getComponentInstance(id);
if (component instanceof AbstractPropertyPlaceholder) {
AbstractPropertyPlaceholder placeholder = (AbstractPropertyPlaceholder)
component;
{code}
* reflectively getting a method reference:
{code:java}
method = AbstractPropertyPlaceholder.class.getDeclaredMethod("retrieveValue",
String.class);
method.setAccessible(true);
{code}
* non-reflectively calling {{getDefaultProperties()}} method:
{code:java}
if (placeholder instanceof PropertyPlaceholder) {
Map map = ((PropertyPlaceholder) placeholder).getDefaultProperties();
isDefault = map != null && map.containsKey(key);
}
{code}
> Make typed property placeholders compatible with older Camel versions
> ---------------------------------------------------------------------
>
> Key: ARIES-1858
> URL: https://issues.apache.org/jira/browse/ARIES-1858
> Project: Aries
> Issue Type: Improvement
> Components: Blueprint
> Affects Versions: blueprint-core-1.10.0
> Reporter: Grzegorz Grzybek
> Assignee: Grzegorz Grzybek
> Priority: Major
> Fix For: blueprint-core-1.10.1
>
>
> ARIES-1298 changed the runtime class of bean registered from
> {{{http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.x.0}property-placeholder}}
> and
> {{{http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.x.0}property-placeholder}}.
> This is definitely not catched by semver plugin.
> {{camel-blueprint}} (see CAMEL-12570) added support for this new runtime
> class - it was needed because Camel explicitly casts and uses reflection on
> old {{org.apache.aries.blueprint.ext.AbstractPropertyPlaceholder}} class,
> while blueprint-core 1.10.0 registers placeholder class that extends
> {{org.apache.aries.blueprint.ext.AbstractPropertyPlaceholderExt}} - and these
> two are not related.
> The problem is that when user will try to upgrade to e.g., Karaf with
> blueprint-core 1.10.0 *without upgrading Camel*, Camel blueprint will stop
> detecting blueprint property resolvers.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)