Skip to content

Commit

Permalink
Backwards compatibility for package name changes (#109)
Browse files Browse the repository at this point in the history
Signed-off-by: Scott Rushworth <openhab@5iver.com>
  • Loading branch information
Scott Rushworth authored May 20, 2019
1 parent 9c8027e commit 3f93b71
Show file tree
Hide file tree
Showing 31 changed files with 579 additions and 451 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
scriptExtension.importPreset(None)

import json

import community.esper.java
Expand Down Expand Up @@ -101,6 +103,3 @@ def scriptUnloaded():
log.info("Destroyed Esper provider")
OsgiEventAdmin.remove_listener(esper_bridge)
log.info("Esper event bridge removed")



Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
clearing.
KNOWN ISSUES:
ArithmethicGroupFunction.Avg does not properly average angles. An ESH issue has
ArithmeticGroupFunction.Avg does not properly average angles. An ESH issue has
been opened for this... https://github.com/eclipse/smarthome/issues/6792.
I noticed the units for the Cloudiness and Humidity groups display as 'one',
but the Items display properly as '%'.
Expand Down Expand Up @@ -98,10 +98,18 @@ def addOWMItems():
addOWMItems.log = logging.getLogger(LOG_PREFIX + ".addOWMItems")

# create OWM Items and groups, if they do not exist
from org.eclipse.smarthome.core.thing import ThingTypeUID
from org.eclipse.smarthome.core.thing import ChannelUID
from org.eclipse.smarthome.config.core import Configuration
from org.eclipse.smarthome.core.library.types import ArithmeticGroupFunction
scriptExtension.importPreset("RuleSupport")
try:
from org.openhab.core.thing import ThingTypeUID
from org.openhab.core.thing import ChannelUID
except:
from org.eclipse.smarthome.core.thing import ThingTypeUID
from org.eclipse.smarthome.core.thing import ChannelUID

try:
from org.eclipse.smarthome.core.library.types import ArithmeticGroupFunction
except:
from org.openhab.core.library.types import ArithmeticGroupFunction

from core.items import add_item
from core.links import add_link
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import weakref # Using this to prevent problems with garbage collection

from org.joda.time import DateTime

from core.jsr223 import scope
Expand Down
1 change: 0 additions & 1 deletion Core/automation/jsr223/core/000_startup_delay.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from org.slf4j import Logger, LoggerFactory

log = LoggerFactory.getLogger("org.eclipse.smarthome.automation.jsr223.jython.startup_delay")

log.info("Checking for initialized context")

while True:
Expand Down
30 changes: 17 additions & 13 deletions Core/automation/jsr223/core/components/100_DirectoryTrigger.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,27 @@
scriptExtension.importPreset(None)

from java.nio.file.StandardWatchEventKinds import ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY

from org.eclipse.smarthome.automation import Visibility
from org.eclipse.smarthome.automation.handler import TriggerHandler
from org.eclipse.smarthome.core.service import AbstractWatchService
try:
from org.openhab.core.automation.handler import TriggerHandler
except:
from org.eclipse.smarthome.automation.handler import TriggerHandler

try:
from org.openhab.core.service import AbstractWatchService
except:
from org.eclipse.smarthome.core.service import AbstractWatchService

import core
from core.log import logging, log_traceback, LOG_PREFIX

log = logging.getLogger(LOG_PREFIX + ".core.DirectoryEventTrigger")

scriptExtension.importPreset("RuleSimple")
scriptExtension.importPreset("RuleSupport")
scriptExtension.importPreset("RuleFactories")

class JythonDirectoryWatcher(AbstractWatchService):

def __init__(self, path, event_kinds=[ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY], watch_subdirectories=False):
AbstractWatchService.__init__(self, path)
self.event_kinds = event_kinds
Expand All @@ -32,7 +40,6 @@ def processWatchEvent(self, event, kind, path):
self.callback(event, kind, path)

class _DirectoryEventTriggerHandlerFactory(TriggerHandlerFactory):

class Handler(TriggerHandler):
@log_traceback
def __init__(self, trigger):
Expand Down Expand Up @@ -70,19 +77,16 @@ def scriptLoaded(*args):
automationManager.addTriggerHandler(
core.DIRECTORY_TRIGGER_MODULE_ID,
_DirectoryEventTriggerHandlerFactory())
log.info("TriggerHandler added".format(core.DIRECTORY_TRIGGER_MODULE_ID))
log.info("TriggerHandler added [{}]".format(core.DIRECTORY_TRIGGER_MODULE_ID))

automationManager.addTriggerType(TriggerType(
core.DIRECTORY_TRIGGER_MODULE_ID,
[],
core.DIRECTORY_TRIGGER_MODULE_ID, None,
"a directory change event is detected.",
"Triggers when a directory change event is detected.",
set(),
Visibility.VISIBLE,
[]))
log.info("TriggerType added".format(core.DIRECTORY_TRIGGER_MODULE_ID))
None, Visibility.VISIBLE, None))
log.info("TriggerType added [{}]".format(core.DIRECTORY_TRIGGER_MODULE_ID))

