The Road Ahead - Reintegrating ESH

I am quite a freshman to OH, and the several GUI options are still confusing to me.

Thus, I followed the work of @David_Graeff here Next generation design: Paper UI design study very carefully and it seems to be promising to have one GUI for all tasks. Now from this discussion I also see @ysc’s proposal https://habot-demo.azurewebsites.net/ which seems to be able to do a similar job.

Will this mean that OH3 again starts with two GUIs ( one by @ysc, one by @David_Graeff) that are favorable for different tasks? Or is there a chance that they join their forces towards OH3?

I also read about UI concepts here Web UIs for openHAB 3 and again several viewers for different tasks are on the table. Just a remark: I am an innogy smart home user. In the past, they also had two separate apps for setup and control which never led to elegant solutions. Since two years, these use a new OS and a new, single UI where everything is under one hood. A one-stop-shop without misunderstandings, and it very much convinced me.

Sorry if this is a dumb remark, but it was my first thought when I read these news… I hope this isn’t the wrong place for such a feedback.

The reason or should I say purpose for the AC’s existence is to decide how to go forward and then start from there on. I begun my design study before the AC has formed and before I knew that ESH will be reintegrated.

There will be only one UI for one purpose, no worries. But I kind of disagree at the moment with Kais believe that a single UI will suffice for management and controlling. I have stated my arguments in the developer section and I’m waiting for some discussion to happen. I’m sure there will be a reasonable outcome.

Cheers

1 Like

I have gone through both approaches in my innogy smart home system, and I very much preferred the unified approach. Maybe there should be a way to hide/unhide the management functionality, but it should be one single UI. Maybe with a proper user management and passwords.

Maybe even HABpanel could be replaced by marking favorite controls and arranging them within the same UI?

Clearly, this is only my opinion as a user without deeper architectural understanding :wink:

But take it as the impression of someone just starting to understand and work with OH

In any case, thanks for letting us dream :slight_smile:

2 Likes

I understand that this is a long needed step for the project to grow.
One the other hand i believe that it could be a problem if only five people decide what will be done and what will be left behind.
Did you or the AC thought about another instance of more members to vote on things that are then discussed in the AC?
It could be a problem when the AC decides things in a direction that doesn‘t fit the opinion of current maintainers and could lead to maintainers leaving the project.
As said many times before, no one is getting paid to work on the project and could leave everytime.

Kind regards
Michael

Interesting point.
What if AC’s strategy conflicts with the one of committers?

1 Like

There will be conflicts over time and bad emotions can be avoided if people keep some sort of reasonability. In many cases a long standing discussion turns into emotional battle where ones who care mostly are major proponent and major opponent. Rest of people is detached from discussion unless things gets too loud.

As long as we and Architecture Council rely on technology we can pick “hard” arguments and not “soft” deliberations. If issue is in technology and future changes affects someone plans/interest/contribution an SPI or extension possibility should be left.
By this approach each and everyone can drive specific part of system in own direction. A community can rely on one implementation of extension while conflicted party or parties can stay with their own implementation.

I know this is pretty naive description and will not work with fundamental changes. However most of these changes come from a believe that they are necessary to sort out important issues or ones which are impossible to be solved with current code base. I believe that as long as we keep this in mind we will be able to find a common language.

Cheers,
Łukasz

I think it depends on the nature of the conflict and the impact of the changes. If a single developer creates a PR that:

  • ripples across massive parts of the code base
  • makes significant breaking changes to the APIs
  • significantly changes the way OH works
  • limits, impacts, or contradicts decisions that have already been made

then if the topic comes to the AC they will likely decide against the change. But really, this should never come to the AC in the first place. The maintainers who review the PRs would be the ones that end up deciding. The purpose of the AC is as an enabler and a tie breaker (if I under stand Kai’s vision correctly). The AC is not going to tell the maintainers how to build the code. The AC is not going to review every PR and accept or reject. But when there is a problem or a disagreement that maintainers cannot resolve themselves, or a discussion on the forum about directions that OH can go that need someone to decide because the participants can’t come to a consensus on their own, the AC can be called in to break the impasse.

Now the AC is able to nominate a proposal for consideration and when this happens there will be an open thread created where the whole community can participate. The AC threads are reserved for the AC to deliberate and vote based on the open threads.

If there is a consensus in an open thread, I doubt the AC will vote against it. If there isn’t a consensus, then the AC will be the deciders.

5 Likes

@rlkoshak is a master in explaining, so I won’t add anything. Maybe only that the AC will take care of exactly those decisions that I always decide on my own in the past. 99% of decisions with regards to features/development/etc. will continue to be discussed among the maintainers and I am trying to push it even more to this direction - so the really important point of the governance docs is the section about the maintainers and I really hope that all of them will use this freedom to build skilled teams that drive the different components of openHAB forward!

2 Likes

And now back to the original topic, I have another progress update (and likely the last one):

  • Over the past days, the major regressions in the distro were fixed and the latest build #1522 seems to be in pretty good shape now! I have deployed it to my production environment today and apart from some very minor things it runs smoothly - I would hence claim that we are back to normal again and that the reintegration of ESH has been completed successfully :+1: .
  • We have also updated the IDE setup (including its documentation). If you need the IDE for developing add-ons, not much has changed about how it looks and feels, but it is now using the openhab-core artifacts in the target platform and no ESH pieces are left. As a replacement for the ESH IDE, the installer now also offers a “openHAB Core Development” option - note that you should use a separate IDE installation for this as it uses a different build system (bnd instead of Tycho) and has a few more specialties (like e.g. requiring Xtext code generation). Only those of you that want to work on the core framework itself will require this additional IDE.

As usual: If you come across any bugs or issues, please report them in the according Github issue tracker - thanks!

12 Likes

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.