You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "Chris Odom (JIRA)" <ji...@apache.org> on 2016/12/21 14:09:58 UTC

[jira] [Commented] (ARIES-1635) BeanMetadata parsing issue when ext and cm are combined.

    [ https://issues.apache.org/jira/browse/ARIES-1635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15767136#comment-15767136 ] 

Chris Odom commented on ARIES-1635:
-----------------------------------

After doing some debugging with the ExtNamespaceHandler I decided to update the application.xml to use placeholder-prefix = ${{ and placeholder-suffix = }}. For some reason using these values instead of the original $[ and ], worked. Now I am not sure why this is because I did not debug the DOM code that parses the xml but for now I am up and running. I still think this is an odd situation because there are lots of examples on the Inter-webbings that illustrate the use of $[ and ] when adding in extensions.

> BeanMetadata parsing issue when ext and cm are combined.
> --------------------------------------------------------
>
>                 Key: ARIES-1635
>                 URL: https://issues.apache.org/jira/browse/ARIES-1635
>             Project: Aries
>          Issue Type: Bug
>          Components: Blueprint
>    Affects Versions: blueprint-core-1.6.2, blueprint-cm-1.0.8
>            Reporter: Chris Odom
>
> org.osgi.service.blueprint.container.ComponentDefinitionException: Multiple placeholders with the same prefix and suffix are not allowed
> 	at org.apache.aries.blueprint.ext.PlaceholdersUtils.validatePlaceholder(PlaceholdersUtils.java:49)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.ext.impl.ExtNamespaceHandler.parsePropertyPlaceholder(ExtNamespaceHandler.java:367)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.ext.impl.ExtNamespaceHandler.parse(ExtNamespaceHandler.java:165)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.parser.Parser.parseCustomElement(Parser.java:1369)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.parser.Parser.loadComponents(Parser.java:427)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.parser.Parser.populate(Parser.java:331)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:349)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)[21:org.apache.aries.blueprint.core:1.6.2]
> 	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[30:org.apache.aries.util:1.1.1]
> 	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[30:org.apache.aries.util:1.1.1]
> 	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[30:org.apache.aries.util:1.1.1]
> 	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[30:org.apache.aries.util:1.1.1]
> 	at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[30:org.apache.aries.util:1.1.1]
> 	at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179)[org.apache.felix.framework-5.4.0.jar:]
> 	at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:731)[org.apache.felix.framework-5.4.0.jar:]
> 	at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:486)[org.apache.felix.framework-5.4.0.jar:]
> 	at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4541)[org.apache.felix.framework-5.4.0.jar:]
> 	at org.apache.felix.framework.Felix.startBundle(Felix.java:2172)[org.apache.felix.framework-5.4.0.jar:]
> 	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)[org.apache.felix.framework-5.4.0.jar:]
> 	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984)[org.apache.felix.framework-5.4.0.jar:]
> 	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1286)[8:org.apache.karaf.features.core:4.0.7]
> 	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:846)[8:org.apache.karaf.features.core:4.0.7]
> 	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1176)[8:org.apache.karaf.features.core:4.0.7]
> 	at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:1074)[8:org.apache.karaf.features.core:4.0.7]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_111]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_111]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_111]
> 	at java.lang.Thread.run(Thread.java:745)[:1.8.0_111]
> Debug of BeanMetadata:
> BeanMetadata[id='system-database-config', initialization=0, dependsOn=null, className='null', initMethodName='init', destroyMethodName='null', arguments=null, properties=[BeanProperty[name='placeholderPrefix', value=ValueMetadata[stringValue='${', type='null']], BeanProperty[name='placeholderSuffix', value=ValueMetadata[stringValue='}', type='null']]], factoryMethodName='null', factoryComponent=null, scope='singleton', runtimeClass=class org.apache.aries.blueprint.ext.PropertyPlaceholder, fieldInjection=false]
> blueprint.xml:
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> 	xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.3.0"
> 	xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.5.0"
> 	xsi:schemaLocation="
>     http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
>     http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.3.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.3.0.xsd
>     http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.5.0 http://aries.apache.org/schemas/blueprint-ext/blueprint-ext-1.5.xsd">
> 	<cm:property-placeholder id="application-database-config" persistent-id="com.nolimitssoft" update-strategy="none" />
> 	<!-- Allow the use of system properties -->
>     <ext:property-placeholder id="system-database-config" placeholder-prefix="$[" placeholder-suffix="]" />
>     ...
> </blueprint>
> You will notice that the Blueprint bean uses prefix and suffix properties but the BeanMetadata does not reflect those properties.



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