def scriptUnloaded():
automationManager.removeHandler(core.DIRECTORY_TRIGGER_MODULE_ID)
automationManager.removeModuleType(core.DIRECTORY_TRIGGER_MODULE_ID)
log.info("TriggerType and TriggerHandler removed".format(core.DIRECTORY_TRIGGER_MODULE_ID))
log.info("TriggerType and TriggerHandler removed [{}]".format(core.DIRECTORY_TRIGGER_MODULE_ID))
23 changes: 12 additions & 11 deletions Core/automation/jsr223/core/components/100_OsgiEventTrigger.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
scriptExtension.importPreset(None)

import java.util
import traceback
import uuid

from org.eclipse.smarthome.automation import Visibility
from org.eclipse.smarthome.automation.handler import TriggerHandler
try:
from org.openhab.core.automation.handler import TriggerHandler
except:
from org.eclipse.smarthome.automation.handler import TriggerHandler

import core
from core.osgi.events import OsgiEventAdmin, event_dict, osgi_triggers
from core.log import logging, LOG_PREFIX

log = logging.getLogger(LOG_PREFIX + ".core.OsgiEventTrigger")

scriptExtension.importPreset("RuleSimple")
scriptExtension.importPreset("RuleSupport")
scriptExtension.importPreset("RuleFactories")

Expand Down Expand Up @@ -61,19 +66,15 @@ def get(self, trigger):

def scriptLoaded(*args):
automationManager.addTriggerHandler(core.OSGI_TRIGGER_ID, OsgiEventTriggerHandlerFactory())
log.info("TriggerHandler added".format(core.OSGI_TRIGGER_ID))
log.info("TriggerHandler added [{}]".format(core.OSGI_TRIGGER_ID))

automationManager.addTriggerType(TriggerType(
core.OSGI_TRIGGER_ID,
[],
automationManager.addTriggerType(TriggerType(core.OSGI_TRIGGER_ID, None,
"an OSGI event is published",
"Triggers when an OSGI event is published",
set(),
Visibility.VISIBLE,
[]))
log.info("TriggerType added".format(core.OSGI_TRIGGER_ID))
None, Visibility.VISIBLE, None))
log.info("TriggerType added [{}]".format(core.OSGI_TRIGGER_ID))

def scriptUnloaded():
automationManager.removeHandler(core.OSGI_TRIGGER_ID)
automationManager.removeModuleType(core.OSGI_TRIGGER_ID)
log.info("TriggerType and TriggerHandler removed".format(core.OSGI_TRIGGER_ID))
log.info("TriggerType and TriggerHandler removed [{}]".format(core.OSGI_TRIGGER_ID))
55 changes: 0 additions & 55 deletions Core/automation/jsr223/core/components/100_ShutdownTrigger.py

This file was deleted.

49 changes: 25 additions & 24 deletions Core/automation/jsr223/core/components/100_StartupTrigger.py
Original file line number Diff line number Diff line change
@@ -1,55 +1,56 @@
from org.eclipse.smarthome.automation import Visibility
from org.eclipse.smarthome.automation.handler import TriggerHandler
scriptExtension.importPreset(None)

import traceback

try:
from org.openhab.core.automation.handler import TriggerHandler
except:
from org.eclipse.smarthome.automation.handler import TriggerHandler

import core
from core.jsr223 import scope
from core.log import logging, LOG_PREFIX

log = logging.getLogger(LOG_PREFIX + ".core.StartupTrigger")

scriptExtension.importPreset("RuleSimple")
scriptExtension.importPreset("RuleSupport")
scriptExtension.importPreset("RuleFactories")

class _StartupTriggerHandlerFactory(TriggerHandlerFactory):

class Handler(TriggerHandler):
def __init__(self, trigger):
self.trigger = trigger

