Commit Graph

786 Commits

Author SHA1 Message Date
Markus Rathgeb
d55d59d3b5 MQTT: disable https hostname verification (#820)
After the bump of Paho from 1.2.0 to 1.2.1 the library enables the https
hostname verification.
This breaks compatibility with current consumers.
Connections cannot be established anymore.

We disable the https hostname verification to keep the old behaviour.
We should add an API so the hostname verification can be enabled if
desired.

This also makes the version 1.2.1 the lower version limit as we need to
use the API to disable the verification internally.

Related to: https://github.com/openhab/openhab-core/issues/815

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-15 17:57:49 +02:00
Markus Rathgeb
dc5ddba83c [model] don't require to download antlr generator on build time (#810)
The antlr generator has been downloaded by a specific download maven
plugin at build time.
Instead of calling the plugin goals it would be much simpler to add the
downloaded file to the repository (I assume it has been not possible on
the Eclipse repository before).
Another benefit would be the IDE integration as the IDE does not need to
know if the plugin needs to be executed or not...

The provided antlr generator has been taken from:
http://download.itemis.com/antlr-generator-3.2.0-patch.jar

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-14 09:04:35 +02:00
Markus Rathgeb
4480e04137 persistent inbox: do not use incomplete initialized object (#813)
Fixes: https://github.com/openhab/openhab-core/issues/812

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-10 09:00:41 +02:00
Christoph Weitkamp
0f74348f51 Factored out 'LocalizedKey' into separate class (#808)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-05-09 11:57:40 +02:00
Markus Rathgeb
bba6df5372 add printf for console (#793)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-09 08:29:56 +02:00
Christoph Weitkamp
2a9485bc3b Improvements for 'DefaultSystemChannelTypeProvider' (#807)
* Use constructor dependency injection
* Added nullness annotations

Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-05-09 07:51:56 +02:00
Christoph Weitkamp
b5f33d341d Added i18n feature for profiles (#785)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-05-09 07:50:55 +02:00
Markus Rathgeb
1996f69e6f [automation] Fix activation of rules (#796)
Related to: https://github.com/openhab/openhab-core/issues/722
Related to: https://github.com/openhab/openhab-core/issues/783

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-08 15:18:21 +02:00
David Gräff
efdcf79300 Update paho to 1.2.1 service release (#784)
Fixes unreleased resources, disconnecting problems and many more

Signed-off-by: David Gräff <david.graeff@web.de>
2019-05-08 10:10:47 +02:00
Kai Kreuzer
9f4ad2880f removed classpath entries of non-existent folders in order to solve compilation errors in IDE (#806)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2019-05-07 23:29:07 +02:00
Markus Rathgeb
d19ee33be9 [audio] audio servlet: don't change map while used by interation (#801)
We should not remove entries (so keys) from the map while we are using
the key set (a view) of that map (see JavaDoc: otherwise "results of the
iteration undefined").

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-07 21:26:04 +02:00
Christoph Weitkamp
81423aa22e Separate i18n infrastructure for 'ChannelGroup' (#804)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-05-07 19:32:11 +02:00
Markus Rathgeb
c359347ada allow to use "Pure Annotation-Driven Bundle Development" (#803)
Bump the OSGi annotation to allow a pure annotation-driven bundle
development.

Related to: https://virtual.osgiusers.org/2018/10/pure-annotation-driven-dev

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-06 23:10:32 +02:00
Markus Rathgeb
0d996e74a2 audio servlet test: harden against slow test systems (#802)
The test suite for the audio servlet contains a test that will fail on
systems under heavy load (or just imperformant systems).

An audio stream should be added for 1 (streamTimeout) second.
The stream is requested and it is tested that it can be accessed.
After that the test waits until the stream is no more available (this
will be the cause after "streamTimeout").

If the "add stream" and "get request for stream" operations already
exceed the "streamTimeout" limit, the test will fail.
This can be handled in the test case itself if we check the timespan we
need to get the stream and if we know that the stream is allowed to be
non present already, we continue with the next step without failing.

Fixes: https://github.com/openhab/openhab-core/issues/799

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-06 22:42:41 +02:00
Markus Rathgeb
52c2456461 [automation] Disabled storage must not be null anymore (#797)
Related to: https://github.com/openhab/openhab-core/pull/787

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-06 13:32:15 +02:00
Markus Rathgeb
3c32c049b1 drop remaining tycho and p2 stuff (#791)
* remove tycho based pom
* remove mega old parent POM for external repos
* remove p2 repository (generation)

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-06 00:04:47 +02:00
Markus Rathgeb
b7b5dfc9fa POM Code Convention (#790)
There is a recommended ordering for all Maven POM files.
See: https://maven.apache.org/developers/conventions/code.html

The POM files has been "fixed" by using the "sortpom-maven-plugin".
The blank lines has been kept to keep the element separation for
readability.
The plugin also fixes indentation etc.
Have a look at: https://github.com/Ekryd/sortpom/wiki

The profile has been set to "recommended_2008_06" that states:
The POM Code Convention that was chosen by Maven developers in 2008

Command that has been executed:

    mvn \
      com.github.ekryd.sortpom:sortpom-maven-plugin:sort \
      -Dsort.keepBlankLines=true \
      -Dsort.predefinedSortOrder=recommended_2008_06

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-05 17:47:41 +02:00
Markus Rathgeb
83e6962244 add human readable notation of serial protocol type (#794)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-05 17:42:06 +02:00
Markus Rathgeb
01985102f3 fix classpath for magic tests (#792)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-04 19:42:32 +02:00
David Gräff
ff70084383 Archetype: karaf feature file location fix (#789)
Update karaf feature file location

Signed-off-by: David Gräff <david.graeff@web.de>
2019-05-04 17:16:13 +02:00
Markus Rathgeb
c4ae29917b Revert main part of DS requirements removal (#595)
This reverts the DS requirements removal of commit
981a447e99 which has been done on PR #530.

Fixes: https://github.com/openhab/openhab-core/issues/590
Related to: https://github.com/openhab/openhab-distro/pull/882

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-04 17:14:36 +02:00
Markus Rathgeb
5e8c8bb4ec use consistent coordinates also for tools and archetypes (#781)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-04 14:15:45 +02:00
Markus Rathgeb
01681454d6 remove manual set capabilities in Karaf features (#788)
As we moved away from the manifest first approach the manifests are
generated by Bnd and contain the capabilities already.
So, there is no need anymore to maintain it in the Karaf features
manually.

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-03 09:09:28 +02:00
Markus Rathgeb
eaaf01a5fd use mandatory storage services (#787)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-02 21:11:00 +02:00
Markus Rathgeb
f881ef87f1 model: prevent simultan access of singleton (#773)
The singleton instance of "Diagnostician" is used without
synchronization.
The singleton "Diasnostician" instance is using the singleton
"EValidator.Registry" instance (without synchronization).
In very rare high load situations there has been CME detected.

My first "solution" has been to synchronize the access of
Diagnostician's instance method by using

```java
synchronized (Diagnostician.INSTANCE) {
    ...
```

But after realize that EMF is using internally other singletons I tried
to find any information about EMF and thread safety.

I found this one: https://javahacks.net/2016/07/13/emf-thread-safety/

  EMF models are not thread-safe by default and writing multithreaded
  applications is not that simple.
  The more complex our application became, the more often we got
  concurrent modification exceptions and had problems with filtering and
  sorting operations.

So, I assume instead of adding synchronizations to our code that is
using EMF (IIRC this has been already done on the ESH hosted code base
long time ago) we should try to execute EMF code in a safe manner.

This implementation adds a "SafeEMF" OSGi service that should be used to
execute EMF code to ensure none code of EMF (or at least the ones that
calls has been migrated to the SafeEMF usage) is accessed by separate
threads at the same time.

Related to: https://github.com/openhab/openhab-core/issues/772

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-01 23:19:07 +02:00
Markus Rathgeb
bafc39f91b automation: some cleanup (#776)
* automation: first cleanup
* automation: do not set all enabled rules to idle state

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-05-01 23:04:07 +02:00
Kai Kreuzer
5ae32f4f00 removed demo app as it moves to openhab-distro (#780)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2019-05-01 23:01:12 +02:00
Christoph Weitkamp
a18e60d7d7 Applied formatter in all files
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-05-01 22:47:07 +02:00
Christoph Weitkamp
8d5d789371 Changed ordering of annotation and quialifier
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-30 13:22:26 +02:00
Christoph Weitkamp
5888c8b5d6 Added RawButtonToggleRollershutterProfile, RawRockerStopMoveProfile and RawRockerUpDownProfile
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-30 13:22:26 +02:00
Christoph Weitkamp
b8de327e15 Added i18n feature for dynamic command descriptions (#771)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-29 19:16:47 +02:00
Christoph Weitkamp
31760bf3a7 Updated xml schema locations to openhab (#769)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-29 19:15:24 +02:00
Christoph Weitkamp
92e58ebfd1 Updated xml schema definition locations to openhab (#768)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-29 19:14:51 +02:00
Markus Rathgeb
d60a7c8fe0 use compendium specification R7 (#766)
This allows us to use the version 1.4 of the components and we can use
the Constructor Injection.

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-29 19:14:24 +02:00
Markus Rathgeb
d2c7db63db use upstream nrjavaserial 3.15.0 on runtime (#761)
* add nrjavaserial without liblockdev
* use only one feature for a nrjavaserial implementation

Fixes: https://github.com/openhab/openhab-core/issues/750

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-29 19:11:32 +02:00
Christoph Weitkamp
76387f2b79 Changed visibility of lists to allow subclasses to acces them (#770)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-29 19:10:07 +02:00
Christoph Weitkamp
1bbf250d1f Removed deprecated methods (#721)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-28 18:52:16 +02:00
Hilbrand Bouwkamp
bb86507871 [archetype] Fix copyright in archetype example java files (#765)
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
2019-04-28 16:56:10 +02:00
Markus Rathgeb
25d7f14dfc safe caller: respect classloader of the class and the interfaces (#763)
Related to: https://github.com/openhab/openhab2-addons/issues/5519

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-28 16:20:53 +02:00
Markus Rathgeb
1ac2e8978b automation: remove specific handling for CompositeModuleHandlerFactory (#764)
The member variable "compositeFactory" that holds the
"CompositeModuleHandlerFactory" instance is set in the activation method
by calling the constructor of of "CompositeModuleHandlerFactory".
This reference is destroyed and unset in the deactivate method.

There exists DS managed multiple optional references to
"ModuleHandlerFactory".
The "add" logic does not touch the "compositeFactory" variable.
The "remove" logic checks if the given service reference is a
"CompositeModuleHandlerFactory" and unsets the "compositeFactory" member
variable.

If e.g. a module handler factory is injected that also implements the
CompositeModuleHandlerFactory the CompositeModuleHandlerFactory created
by the activate method is still be used. If that specific module handler
factory is removed again, the variable "compositeFactory" is unset and
there is NO CompositeModuleHandlerFactory present anymore.

There are two options:
* The instance created in the activate method should be used as long as
  no other one is injected.
* The instance created in the activate method should be used all the
  time.

The whole code base does not contain another specific implementation for
CompositeModuleHandlerFactory, so there is no (at least in openHAB Core)
change that a CompositeModuleHandlerFactory is injected.

So instead of adding a non deterministic usage of "some" composite
module handler factory (which will require a fix of the "set module
handler factory method" and some others), let's drop the buggy code in
the "remove module handler factory" and use the manually created
composite module handler factory all the time.

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-28 16:19:06 +02:00
Hilbrand Bouwkamp
d1e333d8e3 [archetype] .classpath should contain tabs. (#762)
Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
2019-04-27 22:27:40 +02:00
Hilbrand Bouwkamp
ff57db8396 Added maven archetype project to generate binding skeletons (#589)
This archetype generates bindings for the new bnd based build system.
It also updates specific bundle files that need information about the new binding.

This doesn't yet include generation of test projects.

Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
2019-04-26 13:03:28 +02:00
Christoph Weitkamp
bc91446ae1 Added i18n feature for dynamic state descriptions (#655)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-26 12:54:40 +02:00
Christoph Weitkamp
d0800c902e Added RawButtonTogglePlayerProfile, RawRockerNextPreviousProfile and RawRockerRewindFastforwardProfile (#747)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-26 12:53:16 +02:00
Markus Rathgeb
ce72e1083f drop blocking async SSE implementation (#754)
There workaround for a servlet implementation lower then 3 can be removed.
After we migrated from ESH to openHAB Core we could set servlet >= 3 as a requirement.

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-25 20:05:22 +02:00
Christoph Weitkamp
e3cb062610 Fixed unit tests magic bundle (#756)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-25 17:49:38 +02:00
Christoph Weitkamp
387b439509 Reduced logging level in AbstractRegistry (#755)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-25 15:10:33 +02:00
Markus Rathgeb
e92cdace3c REST SSE: disable compression also if servlet 3 support is present (#752)
We should disable the compression regardless if servlet 3 is used or
not. It does not matter which servlet version is used, the client should
receive the messages as soon as possible without compression or
buffering.
You can identify the lost SSE feature as soon as you enable the usage of
Jetty's GzipHandler.

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-24 17:03:48 +02:00
Christoph Weitkamp
89da305fd3 Import SmartHomeUnits in Script Scope (#745)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-18 21:45:33 +02:00
Scott Rushworth
77992e7df6 Sort by filename instead of path (#724)
Currently, the scripts are loaded based on the lexicographical order of
the absolute paths of the scripts. This makes it difficult to control
the load order. This change bases the load order solely on the filename,
as was originally used before
https://github.com/eclipse/smarthome/pull/3855, and preserves the
ability to use scripts with the same filename.

Signed-off-by: Scott Rushworth <openhab@5iver.com>
2019-04-18 20:15:50 +02:00