The Road Ahead - Reintegrating ESH

apart from some very minor things it runs smoothly

Is it possible to be transparent about these minor issues, to avoid frustration and double mentioning?

(what you find minor, might be a big deal for some of us)

Sure. I saw one or two warnings during startup that seemed new to me, but from which I couldn’t see any negative effect. Functionally, the only hiccup was that my Basic UI settings (whether to use vector or bitmap, condensed layout, etc.) were lost and I had to set them again. Still need to figure out whether that’s a general bug or specific to my setup.

1 Like

In case it helps to track it down, I saw this when I upgraded from S1493 to S1512, and I had to reset the default sitemap, theme, etc.

1 Like

I had that too with 1512 and also with 1522. Not a big deal, just unexpected.

Gert

I tried to update this morning to snapshot 1524. Here my feedback:

I see the following startup-errors from bindings “systeminfo” and “gpstracker”. But it seems that both are working fine:

SystemInfo:

2019-02-17 10:37:21.569 [ERROR] [org.openhab.binding.systeminfo      ] - bundle org.openhab.binding.systeminfo:2.5.0.201902161217 (245)[org.openhab.binding.systeminfo.internal.model.OshiSysteminfo(60)] : Could not load implementation object class org.openhab.binding.systeminfo.internal.model.OshiSysteminfo
java.lang.ClassNotFoundException: org.openhab.binding.systeminfo.internal.model.OshiSysteminfo cannot be found by org.openhab.binding.systeminfo_2.5.0.201902161217
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:999) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1026) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:936) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:901) [42:org.apache.felix.scr:2.1.14]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
	at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) [20:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [?:?]
	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
	at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) [?:?]
	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) [?:?]
	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) [?:?]
	at com.eclipsesource.jaxrs.publisher.internal.Activator.openAllServiceTracker(Activator.java:91) [20:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
	at com.eclipsesource.jaxrs.publisher.internal.Activator.start(Activator.java:55) [20:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:779) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) [?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:772) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:729) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:933) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309) [?:?]
	at org.eclipse.osgi.container.Module.doStart(Module.java:581) [?:?]
	at org.eclipse.osgi.container.Module.start(Module.java:449) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
2019-02-17 10:37:21.646 [ERROR] [org.openhab.binding.systeminfo      ] - FrameworkEvent ERROR - org.openhab.binding.systeminfo
org.osgi.framework.ServiceException: Exception in org.apache.felix.scr.impl.manager.SingleComponentManager.getService()
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:222) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) ~[?:?]
	at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) ~[?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) ~[?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) ~[?:?]
	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) ~[?:?]
	at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) ~[?:?]
	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) ~[?:?]
	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) ~[?:?]
	at com.eclipsesource.jaxrs.publisher.internal.Activator.openAllServiceTracker(Activator.java:91) ~[?:?]
	at com.eclipsesource.jaxrs.publisher.internal.Activator.start(Activator.java:55) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:779) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) ~[?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:772) ~[?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:729) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:933) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309) ~[?:?]
	at org.eclipse.osgi.container.Module.doStart(Module.java:581) ~[?:?]
	at org.eclipse.osgi.container.Module.start(Module.java:449) ~[?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) ~[?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) ~[?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) ~[?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) ~[?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
Caused by: java.lang.IllegalStateException: Could not load implementation object class org.openhab.binding.systeminfo.internal.model.OshiSysteminfo
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:1006) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1026) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:936) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:901) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) ~[?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) ~[?:?]
	... 30 more

GPSTracker:

2019-02-17 10:37:24.988 [ERROR] [org.apache.felix.scr                ] - bundle org.apache.felix.scr:2.1.14 (42)Circular reference detected trying to get service {org.eclipse.smarthome.config.core.ConfigDescriptionRegistry}={service.id=243, service.bundleid=139, service.scope=bundle, component.name=org.eclipse.smarthome.config.core.ConfigDescriptionRegistry, component.id=113}
 stack of references: ServiceReference: {org.eclipse.smarthome.config.core.ConfigDescriptionRegistry}={service.id=243, service.bundleid=139, service.scope=bundle, component.name=org.eclipse.smarthome.config.core.ConfigDescriptionRegistry, component.id=113}
ServiceReference: {org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory, org.eclipse.smarthome.config.core.ConfigOptionProvider}={service.id=213, service.bundleid=232, service.scope=bundle, component.name=org.openhab.binding.gpstracker.internal.GPSTrackerHandlerFactory, component.id=29}