def setRuleEngineCallback(self, rule_engine_callback):
rule_engine_callback.triggered(self.trigger, {'startup': True})
def setCallback(self, callback):
from threading import Timer
startTimer = Timer(1, lambda: callback.triggered(self.trigger, {'startup': True}))
startTimer.start()

def dispose(self):
pass

def get(self, trigger):
return _StartupTriggerHandlerFactory.Handler(trigger)
return self.Handler(trigger)

def ungetHandler(self, module, ruleUID, handler):
pass

def dispose(self):
pass

core.STARTUP_MODULE_ID = "jsr223.StartupTrigger"

def scriptLoaded(*args):
automationManager.addTriggerHandler(
core.STARTUP_MODULE_ID,
_StartupTriggerHandlerFactory())
def scriptLoaded(id):
automationManager.addTriggerHandler(core.STARTUP_MODULE_ID, _StartupTriggerHandlerFactory())
log.info("TriggerHandler added [{}]".format(core.STARTUP_MODULE_ID))

automationManager.addTriggerType(TriggerType(
core.STARTUP_MODULE_ID,
[],
"the rule is activated",
"Triggers when a rule is activated the first time",
set(),
Visibility.VISIBLE,
[]))
automationManager.addTriggerType(TriggerType(core.STARTUP_MODULE_ID, None,
"System started or rule saved",
"Triggers when the rule is added, which occurs when the system has started or the rule has been saved",
None, Visibility.VISIBLE, None))
log.info("TriggerType added [{}]".format(core.STARTUP_MODULE_ID))

def scriptUnloaded():
automationManager.removeHandler(core.STARTUP_MODULE_ID)
automationManager.removeModuleType(core.STARTUP_MODULE_ID)
log.info("TriggerType and TriggerHandler removed [{}]".format(core.STARTUP_MODULE_ID))
log.info("TriggerType and TriggerHandler removed")
Original file line number Diff line number Diff line change
@@ -1,32 +1,49 @@
from org.eclipse.smarthome.core.binding import BindingInfoProvider
scriptExtension.importPreset(None)

import core
from distutils.log import info

class JythonBindingInfoProvider(BindingInfoProvider):
def __init__(self):
self.binding_infos = {}

def getBindingInfo(self, id, locale):
return self.binding_infos.get(id, None)

def getBindingInfos(self, locale):
return set(self.binding_infos.values())
provider_class = None
try:
from org.openhab.core.binding import BindingInfoProvider
provider_class = "org.openhab.core.binding.BindingInfoProvider"
except:
from org.eclipse.smarthome.core.binding import BindingInfoProvider
provider_class = "org.eclipse.smarthome.core.binding.BindingInfoProvider"

def add(self, info):
self.binding_infos[info.id] = info
import core
from core.log import logging, LOG_PREFIX

try:
class JythonBindingInfoProvider(BindingInfoProvider):
def __init__(self):
self.binding_infos = {}

def getBindingInfo(self, id, locale):
return self.binding_infos.get(id, None)

def remove(self, info):
if info.id in self.binding_infos:
del self.binding_infos[info.id]
def getBindingInfos(self, locale):
return set(self.binding_infos.values())

def add(self, info):
self.binding_infos[info.id] = info

core.JythonBindingInfoProvider = JythonBindingInfoProvider()
def remove(self, info):
if info.id in self.binding_infos:
del self.binding_infos[info.id]

core.JythonBindingInfoProvider = JythonBindingInfoProvider()
except:
core.JythonBindingInfoProvider = None
import traceback
logging.getLogger(LOG_PREFIX + ".core.JythonBindingInfoProvider").warn(traceback.format_exc())

def scriptLoaded(id):
core.osgi.register_service(
core.JythonBindingInfoProvider,
["org.eclipse.smarthome.core.binding.BindingInfoProvider"])
if core.JythonBindingInfoProvider is not None:
core.osgi.register_service(core.JythonBindingInfoProvider, [provider_class])
logging.getLogger(LOG_PREFIX + ".core.JythonBindingInfoProvider.scriptLoaded").debug("Registered service")

def scriptUnloaded():
core.osgi.unregister_service(core.JythonBindingInfoProvider)
delattr(core, 'JythonBindingInfoProvider')
if core.JythonBindingInfoProvider is not None:
core.osgi.unregister_service(core.JythonBindingInfoProvider)
core.JythonBindingInfoProvider = None
logging.getLogger(LOG_PREFIX + ".core.JythonBindingInfoProvider.scriptUnloaded").debug("Unregistered service")
Loading

0 comments on commit 3f93b71

Please sign in to comment.