Ok - so you're using the <clustered-app-config>. The code that handles that is in org.opendaylight.controller.blueprint.ext.DataStoreAppConfigMetadata. Basically it registers a DTCL for changes to the yang model. On change, it restarts the blueprint container. Enable debug and see if it's getting triggered.
Tom On Wed, Apr 19, 2017 at 10:08 AM, Tomas Janciga -X (tjanciga - PANTHEON TECHNOLOGIES at Cisco) <tjanc...@cisco.com> wrote: > No, I’m referring to re-configuration of blueprint modules via restconf. > > First re-configuration passes and all next attempts are resulting with > 200OK but the new configuration is not used by the module. > > > > Thanks, > > Tomas > > *From:* Tom Pantelis [mailto:tompante...@gmail.com] > *Sent:* Wednesday, April 19, 2017 4:02 PM > *To:* Tomas Janciga -X (tjanciga - PANTHEON TECHNOLOGIES at Cisco) > *Cc:* controller-dev@lists.opendaylight.org; John Burns (johnburn) > > *Subject:* Re: [controller-dev] Re-configuration of module using > Blueprint on Karaf4 distribution > > > > Are you referring to re-configuration of a config subsystem (CSS) module > via restconf? If so, I don't know why it doesn't seem to work but I would > suggest not using this mechanism as it's problematic for upgrades. I > suggest to also convert to blueprint as, since Boron, we have been moving > away from the CSS. In fact, we just discussed on the kernel call about > officially deprecating it in Nitrogen with eventual removal in the future. > > > > Tom > > > > On Wed, Apr 19, 2017 at 7:41 AM, Tomas Janciga -X (tjanciga - PANTHEON > TECHNOLOGIES at Cisco) <tjanc...@cisco.com> wrote: > > Thanks for clarification Tom. > > Now I understand that the stack trace is probably not related to the > problem with re-configuration of modules on Karaf4. > > > > But is the issue with re-configuration already known please ? > > I’ve tried to find some project using karaf4-parent and using Blueprint > configuration of modules, but I haven’t found any. > > Is IoTDM project the first project testing it ? > > > > Thanks, > > Tomas > > *From:* Tom Pantelis [mailto:tompante...@gmail.com] > *Sent:* Tuesday, April 18, 2017 4:12 PM > *To:* Tomas Janciga -X (tjanciga - PANTHEON TECHNOLOGIES at Cisco) > *Cc:* controller-dev@lists.opendaylight.org > *Subject:* Re: [controller-dev] Re-configuration of module using > Blueprint on Karaf4 distribution > > > > Tomas, > > > > The "Unable to create a proxy object..." message is related to blueprint > and is benign (logged as INFO). When registering a service instance, it > tries to create a proxy for it (for the quiesce functionality which isn't > important) - on failure it uses the original instance (lucky for us). This > happens sometimes - not sure why - it's an issue in the Aries Proxy lib. It > would be nice if it used the JDK proxy APIs for interfaces as that's robust > and only used the ASM stuff when proxying a concrete class as the JDK proxy > API doesn't support that. OSGi services normally advertise an interface > anyway (best practice). > > > > Tom > > > > On Tue, Apr 18, 2017 at 9:55 AM, Tomas Janciga -X (tjanciga - PANTHEON > TECHNOLOGIES at Cisco) <tjanc...@cisco.com> wrote: > > Hi guys, > > I’m working on migration of IoTDM project to Karaf4. > > I’ve done some draft changes of onem2m-core module and it’s submodules. > Some of the submodules are using Blueprint configuration. > > I have a problem when I’m running Karaf4 distribution and I try to > re-configure some of these modules through RESTCONF. > > First time everything works and module is re-configured successfully but > second time (and for all next attempts as well) I just receive 200OK but > the changed configuration is not used (the module is not re-loaded using > the new configuration). > > I’ve noticed a stack trace in logs, it’s attached. It’s printed during the > first re-configuration (nothing is printed during second and all next > attempts to re-configure the module). > > > > Could you let me know please, if it is some known issue or whether it > works well in general and the issue is related to my changes only ? > > The same steps works well for Karaf3 distribution of IoTDM. > > Thanks > > Tomas > > > > opendaylight-user@root>log:display > > 2017-04-18 06:38:51,010 | INFO | erRestartService | > printContainerRestartServiceImpl | 202 - org.opendaylight.controller.blueprint > - 0.6.0.SNAPSHOT | Restarting blueprint containers for bundle > org.opendaylight.iotdm.onem2m-protocol-http-provider_0.3.0.SNAPSHOT [267] > and its dependent bundles [] > > 2017-04-18 06:38:51,054 | INFO | ainer-ThreadPool | > BlueprintExtender | 115 - org.apache.aries.blueprint.core > - 1.6.2 | Destroying BlueprintContainer for bundle > org.opendaylight.iotdm.onem2m-protocol-http-provider/0.3.0.SNAPSHOT > > 2017-04-18 06:38:51,092 | INFO | ainer-ThreadPool | > ContextHandler | 177 - org.eclipse.jetty.util - > 8.1.19.v20160209 | stopped o.e.j.s.ServletContextHandler{/,null} > > 2017-04-18 06:38:51,145 | INFO | ainer-ThreadPool | > Onem2mHttpPluginServer | 261 - org.opendaylight.iotdm.onem2m-core > - 0.3.0.SNAPSHOT | stopHttpServer: on port: 8285 > > 2017-04-18 06:38:51,145 | INFO | ainer-ThreadPool | > Onem2mHttpBaseIotdmPlugin | 266 - > org.opendaylight.iotdm.onem2m-protocol-http-impl > - 0.3.0.SNAPSHOT | Closed HTTP Base IoTDM plugin at port: 8285, security > level: L0 > > 2017-04-18 06:38:51,281 | INFO | ainer-ThreadPool | > Onem2mRouterService | 261 - org.opendaylight.iotdm.onem2m-core > - 0.3.0.SNAPSHOT | Default router plugin removed: http > > 2017-04-18 06:38:51,281 | INFO | ainer-ThreadPool | > Onem2mHttpProvider | 267 - > org.opendaylight.iotdm.onem2m-protocol-http-provider > - 0.3.0.SNAPSHOT | Onem2mHttpProvider instance HttpProviderDefault: Closed > > 2017-04-18 06:38:51,285 | INFO | ainer-ThreadPool | > printContainerRestartServiceImpl | 202 - org.opendaylight.controller.blueprint > - 0.6.0.SNAPSHOT | Restarting blueprint container for bundle > org.opendaylight.iotdm.onem2m-protocol-http-provider_0.3.0.SNAPSHOT [267] > with paths [bundleentry://267.fwk613784740/org/opendaylight/ > blueprint/impl-blueprint.xml] > > 2017-04-18 06:38:51,299 | INFO | ainer-ThreadPool | > ServiceRecipe | 115 - org.apache.aries.blueprint.core > - 1.6.2 | Unable to create a proxy object for the service .component-1 > defined in bundle org.opendaylight.controller.sal-binding-broker-impl/ > 1.5.0.SNAPSHOT with id. Returning the original object instead. > > org.apache.aries.proxy.UnableToProxyException: > java.lang.ClassFormatError: Duplicate interface name in class file > Proxye8f10bc6_1688_47fc_b4b5_8d679dbb8631 > > at org.apache.aries.proxy.impl. > interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:165) > > at org.apache.aries.proxy.impl.interfaces. > InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:97) > > at org.apache.aries.proxy.impl.AsmProxyManager. > createNewProxy(AsmProxyManager.java:80) > > at org.apache.aries.proxy.impl.AbstractProxyManager. > createDelegatingInterceptingProxy(AbstractProxyManager.java:75) > > at org.apache.aries.proxy.impl.AbstractProxyManager. > createInterceptingProxy(AbstractProxyManager.java:53) > > at org.apache.aries.blueprint.container.ServiceRecipe$ > TriggerServiceFactory.getService(ServiceRecipe.java: > 569)[115:org.apache.aries.blueprint.core:1.6.2] > > at org.eclipse.osgi.internal.serviceregistry. > ServiceFactoryUse$1.run(ServiceFactoryUse.java:212)[ > org.eclipse.osgi-3.10.101.v20150820-1432.jar:] > > at java.security.AccessController.doPrivileged(Native > Method)[:1.8.0_91] > > at org.eclipse.osgi.internal.serviceregistry. > ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210)[ > org.eclipse.osgi-3.10.101.v20150820-1432.jar:] > > at org.eclipse.osgi.internal.serviceregistry. > ServiceFactoryUse.getService(ServiceFactoryUse.java:111)[ > org.eclipse.osgi-3.10.101.v20150820-1432.jar:] > > at org.eclipse.osgi.internal.serviceregistry. > ServiceConsumer$2.getService(ServiceConsumer.java:45)[org. > eclipse.osgi-3.10.101.v20150820-1432.jar:] > > at org.eclipse.osgi.internal.serviceregistry. > ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java: > 496)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:] > > at org.eclipse.osgi.internal.serviceregistry. > ServiceRegistry.getService(ServiceRegistry.java:461)[org. > eclipse.osgi-3.10.101.v20150820-1432.jar:] > > at org.eclipse.osgi.internal.framework.BundleContextImpl. > getService(BundleContextImpl.java:619)[org.eclipse.osgi-3. > 10.101.v20150820-1432.jar:] > > at org.apache.aries.blueprint.container. > AbstractServiceReferenceRecipe.getServiceSecurely( > AbstractServiceReferenceRecipe.java:235)[115:org.apache. > aries.blueprint.core:1.6.2] > > at org.opendaylight.controller.blueprint.ext. > StaticServiceReferenceRecipe.internalCreate(StaticServiceReferenceRecipe. > java:109)[202:org.opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint.ext. > StaticServiceReferenceRecipe.retrack(StaticServiceReferenceRecipe. > java:75)[202:org.opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.apache.aries.blueprint.container. > AbstractServiceReferenceRecipe.start(AbstractServiceReferenceRecipe > .java:140)[115:org.apache.aries.blueprint.core:1.6.2] > > at org.opendaylight.controller.blueprint.ext. > StaticServiceReferenceRecipe.startTracking(StaticServiceReferenceRecipe. > java:46)[202:org.opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint.ext. > AbstractDependentComponentFactoryMetadata.retrieveService( > AbstractDependentComponentFactoryMetadata.java:119)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint.ext. > AbstractDependentComponentFactoryMetadata.retrieveService( > AbstractDependentComponentFactoryMetadata.java:104)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint.ext. > DataStoreAppConfigMetadata.startTracking(DataStoreAppConfigMetadata. > java:166)[202:org.opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint.ext. > AbstractDependentComponentFactoryMetadata.startTracking( > AbstractDependentComponentFactoryMetadata.java:186)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.apache.aries.blueprint.di. > DependentComponentFactoryRecipe.start(DependentComponentFactoryRecip > e.java:55)[115:org.apache.aries.blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container. > BlueprintContainerImpl.trackServiceReferences(BlueprintContainerImpl.java: > 636)[115:org.apache.aries.blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container. > BlueprintContainerImpl.doRun(BlueprintContainerImpl.java: > 360)[115:org.apache.aries.blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container. > BlueprintContainerImpl.run(BlueprintContainerImpl.java: > 276)[115:org.apache.aries.blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container.BlueprintExtender. > createContainer(BlueprintExtender.java:300)[115:org.apache.aries. > blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container.BlueprintExtender. > createContainer(BlueprintExtender.java:269)[115:org.apache.aries. > blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container.BlueprintExtender. > access$900(BlueprintExtender.java:68)[115:org.apache.aries. > blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container.BlueprintExtender$ > BlueprintContainerServiceImpl.createContainer(BlueprintExtender.java:602)[ > 115:org.apache.aries.blueprint.core:1.6.2] > > at org.opendaylight.controller.blueprint. > BlueprintContainerRestartServiceImpl.lambda$createContainers$6( > BlueprintContainerRestartServiceImpl.java:216)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at java.util.ArrayList.forEach( > ArrayList.java:1249)[:1.8.0_91] > > at org.opendaylight.controller.blueprint. > BlueprintContainerRestartServiceImpl.createContainers( > BlueprintContainerRestartServiceImpl.java:211)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint. > BlueprintContainerRestartServiceImpl.lambda$restartContainerAndDependentsI > nternal$3(BlueprintContainerRestartServiceImpl.java:140)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint. > BlueprintContainerRestartServiceImpl.destroyContainers( > BlueprintContainerRestartServiceImpl.java:176)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.opendaylight.controller.blueprint. > BlueprintContainerRestartServiceImpl.lambda$destroyContainers$5( > BlueprintContainerRestartServiceImpl.java:205)[202:org. > opendaylight.controller.blueprint:0.6.0.SNAPSHOT] > > at org.apache.aries.blueprint.container. > BlueprintQuiesceParticipant$QuiesceDelegatingCallback.callback( > BlueprintQuiesceParticipant.java:159)[115:org.apache. > aries.blueprint.core:1.6.2] > > at org.apache.aries.blueprint.container. > BlueprintQuiesceParticipant$QuiesceBundle.run(BlueprintQuiesceParticipant. > java:125)[115:org.apache.aries.blueprint.core:1.6.2] > > at java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142)[:1.8.0_91] > > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617)[:1.8.0_91] > > at java.lang.Thread.run(Thread.java:745)[:1.8.0_91] > > Caused by: java.lang.ClassFormatError: Duplicate interface name in class > file Proxye8f10bc6_1688_47fc_b4b5_8d679dbb8631 > > at java.lang.ClassLoader.defineClass1(Native > Method)[:1.8.0_91] > > at java.lang.ClassLoader.defineClass(ClassLoader.java: > 763)[:1.8.0_91] > > at org.apache.aries.proxy.impl. > interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:157) > > ... 41 more > > > _______________________________________________ > controller-dev mailing list > controller-dev@lists.opendaylight.org > https://lists.opendaylight.org/mailman/listinfo/controller-dev > > > > >
_______________________________________________ controller-dev mailing list controller-dev@lists.opendaylight.org https://lists.opendaylight.org/mailman/listinfo/controller-dev