Hi Tom, Sorry for late answer but I had some troubles with building karaf4 distributions since there were some changes of karaf version in parents. Right now I’m testing my karaf4 migration changes on Carbon branch and everything (including re-configuration via restconf) works well. Maybe it has been fixed in the meantime. I’ll continue with the migration and will test it also on Nitrogen and I let you know if I’ll hit the issue again.
Thank you very much for your help. Tomas From: Tom Pantelis [mailto:tompante...@gmail.com] Sent: Wednesday, April 19, 2017 4:41 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 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<mailto: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<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<mailto: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<mailto: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<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<mailto: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<mailto: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.<http://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.<http://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(DependentComponentFactoryRecipe.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$restartContainerAndDependentsInternal$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<mailto: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