java.lang.Exception: stack trace
	at org.apache.felix.scr.impl.ComponentRegistry.enterCreate(ComponentRegistry.java:485) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.BundleComponentActivator.enterCreate(BundleComponentActivator.java:735) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:882) [42:org.apache.felix.scr:2.1.14]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
	at org.osgi.util.tracker.ServiceTracker.addingService(ServiceTracker.java:414) [?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [?:?]
	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
	at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) [?:?]
	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) [?:?]
	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) [?:?]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.activate(BaseThingHandlerFactory.java:83) [184:org.openhab.core.thing:2.5.0.201902160301]
	at org.openhab.binding.gpstracker.internal.GPSTrackerHandlerFactory.activate(GPSTrackerHandlerFactory.java:152) [232:org.openhab.binding.gpstracker:2.5.0.201902161217]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:317) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:307) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:341) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:114) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:983) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:956) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:901) [42:org.apache.felix.scr:2.1.14]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
	at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:73) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:664) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2308) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.prebind(DependencyManager.java:419) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.DependencyManager.prebind(DependencyManager.java:1576) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1029) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:936) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:901) [42:org.apache.felix.scr:2.1.14]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
	at org.osgi.util.tracker.ServiceTracker.addingService(ServiceTracker.java:414) [?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [?:?]
	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
	at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) [?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:381) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:263) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) [42:org.apache.felix.scr:2.1.14]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) [42:org.apache.felix.scr:2.1.14]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) [?:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) [?:?]
	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [?:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) [?:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [?:?]
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [?:?]
	at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [?:?]
	at org.eclipse.osgi.container.Module.start(Module.java:467) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [?:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]

But more critical for me is that I cannot use the Chamberlain-MyQ1-Binding anymore. This was no issue in latest Milestone. Installation is now not possible anymore:

2019-02-17 10:43:39.450 [ERROR] [core.karaf.internal.FeatureInstaller] - Failed installing 'openhab-binding-myq1': Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-binding-myq1; type=karaf.feature; version="[1.14.0.SNAPSHOT,1.14.0.SNAPSHOT]"; filter:="(&(osgi.identity=openhab-binding-myq1)(type=karaf.feature)(version>=1.14.0.SNAPSHOT)(version<=1.14.0.SNAPSHOT))" [caused by: Unable to resolve openhab-binding-myq1/1.14.0.SNAPSHOT: missing requirement [openhab-binding-myq1/1.14.0.SNAPSHOT] osgi.identity; osgi.identity=org.openhab.binding.myq; type=osgi.bundle; version="[1.14.0.201902170308,1.14.0.201902170308]"; resolution:=mandatory [caused by: Unable to resolve org.openhab.binding.myq/1.14.0.201902170308: missing requirement [org.openhab.binding.myq/1.14.0.201902170308] osgi.wiring.package; filter:="(osgi.wiring.package=org.codehaus.jackson)"]]

I would like to open an issue on Github but not sure if it belongs to the old binding or to the ESH-Integration. Other Legacy 1.x bindings are still OK.

I have seen that there is someone porting that to OH2. There is a pull request since a few days.

Your case looks like a build system problem (which is very likely after all the buzz recently). Could you please open a bug report on Github (openhab2-addons probably), so that core developers can see this?

Yes, I already tried to use the new market-binding but was not able to get it up and running --> Gateway always keeps “UNITIALIZED”.

For the legacy one I will open an issue today afternoon. Thanks!

Hi @michaeljoos,

Thanks for your feedback. We found the reason for the CNF in the Systeminfo binding (see https://github.com/openhab/openhab-distro/issues/878). The build contains outdated XML files that were generated in some previous build and were not purged.

1 Like

With ESH now reintegrated into openHAB and openHAB not being an Eclipse project (although using the EPLv2 license), do we still need a valid Eclipse CLA/ECA when contributing to the project?

No.

2 Likes

Good question and answer as we probably all received a request of new validation after conditions changed for Eclipse projects.

@kai or @maggu2810, what is the plan for the migration of the remaining org.eclipse.smarthome.core packages? I’m looking into it, but I haven’t found a way to access them yet through JSR223, which is currently breaking the Jython helper libraries, and potentially JS and Groovy too. I’ll submit a GH issue for this tonight.

What do you mean by “migration”?
What’s missing?
Is your point the rename of all packages? IIRC this will be done for OH3.
The repo and bundle name migration should be finished.
The only missing points I know about are the migration of some tests.

Yes, I was meaning the renaming of packages. I remember a conversation a while back but couldn’t find it. I was specifically asking about this due to a possible connection to this…

1 Like

I don’t see (but I could be wrong) any real relationship here.
The package names has not been changed and they seems to be no longer available.
So, IMHO it is related to the class loading itself (see my comment in the issue).

If we rename all the packages to org.openhab… they will still not be available (regardless if you are using the old or the new name). As long as the used classloader does not know about the classes, it cannot load them.

What I do not fully understand is:
You mention that there will be a lot of work now to establish processes, guidlines, etc. in openHab similar to what you had when hosting as an Eclipse project. Further it was mentioned above that “The good thing is: The eclipse foundation made sure we are not violating 3rd party rights / patents.”

So what would have been the blocker to move the openHab community into the Eclipse project. Thereby, you would keep the processes and the IP check. Now there will be a lot of work duplicating those processes outside of the EF.

I wasn’t involved with the decision but I can guess at a few reasons.

  • ESH started from OH so it makes sense that it would come back to OH
  • The bulk of the code and the bulk of the work in the openHAB ecosystem takes place in openHAB repos, not ESH, so migrating all of those to ESH might add up to more work than migrating ESH back to OH repos.
  • As a brand, the openHAB name is much better well known than ESH.
  • The openHAB Foundation is built around openHAB. It isn’t clear how or whether the foundation could be used in name and function with ESH.

Again, I wasn’t involved in any of these decisions, but these are some of the things that I’m sure were taken into consideration.

3 Likes

Hey Jonas :wave:,
You can check my findings below. I saw your mail on esh mailing lists but due to low probability of getting people involved didn’t reply there. Its great that you decided to come here and also show perspective from Eclipse point of view.

I think that fairly big trouble with ESH was/is strict formalization of contributions. I know it might sound ridiculous in first place but since we all live in era of github most of developers want to get their PR accepted and be done with issue they are willing to fix. With ESH, and openhab sadly too, this process is less dynamic. If I could quote Pieter Hintjens (R.I.P) - make progress before consensus, meaning try to get PRs accepted and acknowledge fact that some will require further fixes.
This is fundamentally different if you take a look on ESH and how its been looking a like in past years. openHAB is not much better in this I am afraid as I saw quite many extensions which are stuck in various “work in progress” state for months if not years.
Processes around project are important, IP clearance is great but, as we speak of developers who contribute code, making these fast & easy is equally important. If getting your code in project is difficult (each fix requires PR despite of having automatic checks) then getting a contributor/commiter badge is even harder. That’s kind of investment which only some companies can pay. I barely can see individuals who will spend nights to pass that. This kind of “inner” dynamics causes people to stay away from project and commercial entities too. You ain’t get dopamine out of it, you quit.

Frankly speaking I think next shortage of ESH was simply lack of user community. This is major difference between Eclipse Project and openHAB. First was positioned as framework while second was aiming to become a complete (DIY?) solution.
I am not sure if this is not the biggest failure of ESH as a project which led to current situation where absence of one company puts entire project on the knees.

I raised my concerns about possibilities for commercial adoption of openHAB without IP clearance, however current mood is to not guarantee any of that. Again, this is for me strange as it makes harder to convince companies to build solutions on top of OH, I also see in it some fairness (might be strange to you). Beside DTE, Markus company (maggu2810) and few others who paid most of costs there were companies who used ESH and did not contribute much back to projects… I’m not here to judge who, why and if these companies should actually do anything.

Now all potential commercial adopters have to decide if they stay with IP cleared ESH which might be slower in development, or have more vibrant code where they need to pay their checks by making IP clearance on their own.

Part of problem also remains in what was possible and what wasn’t within ESH. ESH was locked down with OSGi 4.2 specification which will turn 10 years this September. Setting a 10 year old API baseline for project in 2019 is not something which is common in Open Source landscape, especially if there are new releases of standard.
I must note that I have no problem with this particular specification. I worked with it till 2015 with no issues, however question is who pays for this requirement - one who requires it, or everyone else who wants to contribute to project?

Your sincerely,
Łukasz

2 Likes

Thank you for you detailed answer. I actually believe that there are some misunderstandings about how “formal” code contributions must be in an Eclipse project. IMHO, an Eclipse project, compared to any plain GitHub project defines two things regarding contributions:

  1. Committer vs. Contributor
    A number of people are committer and can directly commit, another group are contributor and their contributions need to be reviewed by committers. New Committers are elected by existing ones. If you do not want to grant write access to your GitHub repository to everyone, you will need some similar structure for every Open Source project. I do not see a big formalism here, the rules are really simple.
  2. CLA
    As a contributor and committer you have to sign a CLA in which you basically agree to publish code under the respective license. Most GitHub projects with a reasonable maturity level have something very similar, too. So again, I do not see a big “formalism” here.

Please don’t get me wrong on this, I am not trying to tell anyone what to do. However in many messages on this thread, it is mentioned that the code can evolve “more freely” in openHab compared to an Eclipse project. I want to understand on what exactly this statement is based on.

2 Likes

If you do not want to grant write access to your GitHub repository to everyone, you will need some similar structure for every Open Source project. I do not see a big formalism here, the rules are really simple.

I think it’s in the details of this:

If you do not want to grant write access to your GitHub repository to everyone

There is a huge difference between giving everyone write access (aka trust by design)
and adding a even a small hurdle