Commit Graph

284 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
Gaël L'hopital
20ee4b8fe0 Added change and update timestamp profiles (#732)
* Added change and update timestamp profiles

Signed-off-by: Gaël L'hopital <gael@lhopital.org>
2019-04-18 12:59:15 +02:00
Wouter Born
f4348cd6e8 Attach source JARs without forking to fix Jenkins warnings (#741)
This fixes the following warnings on Jenkins builds:

[WARNING] Failed to getClass for org.apache.maven.plugins.source.SourceJarMojo

See also: https://issues.jenkins-ci.org/browse/JENKINS-27372

Signed-off-by: Wouter Born <github@maindrain.net>
2019-04-17 06:55:41 +02:00
Wouter Born
fb972f385a Configure LanguageServer exit behavior (#742)
Xtext 2.17 allows for configuring the LanguageServer exit behavior so the SecurityManager workaround can be removed.

Fixes: https://github.com/eclipse/smarthome/issues/6291
Undos: https://github.com/openhab/openhab-core/pull/409

See also:
* "Configurable Server Exit Behavior" in the Xtext 2.16.0 release notes:
  https://www.eclipse.org/Xtext/releasenotes.html#/releasenotes/2018/12/04/version-2-16-0
* https://github.com/eclipse/xtext-core/issues/885

Signed-off-by: Wouter Born <github@maindrain.net>
2019-04-17 06:52:42 +02:00
Markus Rathgeb
32845ef36d differ between min. karaf version (OSGi) und karaf compilation tooling (#740)
Related to: https://github.com/openhab/openhab-core/pull/723#issuecomment-483595667

Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-16 22:41:27 +02:00
David Gräff
8819eb6ef9 add default constructor to MetadataKey (Gson deserialization support) (#727)
Signed-off-by: David Gräff <david.graeff@web.de>
2019-04-15 15:42:46 +02:00
Christoph Weitkamp
309a1af45f Deprecated method - could be removed because of superflous code (#720)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-15 14:35:48 +02:00
Christoph Weitkamp
0aa7661764 Revert ThingImpl and BridgeImpl changes as the storage uses those implementations (#719)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-14 23:09:09 +02:00
Kai Kreuzer
48ce8357f5 remove build path entries for non-existent folders (#716)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
2019-04-14 09:55:32 +02:00
Scott Rushworth
5f880e1062 Added ScriptModuleTypeProvider (#635)
Added ScriptModuleTypeProvider, which dynamically adds available script
languages to the ParameterOptions used in Paper UI when configuring a
ScriptAction or ScriptCondition.

Signed-off-by: Scott Rushworth <openhab@5iver.com>
2019-04-11 06:57:39 +02:00
Christoph Weitkamp
48a97c1ac2 Improved thing / bridge performance (#693)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
2019-04-10 08:50:04 +02:00
Markus Rathgeb
33cfb5dbac mapdb storage: minor cleanups (#707)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-04-09 21:23:25 +02:00
Thomas Weißschuh
82b7ff6db9 Channel groups should not require static channels (#696)
* channel groups should not require static channels
* Added unit tests

Also-by: Christoph Weitkamp <github@christophweitkamp.de>
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
2019-04-08 21:44:52 +02:00
David Gräff
7838a6a46f Update Metadata.java (#704)
Fixes #699 

Signed-off-by: David Gräff <david.graeff@web.de>
2019-04-08 21:07:33 +02:00
Hilbrand Bouwkamp
1d8b7be59b Added units kvarh and kvar. (#695)
Also simplified gravity unit.

Signed-off-by: Hilbrand Bouwkamp <hilbrand@h72.nl>
2019-04-07 11:12:06 +02:00
Gaël L'hopital
c6a9085a74 Adding DataAmount (bit and derivatives) and DataTransferRates (bits per second) (#681)
* Adding DataAmount (bit and derivatives) and DataTransferRates (bits per second) to UoM

Signed-off-by: Gaël L'hopital <gael@lhopital.org>
2019-03-30 21:43:15 +01:00
Scott Rushworth
d1a343d8b2 Add DynamicImport-Package for scripted automation (#663)
Fixes #610

Signed-off-by: Scott Rushworth <openhab@5iver.com>
2019-03-30 19:55:01 +01:00
Wouter Born
cbb96945f0 Ignore and remove Eclipse project specific settings (#677)
Signed-off-by: Wouter Born <github@maindrain.net>
2019-03-26 13:04:09 +01:00
Wouter Born
1acb9c8ff2 [core] Increase DateTimeType parsing and formatting precision (#668)
Since Java 9 (JDK-8164428) the maximum resolution from the underlying clock is used.
Instead of just milliseconds the resolution can now even be tenth of microseconds.

According to the Type JavaDocs toFullString() should return the full string representation of the type to be consumed by 'valueOf(String)'.

With the changes in this PR toFullString() may return higher resolution date time strings on newer Java versions and valueOf(value) is able to parse these.

Code depending on a certain resolution returned by toFullString() should use the format(pattern) method instead so the resolution will not change.

Fixes #667

Signed-off-by: Wouter Born <github@maindrain.net>
2019-03-17 13:18:30 +01:00
Wouter Born
7e94df1656 Print message instead of null on console when specified play volume is invalid (#670)
The fix helps users and also ensures the unit test works on both Java 8 and 11.

Signed-off-by: Wouter Born <github@maindrain.net>
2019-03-17 13:00:35 +01:00
Wouter Born
2c7ca348ef Upgrade Xtext to 2.17 for full Java 11 support (#650)
* Upgrade Xtext to 2.17 for full Java 11 support

Signed-off-by: Wouter Born <github@maindrain.net>
2019-03-15 09:13:24 +01:00
Markus Rathgeb
fdb23778dc improve nullness of events (#657)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-03-15 09:10:52 +01:00
Michael Riess
797a78e718 fix synchronisation and equals() in Configuration (#642)
Signed-off-by: Michael Riess <michael.riess@telekom.de>
2019-03-11 21:23:32 +01:00
Markus Rathgeb
2913d75e56 remove PDE left overs from core.karaf project (#639)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-03-08 23:22:00 +01:00
Andre Fuechsel
00edae4539 Do not use Paths to concatenate resource paths as on Windows it will convert "/" to "\\" and this is not a valid resource path for bundle.getResource() (#633)
Signed-off-by: Andre <afuechsel@gmail.com>
2019-03-06 21:32:45 +01:00
Wouter Born
48d873a32b Use openHAB license headers (#632)
Signed-off-by: Wouter Born <github@maindrain.net>
2019-03-06 16:10:00 +01:00
David Gräff
e508e8e4af ConfigDescriptionParameter: javadoc getContext() (#623)
Improve javadoc by explaining the different defined context values. 
I have added "rule", "channel", "channeltype" and "cronexpression" as those are used within the automation module.
The i18n service uses "location" as context value and expects a map to be rendered.

Signed-off-by: davidgraeff <david.graeff@web.de>
2019-03-05 12:59:08 +01:00
Markus Rathgeb
bf4eac7d78 migrate tests for storage.json (#624)
Signed-off-by: Markus Rathgeb <maggu2810@gmail.com>
2019-03-05 11:53:02 +01:00