diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..88530cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +openhab/openhab_userdata/cache +openhab/openhab_userdata/logs +openhab/openhab_userdata/tmp diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..29ece41 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ +.PHONY: all test clean build + +ID := $(shell id -u) +GID := $(shell id -g) + +all: + ID=$(ID) GID=$(GID) docker compose up -d diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8af036c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +services: + mqtt: + image: "bytebeamio/rumqttd:0.18.0" + ports: + - 1883:1883 + - 1884:1884 + + openhab: + image: "openhab/openhab:4.0.3" + restart: always + network_mode: host + user: "${UID}:${GID}" + volumes: + - "/etc/localtime:/etc/localtime:ro" + - "./openhab/openhab_addons:/openhab/addons" + - "./openhab/openhab_conf:/openhab/conf" + - "./openhab/openhab_userdata:/openhab/userdata" + environment: + CRYPTO_POLICY: "unlimited" + EXTRA_JAVA_OPTS: "-Duser.timezone=Canada/Eastern" + OPENHAB_HTTP_PORT: "8080" + OPENHAB_HTTPS_PORT: "8043" + diff --git a/mqtt/rumqttd.toml b/mqtt/rumqttd.toml new file mode 100644 index 0000000..ecc741e --- /dev/null +++ b/mqtt/rumqttd.toml @@ -0,0 +1,118 @@ +id = 0 + +# A commitlog read will pull full segment. Make sure that a segment isn't +# too big as async tcp writes readiness of one connection might affect tail +# latencies of other connection. Not a problem with preempting runtimes +[router] +id = 0 +max_connections = 10010 +max_outgoing_packet_count = 200 +max_segment_size = 104857600 +max_segment_count = 10 +# shared_subscriptions_strategy = "random" # "sticky" | "roundrobin" ( default ) | "random" +# Any filters that match to configured filter will have custom segment size. + # [router.custom_segment.'/office/+/devices/status'] + # max_segment_size = 102400 + # max_segment_count = 2 + # [router.custom_segment.'/home/+/devices/status'] + # max_segment_size = 51200 + # max_segment_count = 2 + +# [bridge] +# name = "bridge-1" +# addr = "localhost:1883" +# qos = 0 +# sub_path = "#" +# reconnection_delay = 5 +# ping_delay = 5 +# timeout_delay = 5 +# [bridge.connections] +# connection_timeout_ms = 60000 +# max_payload_size = 20480 +# max_inflight_count = 500 +# dynamic_filters = true +# [bridge.transport.tls] +# ca = "ca.cert.pem" +# client_auth = { certs = "test-1.cert.pem", key = "test-1.key.pem" } + +# Configuration of server and connections that it accepts +[v4.1] +name = "v4-1" +listen = "0.0.0.0:1883" +next_connection_delay_ms = 1 + [v4.1.connections] + connection_timeout_ms = 60000 + max_payload_size = 20480 + max_inflight_count = 100 + dynamic_filters = true + # auth = { user1 = "p@ssw0rd", user2 = "password" } + # [v4.1.connections.auth] + # user1 = "p@ssw0rd" + # user2 = "password" + +# [v4.2] +# name = "v4-2" +# listen = "0.0.0.0:8883" +# next_connection_delay_ms = 10 +# # tls config for rustls +# [v4.2.tls] +# capath = "/etc/tls/ca.cert.pem" +# certpath = "/etc/tls/server.cert.pem" +# keypath = "/etc/tls/server.key.pem" +# # settings for all the connections on this server +# [v4.2.connections] +# connection_timeout_ms = 60000 +# throttle_delay_ms = 0 +# max_payload_size = 20480 +# max_inflight_count = 100 +# max_inflight_size = 1024 + +[v5.1] +name = "v5-1" +listen = "0.0.0.0:1884" +next_connection_delay_ms = 1 + [v5.1.connections] + connection_timeout_ms = 60000 + max_payload_size = 20480 + max_inflight_count = 100 + +[prometheus] +listen = "127.0.0.1:9042" +interval = 1 + +[ws.1] +name = "ws-1" +listen = "0.0.0.0:8083" +next_connection_delay_ms = 1 + [ws.1.connections] + connection_timeout_ms = 60000 + max_client_id_len = 256 + throttle_delay_ms = 0 + max_payload_size = 20480 + max_inflight_count = 500 + max_inflight_size = 1024 + +# [ws.2] +# name = "ws-2" +# listen = "0.0.0.0:8081" +# next_connection_delay_ms = 1 +# [ws.2.tls] +# capath = "/etc/tls/ca.cert.pem" +# certpath = "/etc/tls/server.cert.pem" +# keypath = "/etc/tls/server.key.pem" +# [ws.2.connections] +# connection_timeout_ms = 60000 +# max_client_id_len = 256 +# throttle_delay_ms = 0 +# max_payload_size = 20480 +# max_inflight_count = 500 +# max_inflight_size = 1024 + +[console] +listen = "0.0.0.0:3030" + +# [metrics] +# [metrics.alerts] +# push_interval = 1 +# [metrics.meters] +# push_interval = 1 diff --git a/openhab/openhab_conf/html/index.html b/openhab/openhab_conf/html/index.html new file mode 100644 index 0000000..58ba0e9 --- /dev/null +++ b/openhab/openhab_conf/html/index.html @@ -0,0 +1,5 @@ + +

openHAB user provided static content

+

Serve your own static html pages or resources from here. Files stored in the openHAB configuration subfolder html will be available through the HTTP server of openHAB, e.g. http://device-address:8080/static/image.png.

+

Resources for sitemap elements (image, video,...) can also be provided though this folder.

+ diff --git a/openhab/openhab_conf/html/readme.txt b/openhab/openhab_conf/html/readme.txt new file mode 100644 index 0000000..5eeeb99 --- /dev/null +++ b/openhab/openhab_conf/html/readme.txt @@ -0,0 +1,3 @@ +Serve your own static html pages or resources from here. +Files stored in this folder will be available through the HTTP server of openHAB, e.g. "http://device-address:8080/static/image.png". +Resources for sitemap elements (image, video,...) can also be provided though this folder. diff --git a/openhab/openhab_conf/icons/classic/readme.txt b/openhab/openhab_conf/icons/classic/readme.txt new file mode 100644 index 0000000..7fc793f --- /dev/null +++ b/openhab/openhab_conf/icons/classic/readme.txt @@ -0,0 +1,6 @@ +Your additional icons go here. +Icons can be provided as png (32x32) or preferably as svg files. +ClassicUI and BasicUI can be configured to accept svg (default) or png icons. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/items.html#icons diff --git a/openhab/openhab_conf/items/IFT605_SmartClothes.items b/openhab/openhab_conf/items/IFT605_SmartClothes.items new file mode 100644 index 0000000..c939242 --- /dev/null +++ b/openhab/openhab_conf/items/IFT605_SmartClothes.items @@ -0,0 +1,38 @@ + +Group Room +Group SmartClothes + +Group Sensors +Group:Number:AVG Luminance "average luminosity" (Sensors) +Group:Number:AVG Noise "average noise" (Sensors) + +Group Actuators +Group Lights (Actuators) + +Group Batteries + +Contact room1 "room 1" + +// Room fixed devices +Number rfidReader "RFID reader" (Sensors, Room) {channel="rfidReader:device:reader1"} + +// smart clothes, mobile devices +Color stripColor "el-wire" (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip1"} +Dimmer stripIntensity "el-wire" (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip1"} + +Color stripColor2 "el-wire" (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip2"} +Dimmer stripIntensity2 "el-wire" (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip2"} + +Switch vibrationPatch "vibration patch" (Actuators, SmartClothes) {channel="vibrationPatch:device:vibration"} + +Number luminance "luminance level" (Luminance, Sensors, SmartClothes) {channel=zwave:device:luxmeter:node2:sensor_luminance"} +Number luxmeterBattery "luxmeter battery level" (Batteries, SmartClothes) {channel="zwave:device:luxmeter:node2:battery-level"} + +Number noise "noise level" (Noise, Sensors, SmartClothes) {channel="Channel=“zwave:device:noisemeter:node3:sensor_noise”"} +Number noiseSensorBattery "noise sensor battery level" (Batteries, SmartClothes) {channel="zwave:device:noisemeter:node3:battery-level"} + +// optionnel +Number luminanceWristBand "luminance level" (Sensors, SmartClothes) {channel="zwave:device:wristband:node4:luminance"} +Number noiseWristBand "noise level" (Sensors, SmartClothes) {channel="zwave:device:wristband:node4:luminance"} +Contact gsrWristBand "galvanic skin response level" (Sensors, SmartClothes) {channel=“zwave:device:wristband:node4:galvanicSkinResponse"} +Switch vibrationWristBand "noise level" (Actuators, SmartClothes) {channel="zwave:device:wristband:node4:vibration"} diff --git a/openhab/openhab_conf/items/readme.txt b/openhab/openhab_conf/items/readme.txt new file mode 100644 index 0000000..b214510 --- /dev/null +++ b/openhab/openhab_conf/items/readme.txt @@ -0,0 +1,5 @@ +Your item definitions go here. +All items files have to have the ".items" file extension and must follow a special syntax. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/items.html diff --git a/openhab/openhab_conf/persistence/readme.txt b/openhab/openhab_conf/persistence/readme.txt new file mode 100644 index 0000000..b1df35b --- /dev/null +++ b/openhab/openhab_conf/persistence/readme.txt @@ -0,0 +1,5 @@ +Your persistence configuration goes here. +All persistence files have to have the ".persist" file extension and must follow a special syntax. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/persistence.html diff --git a/openhab/openhab_conf/rules/IFT605_SmartClothes.rules b/openhab/openhab_conf/rules/IFT605_SmartClothes.rules new file mode 100644 index 0000000..26abcc6 --- /dev/null +++ b/openhab/openhab_conf/rules/IFT605_SmartClothes.rules @@ -0,0 +1,175 @@ +import org.eclipse.smarthome.model.script.ScriptServiceUtil +// import org.eclipse.smarthome.core.library.items.StringItem +import java.util.HashMap +import java.util.HashSet + +val TAG_FileName = "IFT605SmartClothes.rules" +val smartClothesID = "12345678" + +var Contact currentRoom +var MQTTBroker currentMQTTBroker + +// managing context +var boolean goodConditions = true // of course, only one of good/bad conditions is required +var boolean badConditions = false +var badConditionsStartTime = 0 // in milliseconds +val URGE_TO_CHANGE_ROOM_TIME_TRIGGER = 300000 // 5 minutes + +// managing people in the room +var people = new HashSet() +var luminanceMeasures = new HashMap() +var noiseMeasures = new HashMap() + +// j'entre dans une pièce +val iEnter = [ ContactItem room, String smartClothesID, MQTTBroker broker | + broker.sendCommand(CONNECT); + broker.sendCommand(SUBSCRIBE, "room/1/#"); + broker.sendCommand(SUBSCRIBE, "smartclothes/#"); + broker.sendCommand(SUBSCRIBE, "room/1/tag/+"); + broker.sendCommand(SUBSCRIBE, "smartclothes/+/sensor/luminance"); + broker.sendCommand(SUBSCRIBE, "smartclothes/+/sensor/noise"); + // informer que l'on vient d'entrer dans la pièce + broker.sendCommand(PUBLISH, smartClothesID+"/status", "Online") + vibrationPatch.sendCommand(OFF) +] + +// je sors de une pièce +val iQuit = [ ContactItem room, String smartClothesID, MQTTBroker broker | + broker.sendCommand(UNSUBSCRIBE, "room/1/#"); + broker.sendCommand(UNSUBSCRIBE, "smartclothes/#"); + broker.sendCommand(UNSUBSCRIBE, "room/1/tag/+"); + broker.sendCommand(UNSUBSCRIBE, "smartclothes/+/sensor/luminance"); + broker.sendCommand(UNSUBSCRIBE, "smartclothes/+/sensor/noise"); + // informer que l'on vient d'entrer dans la pièce + broker.sendCommand(PUBLISH, smartClothesID+"/status", "Offline") +] +// le vêtement entre dans une pièce +val someoneEnterInRoom = [ String smartClothesID | + people.add(smartClothesID) +] + +val someoneQuitRoom = [ String smartClothesID | + people.remove(smartClothesID) + noiseMeasures.remove(smartClothesID) + luminanceMeasures.remove(smartClothesID) +] + +// fonctions utilitaires pour la gestion du contexte +// autre solutions pour calculer les moyennes, utiliser les HashMap luminanceMeasures et noiseMeasures +val Integer averageLuminance = [ | Luminance.state +] + +val Integer averagenoise = [ | Noise.state +] + +val boolean checkGoodConditions = [ Integer roomLuminance, Integer roomNoise | + return (LUMINOSITE_MIN < roomLuminance || roomLuminance < LUMINOSITE_MAX) + && (NIVEAU_SONORE_MIN < roomNoise || roomNoise < NIVEAU_SONORE_MAX) +] + +val reactToNewConditions = [ | + goodConditions = checkGoodConditions(averageLuminance(), averageNoise()) + badConditions = !goodConditions + if (goodConditions) { + badConditionsStartTime = 0 + vibrationPatch.sendCommand(OFF) + // rapprocher l'éclairage de la valeur optimale + if (Luminance.state < LUMOINOSITE_OPTIMALE) { + stripIntensity.sendCommand(INCREASE) + } else { + stripIntensity.sendCommand(DECREASE) + } + } else { + // Éviter de rester trop longtemps dans des conditions défavorables + vibrationPatch.sendCommand(ON) + if (badConditionsStartTime == 0){ + badConditionsStartTime = now.getMillis(); + } + if (now.getMillis() - badConditionsStartTime > URGE_TO_CHANGE_ROOM_TIME_TRIGGER) { + vibrationPatch.sendCommand(ON) + } + } +] + + + +rule "Démarrage de openHAB" +when + System started +then + logInfo(TAG_FileName, "Rule : Démarrage de openHAB") + currentRoom = room1 + currentMQTTBroker = room1MQTT + iEnter(currentRoom, smartClothesID, currentMQTTBroker) +end + +// Diffuser les mesures de ses capteurs aux autres vêtements intelligents +rule "lecture d'une mesure de luminosité par le capteur du vêtement" +when + // Item luminance received update + Member of Luminance received update +then + var sensorName = triggeringItem.name + var value = triggeringItem.state + currentMQTTBroker.sendCommand(PUBLISH, "smartclothes/"+smartClothesID+"/sensor/luminance", value) + +end + +rule "lecture d'une mesure de bruit par le capteur du vêtement" +when + // Item noise received update + Member of Noise received update +then + var sensorName = triggeringItem.name + var value = triggeringItem.state + currentMQTTBroker.sendCommand(PUBLISH, "smartclothes/"+smartClothesID+"/sensor/noise", value) +end + +// Gérer son contexte ambiant + +rule "nouvelle mesure de bruit publiée par le courtier MQTT" +when currentMQTTBroker "smartclothes/+/sensor/noise" changed +then + noiseMeasures.put(extractID(triggeringItem.newState.topic), trigerringItem.newState.value) + reactToNewConditions() +end + +rule "nouvelle mesure de bruit publiée par le courtier MQTT" +when currentMQTTBroker "smartclothes/+/sensor/luminance" changed +then + luminanceMeasures.put(extractID(triggeringItem.newState.topic), trigerringItem.newState.value) + reactToNewConditions() +end + +// Tenir compte des arrivées et départs de personnes dans la salle +rule "arrivée d'une personne" +when + // si on n'utilise pas le mécanisme des dernières volontés de MQTT, + // il faut surveiller les éléments pertinents à la main + // currentMQTTBroker "room/+/tag" changed //lecture d'un tag RFID + // or currentMQTTBroker "smartclothes/+/sensor/luminance" changed // member of Luminance changed + // or currentMQTTBroker "smartclothes/+/sensor/noise" changed + currentMQTTBroker "+/status " changed to "Online" //lecture d'un tag RFID + +then + String triggeringSmartClothesID = extractID(triggeringItem.newState.topic) + someoneEnterInRoom(triggeringSmartClothesID) +end + +// Tenir compte des arrivées et départs de personnes dans la salle +rule "départ d'une personne" +when + currentMQTTBroker "+/status " changed to "Offline" //lecture d'un tag RFID +then + String triggeringSmartClothesID = extractID(triggeringItem.newState.topic) + someoneQuitRoom(triggeringSmartClothesID) +end + +rule "Arrêt de openHAB" +when + System shuts down +then + logInfo(TAG_FileName, " Rule : Arrêt de openHAB") + // sauvegarder les états des items et le contexte + iQuit(currentRoom, smartClothesID, currentMQTTBroker) +end diff --git a/openhab/openhab_conf/rules/readme.txt b/openhab/openhab_conf/rules/readme.txt new file mode 100644 index 0000000..f7952e1 --- /dev/null +++ b/openhab/openhab_conf/rules/readme.txt @@ -0,0 +1,5 @@ +Your rules go here. +All rule files have to have the ".rules" file extension and must follow a special syntax. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/rules-dsl.html diff --git a/openhab/openhab_conf/scripts/readme.txt b/openhab/openhab_conf/scripts/readme.txt new file mode 100644 index 0000000..0faff68 --- /dev/null +++ b/openhab/openhab_conf/scripts/readme.txt @@ -0,0 +1,5 @@ +Your scripts go here. +All script files have to have the ".script" file extension and must follow a special syntax. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/rules-dsl.html#scripts diff --git a/openhab/openhab_conf/services/addons.cfg b/openhab/openhab_conf/services/addons.cfg new file mode 100644 index 0000000..87e8dbb --- /dev/null +++ b/openhab/openhab_conf/services/addons.cfg @@ -0,0 +1,36 @@ +# Access Remote Add-on Repository +# Defines whether the remote openHAB add-on repository should be used for browsing and installing add-ons. (default is true) +# +#remote = true + +# Some add-on services may provide add-ons where compatibility with the currently running system is not expected. +# Enabling this option will include these entries in the list of available add-ons. +# +#includeIncompatible = false + +# The add-on configuration in the lists below is applied EVERY TIME openHAB is started. +# Add-ons installed using the UI that do not occur in the lists will be uninstalled each startup. +# When lists are commented again any add-ons in the list remain installed and are not removed. +# So if you want to uninstall all add-ons part of a list, first remove all add-ons from it, restart +# openHAB and then comment the list. + +# A comma-separated list of automation services to install (e.g. "automation = groovyscripting") +#automation = + +# A comma-separated list of bindings to install (e.g. "binding = knx,sonos,zwave") +#binding = + +# A comma-separated list of miscellaneous services to install (e.g. "misc = openhabcloud") +#misc = + +# A comma-separated list of persistence services to install (e.g. "persistence = jpa,rrd4j") +#persistence = + +# A comma-separated list of transformation services to install (e.g. "transformation = jsonpath,map") +#transformation = + +# A comma-separated list of UIs to install (e.g. "ui = basic,habpanel") +#ui = + +# A comma-separated list of voice services to install (e.g. "voice = googletts,marytts") +#voice = diff --git a/openhab/openhab_conf/services/basicui.cfg b/openhab/openhab_conf/services/basicui.cfg new file mode 100644 index 0000000..6c91e62 --- /dev/null +++ b/openhab/openhab_conf/services/basicui.cfg @@ -0,0 +1,23 @@ +# Defines the UI theme. +# +#theme=default + +# Defines whether UI renders icons for the widgets or not. +# +#enableIcons=true + +# When enabled, changes the layout so that more widgets can fit on the screen. +# +#condensedLayout=false + +# Displays all widget states in uppercase. +# +#capitalizeValues=false + +# Play audio sent to the web audio sink. +# +#webAudio=false + +# The sitemap to show if no parameter is passed. +# +#defaultSitemap= diff --git a/openhab/openhab_conf/services/readme.txt b/openhab/openhab_conf/services/readme.txt new file mode 100644 index 0000000..62ba811 --- /dev/null +++ b/openhab/openhab_conf/services/readme.txt @@ -0,0 +1,6 @@ +Your service configurations will reside here. +All configuration files have to have the ".cfg" file extension. +Service configuration files are automatically created as soon as you install an add-on that can be configured. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/services.html diff --git a/openhab/openhab_conf/services/rrd4j.cfg b/openhab/openhab_conf/services/rrd4j.cfg new file mode 100644 index 0000000..cd8d75b --- /dev/null +++ b/openhab/openhab_conf/services/rrd4j.cfg @@ -0,0 +1,10 @@ +# configure specific rrd properties for given items in this file. +# please refer to the documentation available at +# https://www.openhab.org/addons/persistence/rrd4j/ +# +# default_numeric and default_other are internally defined defnames and are used as +# defaults when no other defname applies + +#.def=[ABSOLUTE|COUNTER|DERIVE|GAUGE],,[|U],[|U], +#.archives=[AVERAGE|MIN|MAX|LAST|FIRST|TOTAL],,, +#.items= diff --git a/openhab/openhab_conf/services/runtime.cfg b/openhab/openhab_conf/services/runtime.cfg new file mode 100644 index 0000000..dcabe47 --- /dev/null +++ b/openhab/openhab_conf/services/runtime.cfg @@ -0,0 +1,277 @@ +#################################### LOCALE #################################### + +# The default language that should be used. If not specified, the system default locale is used. +# The ISO 639 alpha-2 or alpha-3 language code (if there is no alpha-2 one). +# Example: "en" (English), "de" (German), "ja" (Japanese), "kok" (Konkani) +# +#org.openhab.i18n:language= + +# The region that should be used. +# ISO 3166 alpha-2 country code or UN M.49 numeric-3 area code. +# Example: "US" (United States), "DE" (Germany), "FR" (France), "029" (Caribbean) +# +#org.openhab.i18n:region= + +# A time zone can be set from the user interface. The underlying system's time zone is the default. +# +#org.openhab.i18n:timezone= + +# The location of this installation. +# Coordinates as ,[] +# Example: "52.5200066,13.4049540" (Berlin) +# +#org.openhab.i18n:location= + +# The measurement system is used for unit conversion. +# 2 values are accepted: +# - SI: Metric +# - US: Imperial (US) +# +#org.openhab.i18n:measurementSystem= + + +################################# PERSISTENCE ################################## + +# The persistence service to use if no other is specified. +# +#org.openhab.persistence:default= + + +#################################### AUDIO ##################################### + +# This parameter defines the default audio source to use (if not set, the first available one will be used. +# +#org.openhab.audio:defaultSource= + +# This parameter defines the default audio sink to use (if not set, the first available one will be used. +# +#org.openhab.audio:defaultSink= + + +#################################### VOICE ##################################### + +# This parameter defines the default text-to-speech service to use (if not set, the first available one will be used. +# +#org.openhab.voice:defaultTTS= + +# This parameter defines the default speech-to-text service to use (if not set, the first available one will be used. +# +#org.openhab.voice:defaultSTT= + +# The default voice to use if no specific TTS service or voice is specified. +# +#org.openhab.voice:defaultVoice= + +# The default human language interpreter to use if no other is specified. +# +#org.openhab.voice:defaultHLI= + +# The default keyword spotting service to use if no other is specified. +# +#org.openhab.voice:defaultKS= + +# The magic word to spot before initiating a dialog. +# +#org.openhab.voice:keyword= + +# If provided, the item will be switched on during the period when the dialog processor has spotted the keyword and is listening for commands. +# +#org.openhab.voice:listeningItem= + +# Listening Melody: A melody to be played to advertise the user the dialog processing is going to start. +# This is a spaced separated list of notes. Example: "A O:100 A':50" +# Leave empty to disable it. +# +#org.openhab.voice:listeningMelody= + +# Enable TTS caching: true to allow TTS services to cache audio files on disk. +# +#org.openhab.voice:enableCacheTTS=true + +# TTS Cache Size: the limit size of the TTS cache (in kB). +# +#org.openhab.voice:cacheSizeTTS=10240 + + +################################### SITEMAP #################################### + +# Defines how the members of a group are sorted in UI. +# 3 values are accepted: +# - NONE: No sorting +# - LABEL: Sorted by label +# - NAME: Sorted by name +# +#org.openhab.sitemap:groupMembersSorting=NONE + + +#################################### CHART ##################################### + +# Defines the default height in pixels for the chart to build. +# +#org.openhab.chart:defaultHeight=240 + +# Defines the default width in pixels for the chart to build. +# +#org.openhab.chart:defaultWidth=480 + +# Defines the scale to apply to the requested chart height (0.5 to divide by 2 for example). +# +#org.openhab.chart:scale=1 + +# Defines the maximum width in pixels for the chart to build. +# +#org.openhab.chart:maxWidth= + + +################################### NETWORK #################################### + +# Primary address subnet (e.g. 192.168.1.0/24). +# +#org.openhab.network:primaryAddress= + +# A broadcast address (e.g. 192.168.1.255). +# +#org.openhab.network:broadcastAddress= + +# Use only one IP address per interface and family. +# +#org.openhab.network:useOnlyOneAddress=false + +# Use IPv6 Addresses if available. +# +#org.openhab.network:useIPv6=true + +################################## EPHEMERIS ################################### + +# This parameter defines the default list of usual non workable days for the Ephemeris service. +# The value has to be surrounded by square brackets ('[' and ']') and optionally contain value delimiters - a comma ',' to be interpreted as a list of values. +# Example: [SATURDAY,SUNDAY] +# +#org.openhab.ephemeris:dayset-weekend=[SATURDAY,SUNDAY] + +# See https://jollyday.sourceforge.net/data.html for help with the following parameters. +# This parameter defines the specific country to get the holidays for. +# Examples: Germany = "de", United States of America = "us" +# +#org.openhab.ephemeris:country= + +# This parameter defines the specific region/state to get the holidays for. +# Examples: New York = "ny", Baden-Wuerttemberg = "bw" +# +#org.openhab.ephemeris:region= + +# This parameter defines the specific city to get the holidays for. +# Examples: München = "mu" +# +#org.openhab.ephemeris:city= + +################################# MISCELLANOUS ################################# + +# The karaf sshHost parameter configures the bind address for the ssh login to karaf. +# Default is 127.0.0.1 (localhost), so it is only possible to login from the local machine. +# +# Setting this to the address of another network interfaces will allow login from this network. +# Setting this to 0.0.0.0 will allow login from all network interfaces. +# +# !!! Security warning !!! +# Remember to change default login/password, if you allow external login. +# See https://www.openhab.org/docs/administration/console.html for details. +# +#org.apache.karaf.shell:sshHost = 0.0.0.0 + +# Cross-origin resource sharing (CORS) is a browser security feature that restricts cross-origin +# HTTP requests that are initiated from scripts running in the browser. Setting this option to 'true' +# will disable the browser cross-origin check. This is required if you want to use a web UI that is not +# hosted on the openHAB server domain. +#org.openhab.cors:enable=true + + +################################### REST API ################################### + +# Allow the use of Basic authentication to access protected API resources, in addition to access tokens and API tokens +# +#org.openhab.restauth:allowBasicAuth=true + +# When basic authentication is activated, credentials are put in a cache in order to speed up request +# authorization. The entries in the cache expire after a while in order to not keep credentials in memory indefinitely. +# This value defines the expiration time in hours. Set it to 0 for disabling the cache. +# +#org.openhab.restauth:cacheExpiration=6 + +# By default, operations requiring the "user" role are available when unauthenticated. +# Disabling this option will enforce authorization for these operations. +# Warning: This causes clients that do not support authentication to break. +# +#org.openhab.restauth:implicitUserRole=false + +# Grant implicit user role to requests originating from these networks. +# Comma separated list of CIDR. +# This value is ignored if "org.openhab.restauth:implicitUserRole" is enabled. +# +#org.openhab.restauth:trustedNetworks=127.0.0.1/32, 192.168.1.1/24 + + +############################### LANGUAGE SERVER ################################ + +# The port the language server listens to. +# +#org.openhab.lsp:port=5007 + + +################################# JSON STORAGE ################################# + +# Sets the number of backup files to keep. +# +#org.openhab.storage.json:backup_files=5 + +# Sets the time to wait before writing changes to disk. This can reduce the number of writes when many changes are being introduced within a short period. +# The value is specified in milliseconds +# +#org.openhab.storage.json:write_delay=500 + +# Sets the maximum period the service will wait to write data to disk in the event that many changes are happening continually. +# The value is specified in milliseconds +# +#org.openhab.storage.json:max_defer_delay=30000 + + +################################# MARKETPLACE ################################## + +# If set to false no add-ons from the community marketplace will be shown. Already installed add-ons will still be available. +# +#org.openhab.marketplace:enable=true + +# Include entries which have not been tagged as published. Warning: this may include entries that are not ready and might not work or harm your installation. +# Enable at your own risk, for testing purposes only. +# +#org.openhab.marketplace:showUnpublished=false + +# Specify the API key to use on the community forum (for staff and curators - this allows for instance to see content which is not yet reviewed or otherwise hidden from the general public). +# Leave blank if you don't have one. +# +#org.openhab.marketplace:apiKey= + + +############################# JSON ADD-ON SERVICE ############################## + +# Pipe (|) separated list of URLS that provide 3rd party add-on services via Json files. +# Warning: Bundles distributed over 3rd party add-on services may lack proper review and can potentially contain malicious code and thus harm your system. +# +#org.openhab.jsonaddonservice:urls= + +# Include entries which have not been tagged as "stable". These add-ons should be used for testing purposes only and are not considered production-system ready. +# +#org.openhab.jsonaddonservice:showUnstable=false + + +#################################### INBOX ##################################### + +# If enabled, an Inbox result matching an existing thing is automatically ignored. +# If set to false, the Inbox may contain results although identical things already exist. +# +#org.openhab.inbox:autoIgnore=true + +# If enabled, Inbox results are automatically approved, unless they were marked as ignored. +# +#org.openhab.inbox:autoApprove=false + diff --git a/openhab/openhab_conf/sitemaps/readme.txt b/openhab/openhab_conf/sitemaps/readme.txt new file mode 100644 index 0000000..0e78121 --- /dev/null +++ b/openhab/openhab_conf/sitemaps/readme.txt @@ -0,0 +1,5 @@ +Your sitemap definitions go here. +All sitemap files have to have the ".sitemap" file extension and must follow a special syntax. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/ui/sitemaps.html diff --git a/openhab/openhab_conf/sounds/barking.mp3 b/openhab/openhab_conf/sounds/barking.mp3 new file mode 100644 index 0000000..5a3c41d Binary files /dev/null and b/openhab/openhab_conf/sounds/barking.mp3 differ diff --git a/openhab/openhab_conf/sounds/doorbell.mp3 b/openhab/openhab_conf/sounds/doorbell.mp3 new file mode 100644 index 0000000..7a8a5a3 Binary files /dev/null and b/openhab/openhab_conf/sounds/doorbell.mp3 differ diff --git a/openhab/openhab_conf/things/IFT605_SmartClothes.things b/openhab/openhab_conf/things/IFT605_SmartClothes.things new file mode 100644 index 0000000..ca258ca --- /dev/null +++ b/openhab/openhab_conf/things/IFT605_SmartClothes.things @@ -0,0 +1,62 @@ +/** + Vêtement intelligent +**/ + +Bridge elwire:bridge:ewbridge [ ipAddress="192.168.3.123" ] { + // gateway el-wire + Thing 0210 strip1 [stripId="1"] //référer par elwire:0210:ewbridge:strip1 + Thing 0220 strip2 [stripId="2"] // référer par elwire:0220:ewbridge:strip2 +} +//vibration patch +Thing vibrationPatch:device:vibration "vibration patch" @ "smart clothes" + + +// voir description à https://www.openhab.org/addons/bindings/zwave/doc/things.html +Bridge zwave:serial_zstick:8c582004 "ZWave Controller" [ port="/dev/ttyACM0", controller_softreset="false", controller_master="true", heal_enable="true", security_networkkey="???" ] { + // ampèremètres placés sur les interrupteurs du plafonnier + Thing luxMeter node2 "luxmeter " @ "smart clothes" [ node_id=2 ] { + Channels: + // sensors + Type number : luminance [ updateInterval=10 ] + Type number : battery-level [ updateInterval=10 ] + } + Thing noiseMeter node3 "noise meter" @ "smart clothes" [ node_id=3 ] + Channels: + // sensors + Type number : noise [ updateInterval=10 ] + Type number : battery-level [ updateInterval=10 ] + Thing wristband node4 "wristBand" @ "smart clothes" [ node_id=4 ] { + Channels: + // sensors + Type number : luminance [ updateInterval=10 ] + Type number : noise [ updateInterval=10 ] + Type string : accelerometer [ updateInterval=10 ] + Type number : speed [ updateInterval=10 ] + Type number : galvanicSkinResponse [ updateInterval=10 ] + // effectors + Type switch : vibration + Type switch : enable + } +} + +/** + Pièce +**/ + +// https://www.smarthomeblog.net/mqtt-openhab/ +// https://gist.github.com/davidgraeff/6c00d2ad5e4bc553f5f209118307d8fd +// https://community.openhab.org/t/solved-oh-2-4-mqtt-binding-generic-thing-statetopic-working-commandtopic-not-working/63619 + +Bridge mqtt:systemBroker:embedded-mqtt-broker [ host="127.0.0.1", secure=false ] +{ + Thing mqtt:topic:room1MQTT { + Channels: + Type string : room1 "all MQTT room events" @ "room 1"[ stateTopic="room/1/#" ] + Type string : smartclothes "all MQTT smart clothes events" @ "room 1"[ stateTopic="smartclothes/#" ] + Type switch : tag "RFID MQTT event" @ "room 1" [ stateTopic="room/+/tag"] + Type string : noise "noise MQTT event" @ "room 1" [ stateTopic="smartclothes/+/sensor/noise" ] + Type string : luminance "luminosity MQTT event" @ "room 1" [ stateTopic="smartclothes/+/sensor/luminance" ] + } +} + +Thing rfidReader:device:reader1 "rfidReader " @ "room 1" diff --git a/openhab/openhab_conf/things/readme.txt b/openhab/openhab_conf/things/readme.txt new file mode 100644 index 0000000..27b6689 --- /dev/null +++ b/openhab/openhab_conf/things/readme.txt @@ -0,0 +1,5 @@ +Your thing definitions go here. +All thing files have to have the ".things" file extension and must follow a special syntax. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/things.html diff --git a/openhab/openhab_conf/transform/de.map b/openhab/openhab_conf/transform/de.map new file mode 100644 index 0000000..8cc1579 --- /dev/null +++ b/openhab/openhab_conf/transform/de.map @@ -0,0 +1,3 @@ +CLOSED=zu +OPEN=offen +NULL=undefiniert diff --git a/openhab/openhab_conf/transform/en.map b/openhab/openhab_conf/transform/en.map new file mode 100644 index 0000000..bd08f17 --- /dev/null +++ b/openhab/openhab_conf/transform/en.map @@ -0,0 +1,4 @@ +CLOSED=closed +OPEN=open +NULL=unknown + \ No newline at end of file diff --git a/openhab/openhab_conf/transform/readme.txt b/openhab/openhab_conf/transform/readme.txt new file mode 100644 index 0000000..6933c16 --- /dev/null +++ b/openhab/openhab_conf/transform/readme.txt @@ -0,0 +1,5 @@ +Transformations like map or jsonpath can utilize configuration files with data definitions. +These files have their specific file extensions and syntax definition. + +Check out the openHAB documentation for more details: +https://www.openhab.org/docs/configuration/transformations.html diff --git a/openhab/openhab_userdata/config/jmx/acl/org/apache/karaf/bundle.config b/openhab/openhab_userdata/config/jmx/acl/org/apache/karaf/bundle.config new file mode 100644 index 0000000..66fc88b --- /dev/null +++ b/openhab/openhab_userdata/config/jmx/acl/org/apache/karaf/bundle.config @@ -0,0 +1,19 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/jmx.acl.org.apache.karaf.bundle.cfg" +install="manager" +refresh="manager" +resolve="manager" +restart="manager" +service.bundleLocation="?" +service.pid="jmx.acl.org.apache.karaf.bundle" +setStartLevel="manager" +setStartLevel(java.lang.String,="int)[/([1-4])?[0-9]/,/.*/]\ \=\ admin" +start="manager" +start(java.lang.String)[/([1-4])?[0-9]/]="admin" +stop="manager" +stop(java.lang.String)[/([1-4])?[0-9]/]="admin" +uninstall="admin" +uninstall(java.lang.String)[\"0\"]="#this\ is\ a\ comment,\ no\ roles\ can\ perform\ this\ operation" +update="manager" +update(java.lang.String)[/([1-4])?[0-9]/]="admin" +update(java.lang.String,java.lang.String)[/([1-4])?[0-9]/,/.*/]="admin" diff --git a/openhab/openhab_userdata/config/jmx/acl/org/apache/karaf/config.config b/openhab/openhab_userdata/config/jmx/acl/org/apache/karaf/config.config new file mode 100644 index 0000000..0e0e434 --- /dev/null +++ b/openhab/openhab_userdata/config/jmx/acl/org/apache/karaf/config.config @@ -0,0 +1,28 @@ +:org.apache.felix.configadmin.revision:=L"1" +appendProperty(java.lang.String,java.lang.String,java.lang.String)="manager" +appendProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/]="admin" +appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/]="admin" +appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/]="admin" +create(java.lang.String)="manager" +create(java.lang.String)[/jmx[.]acl.*/]="admin" +create(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/]="admin" +create(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/]="admin" +delete(java.lang.String)="manager" +delete(java.lang.String)[/jmx[.]acl.*/]="admin" +delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/]="admin" +delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/]="admin" +deleteProperty(java.lang.String,java.lang.String)="manager" +deleteProperty(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/]="admin" +deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/]="admin" +deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/]="admin" +felix.fileinstall.filename="file:/openhab/userdata/etc/jmx.acl.org.apache.karaf.config.cfg" +service.bundleLocation="?" +service.pid="jmx.acl.org.apache.karaf.config" +setProperty(java.lang.String,java.lang.String,java.lang.String)="manager" +setProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/]="admin" +setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/]="admin" +setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/]="admin" +update(java.lang.String,java.util.Map)="manager" +update(java.lang.String,java.util.Map)[/jmx[.]acl.*/,/.*/]="admin" +update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/]="admin" +update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/]="admin" diff --git a/openhab/openhab_userdata/config/org/apache/felix/eventadmin/impl/EventAdmin.config b/openhab/openhab_userdata/config/org/apache/felix/eventadmin/impl/EventAdmin.config new file mode 100644 index 0000000..d72aefe --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/felix/eventadmin/impl/EventAdmin.config @@ -0,0 +1,9 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg" +org.apache.felix.eventadmin.AddSubject="true" +org.apache.felix.eventadmin.AddTimestamp="true" +org.apache.felix.eventadmin.AsyncToSyncThreadRatio="1" +org.apache.felix.eventadmin.ThreadPoolSize="3" +org.apache.felix.eventadmin.Timeout="0" +service.bundleLocation="?" +service.pid="org.apache.felix.eventadmin.impl.EventAdmin" diff --git a/openhab/openhab_userdata/config/org/apache/felix/fileinstall%007edeploy.config b/openhab/openhab_userdata/config/org/apache/felix/fileinstall%007edeploy.config new file mode 100644 index 0000000..d1a0b1b --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/felix/fileinstall%007edeploy.config @@ -0,0 +1,13 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.active.level="90" +felix.fileinstall.dir="/openhab/addons" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.felix.fileinstall-deploy.cfg" +felix.fileinstall.filter=".*\\.(jar|kar)" +felix.fileinstall.log.level="3" +felix.fileinstall.poll="10000" +felix.fileinstall.start.level="80" +felix.fileinstall.subdir.mode="skip" +felix.fileinstall.tmpdir="/openhab/userdata/tmp/bundles" +service.bundleLocation="?" +service.factoryPid="org.apache.felix.fileinstall" +service.pid="org.apache.felix.fileinstall~deploy" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/bundle.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/bundle.config new file mode 100644 index 0000000..d474fd2 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/bundle.config @@ -0,0 +1,18 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.bundle.cfg" +install="admin" +refresh="manager" +refresh[/.*[-][f].*/]="admin" +restart="manager" +restart[/.*[-][f].*/]="admin" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.bundle" +start="manager" +start[/.*[-][f].*/]="admin" +stop="manager" +stop[/.*[-][f].*/]="admin" +uninstall="manager" +uninstall[/.*[-][f].*/]="admin" +update="manager" +update[/.*[-][f].*/]="admin" +watch="admin" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/config.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/config.config new file mode 100644 index 0000000..849f5b4 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/config.config @@ -0,0 +1,23 @@ +:org.apache.felix.configadmin.revision:=L"1" +cancel="manager" +delete="admin" +edit="manager" +edit[/.*jmx[.]acl.*/]="admin" +edit[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/]="admin" +edit[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/]="admin" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.config.cfg" +property-append="manager" +property-append[/.*jmx[.]acl.*/]="admin" +property-append[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/]="admin" +property-append[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/]="admin" +property-delete="manager" +property-delete[/.*jmx[.]acl.*/]="admin" +property-delete[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/]="admin" +property-delete[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/]="admin" +property-set="manager" +property-set[/.*jmx[.]acl.*/]="admin" +property-set[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/]="admin" +property-set[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/]="admin" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.config" +update="manager" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/feature.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/feature.config new file mode 100644 index 0000000..81c1460 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/feature.config @@ -0,0 +1,8 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.feature.cfg" +install="admin" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.feature" +start="admin" +stop="admin" +uninstall="admin" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/jaas.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/jaas.config new file mode 100644 index 0000000..517fe01 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/jaas.config @@ -0,0 +1,5 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.jaas.cfg" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.jaas" +update="admin" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/kar.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/kar.config new file mode 100644 index 0000000..ba08d87 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/kar.config @@ -0,0 +1,6 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.kar.cfg" +install="admin" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.kar" +uninstall="admin" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/scope_bundle.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/scope_bundle.config new file mode 100644 index 0000000..cce6495 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/scope_bundle.config @@ -0,0 +1,13 @@ +:org.apache.felix.configadmin.revision:=L"1" +admin="org.apache.karaf.admin.command" +config="org.apache.karaf.shell.config" +features="org.apache.karaf.features.command" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.scope_bundle.cfg" +jaas="org.apache.karaf.jaas.command" +log="org.apache.karaf.shell.log" +osgi="org.apache.karaf.shell.osgi" +packages="org.apache.karaf.shell.packages" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.scope_bundle" +shell="org.apache.karaf.shell.commands" +ssh="org.apache.karaf.shell.ssh" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/shell.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/shell.config new file mode 100644 index 0000000..7bfe320 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/shell.config @@ -0,0 +1,8 @@ +:org.apache.felix.configadmin.revision:=L"1" +exec="admin" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.shell.cfg" +java="admin" +nano="admin" +new="admin" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.shell" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/command/acl/system.config b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/system.config new file mode 100644 index 0000000..54c2146 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/command/acl/system.config @@ -0,0 +1,9 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.command.acl.system.cfg" +property="admin" +service.bundleLocation="?" +service.pid="org.apache.karaf.command.acl.system" +shutdown="admin" +start-level="admin\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ admin\ can\ set\ any\ start\ level,\ including\ <\ 100" +start-level[/.*[1-9][0-9][0-9]+.*/]="manager\ #\ manager\ can\ set\ startlevels\ above\ 100" +start-level[/[^0-9]*/]="viewer\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ viewer\ can\ obtain\ the\ current\ start\ level" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/features.config b/openhab/openhab_userdata/config/org/apache/karaf/features.config new file mode 100644 index 0000000..1f6e214 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/features.config @@ -0,0 +1,9 @@ +:org.apache.felix.configadmin.revision:=L"1" +autoRefresh="true" +configCfgStore="false" +featuresBoot="instance/4.4.3,\ package/4.4.3,\ log/4.4.3,\ ssh/4.4.3,\ framework/4.4.3,\ system/4.4.3,\ eventadmin/4.4.3,\ feature/4.4.3,\ shell/4.4.3,\ service/4.4.3,\ jaas/4.4.3,\ openhab-runtime-base,\ openhab-runtime-ui,\ deployer/4.4.3,\ diagnostic/4.4.3,\ bundle/4.4.3,\ config/4.4.3,\ kar/4.4.3" +featuresBootAsynchronous="false" +featuresRepositories="mvn:org.openhab.distro/distro/4.0.3/xml/features,\ mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features,\ mvn:org.apache.karaf.features/framework/4.4.3/xml/features,\ mvn:org.apache.karaf.features/standard/4.4.3/xml/features" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.features.cfg" +service.bundleLocation="?" +service.pid="org.apache.karaf.features" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/features/repos.config b/openhab/openhab_userdata/config/org/apache/karaf/features/repos.config new file mode 100644 index 0000000..72d9d6b --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/features/repos.config @@ -0,0 +1,41 @@ +:org.apache.felix.configadmin.revision:=L"1" +activemq="mvn:org.apache.activemq/activemq-karaf/RELEASE/xml/features" +aries-cdi="mvn:org.apache.aries.cdi/aries-cdi-feature/RELEASE/xml/features" +aries-jpa="mvn:org.apache.aries.jpa/jpa-features/RELEASE/xml/features" +aries-rsa="mvn:org.apache.aries.rsa/rsa-features/RELEASE/xml/features" +aries.jax.rs.whiteboard="mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.features/RELEASE/xml" +artemis="mvn:org.apache.activemq/artemis-features/RELEASE/xml/features" +brave="mvn:io.zipkin.brave.karaf/brave-features/RELEASE/xml/features" +camel="mvn:org.apache.camel.karaf/apache-camel/RELEASE/xml/features" +camel-extras="mvn:org.apache-extras.camel-extra.karaf/camel-extra/RELEASE/xml/features" +cave="mvn:org.apache.karaf.cave/apache-karaf-cave/RELEASE/xml/features" +cellar="mvn:org.apache.karaf.cellar/apache-karaf-cellar/RELEASE/xml/features" +cxf="mvn:org.apache.cxf.karaf/apache-cxf/RELEASE/xml/features" +cxf-dosgi="mvn:org.apache.cxf.dosgi/cxf-dosgi/RELEASE/xml/features" +cxf-dosgi-samples="mvn:org.apache.cxf.dosgi/cxf-dosgi-samples/RELEASE/xml/features" +cxf-xkms="mvn:org.apache.cxf.services.xkms/cxf-services-xkms-features/RELEASE/xml" +decanter="mvn:org.apache.karaf.decanter/apache-karaf-decanter/RELEASE/xml/features" +ecf="http://download.eclipse.org/rt/ecf/RELEASE/site.p2/karaf-features.xml" +eclipsesource-jaxrs="mvn:com.eclipsesource.jaxrs/features/RELEASE/xml/features" +enterprise="mvn:org.apache.karaf.features/enterprise/4.4.3/xml/features" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.features.repos.cfg" +hawtio="mvn:io.hawt/hawtio-karaf/RELEASE/xml/features" +hibernate="mvn:org.hibernate/hibernate-osgi/RELEASE/xml/karaf" +ignite="mvn:org.apache.ignite/ignite-osgi-karaf/RELEASE/xml/features" +jclouds="mvn:org.apache.jclouds.karaf/jclouds-karaf/RELEASE/xml/features" +openejb="mvn:org.apache.openejb/openejb-feature/RELEASE/xml/features" +openjpa="mvn:org.apache.openjpa/openjpa-features/RELEASE/xml/features" +pax-cdi="mvn:org.ops4j.pax.cdi/pax-cdi-features/RELEASE/xml/features" +pax-jdbc="mvn:org.ops4j.pax.jdbc/pax-jdbc-features/RELEASE/xml/features" +pax-jms="mvn:org.ops4j.pax.jms/pax-jms-features/RELEASE/xml/features" +pax-jpa="mvn:org.ops4j.pax.jpa/pax-jpa-features/RELEASE/xml/features" +pax-keycloak="mvn:org.ops4j.pax.keycloak/pax-keycloak-features/RELEASE/xml/features" +pax-transx="mvn:org.ops4j.pax.transx/pax-transx-features/RELEASE/xml/features" +pax-web="mvn:org.ops4j.pax.web/pax-web-features/RELEASE/xml/features" +pax-wicket="mvn:org.ops4j.pax.wicket/pax-wicket-features/RELEASE/xml/features" +service.bundleLocation="?" +service.pid="org.apache.karaf.features.repos" +sling="mvn:org.apache.sling/org.apache.sling.karaf-features/RELEASE/xml/features" +spring="mvn:org.apache.karaf.features/spring/4.4.3/xml/features" +spring-legacy="mvn:org.apache.karaf.features/spring-legacy/4.4.3/xml/features" +wicket="mvn:org.ops4j.pax.wicket/features/RELEASE/xml/features" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/http.config b/openhab/openhab_userdata/config/org/apache/karaf/http.config new file mode 100644 index 0000000..eaae903 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/http.config @@ -0,0 +1,3 @@ +:org.apache.felix.configadmin.revision:=L"1" +_felix_.cm.newConfiguration=B"true" +service.pid="org.apache.karaf.http" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/jaas.config b/openhab/openhab_userdata/config/org/apache/karaf/jaas.config new file mode 100644 index 0000000..f527887 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/jaas.config @@ -0,0 +1,10 @@ +:org.apache.felix.configadmin.revision:=L"1" +encryption.algorithm="SHA-256" +encryption.enabled="true" +encryption.encoding="hexadecimal" +encryption.name="basic" +encryption.prefix="{CRYPT}" +encryption.suffix="{CRYPT}" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.jaas.cfg" +service.bundleLocation="?" +service.pid="org.apache.karaf.jaas" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/kar.config b/openhab/openhab_userdata/config/org/apache/karaf/kar.config new file mode 100644 index 0000000..2b7bcdd --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/kar.config @@ -0,0 +1,7 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.kar.cfg" +karStorage="/openhab/userdata/tmp/kar" +noAutoRefreshBundles="false" +noAutoStartBundles="false" +service.bundleLocation="?" +service.pid="org.apache.karaf.kar" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/log.config b/openhab/openhab_userdata/config/org/apache/karaf/log.config new file mode 100644 index 0000000..36f7554 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/log.config @@ -0,0 +1,6 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.log.cfg" +pattern="%d{HH:mm:ss.SSS}\ [%-5.5p]\ [%-37.37c]\ -\ %h{%m}%n" +service.bundleLocation="?" +service.pid="org.apache.karaf.log" +size="500" diff --git a/openhab/openhab_userdata/config/org/apache/karaf/shell.config b/openhab/openhab_userdata/config/org/apache/karaf/shell.config new file mode 100644 index 0000000..636e6c9 --- /dev/null +++ b/openhab/openhab_userdata/config/org/apache/karaf/shell.config @@ -0,0 +1,13 @@ +:org.apache.felix.configadmin.revision:=L"1" +completionMode="GLOBAL" +disableEofExit="false" +disableLogout="false" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.apache.karaf.shell.cfg" +hostKey="/openhab/userdata/etc/host.key" +service.bundleLocation="?" +service.pid="org.apache.karaf.shell" +sftpEnabled="true" +sshHost="127.0.0.1" +sshIdleTimeout="1800000" +sshPort="8101" +sshRealm="karaf" diff --git a/openhab/openhab_userdata/config/org/jupnp.config b/openhab/openhab_userdata/config/org/jupnp.config new file mode 100644 index 0000000..6969160 --- /dev/null +++ b/openhab/openhab_userdata/config/org/jupnp.config @@ -0,0 +1,7 @@ +:org.apache.felix.configadmin.revision:=L"1" +asyncThreadPoolSize="30" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.jupnp.cfg" +multicastResponsePort="0" +service.bundleLocation="?" +service.pid="org.jupnp" +threadPoolSize="15" diff --git a/openhab/openhab_userdata/config/org/openhab/addons.config b/openhab/openhab_userdata/config/org/openhab/addons.config new file mode 100644 index 0000000..74bb0fe --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/addons.config @@ -0,0 +1,3 @@ +:org.apache.felix.configadmin.revision:=L"1" +_felix_.cm.newConfiguration=B"true" +service.pid="org.openhab.addons" diff --git a/openhab/openhab_userdata/config/org/openhab/audio.config b/openhab/openhab_userdata/config/org/openhab/audio.config new file mode 100644 index 0000000..01153d2 --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/audio.config @@ -0,0 +1,5 @@ +:org.apache.felix.configadmin.revision:=L"1" +defaultSink="enhancedjavasound" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.openhab.audio.cfg" +service.bundleLocation="?" +service.pid="org.openhab.audio" diff --git a/openhab/openhab_userdata/config/org/openhab/autoupdate.config b/openhab/openhab_userdata/config/org/openhab/autoupdate.config new file mode 100644 index 0000000..c2731e9 --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/autoupdate.config @@ -0,0 +1,3 @@ +:org.apache.felix.configadmin.revision:=L"1" +sendOptimisticUpdates="true" +service.pid="org.openhab.autoupdate" diff --git a/openhab/openhab_userdata/config/org/openhab/basicui.config b/openhab/openhab_userdata/config/org/openhab/basicui.config new file mode 100644 index 0000000..2ce4ad3 --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/basicui.config @@ -0,0 +1,3 @@ +:org.apache.felix.configadmin.revision:=L"1" +_felix_.cm.newConfiguration=B"true" +service.pid="org.openhab.basicui" diff --git a/openhab/openhab_userdata/config/org/openhab/core/service/WatchService/4c0ca031-fc00-41d8-8c46-4474cc442330.config b/openhab/openhab_userdata/config/org/openhab/core/service/WatchService/4c0ca031-fc00-41d8-8c46-4474cc442330.config new file mode 100644 index 0000000..44fe25e --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/core/service/WatchService/4c0ca031-fc00-41d8-8c46-4474cc442330.config @@ -0,0 +1,6 @@ +:org.apache.felix.configadmin.revision:=L"1" +name="configWatcher" +path="/openhab/conf" +service.bundleLocation="?" +service.factoryPid="org.openhab.core.service.WatchService" +service.pid="org.openhab.core.service.WatchService.4c0ca031-fc00-41d8-8c46-4474cc442330" diff --git a/openhab/openhab_userdata/config/org/openhab/folder.config b/openhab/openhab_userdata/config/org/openhab/folder.config new file mode 100644 index 0000000..4eec7da --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/folder.config @@ -0,0 +1,8 @@ +:org.apache.felix.configadmin.revision:=L"1" +items="items" +persistence="persist" +rules="rules" +scripts="script" +service.pid="org.openhab.folder" +sitemaps="sitemap" +things="things" diff --git a/openhab/openhab_userdata/config/org/openhab/rrd4j.config b/openhab/openhab_userdata/config/org/openhab/rrd4j.config new file mode 100644 index 0000000..9f8418f --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/rrd4j.config @@ -0,0 +1,3 @@ +:org.apache.felix.configadmin.revision:=L"1" +_felix_.cm.newConfiguration=B"true" +service.pid="org.openhab.rrd4j" diff --git a/openhab/openhab_userdata/config/org/openhab/runtime.config b/openhab/openhab_userdata/config/org/openhab/runtime.config new file mode 100644 index 0000000..699b0cd --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/runtime.config @@ -0,0 +1,3 @@ +:org.apache.felix.configadmin.revision:=L"1" +_felix_.cm.newConfiguration=B"true" +service.pid="org.openhab.runtime" diff --git a/openhab/openhab_userdata/config/org/openhab/services.config b/openhab/openhab_userdata/config/org/openhab/services.config new file mode 100644 index 0000000..17cc80a --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/services.config @@ -0,0 +1,3 @@ +:org.apache.felix.configadmin.revision:=L"1" +_felix_.cm.newConfiguration=B"true" +service.pid="org.openhab.services" diff --git a/openhab/openhab_userdata/config/org/openhab/startlevel.config b/openhab/openhab_userdata/config/org/openhab/startlevel.config new file mode 100644 index 0000000..d90ce9f --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/startlevel.config @@ -0,0 +1,8 @@ +20="dsl:items,managed:item,dsl:things,managed:thing,managed:itemchannellink,dsl:persist,managed:metadata" +30="persistence:restore,automation:scriptEngineFactories" +40="dsl:rules,managed:rule,rules:refresh,rules:dslprovider" +50="ruleengine:start" +70="dsl:sitemap" +80="things:handler" +:org.apache.felix.configadmin.revision:=L"1" +service.pid="org.openhab.startlevel" diff --git a/openhab/openhab_userdata/config/org/openhab/threadpool.config b/openhab/openhab_userdata/config/org/openhab/threadpool.config new file mode 100644 index 0000000..ed1a881 --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/threadpool.config @@ -0,0 +1,5 @@ +:org.apache.felix.configadmin.revision:=L"1" +discovery="5" +safeCall="10" +service.pid="org.openhab.threadpool" +thingHandler="5" diff --git a/openhab/openhab_userdata/config/org/openhab/voice.config b/openhab/openhab_userdata/config/org/openhab/voice.config new file mode 100644 index 0000000..f1f1e95 --- /dev/null +++ b/openhab/openhab_userdata/config/org/openhab/voice.config @@ -0,0 +1,5 @@ +:org.apache.felix.configadmin.revision:=L"1" +defaultHLI="rulehli" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.openhab.voice.cfg" +service.bundleLocation="?" +service.pid="org.openhab.voice" diff --git a/openhab/openhab_userdata/config/org/ops4j/pax/logging.config b/openhab/openhab_userdata/config/org/ops4j/pax/logging.config new file mode 100644 index 0000000..40914c4 --- /dev/null +++ b/openhab/openhab_userdata/config/org/ops4j/pax/logging.config @@ -0,0 +1,5 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.ops4j.pax.logging.cfg" +org.ops4j.pax.logging.log4j2.config.file="/openhab/userdata/etc/log4j2.xml" +service.bundleLocation="?" +service.pid="org.ops4j.pax.logging" diff --git a/openhab/openhab_userdata/config/org/ops4j/pax/url/mvn.config b/openhab/openhab_userdata/config/org/ops4j/pax/url/mvn.config new file mode 100644 index 0000000..8da6e79 --- /dev/null +++ b/openhab/openhab_userdata/config/org/ops4j/pax/url/mvn.config @@ -0,0 +1,17 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.ops4j.pax.url.mvn.cfg" +org.ops4j.pax.url.mvn.connection.bufferSize="8192" +org.ops4j.pax.url.mvn.connection.retryCount="3" +org.ops4j.pax.url.mvn.defaultRepositories="file:/openhab/runtime/system@id\=system.repository@snapshots,\ file:/openhab/userdata/tmp/kar@id\=kar.repository@multi@snapshots,\ file:/openhab/userdata/system@id\=child.system.repository@snapshots" +org.ops4j.pax.url.mvn.localRepository="/openhab/userdata/tmp/mvn" +org.ops4j.pax.url.mvn.repositories="https://openhab.jfrog.io/openhab/libs-release@id\=openhab" +org.ops4j.pax.url.mvn.socket.connectionTimeout="5000" +org.ops4j.pax.url.mvn.socket.keepAlive="false" +org.ops4j.pax.url.mvn.socket.linger="-1" +org.ops4j.pax.url.mvn.socket.readTimeout="30000" +org.ops4j.pax.url.mvn.socket.reuseAddress="false" +org.ops4j.pax.url.mvn.socket.tcpNoDelay="true" +org.ops4j.pax.url.mvn.timeout="5000" +org.ops4j.pax.url.mvn.useFallbackRepositories="false" +service.bundleLocation="?" +service.pid="org.ops4j.pax.url.mvn" diff --git a/openhab/openhab_userdata/config/org/ops4j/pax/web.config b/openhab/openhab_userdata/config/org/ops4j/pax/web.config new file mode 100644 index 0000000..70b1c11 --- /dev/null +++ b/openhab/openhab_userdata/config/org/ops4j/pax/web.config @@ -0,0 +1,13 @@ +:org.apache.felix.configadmin.revision:=L"1" +felix.fileinstall.filename="file:/openhab/userdata/etc/org.ops4j.pax.web.cfg" +org.ops4j.pax.web.config.file="/openhab/runtime/etc/jetty.xml" +org.ops4j.pax.web.server.idleTimeout="300000" +org.ops4j.pax.web.server.maxThreads="50" +org.ops4j.pax.web.server.minThreads="2" +org.ops4j.pax.web.session.timeout="10" +org.ops4j.pax.web.ssl.clientauthneeded="false" +org.ops4j.pax.web.ssl.clientauthwanted="false" +org.osgi.service.http.secure.enabled="true" +org.osgi.service.http.useNIO="true" +service.bundleLocation="?" +service.pid="org.ops4j.pax.web" diff --git a/openhab/openhab_userdata/config/org_apache_felix_cm_impl_DynamicBindings.config b/openhab/openhab_userdata/config/org_apache_felix_cm_impl_DynamicBindings.config new file mode 100644 index 0000000..e0d0c22 --- /dev/null +++ b/openhab/openhab_userdata/config/org_apache_felix_cm_impl_DynamicBindings.config @@ -0,0 +1 @@ +org.openhab.addons="mvn:org.openhab.core.bundles/org.openhab.core.karaf/4.0.3" diff --git a/openhab/openhab_userdata/config/profile.config b/openhab/openhab_userdata/config/profile.config new file mode 100644 index 0000000..89a3f91 --- /dev/null +++ b/openhab/openhab_userdata/config/profile.config @@ -0,0 +1,112 @@ +:org.apache.felix.configadmin.revision:=L"1" +attribute.overlay="true" +attribute.parents="generated-startup\ generated-boot\ generated-installed" +feature.bundle="bundle" +feature.config="config" +feature.deployer="deployer" +feature.diagnostic="diagnostic" +feature.distro-kar/4.0.3="distro-kar/4.0.3" +feature.distro/4.0.3="distro/4.0.3" +feature.eventadmin="eventadmin" +feature.feature="feature" +feature.framework="framework" +feature.instance="instance" +feature.jaas="jaas" +feature.kar="kar" +feature.log="log" +feature.openhab-core-addon-marketplace/4.0.3="openhab-core-addon-marketplace/4.0.3" +feature.openhab-core-auth-jaas/4.0.3="openhab-core-auth-jaas/4.0.3" +feature.openhab-core-auth-oauth2client/4.0.3="openhab-core-auth-oauth2client/4.0.3" +feature.openhab-core-automation-module-media/4.0.3="openhab-core-automation-module-media/4.0.3" +feature.openhab-core-automation-module-script-rulesupport/4.0.3="openhab-core-automation-module-script-rulesupport/4.0.3" +feature.openhab-core-automation-module-script/4.0.3="openhab-core-automation-module-script/4.0.3" +feature.openhab-core-automation-rest/4.0.3="openhab-core-automation-rest/4.0.3" +feature.openhab-core-base/4.0.3="openhab-core-base/4.0.3" +feature.openhab-core-io-bin2json/4.0.3="openhab-core-io-bin2json/4.0.3" +feature.openhab-core-io-console-karaf/4.0.3="openhab-core-io-console-karaf/4.0.3" +feature.openhab-core-io-http-auth/4.0.3="openhab-core-io-http-auth/4.0.3" +feature.openhab-core-io-rest-audio/4.0.3="openhab-core-io-rest-audio/4.0.3" +feature.openhab-core-io-rest-auth/4.0.3="openhab-core-io-rest-auth/4.0.3" +feature.openhab-core-io-rest-log/4.0.3="openhab-core-io-rest-log/4.0.3" +feature.openhab-core-io-rest-mdns/4.0.3="openhab-core-io-rest-mdns/4.0.3" +feature.openhab-core-io-rest-sitemap/4.0.3="openhab-core-io-rest-sitemap/4.0.3" +feature.openhab-core-io-rest-swagger/4.0.3="openhab-core-io-rest-swagger/4.0.3" +feature.openhab-core-io-rest-transform/4.0.3="openhab-core-io-rest-transform/4.0.3" +feature.openhab-core-io-rest-voice/4.0.3="openhab-core-io-rest-voice/4.0.3" +feature.openhab-core-io-transport-coap/4.0.3="openhab-core-io-transport-coap/4.0.3" +feature.openhab-core-io-transport-http/4.0.3="openhab-core-io-transport-http/4.0.3" +feature.openhab-core-io-transport-mdns/4.0.3="openhab-core-io-transport-mdns/4.0.3" +feature.openhab-core-io-transport-modbus/4.0.3="openhab-core-io-transport-modbus/4.0.3" +feature.openhab-core-io-transport-mqtt/4.0.3="openhab-core-io-transport-mqtt/4.0.3" +feature.openhab-core-io-transport-serial-javacomm/4.0.3="openhab-core-io-transport-serial-javacomm/4.0.3" +feature.openhab-core-io-transport-upnp/4.0.3="openhab-core-io-transport-upnp/4.0.3" +feature.openhab-core-io-websocket/4.0.3="openhab-core-io-websocket/4.0.3" +feature.openhab-core-model-item-ide/4.0.3="openhab-core-model-item-ide/4.0.3" +feature.openhab-core-model-item/4.0.3="openhab-core-model-item/4.0.3" +feature.openhab-core-model-lsp/4.0.3="openhab-core-model-lsp/4.0.3" +feature.openhab-core-model-persistence-ide/4.0.3="openhab-core-model-persistence-ide/4.0.3" +feature.openhab-core-model-persistence/4.0.3="openhab-core-model-persistence/4.0.3" +feature.openhab-core-model-rule-ide/4.0.3="openhab-core-model-rule-ide/4.0.3" +feature.openhab-core-model-rule/4.0.3="openhab-core-model-rule/4.0.3" +feature.openhab-core-model-script-ide/4.0.3="openhab-core-model-script-ide/4.0.3" +feature.openhab-core-model-script/4.0.3="openhab-core-model-script/4.0.3" +feature.openhab-core-model-sitemap-ide/4.0.3="openhab-core-model-sitemap-ide/4.0.3" +feature.openhab-core-model-sitemap/4.0.3="openhab-core-model-sitemap/4.0.3" +feature.openhab-core-model-thing-ide/4.0.3="openhab-core-model-thing-ide/4.0.3" +feature.openhab-core-model-thing/4.0.3="openhab-core-model-thing/4.0.3" +feature.openhab-core-storage-json/4.0.3="openhab-core-storage-json/4.0.3" +feature.openhab-core-ui-icon/4.0.3="openhab-core-ui-icon/4.0.3" +feature.openhab-core-ui/4.0.3="openhab-core-ui/4.0.3" +feature.openhab-runtime-base="openhab-runtime-base" +feature.openhab-runtime-base/4.0.3="openhab-runtime-base/4.0.3" +feature.openhab-runtime-certificate/4.0.3="openhab-runtime-certificate/4.0.3" +feature.openhab-runtime-ui="openhab-runtime-ui" +feature.openhab-runtime-ui/4.0.3="openhab-runtime-ui/4.0.3" +feature.openhab-transport-coap/4.0.3="openhab-transport-coap/4.0.3" +feature.openhab-transport-http/4.0.3="openhab-transport-http/4.0.3" +feature.openhab-transport-mdns/4.0.3="openhab-transport-mdns/4.0.3" +feature.openhab-transport-modbus/4.0.3="openhab-transport-modbus/4.0.3" +feature.openhab-transport-mqtt/4.0.3="openhab-transport-mqtt/4.0.3" +feature.openhab-transport-serial/4.0.3="openhab-transport-serial/4.0.3" +feature.openhab-transport-upnp/4.0.3="openhab-transport-upnp/4.0.3" +feature.openhab.inc-model-core/4.0.3="openhab.inc-model-core/4.0.3" +feature.openhab.tp-asm/4.0.3="openhab.tp-asm/4.0.3" +feature.openhab.tp-base/4.0.3="openhab.tp-base/4.0.3" +feature.openhab.tp-coap/4.0.3="openhab.tp-coap/4.0.3" +feature.openhab.tp-commons-net/4.0.3="openhab.tp-commons-net/4.0.3" +feature.openhab.tp-cxf/4.0.3="openhab.tp-cxf/4.0.3" +feature.openhab.tp-gson/4.0.3="openhab.tp-gson/4.0.3" +feature.openhab.tp-hivemqclient/4.0.3="openhab.tp-hivemqclient/4.0.3" +feature.openhab.tp-httpclient/4.0.3="openhab.tp-httpclient/4.0.3" +feature.openhab.tp-jackson/4.0.3="openhab.tp-jackson/4.0.3" +feature.openhab.tp-jax-rs-whiteboard/4.0.3="openhab.tp-jax-rs-whiteboard/4.0.3" +feature.openhab.tp-jaxb/4.0.3="openhab.tp-jaxb/4.0.3" +feature.openhab.tp-jaxws/4.0.3="openhab.tp-jaxws/4.0.3" +feature.openhab.tp-jbbp/4.0.3="openhab.tp-jbbp/4.0.3" +feature.openhab.tp-jmdns/4.0.3="openhab.tp-jmdns/4.0.3" +feature.openhab.tp-jna/4.0.3="openhab.tp-jna/4.0.3" +feature.openhab.tp-jollyday/4.0.3="openhab.tp-jollyday/4.0.3" +feature.openhab.tp-jose4j/4.0.3="openhab.tp-jose4j/4.0.3" +feature.openhab.tp-jupnp/4.0.3="openhab.tp-jupnp/4.0.3" +feature.openhab.tp-lsp4j/4.0.3="openhab.tp-lsp4j/4.0.3" +feature.openhab.tp-netty/4.0.3="openhab.tp-netty/4.0.3" +feature.openhab.tp-serial-javacomm/4.0.3="openhab.tp-serial-javacomm/4.0.3" +feature.openhab.tp-serial-rxtx/4.0.3="openhab.tp-serial-rxtx/4.0.3" +feature.openhab.tp-swagger-jaxrs/4.0.3="openhab.tp-swagger-jaxrs/4.0.3" +feature.openhab.tp-xtext-ide/4.0.3="openhab.tp-xtext-ide/4.0.3" +feature.openhab.tp-xtext/4.0.3="openhab.tp-xtext/4.0.3" +feature.package="package" +feature.service="service" +feature.shell="shell" +feature.ssh="ssh" +feature.system="system" +feature.wrap="wrap" +feature.wrapper="wrapper" +felix.fileinstall.filename="file:/openhab/userdata/etc/profile.cfg" +repository.mvn:org.apache.karaf.features/framework/4.4.3/xml/features="mvn:org.apache.karaf.features/framework/4.4.3/xml/features" +repository.mvn:org.apache.karaf.features/standard/4.4.3/xml/features="mvn:org.apache.karaf.features/standard/4.4.3/xml/features" +repository.mvn:org.openhab.distro/distro-kar/4.0.3/xml/features="mvn:org.openhab.distro/distro-kar/4.0.3/xml/features" +repository.mvn:org.openhab.distro/distro/4.0.3/xml/features="mvn:org.openhab.distro/distro/4.0.3/xml/features" +repository.mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features="mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features" +service.bundleLocation="?" +service.pid="profile" diff --git a/openhab/openhab_userdata/etc/all.policy b/openhab/openhab_userdata/etc/all.policy new file mode 100644 index 0000000..7585f22 --- /dev/null +++ b/openhab/openhab_userdata/etc/all.policy @@ -0,0 +1,22 @@ +//=========================================================================== +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//=========================================================================== + +grant { + permission java.security.AllPermission; +}; diff --git a/openhab/openhab_userdata/etc/branding-ssh.properties b/openhab/openhab_userdata/etc/branding-ssh.properties new file mode 100644 index 0000000..df03670 --- /dev/null +++ b/openhab/openhab_userdata/etc/branding-ssh.properties @@ -0,0 +1,12 @@ +welcome = \r\n\ +\u001B[91m \u001B[97m _ _ _ ____ \u001B[0m\r\n\ +\u001B[91m ___ ___ ___ ___ \u001B[97m| | | | / \\ | __ ) \u001B[0m\r\n\ +\u001B[91m / _ \\ / _ \\ / _ \\ / _ \\ \u001B[97m| |_| | / _ \\ | _ \\ \u001B[0m\r\n\ +\u001B[91m | (_) | (_) | __/| | | |\u001B[97m| _ | / ___ \\ | |_) )\u001B[0m\r\n\ +\u001B[91m \\___/| __/ \\___/|_| |_|\u001B[97m|_| |_|/_/ \\_\\|____/ \u001B[0m\r\n\ +\u001B[91m |_| \u001B[0m 4.0.3 - Release Build\u001B[0m\r\n\ +\r\n\ +Use '\u001B[1m\u001B[0m' for a list of available commands\r\n\ + and '\u001B[1m[cmd] --help\u001B[0m' for help on a specific command.\r\n\ +To exit, use '\u001B[1m\u001B[0m' or '\u001B[1mlogout\u001B[0m'.\r\n +prompt = \u001B[36mopenhab>\u001B[0m diff --git a/openhab/openhab_userdata/etc/branding.properties b/openhab/openhab_userdata/etc/branding.properties new file mode 100644 index 0000000..df03670 --- /dev/null +++ b/openhab/openhab_userdata/etc/branding.properties @@ -0,0 +1,12 @@ +welcome = \r\n\ +\u001B[91m \u001B[97m _ _ _ ____ \u001B[0m\r\n\ +\u001B[91m ___ ___ ___ ___ \u001B[97m| | | | / \\ | __ ) \u001B[0m\r\n\ +\u001B[91m / _ \\ / _ \\ / _ \\ / _ \\ \u001B[97m| |_| | / _ \\ | _ \\ \u001B[0m\r\n\ +\u001B[91m | (_) | (_) | __/| | | |\u001B[97m| _ | / ___ \\ | |_) )\u001B[0m\r\n\ +\u001B[91m \\___/| __/ \\___/|_| |_|\u001B[97m|_| |_|/_/ \\_\\|____/ \u001B[0m\r\n\ +\u001B[91m |_| \u001B[0m 4.0.3 - Release Build\u001B[0m\r\n\ +\r\n\ +Use '\u001B[1m\u001B[0m' for a list of available commands\r\n\ + and '\u001B[1m[cmd] --help\u001B[0m' for help on a specific command.\r\n\ +To exit, use '\u001B[1m\u001B[0m' or '\u001B[1mlogout\u001B[0m'.\r\n +prompt = \u001B[36mopenhab>\u001B[0m diff --git a/openhab/openhab_userdata/etc/config.properties b/openhab/openhab_userdata/etc/config.properties new file mode 100644 index 0000000..c46ef60 --- /dev/null +++ b/openhab/openhab_userdata/etc/config.properties @@ -0,0 +1,322 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This file lists Karaf default settings for this particular version of Karaf. +# For easier maintenance when upgrading Karaf and to better document which +# default values have changed, it is recommended to place any changes to +# these values in a custom.properties file in the same folder as this file. +# Each value specified in custom.properties will override the default value +# here. +# + +# +# Properties file inclusions (as a space separated list of relative paths) +# Included files will override the values specified in this file +# NB: ${includes} properties files are mandatory, it means that Karaf will not start +# if the include file is not found +# +${includes} = jre.properties custom.properties + +# +# Properties file inclusions (as a space separated list of relative paths) +# Included files will override the values specified in this file +# NB: ${optionals} properties files are optionals, it means that Karaf will just +# display a warning message but the bootstrap will be performed +# +# ${optionals} = my.properties + +# +# Framework selection properties +# +karaf.framework=felix + +# +# Location of the OSGi frameworks +# +karaf.framework.equinox=mvn\:org.eclipse.platform/org.eclipse.osgi/3.18.0 +karaf.framework.felix=mvn\:org.apache.felix/org.apache.felix.framework/7.0.5 + +# +# Framework config properties. +# +org.osgi.framework.system.packages= \ + org.osgi.dto;version="1.1",\ + org.osgi.resource;version="1.0",\ + org.osgi.resource.dto;version="1.0";uses:="org.osgi.dto",\ + org.osgi.framework;version="1.10",\ + org.osgi.framework.dto;version="1.10";uses:="org.osgi.dto",\ + org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi.framework",\ + org.osgi.framework.hooks.resolver;version="1.0";uses:="org.osgi.framework.wiring",\ + org.osgi.framework.hooks.service;version="1.1";uses:="org.osgi.framework",\ + org.osgi.framework.hooks.weaving;version="1.1";uses:="org.osgi.framework.wiring",\ + org.osgi.framework.launch;version="1.2";uses:="org.osgi.framework",\ + org.osgi.framework.namespace;version="1.1";uses:="org.osgi.resource",\ + org.osgi.framework.startlevel;version="1.0";uses:="org.osgi.framework",\ + org.osgi.framework.startlevel.dto;version="1.0";uses:="org.osgi.dto",\ + org.osgi.framework.wiring;version="1.2";uses:="org.osgi.framework,org.osgi.resource",\ + org.osgi.framework.wiring.dto;version="1.3";uses:="org.osgi.dto,org.osgi.resource.dto",\ + org.osgi.service.condpermadmin;version="1.1.1";uses:="org.osgi.framework,org.osgi.service.permissionadmin",\ + org.osgi.service.packageadmin;version="1.2";uses:="org.osgi.framework",org.osgi.service.permissionadmin;version="1.2",\ + org.osgi.service.resolver;version="1.1";uses:="org.osgi.resource",\ + org.osgi.service.startlevel;version="1.1";uses:="org.osgi.framework",\ + org.osgi.service.url;version="1.0",\ + org.osgi.util.tracker;version="1.5.2";uses:="org.osgi.framework",\ + org.apache.karaf.version;version="4.4.3",\ + org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version="4.4.3",\ + org.apache.karaf.jaas.boot;uses:="javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework";version="4.4.3",\ + org.apache.karaf.info;version="4.4.3",\ + ${jre-${java.specification.version}} + +# +# Extra packages appended after standard packages +# +org.osgi.framework.system.packages.extra = \ + org.apache.karaf.branding, \ + sun.misc, \ + com.sun.jmx.remote.protocol, \ + com.sun.jmx.remote.protocol.jmxmp, \ + org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version=4.4.3, \ + org.apache.karaf.jaas.boot;uses:=\"javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework\";version=4.4.3, \ + org.apache.karaf.diagnostic.core;uses:=org.osgi.framework;version=4.4.3, \ + org.apache.karaf.diagnostic.core.common;uses:=org.apache.karaf.diagnostic.core;version=4.4.3 + +org.osgi.framework.system.capabilities= \ + ${eecap-${java.specification.version}}, \ + ${${karaf.framework}-capabilities}, \ + ${karaf-capabilities} + +karaf-capabilities= \ + osgi.service;objectClass:List=org.apache.karaf.info.ServerInfo + +felix-capabilities= \ + osgi.service;objectClass:List=org.osgi.service.packageadmin.PackageAdmin, \ + osgi.service;objectClass:List=org.osgi.service.resolver.Resolver, \ + osgi.service;objectClass:List=org.osgi.service.startlevel.StartLevel + +equinox-capabilities= \ + osgi.service;objectClass:List=java.lang.ClassLoader;equinox.classloader.type=contextClassLoader, \ + osgi.service;objectClass:List=javax.xml.parsers.DocumentBuilderFactory, \ + osgi.service;objectClass:List=javax.xml.parsers.SAXParserFactory, \ + osgi.service;objectClass:List=org.eclipse.osgi.framework.log.FrameworkLog, \ + osgi.service;objectClass:List=org.eclipse.osgi.framework.log.FrameworkLog;performance=true, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.datalocation.Location;type=eclipse.home.location, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.datalocation.Location;type=osgi.configuration.area, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.datalocation.Location;type=osgi.install.area, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.datalocation.Location;type=osgi.instance.area, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.datalocation.Location;type=osgi.user.area, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.debug.DebugOptions, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.environment.EnvironmentInfo, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.localization.BundleLocalization, \ + osgi.service;objectClass:List="org.osgi.service.log.LogReaderService,org.eclipse.equinox.log.ExtendedLogReaderService", \ + osgi.service;objectClass:List="org.osgi.service.log.LogService,org.eclipse.equinox.log.ExtendedLogService", \ + osgi.service;objectClass:List=org.eclipse.osgi.service.security.TrustEngine;osgi.signedcontent.trust.engine=org.eclipse.osgi, \ + osgi.service;objectClass:List=org.eclipse.osgi.service.urlconversion.URLConverter;protocol:List="bundleentry,bundleresource" + +eecap-18 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0,18.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0,18.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0,18.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0,18.0" +eecap-17 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0,17.0" +eecap-16 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0" +eecap-15 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0,14.0,15.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0,13.0,14.0,15.0" +eecap-14 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0,14.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0,13.0,14.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0,13.0,14.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0,13.0,14.0" +eecap-13 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0,13.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0,13.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0,13.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0,13.0" +eecap-11= osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0,11.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0,11.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0,11.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0,11.0" +eecap-10= osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0,10.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0,10.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0,10.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0,10.0" +eecap-9= osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,9.0", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8,9.0", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8,9.0", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8,9.0" +eecap-1.8= osgi.ee; osgi.ee="OSGi/Minimum"; version:List="1.0,1.1,1.2", \ + osgi.ee; osgi.ee="JavaSE"; version:List="1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8", \ + osgi.ee; osgi.ee="JRE"; version:List="1.0,1.1", \ + osgi.ee; osgi.ee="JavaSE/compact1"; version:List="1.8", \ + osgi.ee; osgi.ee="JavaSE/compact2"; version:List="1.8", \ + osgi.ee; osgi.ee="JavaSE/compact3"; version:List="1.8" + +# +# javax.transaction is needed ONLY for com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(). +# JDK8 and earlier provide only 3 exception classes in this package, so full JTA API bundles should always try the +# bootdelegation first - even if they also package (and export) javax.transaction package +# +# boot delegation of javax.transaction.xa is needed to avoid class loader constraint violation when using javax.sql +# and this package is always complete in all JDKs +# +# javax.security.cert is needed by pax-transx-tm-narayana as it uses URLClassLoader and otherwise is unable to create +# object store. +# +org.osgi.framework.bootdelegation = \ + com.sun.*, \ + javax.transaction, \ + javax.transaction.xa, \ + javax.xml.crypto, \ + javax.xml.crypto.*, \ + javax.security.cert, \ + jdk.nashorn.*, \ + sun.*, \ + jdk.internal.reflect, \ + jdk.internal.reflect.*, \ + org.apache.karaf.jaas.boot.principal, \ + org.apache.karaf.jaas.boot + +# jVisualVM support +# in order to use Karaf with jvisualvm, the org.osgi.framework.bootdelegation property has to contain the org.netbeans.lib.profiler.server package +# and, so, it should look like: +# +# org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,org.netbeans.lib.profiler.server +# +# YourKit support +# in order to use Karaf with YourKit, the org.osgi.framework.bootdelegation property has to contain the com.yourkit.* packages +# and, so, it should look like: +# +# org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.jaas.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom,com.yourkit.* +# + +# +# Set the parent classloader for the bundle to the classloader that loads the Framework (i.e. everything in lib/*.jar) +# +org.osgi.framework.bundle.parent=framework + +# +# Definition of the default bundle start level +# +org.osgi.framework.startlevel.beginning=100 +karaf.startlevel.bundle=80 + +# +# The location of the Karaf shutdown port file used to stop instance +# +karaf.shutdown.port.file=${karaf.data}/port + +# +# The location of the Karaf pid file +# +karaf.pid.file=${karaf.base}/karaf.pid + +# +# Configuration secrets file location +# +org.apache.felix.configadmin.plugin.interpolation.secretsdir=${karaf.etc} + +# +# Configuration FileMonitor properties +# +felix.fileinstall.enableConfigSave = true +felix.fileinstall.dir = ${karaf.etc} +felix.fileinstall.filter = .*\\.(cfg|config|json) +felix.fileinstall.poll = 1000 +felix.fileinstall.noInitialDelay = true +felix.fileinstall.log.level = 3 +felix.fileinstall.log.default = jul + +# Use cached urls for bundle CodeSource to avoid +# problems with JCE cached informations, see KARAF-3974 +felix.bundlecodesource.usecachedurls = true + +# +# Delay for writing the framework state to disk in equinox +# must be >= 1000 and <= 1800000 +# +eclipse.stateSaveDelayInterval = 1000 + +# +# OBR Repository list +# This property will be modified by the obr:addUrl and obr:removeUrl commands. +# +obr.repository.url = + +# +# Start blueprint bundles synchronously when possible +# +org.apache.aries.blueprint.synchronous=true + +# +# Do not weave all any classes by default +# +org.apache.aries.proxy.weaving.enabled= + +# +# mvn url handler requires config instance configuration +# +org.ops4j.pax.url.mvn.requireConfigAdminConfig=true + +# +# Don't delay the console startup. Set to true if you want the console to start after all other bundles +# +karaf.delay.console=false + +# +# Generated command shutdown +# +karaf.shutdown.command = 3671966a-c132-484c-b14d-9dfe27d34b1b + +# +# Enable native Karaf support for systemd's watchdog. +# +# In addition to setting the flag to true, the JNA library needs to be made +# available to the main classloader by adding the two following libraries +# to the lib/boot directory +# mvn:net.java.dev.jna/jna/${jna.version} +# mvn:net.java.dev.jna/jna-platform/${jna.version} +# or by building a custom distribution and adding the following lines for the +# karaf maven plugin configuration: +# mvn:net.java.dev.jna/jna/${jna.version};type:=boot;export:=false +# mvn:net.java.dev.jna/jna-platform/${jna.version};type:=boot;export:=false +# +#karaf.systemd.enabled=true diff --git a/openhab/openhab_userdata/etc/custom.properties b/openhab/openhab_userdata/etc/custom.properties new file mode 100644 index 0000000..3705c92 --- /dev/null +++ b/openhab/openhab_userdata/etc/custom.properties @@ -0,0 +1,10 @@ +karaf.bootstrap.log = ${karaf.log}/openhab.log +karaf.systemBundlesStartLevel = 50 +karaf.framework = equinox +karaf.lock.dir=${karaf.data}/tmp +karaf.shutdown.port.file=${karaf.data}/tmp/port +karaf.pid.file=${karaf.data}/tmp/karaf.pid + +osgi.compatibility.bootdelegation = true + +felix.fileinstall.dir = ${karaf.data}/etc diff --git a/openhab/openhab_userdata/etc/custom.system.properties b/openhab/openhab_userdata/etc/custom.system.properties new file mode 100644 index 0000000..35333ad --- /dev/null +++ b/openhab/openhab_userdata/etc/custom.system.properties @@ -0,0 +1,7 @@ +karaf.name=openhab +karaf.local.user=openhab +openhab.servicecfg=${openhab.runtime}/services.cfg +jetty.keystore.path=${openhab.userdata}/etc/keystore +jetty.truststore.path=${openhab.userdata}/etc/keystore +equinox.ds.block_timeout=240000 +equinox.scr.waitTimeOnBlock=60000 diff --git a/openhab/openhab_userdata/etc/distribution.info b/openhab/openhab_userdata/etc/distribution.info new file mode 100644 index 0000000..a5d8fb3 --- /dev/null +++ b/openhab/openhab_userdata/etc/distribution.info @@ -0,0 +1,26 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This file contains the general platform information required by the itests to find out +# about the current versions. +# +karafVersion=4.4.3 +name=Apache Karaf + diff --git a/openhab/openhab_userdata/etc/equinox-debug.properties b/openhab/openhab_userdata/etc/equinox-debug.properties new file mode 100644 index 0000000..01be178 --- /dev/null +++ b/openhab/openhab_userdata/etc/equinox-debug.properties @@ -0,0 +1,111 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +#### Debugging options for org.eclipse.bundles + +# Turn on general debugging for org.eclipse.bundles +org.eclipse.osgi/debug = false +# Prints out class loading debug information +org.eclipse.osgi/debug/loader = false +# Prints out event (FrameworkEvent/BundleEvent/ServiceEvent) and listener debug information +org.eclipse.osgi/debug/events = false +# Prints out OSGi service debug information (registration/getting/ungetting etc.) +org.eclipse.osgi/debug/services = false +# Prints out bundle manifest parsing debug information +org.eclipse.osgi/debug/manifest = false +# Prints out LDAP filter debug information +org.eclipse.osgi/debug/filter = false +# Prints out security (PermissionAdmin service) debug information +org.eclipse.osgi/debug/security = false +# Prints out start level service debug information +org.eclipse.osgi/debug/startlevel = false +# Prints out package instance service debug information +org.eclipse.osgi/debug/packageadmin = false +# Prints out timing information for bundle activation +org.eclipse.osgi/debug/bundleTime = false +# Debug the loading of message bundles +org.eclipse.osgi/debug/messageBundles = false + +# Eclipse adaptor options +org.eclipse.osgi/eclipseadaptor/debug = false +org.eclipse.osgi/eclipseadaptor/debug/location = false +org.eclipse.osgi/eclipseadaptor/debug/platformadmin = false +org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver = false +org.eclipse.osgi/eclipseadaptor/converter/debug = false + +### OSGi resolver options +# Turns on debugging for the resolver +org.eclipse.osgi/resolver/debug = false +# Prints out wiring information after the resolver has completed the resolve process +org.eclipse.osgi/resolver/wiring = false +# Prints out Import-Package information +org.eclipse.osgi/resolver/imports = false +# Prints out Require-Bundle information +org.eclipse.osgi/resolver/requires = false +# Prints out package grouping information form the "uses" clause +org.eclipse.osgi/resolver/grouping = false +# Prints out cycle information +org.eclipse.osgi/resolver/cycles = false +# Prints out Eclipse-GenericRequire information +org.eclipse.osgi/resolver/generics = false + +#### Profile settings +org.eclipse.osgi/profile/startup = false +org.eclipse.osgi/profile/benchmark = false +org.eclipse.osgi/profile/debug = false + +# Override the default implemenation +org.eclipse.osgi/profile/impl = org.eclipse.osgi.internal.profile.DefaultProfileLogger + +# Append all profile messages to the filename specified +org.eclipse.osgi/defaultprofile/logfilename = + +# Output all profile log messages synchronously to the jvm console. +# By default, all log messages are cached until the log buffer is +# requested. +org.eclipse.osgi/defaultprofile/logsynchronously = false + +# Specify the size of the default profile implementation log buffer. +org.eclipse.osgi/defaultprofile/buffersize = 256 + +#### Monitoring settings +# monitor class loading +org.eclipse.osgi/monitor/classes = false + +# monitor bundle activation +org.eclipse.osgi/monitor/activation = false + +# monitor resource bundle (*.properties) loading +org.eclipse.osgi/monitor/resources = false + + +#### Trace settings +# trace class loading - snapshot the execution stack when a class is loaded +org.eclipse.osgi/trace/classLoading = false + +# trace location - file in which execution traces are written +org.eclipse.osgi/trace/filename = runtime.traces + +# trace filters - Java properties file defining which classes should +# be traced (if trace/classLoading is true) +# File format: +# plugins= +# packages= +# Note that there may be many 'plugins' and 'packages' lines in one file. +org.eclipse.osgi/trace/filters = trace.properties + +# trace bundle activation - snapshot the execution stack when a bundle is activated +org.eclipse.osgi/trace/activation = false diff --git a/openhab/openhab_userdata/etc/java.util.logging.properties b/openhab/openhab_userdata/etc/java.util.logging.properties new file mode 100644 index 0000000..f2d56da --- /dev/null +++ b/openhab/openhab_userdata/etc/java.util.logging.properties @@ -0,0 +1,6 @@ +# set default format layout +java.util.logging.SimpleFormatter.format = %1$tF %1$tT.%1$tL [%4$s] [%3$s] - %5$s%6$s%n + +# disable lock messages at startup +org.apache.karaf.main.Main.level = WARNING +org.apache.karaf.main.lock.SimpleFileLock.level = WARNING \ No newline at end of file diff --git a/openhab/openhab_userdata/etc/jetty-web.xml b/openhab/openhab_userdata/etc/jetty-web.xml new file mode 100644 index 0000000..b37e3e0 --- /dev/null +++ b/openhab/openhab_userdata/etc/jetty-web.xml @@ -0,0 +1,35 @@ + + + + + + + diff --git a/openhab/openhab_userdata/etc/jetty.xml b/openhab/openhab_userdata/etc/jetty.xml new file mode 100644 index 0000000..196f59d --- /dev/null +++ b/openhab/openhab_userdata/etc/jetty.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openhab/openhab_userdata/etc/jmx.acl.org.apache.karaf.bundle.cfg b/openhab/openhab_userdata/etc/jmx.acl.org.apache.karaf.bundle.cfg new file mode 100644 index 0000000..e1c9b1c --- /dev/null +++ b/openhab/openhab_userdata/etc/jmx.acl.org.apache.karaf.bundle.cfg @@ -0,0 +1,40 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# JMX ACL specific to the org.apache.karaf:type=bundle,name=* MBean which maps to the Karaf MBean +# to control OSGi bundles. +# +install = manager +refresh = manager +resolve = manager +restart = manager +setStartLevel(java.lang.String, int)[/([1-4])?[0-9]/,/.*/] = admin +setStartLevel = manager +start(java.lang.String)[/([1-4])?[0-9]/] = admin +start = manager +stop(java.lang.String)[/([1-4])?[0-9]/] = admin +stop = manager +uninstall(java.lang.String)["0"] = #this is a comment, no roles can perform this operation +uninstall = admin +update(java.lang.String)[/([1-4])?[0-9]/] = admin +update(java.lang.String,java.lang.String)[/([1-4])?[0-9]/,/.*/] = admin +update = manager + diff --git a/openhab/openhab_userdata/etc/jmx.acl.org.apache.karaf.config.cfg b/openhab/openhab_userdata/etc/jmx.acl.org.apache.karaf.config.cfg new file mode 100644 index 0000000..39fb1a4 --- /dev/null +++ b/openhab/openhab_userdata/etc/jmx.acl.org.apache.karaf.config.cfg @@ -0,0 +1,54 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# JMX ACL specific to the org.apache.karaf:type=config,name=* MBean which maps to the Karaf MBean to interact with the +# OSGi Config Admin service. +# +# For a description of the format of this file, see jmx.acl.cfg +# +# By default, only an admin can make changes to the JMX ACL and shell command rules, but managers can make +# changes to other PIDs. +# +appendProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin +appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin +appendProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin +appendProperty(java.lang.String,java.lang.String,java.lang.String) = manager +create(java.lang.String)[/jmx[.]acl.*/] = admin +create(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin +create(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin +create(java.lang.String) = manager +delete(java.lang.String)[/jmx[.]acl.*/] = admin +delete(java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/] = admin +delete(java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/] = admin +delete(java.lang.String) = manager +deleteProperty(java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/] = admin +deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin +deleteProperty(java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin +deleteProperty(java.lang.String,java.lang.String) = manager +setProperty(java.lang.String,java.lang.String,java.lang.String)[/jmx[.]acl.*/,/.*/,/.*/] = admin +setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/,/.*/] = admin +setProperty(java.lang.String,java.lang.String,java.lang.String)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/,/.*/] = admin +setProperty(java.lang.String,java.lang.String,java.lang.String) = manager +update(java.lang.String,java.util.Map)[/jmx[.]acl.*/,/.*/] = admin +update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]command[.]acl.+/,/.*/] = admin +update(java.lang.String,java.util.Map)[/org[.]apache[.]karaf[.]service[.]acl.+/,/.*/] = admin +update(java.lang.String,java.util.Map) = manager + diff --git a/openhab/openhab_userdata/etc/jre.properties b/openhab/openhab_userdata/etc/jre.properties new file mode 100644 index 0000000..871e77b --- /dev/null +++ b/openhab/openhab_userdata/etc/jre.properties @@ -0,0 +1,503 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# Java platform package export properties. +# + +# Contains java.* packages provided by the JDK (and so system packages) +jre-base= \ + java.applet, \ + java.awt, \ + java.awt.color, \ + java.awt.datatransfer, \ + java.awt.dnd, \ + java.awt.event, \ + java.awt.font, \ + java.awt.geom, \ + java.awt.im, \ + java.awt.im.spi, \ + java.awt.image, \ + java.awt.image.renderable, \ + java.awt.print, \ + java.beans, \ + java.beans.beancontext, \ + java.io, \ + java.lang, \ + java.lang.annotation, \ + java.lang.constant, \ + java.lang.instrument, \ + java.lang.invoke, \ + java.lang.management, \ + java.lang.ref, \ + java.lang.reflect, \ + java.lang.runtime, \ + java.math, \ + java.net, \ + java.net.http, \ + java.nio, \ + java.nio.channels, \ + java.nio.channels.spi, \ + java.nio.charset, \ + java.nio.charset.spi, \ + java.nio.file, \ + java.nio.file.attribute, \ + java.rmi, \ + java.rmi.activation, \ + java.rmi.dgc, \ + java.rmi.registry, \ + java.rmi.server, \ + java.security, \ + java.security.acl, \ + java.security.cert, \ + java.security.interfaces, \ + java.security.spec, \ + java.sql, \ + java.text, \ + java.text.spi, \ + java.time, \ + java.time.chrono, \ + java.time.format, \ + java.time.temporal, \ + java.time.zone, \ + java.util, \ + java.util.concurrent, \ + java.util.concurrent.atomic, \ + java.util.concurrent.locks, \ + java.util.function, \ + java.util.random, \ + java.util.jar, \ + java.util.logging, \ + java.util.prefs, \ + java.util.regex, \ + java.util.spi, \ + java.util.stream, \ + java.util.zip + +# +# A note about javax.transaction and javax.transaction.xa packages in JDK8 and JDK9+ +# - javax.transaction package is not provided at all in JDK9+ because of the removal of Corba +# - javax.transaction package in JDK8 and earlier contains only 3 exception classes required to translate 3 Corba/OMG +# exception: org.omg.CORBA.TRANSACTION_REQUIRED, org.omg.CORBA.TRANSACTION_ROLLEDBACK, org.omg.CORBA.INVALID_TRANSACTION +# - javax.transaction.xa package should always be provided by JDK itself (thus exported from system bundle and bootdelegated) +# because of javax.sql.XAConnection interface relying on javax.sql.xa.XAResource interface +# - I decided to export javax.transaction.xa package with all the versions: 1.1, 1.2 and 1.3 just to satisfy all potential +# import version ranges (and emphasize the fact that JavaEE doesn't version packages at all) +# - javax.transaction package should be exported by JDK8 (but not JDK9+) with mandatory attribute ("partial" is an +# arbirtary name mentioned in "https://docs.osgi.org/specification/osgi.core/7.0.0/framework.module.html#framework.module.requirebundle" +# - javax.transaction exported with "partial=true;mandatory:=partial" prevents system bundle to be a wire candidate for +# bundles with just "Import-Package: javax.transaction" - actual JTA API bundle is needed to provide all the classes +# from this package (like javax.transaction.UserTransaction) +# - thus javax.transaction package is exported without a version - because each bundle with "Import-Package: javax.transaction" +# should always wire to full JTA API bundle. The fact that the JDK8 provided exception classes from this package +# are always loaded using boot class loader is an obvious, but internal consequence +# - the full trick mentioned in "3.13.1 Require-Bundle" requires another bundle that exports javax.transaction package +# without mandatory attribute and that has Require-Bundle requirement to a bundle that exports the package with mandatory +# attribute - and that's what javax.transaction/javax.transaction-api/1.2 does - it contains "Require-Bundle: system.bundle" +# - Require-Bundle in JTA API bundle is not needed if javax.transaction is boot-delegated - because failure to search +# boot-delegated javax.* packages doesn't stop the class loading process - local content is checked +# - jakarta.transaction/jakarta.transaction-api/1.3.x doesn't have (by mistake, see https://github.com/eclipse-ee4j/jta-api/issues/186) +# "Require-Bundle: system.bundle", but it still works thanks to boot-delegation +# And last, but important thing - DBCP2 (see DBCP-571) has "Import-Package: javax.transaction.xa;partial=true;mandatory:=partial" +# which is simply wrong (if anything, javax.transaction package should be imported this way, not javax.transaction.xa), +# but to allow DBCP2 to be resolved on Karaf, special export package is added just for DBCP2: +# Export-Package: javax.transaction.xa;partial=true;mandatory:=partial;version="1.1" +# - mandatory "partial" attribute is added to javax.transaction export (JDK8) to prevent wiring to this package without +# full JTA API bundle +# - mandatory "partial" attribute is added to javax.transaction.xa export (all JDKs) to satisfy DBCP2 +# + +jre-1.8= \ + ${jre-base}, \ + javax.accessibility, \ + javax.activity, \ + javax.annotation;version="1.0", \ + javax.annotation.processing;version="1.0", \ + javax.crypto, \ + javax.crypto.interfaces, \ + javax.crypto.spec, \ + javax.imageio, \ + javax.imageio.event, \ + javax.imageio.metadata, \ + javax.imageio.plugins.bmp, \ + javax.imageio.plugins.jpeg, \ + javax.imageio.spi, \ + javax.imageio.stream, \ + javax.jws, \ + javax.jws.soap, \ + javax.lang.model, \ + javax.lang.model.element, \ + javax.lang.model.type, \ + javax.lang.model.util, \ + javax.management, \ + javax.management.loading, \ + javax.management.modelmbean, \ + javax.management.monitor, \ + javax.management.openmbean, \ + javax.management.relation, \ + javax.management.remote, \ + javax.management.remote.rmi, \ + javax.management.timer, \ + javax.naming, \ + javax.naming.directory, \ + javax.naming.event, \ + javax.naming.ldap, \ + javax.naming.spi, \ + javax.net, \ + javax.net.ssl, \ + javax.print, \ + javax.print.attribute, \ + javax.print.attribute.standard, \ + javax.print.event, \ + javax.rmi, \ + javax.rmi.CORBA, \ + javax.rmi.ssl, \ + javax.script, \ + javax.security.auth, \ + javax.security.auth.callback, \ + javax.security.auth.kerberos, \ + javax.security.auth.login, \ + javax.security.auth.spi, \ + javax.security.auth.x500, \ + javax.security.cert, \ + javax.security.sasl, \ + javax.sound.midi, \ + javax.sound.midi.spi, \ + javax.sound.sampled, \ + javax.sound.sampled.spi, \ + javax.sql, \ + javax.sql.rowset, \ + javax.sql.rowset.serial, \ + javax.sql.rowset.spi, \ + javax.swing, \ + javax.swing.border, \ + javax.swing.colorchooser, \ + javax.swing.event, \ + javax.swing.filechooser, \ + javax.swing.plaf, \ + javax.swing.plaf.basic, \ + javax.swing.plaf.metal, \ + javax.swing.plaf.multi, \ + javax.swing.plaf.synth, \ + javax.swing.table, \ + javax.swing.text, \ + javax.swing.text.html, \ + javax.swing.text.html.parser, \ + javax.swing.text.rtf, \ + javax.swing.tree, \ + javax.swing.undo, \ + javax.tools, \ + javax.transaction;partial=true;mandatory:=partial, \ + javax.transaction.xa;version="1.1";partial=true;mandatory:=partial, \ + javax.transaction.xa;version="1.1", \ + javax.transaction.xa;version="1.2", \ + javax.transaction.xa;version="1.3", \ + javax.xml, \ + javax.xml.bind;version="2.2.8", \ + javax.xml.bind.annotation;version="2.2.8", \ + javax.xml.bind.annotation.adapters;version="2.2.8", \ + javax.xml.bind.attachment;version="2.2.8", \ + javax.xml.bind.helpers;version="2.2.8", \ + javax.xml.bind.util;version="2.2.8", \ + javax.xml.crypto, \ + javax.xml.crypto.dom, \ + javax.xml.crypto.dsig, \ + javax.xml.crypto.dsig.dom, \ + javax.xml.crypto.dsig.keyinfo, \ + javax.xml.crypto.dsig.spec, \ + javax.xml.datatype, \ + javax.xml.namespace, \ + javax.xml.parsers, \ + javax.xml.stream;version="1.2", \ + javax.xml.stream.events;version="1.2", \ + javax.xml.stream.util;version="1.2", \ + javax.xml.transform, \ + javax.xml.transform.dom, \ + javax.xml.transform.sax, \ + javax.xml.transform.stax, \ + javax.xml.transform.stream, \ + javax.xml.validation, \ + javax.xml.ws;version="2.2", \ + javax.xml.ws.handler;version="2.2", \ + javax.xml.ws.handler.soap;version="2.2", \ + javax.xml.ws.http;version="2.2", \ + javax.xml.ws.soap;version="2.2", \ + javax.xml.ws.spi;version="2.2", \ + javax.xml.ws.wsaddressing;version="2.2", \ + javax.xml.ws.spi.http;version="2.2", \ + javax.xml.xpath, \ + javafx.animation, \ + javafx.application, \ + javafx.beans, \ + javafx.beans.binding, \ + javafx.beans.property, \ + javafx.beans.property.adapter, \ + javafx.beans.value, \ + javafx.collections, \ + javafx.collections.transform, \ + javafx.concurrent, \ + javafx.css, \ + javafx.embed.swing, \ + javafx.embed.swt, \ + javafx.event, \ + javafx.fxml, \ + javafx.geometry, \ + javafx.print, \ + javafx.scene, \ + javafx.scene.canvas, \ + javafx.scene.chart, \ + javafx.scene.control, \ + javafx.scene.control.cell, \ + javafx.scene.effect, \ + javafx.scene.image, \ + javafx.scene.input, \ + javafx.scene.layout, \ + javafx.scene.media, \ + javafx.scene.paint, \ + javafx.scene.shape, \ + javafx.scene.text, \ + javafx.scene.transform, \ + javafx.scene.web, \ + javafx.stage, \ + javafx.util, \ + javafx.util.converter, \ + netscape.javascript, \ + org.ietf.jgss, \ + org.omg.CORBA, \ + org.omg.CORBA_2_3, \ + org.omg.CORBA_2_3.portable, \ + org.omg.CORBA.DynAnyPackage, \ + org.omg.CORBA.ORBPackage, \ + org.omg.CORBA.portable, \ + org.omg.CORBA.TypeCodePackage, \ + org.omg.CosNaming, \ + org.omg.CosNaming.NamingContextExtPackage, \ + org.omg.CosNaming.NamingContextPackage, \ + org.omg.Dynamic, \ + org.omg.DynamicAny, \ + org.omg.DynamicAny.DynAnyFactoryPackage, \ + org.omg.DynamicAny.DynAnyPackage, \ + org.omg.IOP, \ + org.omg.IOP.CodecFactoryPackage, \ + org.omg.IOP.CodecPackage, \ + org.omg.Messaging, \ + org.omg.PortableInterceptor, \ + org.omg.PortableInterceptor.ORBInitInfoPackage, \ + org.omg.PortableServer, \ + org.omg.PortableServer.CurrentPackage, \ + org.omg.PortableServer.POAManagerPackage, \ + org.omg.PortableServer.POAPackage, \ + org.omg.PortableServer.portable, \ + org.omg.PortableServer.ServantLocatorPackage, \ + org.omg.SendingContext, \ + org.omg.stub.java.rmi, \ + org.omg.stub.javax.management.remote.rmi, \ + org.w3c.dom, \ + org.w3c.dom.bootstrap, \ + org.w3c.dom.css, \ + org.w3c.dom.events, \ + org.w3c.dom.html, \ + org.w3c.dom.ls, \ + org.w3c.dom.ranges, \ + org.w3c.dom.stylesheets, \ + org.w3c.dom.traversal, \ + org.w3c.dom.views, \ + org.w3c.dom.xpath, \ + org.xml.sax, \ + org.xml.sax.ext, \ + org.xml.sax.helpers, \ + com.sun.nio.sctp + +jre-9= \ + ${jre-base}, \ + java.lang.module, \ + java.net.spi, \ + javax.accessibility, \ + javax.activity, \ + javax.annotation;version="1.3", \ + javax.annotation.processing;version="1.0", \ + javax.activation;version="1.2.1", \ + javax.crypto, \ + javax.crypto.interfaces, \ + javax.crypto.spec, \ + javax.imageio, \ + javax.imageio.event, \ + javax.imageio.metadata, \ + javax.imageio.plugins.bmp, \ + javax.imageio.plugins.jpeg, \ + javax.imageio.spi, \ + javax.imageio.stream, \ + javax.lang.model, \ + javax.lang.model.element, \ + javax.lang.model.type, \ + javax.lang.model.util, \ + javax.management, \ + javax.management.loading, \ + javax.management.modelmbean, \ + javax.management.monitor, \ + javax.management.openmbean, \ + javax.management.relation, \ + javax.management.remote, \ + javax.management.remote.rmi, \ + javax.management.timer, \ + javax.naming, \ + javax.naming.directory, \ + javax.naming.event, \ + javax.naming.ldap, \ + javax.naming.spi, \ + javax.net, \ + javax.net.ssl, \ + javax.print, \ + javax.print.attribute, \ + javax.print.attribute.standard, \ + javax.print.event, \ + javax.rmi, \ + javax.rmi.ssl, \ + javax.script, \ + javax.security.auth, \ + javax.security.auth.callback, \ + javax.security.auth.kerberos, \ + javax.security.auth.login, \ + javax.security.auth.spi, \ + javax.security.auth.x500, \ + javax.security.cert, \ + javax.security.sasl, \ + javax.sound.midi, \ + javax.sound.midi.spi, \ + javax.sound.sampled, \ + javax.sound.sampled.spi, \ + javax.sql, \ + javax.sql.rowset, \ + javax.sql.rowset.serial, \ + javax.sql.rowset.spi, \ + javax.swing, \ + javax.swing.border, \ + javax.swing.colorchooser, \ + javax.swing.event, \ + javax.swing.filechooser, \ + javax.swing.plaf, \ + javax.swing.plaf.basic, \ + javax.swing.plaf.metal, \ + javax.swing.plaf.multi, \ + javax.swing.plaf.synth, \ + javax.swing.table, \ + javax.swing.text, \ + javax.swing.text.html, \ + javax.swing.text.html.parser, \ + javax.swing.text.rtf, \ + javax.swing.tree, \ + javax.swing.undo, \ + javax.tools, \ + javax.transaction.xa;version="1.1";partial=true;mandatory:=partial, \ + javax.transaction.xa;version="1.1", \ + javax.transaction.xa;version="1.2", \ + javax.transaction.xa;version="1.3", \ + javax.xml, \ + javax.xml.bind;version="2.3.0", \ + javax.xml.bind.annotation;version="2.3.0", \ + javax.xml.bind.annotation.adapters;version="2.3.0", \ + javax.xml.bind.attachment;version="2.3.0", \ + javax.xml.bind.helpers;version="2.3.0", \ + javax.xml.bind.util;version="2.3.0", \ + javax.xml.catalog, \ + javax.xml.crypto, \ + javax.xml.crypto.dom, \ + javax.xml.crypto.dsig, \ + javax.xml.crypto.dsig.dom, \ + javax.xml.crypto.dsig.keyinfo, \ + javax.xml.crypto.dsig.spec, \ + javax.xml.datatype, \ + javax.xml.namespace, \ + javax.xml.parsers, \ + javax.xml.stream;version="1.2", \ + javax.xml.stream.events;version="1.2", \ + javax.xml.stream.util;version="1.2", \ + javax.xml.transform, \ + javax.xml.transform.dom, \ + javax.xml.transform.sax, \ + javax.xml.transform.stax, \ + javax.xml.transform.stream, \ + javax.xml.validation, \ + javax.xml.xpath, \ + javafx.animation, \ + javafx.application, \ + javafx.beans, \ + javafx.beans.binding, \ + javafx.beans.property, \ + javafx.beans.property.adapter, \ + javafx.beans.value, \ + javafx.collections, \ + javafx.collections.transformation, \ + javafx.concurrent, \ + javafx.css, \ + javafx.embed.swing, \ + javafx.embed.swt, \ + javafx.event, \ + javafx.fxml, \ + javafx.geometry, \ + javafx.print, \ + javafx.scene, \ + javafx.scene.canvas, \ + javafx.scene.chart, \ + javafx.scene.control, \ + javafx.scene.control.cell, \ + javafx.scene.effect, \ + javafx.scene.image, \ + javafx.scene.input, \ + javafx.scene.layout, \ + javafx.scene.media, \ + javafx.scene.paint, \ + javafx.scene.shape, \ + javafx.scene.text, \ + javafx.scene.transform, \ + javafx.scene.web, \ + javafx.stage, \ + javafx.util, \ + javafx.util.converter, \ + netscape.javascript, \ + org.ietf.jgss, \ + org.w3c.dom, \ + org.w3c.dom.bootstrap, \ + org.w3c.dom.css, \ + org.w3c.dom.events, \ + org.w3c.dom.html, \ + org.w3c.dom.ls, \ + org.w3c.dom.ranges, \ + org.w3c.dom.stylesheets, \ + org.w3c.dom.traversal, \ + org.w3c.dom.views, \ + org.w3c.dom.xpath, \ + org.xml.sax, \ + org.xml.sax.ext, \ + org.xml.sax.helpers, \ + com.sun.security.sasl, \ + com.sun.security.sasl.digest, \ + com.sun.security.sasl.ntlm, \ + com.sun.security.sasl.util + +jre-10 = ${jre-9} +jre-11 = ${jre-10} +jre-12 = ${jre-11} +jre-13 = ${jre-12} +jre-14 = ${jre-13} +jre-15 = ${jre-14} +jre-16 = ${jre-15} +jre-17 = ${jre-16} +jre-18 = ${jre-17} +jre-19 = ${jre-18} diff --git a/openhab/openhab_userdata/etc/keys.properties b/openhab/openhab_userdata/etc/keys.properties new file mode 100644 index 0000000..e0538ff --- /dev/null +++ b/openhab/openhab_userdata/etc/keys.properties @@ -0,0 +1,36 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This file contains the valid users who can log into Karaf. Each line have to be of +# the format: +# +# USER=KEY,ROLE1,ROLE2,... +# +# All users and roles entered in this file are available after Karaf startup +# and modifiable via the JAAS command group. These users reside in a JAAS domain +# with the name "karaf".. +# + +# +# This is an example of how to associate a public key with a user. +# The user guide describes how to generate/update the key. +# +#karaf=AAAAB3NzaC1kc3MAAACBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iIDGZ3RSAHHAAAAFQCXYFCPFSMLzLKSuYKi64QL8Fgc9QAAAIEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoAAACBAKKSU2PFl/qOLxIwmBZPPIcJshVe7bVUpFvyl3BbJDow8rXfskl8wO63OzP/qLmcJM0+JbcRU/53JjTuyk31drV2qxhIOsLDC9dGCWj47Y7TyhPdXh/0dthTRBy6bqGtRPxGa7gJov1xm/UuYYXPIUR/3x9MAZvZ5xvE0kYXO+rx,_g_:admingroup +_g_\:admingroup = group,admin,manager,viewer,systembundles,ssh diff --git a/openhab/openhab_userdata/etc/keystore b/openhab/openhab_userdata/etc/keystore new file mode 100644 index 0000000..88ff11e Binary files /dev/null and b/openhab/openhab_userdata/etc/keystore differ diff --git a/openhab/openhab_userdata/etc/log4j2.xml b/openhab/openhab_userdata/etc/log4j2.xml new file mode 100644 index 0000000..5e7838b --- /dev/null +++ b/openhab/openhab_userdata/etc/log4j2.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openhab/openhab_userdata/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg b/openhab/openhab_userdata/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg new file mode 100644 index 0000000..7dc0168 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.felix.eventadmin.impl.EventAdmin.cfg @@ -0,0 +1,15 @@ +## Standard settings of Karaf + +org.apache.felix.eventadmin.AddTimestamp=true +org.apache.felix.eventadmin.AddSubject=true + +## Custom openHAB configuration + +# Configure thread pool size for EventAdmin sync event delivery. +org.apache.felix.eventadmin.ThreadPoolSize=3 + +# Use as many threads for async as for sync. +org.apache.felix.eventadmin.AsyncToSyncThreadRatio=1 + +# Do not timeout event handlers, see https://github.com/openhab/openhab-distro/issues/600 +org.apache.felix.eventadmin.Timeout=0 diff --git a/openhab/openhab_userdata/etc/org.apache.felix.fileinstall-deploy.cfg b/openhab/openhab_userdata/etc/org.apache.felix.fileinstall-deploy.cfg new file mode 100644 index 0000000..c8a28c8 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.felix.fileinstall-deploy.cfg @@ -0,0 +1,13 @@ +## Standard settings of Karaf + +felix.fileinstall.start.level = 80 +felix.fileinstall.log.level = 3 + +## Custom openHAB configuration + +felix.fileinstall.dir = ${openhab.home}/addons +felix.fileinstall.tmpdir = ${karaf.data}/tmp/bundles +felix.fileinstall.filter = .*\\.(jar|kar) +felix.fileinstall.poll = 10000 +felix.fileinstall.active.level = 90 +felix.fileinstall.subdir.mode = skip diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.bundle.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.bundle.cfg new file mode 100644 index 0000000..688c289 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.bundle.cfg @@ -0,0 +1,46 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for commands in the bundle subshell +# +# For an explanation of the syntax of this file, see the file: +# org.apache.karaf.command.acl.system.cfg +# +# This configuration relies on the fact that 'system' bundles need to be managed +# with the +# -f (--force) +# flag. Operations with -f need admin permission. Most of these operations without +# the 'force' option can be done by a manager. +install = admin +refresh[/.*[-][f].*/] = admin +refresh = manager +restart[/.*[-][f].*/] = admin +restart = manager +start[/.*[-][f].*/] = admin +start = manager +stop[/.*[-][f].*/] = admin +stop = manager +uninstall[/.*[-][f].*/] = admin +uninstall = manager +update[/.*[-][f].*/] = admin +update = manager +watch = admin + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.config.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.config.cfg new file mode 100644 index 0000000..b802587 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.config.cfg @@ -0,0 +1,46 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for various commands in the config subshell +# +# For an explanation of the syntax of this file, see the file: +# org.apache.karaf.command.acl.system.cfg +# +cancel = manager +delete = admin +edit = manager +edit[/.*jmx[.]acl.*/] = admin +edit[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin +edit[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin +property-append = manager +property-append[/.*jmx[.]acl.*/] = admin +property-append[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin +property-append[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin +property-delete = manager +property-delete[/.*jmx[.]acl.*/] = admin +property-delete[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin +property-delete[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin +property-set = manager +property-set[/.*jmx[.]acl.*/] = admin +property-set[/.*org[.]apache[.]karaf[.]command[.]acl[.].+/] = admin +property-set[/.*org[.]apache[.]karaf[.]service[.]acl[.].+/] = admin +update = manager + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.feature.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.feature.cfg new file mode 100644 index 0000000..b511ef5 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.feature.cfg @@ -0,0 +1,28 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for commands in the feature subshell +# +install = admin +uninstall = admin +start = admin +stop = admin + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.jaas.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.jaas.cfg new file mode 100644 index 0000000..9563625 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.jaas.cfg @@ -0,0 +1,25 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for commands in the jaas subshell +# Jaas commands commands have no effect until update is called. +update = admin + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.kar.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.kar.cfg new file mode 100644 index 0000000..d073038 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.kar.cfg @@ -0,0 +1,29 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for commands in the kar subshell +# +# For an explanation of the syntax of this file, see the file: +# org.apache.karaf.command.acl.system.cfg +# +install = admin +uninstall = admin + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.scope_bundle.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.scope_bundle.cfg new file mode 100644 index 0000000..ff316fa --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.scope_bundle.cfg @@ -0,0 +1,33 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for scope bundles +# +features=org.apache.karaf.features.command +jaas=org.apache.karaf.jaas.command +admin=org.apache.karaf.admin.command +osgi=org.apache.karaf.shell.osgi +log=org.apache.karaf.shell.log +packages=org.apache.karaf.shell.packages +config=org.apache.karaf.shell.config +ssh=org.apache.karaf.shell.ssh +shell=org.apache.karaf.shell.commands + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.shell.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.shell.cfg new file mode 100644 index 0000000..4e5844d --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.shell.cfg @@ -0,0 +1,28 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for commands in the shell subshell +# +nano = admin +exec = admin +new = admin +java = admin + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.system.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.system.cfg new file mode 100644 index 0000000..7ff0336 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.command.acl.system.cfg @@ -0,0 +1,29 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This configuration file defines the ACLs for commands in the system subshell +# +property = admin +shutdown = admin +start-level[/.*[1-9][0-9][0-9]+.*/] = manager # manager can set startlevels above 100 +start-level[/[^0-9]*/] = viewer # viewer can obtain the current start level +start-level = admin # admin can set any start level, including < 100 + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.features.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.features.cfg new file mode 100644 index 0000000..4b06cd9 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.features.cfg @@ -0,0 +1,100 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# Comma separated list of features repositories to register by default +# +featuresRepositories = \ + mvn:org.openhab.distro/distro/4.0.3/xml/features, \ + mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features, \ + mvn:org.apache.karaf.features/framework/4.4.3/xml/features, \ + mvn:org.apache.karaf.features/standard/4.4.3/xml/features + +# +# Comma separated list of features to install at startup +# +featuresBoot = \ + instance/4.4.3, \ + package/4.4.3, \ + log/4.4.3, \ + ssh/4.4.3, \ + framework/4.4.3, \ + system/4.4.3, \ + eventadmin/4.4.3, \ + feature/4.4.3, \ + shell/4.4.3, \ + service/4.4.3, \ + jaas/4.4.3, \ + openhab-runtime-base, \ + openhab-runtime-ui, \ + deployer/4.4.3, \ + diagnostic/4.4.3, \ + bundle/4.4.3, \ + config/4.4.3, \ + kar/4.4.3 + +# +# Resource repositories (OBR) that the features resolver can use +# to resolve requirements/capabilities +# +# The format of the resourceRepositories is +# resourceRepositories=[xml:url|json:url],... +# for Instance: +# +#resourceRepositories=xml:http://host/path/to/index.xml +# or +#resourceRepositories=json:http://host/path/to/index.json +# + +# +# Defines if the boot features are started in asynchronous mode (in a dedicated thread) +# +featuresBootAsynchronous=false + +# +# Service requirements enforcement +# +# By default, the feature resolver checks the service requirements/capabilities of +# bundles for new features (xml schema >= 1.3.0) in order to automatically installs +# the required bundles. +# The following flag can have those values: +# - disable: service requirements are completely ignored +# - default: service requirements are ignored for old features +# - enforce: service requirements are always verified +# +#serviceRequirements=default + +# +# Store cfg file for config element in feature +# +configCfgStore=false + +# +# Define if the feature service automatically refresh bundles +# +autoRefresh=true + +# +# Configuration of features processing mechanism (overrides, blacklisting, modification of features) +# XML file defines instructions related to features processing +# versions.properties may declare properties to resolve placeholders in XML file +# both files are relative to ${karaf.etc} +# +#featureProcessing=org.apache.karaf.features.xml +#featureProcessingVersions=versions.properties diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.features.repos.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.features.repos.cfg new file mode 100644 index 0000000..bd456a5 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.features.repos.cfg @@ -0,0 +1,62 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This file describes the features repository URL +# It could be directly installed using feature:repo-add command +# +enterprise=mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features +spring=mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features +spring-legacy=mvn:org.apache.karaf.features/spring-legacy/${karaf.version}/xml/features +cellar=mvn:org.apache.karaf.cellar/apache-karaf-cellar/RELEASE/xml/features +cave=mvn:org.apache.karaf.cave/apache-karaf-cave/RELEASE/xml/features +camel=mvn:org.apache.camel.karaf/apache-camel/RELEASE/xml/features +camel-extras=mvn:org.apache-extras.camel-extra.karaf/camel-extra/RELEASE/xml/features +cxf=mvn:org.apache.cxf.karaf/apache-cxf/RELEASE/xml/features +cxf-dosgi=mvn:org.apache.cxf.dosgi/cxf-dosgi/RELEASE/xml/features +cxf-dosgi-samples=mvn:org.apache.cxf.dosgi/cxf-dosgi-samples/RELEASE/xml/features +cxf-xkms=mvn:org.apache.cxf.services.xkms/cxf-services-xkms-features/RELEASE/xml +activemq=mvn:org.apache.activemq/activemq-karaf/RELEASE/xml/features +aries.jax.rs.whiteboard=mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.features/RELEASE/xml +jclouds=mvn:org.apache.jclouds.karaf/jclouds-karaf/RELEASE/xml/features +openejb=mvn:org.apache.openejb/openejb-feature/RELEASE/xml/features +wicket=mvn:org.ops4j.pax.wicket/features/RELEASE/xml/features +hawtio=mvn:io.hawt/hawtio-karaf/RELEASE/xml/features +pax-cdi=mvn:org.ops4j.pax.cdi/pax-cdi-features/RELEASE/xml/features +pax-jdbc=mvn:org.ops4j.pax.jdbc/pax-jdbc-features/RELEASE/xml/features +pax-jms=mvn:org.ops4j.pax.jms/pax-jms-features/RELEASE/xml/features +pax-jpa=mvn:org.ops4j.pax.jpa/pax-jpa-features/RELEASE/xml/features +pax-transx=mvn:org.ops4j.pax.transx/pax-transx-features/RELEASE/xml/features +pax-keycloak=mvn:org.ops4j.pax.keycloak/pax-keycloak-features/RELEASE/xml/features +pax-web=mvn:org.ops4j.pax.web/pax-web-features/RELEASE/xml/features +pax-wicket=mvn:org.ops4j.pax.wicket/pax-wicket-features/RELEASE/xml/features +ecf=http://download.eclipse.org/rt/ecf/RELEASE/site.p2/karaf-features.xml +decanter=mvn:org.apache.karaf.decanter/apache-karaf-decanter/RELEASE/xml/features +eclipsesource-jaxrs=mvn:com.eclipsesource.jaxrs/features/RELEASE/xml/features +aries-cdi=mvn:org.apache.aries.cdi/aries-cdi-feature/RELEASE/xml/features +aries-jpa=mvn:org.apache.aries.jpa/jpa-features/RELEASE/xml/features +aries-rsa=mvn:org.apache.aries.rsa/rsa-features/RELEASE/xml/features +hibernate=mvn:org.hibernate/hibernate-osgi/RELEASE/xml/karaf +ignite=mvn:org.apache.ignite/ignite-osgi-karaf/RELEASE/xml/features +openjpa=mvn:org.apache.openjpa/openjpa-features/RELEASE/xml/features +artemis=mvn:org.apache.activemq/artemis-features/RELEASE/xml/features +brave=mvn:io.zipkin.brave.karaf/brave-features/RELEASE/xml/features +sling=mvn:org.apache.sling/org.apache.sling.karaf-features/RELEASE/xml/features + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.features.xml b/openhab/openhab_userdata/etc/org.apache.karaf.features.xml new file mode 100644 index 0000000..3fb4f50 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.features.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.jaas.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.jaas.cfg new file mode 100644 index 0000000..4bf8d61 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.jaas.cfg @@ -0,0 +1,48 @@ +## Standard settings of Karaf + +# +# Encryption prefix +# +encryption.prefix = {CRYPT} + +# +# Encryption suffix +# +encryption.suffix = {CRYPT} + +# +# Set the encryption algorithm to use in Karaf JAAS login module +# Supported encryption algorithms follow: +# basic/jasypt: MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512 +# spring-security-crypto: argon2, bcrypt, pbkdf2, scrypt +# +encryption.algorithm = SHA-256 + +# +# Encoding of the encrypted password. +# Can be: +# hexadecimal +# base64 +# +encryption.encoding = hexadecimal + +########################################################################## +## +## Custom openHAB configuration + +# +# Boolean enabling / disabling encrypted passwords +# +encryption.enabled = true + +# +# Encryption Service name +# basic: the default encryption service which digests passwords without +# salting them +# jasypt: a more powerful alternative which supports salting +# spring-security-crypto: Supports bcrypt, argon2, pbkdf2, scrypt. Requires +# the "spring-security-crypto-encryption" feature +# to be installed. +# +encryption.name = basic + diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.kar.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.kar.cfg new file mode 100644 index 0000000..e6b1493 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.kar.cfg @@ -0,0 +1,22 @@ +## Standard settings of Karaf + +# +# Enable or disable the refresh of the bundles when installing +# the features contained in a KAR file +# +noAutoRefreshBundles=false + +# +# Enable or disable the automatic start of the bundles when installing +# the features contained in a KAR file +# +noAutoStartBundles=false + +########################################################################## +## +## Custom openHAB configuration + +# +# Directory where the kar are stored (when downloaded from Maven for instance) +# +karStorage=${karaf.data}/tmp/kar diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.log.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.log.cfg new file mode 100644 index 0000000..c401b91 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.log.cfg @@ -0,0 +1,23 @@ +## Standard settings of Karaf + +# +# This configuration file is used to configure the default values for the log:display +# and log:exception-display commands. +# + +# +# The number of log statements to be displayed using log:display. It also defines the number +# of lines searched for exceptions using log:exception-display. You can override this value +# at runtime using -n in log:display. +# +size = 500 + +########################################################################## +## +## Custom openHAB configuration + +# +# The pattern used to format the log statement when using log:display. This pattern is according +# to the log4j layout. You can override this parameter at runtime using log:display with -p. +# +pattern = %d{HH:mm:ss.SSS} [%-5.5p] [%-37.37c] - %h{%m}%n diff --git a/openhab/openhab_userdata/etc/org.apache.karaf.shell.cfg b/openhab/openhab_userdata/etc/org.apache.karaf.shell.cfg new file mode 100644 index 0000000..d5189a5 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.apache.karaf.shell.cfg @@ -0,0 +1,152 @@ + +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# These properties are used to configure Karaf's ssh shell. +# + +# +# Via sshPort and sshHost you define the address you can login into Karaf. +# +sshPort = 8101 +sshHost = 127.0.0.1 + +# +# The sshIdleTimeout defines the inactivity timeout to logout the SSH session. +# The sshIdleTimeout is in milliseconds, and the default is set to 30 minutes. +# +sshIdleTimeout = 1800000 + +# +# Define the number of the NIO workers for the sshd server. Default is 2. +# +#nio-workers = 2 + +# +# Define the maximum number of SSH sessions. Default is unlimited. +# +#max-concurrent-sessions = -1 + +# +# sshRealm defines which JAAS domain to use for password authentication. +# +sshRealm = karaf + +# +# Role name used for SSH access authorization +# If not set, this defaults to the ${karaf.admin.role} configured in etc/system.properties +# +# sshRole = admin + +# +# Defines if the SFTP system is enabled or not in the SSH server +# +sftpEnabled=true + +# +# The location of the hostKey file defines where the private key of the server +# is located. If no file is at the defined location it will be ignored. +# +hostKey = ${karaf.etc}/host.key + +# +# The password required to decrypt the private key of the server stored in +# 'hostKey'. This is not required if the private key stored in 'hostKey' is +# not encrypted +# +#hostKeyPassword = + +# +# The location of the hostKeyPub file defines where the public key of the server +# is located. If no file is at the defined location it will be ignored. +# +#hostKeyPub = ${karaf.etc}/host.key.pub + +# +# Self defined key size in 1024, 2048, 3072, or 4096 +# If not set, this defaults to 2048. +# +# keySize = 2048 + +# +# Specify host key algorithm, defaults to RSA +# +# algorithm = RSA + +# +# Specify the client log level (default is WARN) +# 0: ERROR +# 1: WARN +# 2: INFO +# 3: DEBUG +# 4: TRACE +# +#logLevel = 1 + +# +# Specify an additional welcome banner to be displayed when a user logs into the server. +# +# welcomeBanner = + +# +# Defines the completion mode on the Karaf shell console. The possible values are: +# - GLOBAL: it's the same behavior as in previous Karaf releases. The completion displays all commands and all aliases +# ignoring if you are in a subshell or not. +# - FIRST: the completion displays all commands and all aliases only when you are not in a subshell. When you are +# in a subshell, the completion displays only the commands local to the subshell. +# - SUBSHELL: the completion displays only the subshells on the root level. When you are in a subshell, the completion +# displays only the commands local to the subshell. +# This property define the default value when you use the Karaf shell console. +# You can change the completion mode directly in the shell console, using shell:completion command. +# +completionMode = GLOBAL + +# If set to true, shell:logout command will not exit Karaf. This can be useful to avoid accidental exits. +# You will be able to exit via 'shutdown' or 'halt' instead. +disableLogout = false +# If set to true, it will stop CTRL-D from exiting Karaf. This can be useful to avoid accidental exits. +# You will be able to exit via 'shutdown' or 'halt' instead. +disableEofExit = false + +# +# Override allowed SSH cipher algorithms. +# Default: aes256-ctr,aes192-ctr,aes128-ctr +# +# ciphers = aes256-ctr,aes192-ctr,aes128-ctr + +# +# Override allowed SSH HMAC algorithms. +# Default: hmac-sha2-512,hmac-sha2-256 +# +# macs = hmac-sha2-512,hmac-sha2-256 + +# +# Override allowed SSH key exchange algorithms. +# Default: ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 +# +# kexAlgorithms = ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 + +# +# Override moduli-url. +# Default: moduli-url not specified to use the internal one from SSHD +# +# moduli-url = external moduli-url users wanna use + + diff --git a/openhab/openhab_userdata/etc/org.jupnp.cfg b/openhab/openhab_userdata/etc/org.jupnp.cfg new file mode 100644 index 0000000..dae0b9e --- /dev/null +++ b/openhab/openhab_userdata/etc/org.jupnp.cfg @@ -0,0 +1,3 @@ +multicastResponsePort=0 +asyncThreadPoolSize=30 +threadPoolSize=15 diff --git a/openhab/openhab_userdata/etc/org.openhab.audio.cfg b/openhab/openhab_userdata/etc/org.openhab.audio.cfg new file mode 100644 index 0000000..4f88d13 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.openhab.audio.cfg @@ -0,0 +1,2 @@ + +defaultSink = enhancedjavasound diff --git a/openhab/openhab_userdata/etc/org.openhab.voice.cfg b/openhab/openhab_userdata/etc/org.openhab.voice.cfg new file mode 100644 index 0000000..164d745 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.openhab.voice.cfg @@ -0,0 +1,2 @@ + +defaultHLI = rulehli diff --git a/openhab/openhab_userdata/etc/org.ops4j.pax.logging.cfg b/openhab/openhab_userdata/etc/org.ops4j.pax.logging.cfg new file mode 100644 index 0000000..e8a48ea --- /dev/null +++ b/openhab/openhab_userdata/etc/org.ops4j.pax.logging.cfg @@ -0,0 +1 @@ +org.ops4j.pax.logging.log4j2.config.file=${karaf.etc}/log4j2.xml diff --git a/openhab/openhab_userdata/etc/org.ops4j.pax.url.mvn.cfg b/openhab/openhab_userdata/etc/org.ops4j.pax.url.mvn.cfg new file mode 100644 index 0000000..c6a93d9 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.ops4j.pax.url.mvn.cfg @@ -0,0 +1,120 @@ +# +# If set to true, the following property will not allow any certificate to be used +# when accessing Maven repositories through SSL +# +#org.ops4j.pax.url.mvn.certificateCheck= + +# +# Path to the local Maven settings file. +# The repositories defined in this file will be automatically added to the list +# of default repositories if the 'org.ops4j.pax.url.mvn.repositories' property +# below is not set. +# The following locations are checked for the existence of the settings.xml file +# * 1. looks for the specified url +# * 2. if not found looks for /var/jenkins_home/.m2/settings.xml +# * 3. if not found looks for /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven_latest_/conf/settings.xml +# * 4. if not found looks for ${M2_HOME}/conf/settings.xml +# +# Properties prefixed with "org.ops4j.pax.url.mvn." have +# higher priority except element. HTTP proxies should be configured in +# settings file +#org.ops4j.pax.url.mvn.settings= + +# +# Path to the local Maven repository which is used to avoid downloading +# artifacts when they already exist locally. +# The value of this property will be extracted from the settings.xml file +# above, or defaulted to: +# System.getProperty( "user.home" ) + "/.m2/repository" +# +org.ops4j.pax.url.mvn.localRepository=${openhab.userdata}/tmp/mvn + +# +# Default this to false. It's just weird to use undocumented repos +# "false" means that https://repo1.maven.org/maven2@id=central won't be +# implicitly used as remote repository +# +org.ops4j.pax.url.mvn.useFallbackRepositories=false + +# +# Comma separated list of repositories scanned when resolving an artifact. +# list of repositories searched in the first place, should contain +# ${runtime.home}/${karaf.default.repository}. +# if "org.ops4j.pax.url.mvn.localRepository" is defined and it's not +# ~/.m2/repository, it's recommended (at least for dev purposes) to add +# ~/.m2/repository to defaultRepositories +# each of these repositories is checked by aether as "local repository". if +# artifact isn't found, "repositories" are searched next +# +# Those repositories will be checked before iterating through the +# below list of repositories and even before the local repository +# A repository url can be appended with zero or more of the following flags: +# @snapshots : the repository contains snapshots +# @noreleases : the repository does not contain any released artifacts +# +# The following property value will add the system folder as a repo. +# +org.ops4j.pax.url.mvn.defaultRepositories=\ + ${karaf.home.uri}${karaf.default.repository}@id=system.repository@snapshots, \ + ${karaf.data.uri}tmp/kar@id=kar.repository@multi@snapshots, \ + ${karaf.base.uri}${karaf.default.repository}@id=child.system.repository@snapshots + +# +# if "defaultLocalRepoAsRemote" is set to *any* value, localRepository will be +# added to the list of remote repositories being searched for artifacts +# +#org.ops4j.pax.url.mvn.defaultLocalRepoAsRemote = true + +# +# Comma separated list of repositories scanned when resolving an artifact. +# list of repositories searched after resolution fails for "defaultRepositories" +# These are true remote repositories accessed using maven/aether/wagon +# mechanisms. If any repository contains required artifact, it is then written +# to "localRepository" +# +# if this list is _prepended_ with '+' sign, all repositories from active +# profiles defined in effective settings.xml file will be _appended_ to this +# list +# The default list includes the following repositories: +# https://repo1.maven.org/maven2@id=central +# https://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases +# https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases +# A repository url can be appended with zero or more of the following flags: +# @snapshots : the repository contains snapshots +# @noreleases : the repository does not contain any released artifacts +# @id=repository.id : the id for the repository, just like in the +# settings.xml this is optional but recommended +# +# This contains the openHAB and default repositories. +# +org.ops4j.pax.url.mvn.repositories= \ + https://openhab.jfrog.io/openhab/libs-release@id=openhab + +# +# Global policies override repository-specific settings (@checksum=..., @update=..., @releasesUpdate=..., ...) +# +#org.ops4j.pax.url.mvn.globalUpdatePolicy = daily +#org.ops4j.pax.url.mvn.globalChecksumPolicy = warn + +# +# socket and connection configuration (pax-url-aether 2.5.0) +# +# default value for connection and read timeouts, when socket.readTimeout and socket.connectionTimeout +# are not specified +org.ops4j.pax.url.mvn.timeout = 5000 +# timeout in ms when establishing http connection during artifact resolution +org.ops4j.pax.url.mvn.socket.connectionTimeout = 5000 +# timeout in ms when reading data after connecting to remote repository +org.ops4j.pax.url.mvn.socket.readTimeout = 30000 +# SO_KEEPALIVE option for sockets, defaults to false +org.ops4j.pax.url.mvn.socket.keepAlive = false +# SO_LINGER option for sockets, defaults to -1 +org.ops4j.pax.url.mvn.socket.linger = -1 +# SO_REUSEADDR option for sockets, defaults to false +org.ops4j.pax.url.mvn.socket.reuseAddress = false +# TCP_NODELAY option for sockets, defaults to true +org.ops4j.pax.url.mvn.socket.tcpNoDelay = true +# Configure buffer size for HTTP connections (output and input buffers), defaults to 8192 bytes +org.ops4j.pax.url.mvn.connection.bufferSize = 8192 +# Number of connection retries after failure is detected in http client. httpclient uses default value "3" +org.ops4j.pax.url.mvn.connection.retryCount = 3 diff --git a/openhab/openhab_userdata/etc/org.ops4j.pax.web.cfg b/openhab/openhab_userdata/etc/org.ops4j.pax.web.cfg new file mode 100644 index 0000000..5eedb13 --- /dev/null +++ b/openhab/openhab_userdata/etc/org.ops4j.pax.web.cfg @@ -0,0 +1,62 @@ +# +# min server threads +# +org.ops4j.pax.web.server.minThreads = 2 + +# +# max server threads +# +org.ops4j.pax.web.server.maxThreads = 50 + +# +# location of jetty config +# +org.ops4j.pax.web.config.file = ${openhab.runtime}/etc/jetty.xml + +# +# enable https +# +org.osgi.service.http.secure.enabled = true + +# +# http port. +# This is currently also in the setenv +# org.osgi.service.http.port = 8080 + +# +# https port, default is 8443. +# This is currently also in the setenv +# +#org.osgi.service.http.port.secure = 8443 + +# +# The number of minutes after which an inactive session will timeout. +# +org.ops4j.pax.web.session.timeout = 10 + +# +# Specifies if the connections established use the nio classes from java. +# +org.osgi.service.http.useNIO = true + +# +# Set to true if certificate-based client authentication at the server is "wanted". +# +org.ops4j.pax.web.ssl.clientauthwanted = false + +# +# Set to true if certificate-based client authentication at the server is "required". +# +org.ops4j.pax.web.ssl.clientauthneeded = false + +# +# The time in milliseconds that the connection can be idle before it is closed. +# +org.ops4j.pax.web.server.idleTimeout = 300000 + +# +# Listening addresses. This should match host in the sslconnector/name attribute in jetty.xml +# Default is 0.0.0.0 +# This is currently also in the setenv +# +#org.ops4j.pax.web.listening.addresses = 0.0.0.0 diff --git a/openhab/openhab_userdata/etc/overrides.properties b/openhab/openhab_userdata/etc/overrides.properties new file mode 100644 index 0000000..e69de29 diff --git a/openhab/openhab_userdata/etc/profile.cfg b/openhab/openhab_userdata/etc/profile.cfg new file mode 100644 index 0000000..ee4b584 --- /dev/null +++ b/openhab/openhab_userdata/etc/profile.cfg @@ -0,0 +1,119 @@ +# +# Profile generated by Karaf Assembly Builder +# + +# Parent profiles +attribute.parents = generated-startup generated-boot generated-installed + +# Attributes +attribute.overlay = true + +# Feature XML repositories +repository.mvn\:org.apache.karaf.features/standard/4.4.3/xml/features = mvn:org.apache.karaf.features/standard/4.4.3/xml/features +repository.mvn\:org.apache.karaf.features/framework/4.4.3/xml/features = mvn:org.apache.karaf.features/framework/4.4.3/xml/features +repository.mvn\:org.openhab.distro/distro/4.0.3/xml/features = mvn:org.openhab.distro/distro/4.0.3/xml/features +repository.mvn\:org.openhab.distro/openhab-addons/4.0.3/xml/features = mvn:org.openhab.distro/openhab-addons/4.0.3/xml/features +repository.mvn\:org.openhab.distro/distro-kar/4.0.3/xml/features = mvn:org.openhab.distro/distro-kar/4.0.3/xml/features + +# Features +feature.framework = framework +feature.eventadmin = eventadmin +feature.jaas = jaas +feature.shell = shell +feature.ssh = ssh +feature.bundle = bundle +feature.config = config +feature.deployer = deployer +feature.diagnostic = diagnostic +feature.feature = feature +feature.instance = instance +feature.kar = kar +feature.log = log +feature.package = package +feature.service = service +feature.system = system +feature.openhab-runtime-base = openhab-runtime-base +feature.openhab-runtime-ui = openhab-runtime-ui +feature.wrapper = wrapper +feature.wrap = wrap +feature.openhab-runtime-ui/4.0.3 = openhab-runtime-ui/4.0.3 +feature.openhab-core-base/4.0.3 = openhab-core-base/4.0.3 +feature.openhab-core-addon-marketplace/4.0.3 = openhab-core-addon-marketplace/4.0.3 +feature.openhab-core-auth-jaas/4.0.3 = openhab-core-auth-jaas/4.0.3 +feature.openhab-core-auth-oauth2client/4.0.3 = openhab-core-auth-oauth2client/4.0.3 +feature.openhab-core-automation-module-script/4.0.3 = openhab-core-automation-module-script/4.0.3 +feature.openhab-core-automation-module-script-rulesupport/4.0.3 = openhab-core-automation-module-script-rulesupport/4.0.3 +feature.openhab-core-automation-module-media/4.0.3 = openhab-core-automation-module-media/4.0.3 +feature.openhab-core-automation-rest/4.0.3 = openhab-core-automation-rest/4.0.3 +feature.openhab-core-io-bin2json/4.0.3 = openhab-core-io-bin2json/4.0.3 +feature.openhab-core-io-console-karaf/4.0.3 = openhab-core-io-console-karaf/4.0.3 +feature.openhab-core-io-http-auth/4.0.3 = openhab-core-io-http-auth/4.0.3 +feature.openhab-core-io-rest-auth/4.0.3 = openhab-core-io-rest-auth/4.0.3 +feature.openhab-core-io-rest-log/4.0.3 = openhab-core-io-rest-log/4.0.3 +feature.openhab-core-io-rest-sitemap/4.0.3 = openhab-core-io-rest-sitemap/4.0.3 +feature.openhab-core-io-rest-swagger/4.0.3 = openhab-core-io-rest-swagger/4.0.3 +feature.openhab-core-io-rest-audio/4.0.3 = openhab-core-io-rest-audio/4.0.3 +feature.openhab-core-io-rest-transform/4.0.3 = openhab-core-io-rest-transform/4.0.3 +feature.openhab-core-io-rest-voice/4.0.3 = openhab-core-io-rest-voice/4.0.3 +feature.openhab-core-io-rest-mdns/4.0.3 = openhab-core-io-rest-mdns/4.0.3 +feature.openhab-core-io-websocket/4.0.3 = openhab-core-io-websocket/4.0.3 +feature.openhab-core-io-transport-coap/4.0.3 = openhab-core-io-transport-coap/4.0.3 +feature.openhab-core-io-transport-http/4.0.3 = openhab-core-io-transport-http/4.0.3 +feature.openhab-core-io-transport-mdns/4.0.3 = openhab-core-io-transport-mdns/4.0.3 +feature.openhab-core-io-transport-modbus/4.0.3 = openhab-core-io-transport-modbus/4.0.3 +feature.openhab-core-io-transport-mqtt/4.0.3 = openhab-core-io-transport-mqtt/4.0.3 +feature.openhab-core-io-transport-serial-javacomm/4.0.3 = openhab-core-io-transport-serial-javacomm/4.0.3 +feature.openhab-core-io-transport-upnp/4.0.3 = openhab-core-io-transport-upnp/4.0.3 +feature.openhab.inc-model-core/4.0.3 = openhab.inc-model-core/4.0.3 +feature.openhab-core-model-item/4.0.3 = openhab-core-model-item/4.0.3 +feature.openhab-core-model-item-ide/4.0.3 = openhab-core-model-item-ide/4.0.3 +feature.openhab-core-model-persistence/4.0.3 = openhab-core-model-persistence/4.0.3 +feature.openhab-core-model-persistence-ide/4.0.3 = openhab-core-model-persistence-ide/4.0.3 +feature.openhab-core-model-rule/4.0.3 = openhab-core-model-rule/4.0.3 +feature.openhab-core-model-rule-ide/4.0.3 = openhab-core-model-rule-ide/4.0.3 +feature.openhab-core-model-script/4.0.3 = openhab-core-model-script/4.0.3 +feature.openhab-core-model-script-ide/4.0.3 = openhab-core-model-script-ide/4.0.3 +feature.openhab-core-model-sitemap/4.0.3 = openhab-core-model-sitemap/4.0.3 +feature.openhab-core-model-sitemap-ide/4.0.3 = openhab-core-model-sitemap-ide/4.0.3 +feature.openhab-core-model-thing/4.0.3 = openhab-core-model-thing/4.0.3 +feature.openhab-core-model-thing-ide/4.0.3 = openhab-core-model-thing-ide/4.0.3 +feature.openhab-core-model-lsp/4.0.3 = openhab-core-model-lsp/4.0.3 +feature.openhab-core-storage-json/4.0.3 = openhab-core-storage-json/4.0.3 +feature.openhab-core-ui/4.0.3 = openhab-core-ui/4.0.3 +feature.openhab-core-ui-icon/4.0.3 = openhab-core-ui-icon/4.0.3 +feature.openhab-runtime-base/4.0.3 = openhab-runtime-base/4.0.3 +feature.openhab-runtime-certificate/4.0.3 = openhab-runtime-certificate/4.0.3 +feature.openhab-transport-coap/4.0.3 = openhab-transport-coap/4.0.3 +feature.openhab-transport-http/4.0.3 = openhab-transport-http/4.0.3 +feature.openhab-transport-mdns/4.0.3 = openhab-transport-mdns/4.0.3 +feature.openhab-transport-modbus/4.0.3 = openhab-transport-modbus/4.0.3 +feature.openhab-transport-mqtt/4.0.3 = openhab-transport-mqtt/4.0.3 +feature.openhab-transport-serial/4.0.3 = openhab-transport-serial/4.0.3 +feature.openhab-transport-upnp/4.0.3 = openhab-transport-upnp/4.0.3 +feature.openhab.tp-base/4.0.3 = openhab.tp-base/4.0.3 +feature.openhab.tp-coap/4.0.3 = openhab.tp-coap/4.0.3 +feature.openhab.tp-commons-net/4.0.3 = openhab.tp-commons-net/4.0.3 +feature.openhab.tp-gson/4.0.3 = openhab.tp-gson/4.0.3 +feature.openhab.tp-hivemqclient/4.0.3 = openhab.tp-hivemqclient/4.0.3 +feature.openhab.tp-httpclient/4.0.3 = openhab.tp-httpclient/4.0.3 +feature.openhab.tp-jackson/4.0.3 = openhab.tp-jackson/4.0.3 +feature.openhab.tp-asm/4.0.3 = openhab.tp-asm/4.0.3 +feature.openhab.tp-jax-rs-whiteboard/4.0.3 = openhab.tp-jax-rs-whiteboard/4.0.3 +feature.openhab.tp-jna/4.0.3 = openhab.tp-jna/4.0.3 +feature.openhab.tp-cxf/4.0.3 = openhab.tp-cxf/4.0.3 +feature.openhab.tp-jbbp/4.0.3 = openhab.tp-jbbp/4.0.3 +feature.openhab.tp-netty/4.0.3 = openhab.tp-netty/4.0.3 +feature.openhab.tp-jaxb/4.0.3 = openhab.tp-jaxb/4.0.3 +feature.openhab.tp-jaxws/4.0.3 = openhab.tp-jaxws/4.0.3 +feature.openhab.tp-jollyday/4.0.3 = openhab.tp-jollyday/4.0.3 +feature.openhab.tp-jmdns/4.0.3 = openhab.tp-jmdns/4.0.3 +feature.openhab.tp-jose4j/4.0.3 = openhab.tp-jose4j/4.0.3 +feature.openhab.tp-jupnp/4.0.3 = openhab.tp-jupnp/4.0.3 +feature.openhab.tp-lsp4j/4.0.3 = openhab.tp-lsp4j/4.0.3 +feature.openhab.tp-serial-javacomm/4.0.3 = openhab.tp-serial-javacomm/4.0.3 +feature.openhab.tp-serial-rxtx/4.0.3 = openhab.tp-serial-rxtx/4.0.3 +feature.openhab.tp-xtext/4.0.3 = openhab.tp-xtext/4.0.3 +feature.openhab.tp-xtext-ide/4.0.3 = openhab.tp-xtext-ide/4.0.3 +feature.openhab.tp-swagger-jaxrs/4.0.3 = openhab.tp-swagger-jaxrs/4.0.3 +feature.distro/4.0.3 = distro/4.0.3 +feature.distro-kar/4.0.3 = distro-kar/4.0.3 diff --git a/openhab/openhab_userdata/etc/scripts/shell.colors.script b/openhab/openhab_userdata/etc/scripts/shell.colors.script new file mode 100644 index 0000000..a90bceb --- /dev/null +++ b/openhab/openhab_userdata/etc/scripts/shell.colors.script @@ -0,0 +1,40 @@ +// This script overrides the default colors for the Karaf console. +// All colors are set using the original ANSI escape code specification. + +// HIGHLIGHTER_COLORS overrides the colors related to console input. +// From the Apache Felix documentation: +// rs : Reserved words +// st : Strings +// nu : Numbers +// co : Constants +// va : Variable +// vn : Variable name +// fu : Function +// bf : Bad function +// un : Unknown +// re : Repair + +HIGHLIGHTER_COLORS = "rs=93:st=92:nu=37:co=90:va=97:vn=37:fu=96:bf=91:re=32" + +// LS_COLORS overrides the colors used in the ls command output. +// From the Apache Felix documentation: +// dr : Directory +// ex : Executable +// sl : Symbolic Link +// ot : Other + +//LS_COLORS = "dr=1;91:ex=1;92:sl=1;96:ot=34;43" + +// GREP_COLORS overrides the colors used in the grep command output. +// From the Apache Felix documentation: +// mt : Hits in the text (sets both ms and mc) +// ms : Matching text in selected line +// mc : Matching text in context line +// fn : File names +// ln : Line numbers +// se : Selected lines +// sl : Whole selected line +// cx : Context lines +// rv : If set and match is inverted, the meaning of sl and cx is inverted + +//GREP_COLORS = "mt=1;31:fn=35:ln=32:se=36" diff --git a/openhab/openhab_userdata/etc/scripts/shell.completion.script b/openhab/openhab_userdata/etc/scripts/shell.completion.script new file mode 100644 index 0000000..7785633 --- /dev/null +++ b/openhab/openhab_userdata/etc/scripts/shell.completion.script @@ -0,0 +1,271 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// +// This script is run each time a shell is created. +// You can define here closures or variables that will be available +// in each session. +// + +__option_not_present = { + res = true + opts = $argv + each $opts { + arg = $it + each ($.commandLine words) { + if { ($it toString) equals ($arg toString) } { + res = false + } + } + } + $res +} + +__set_unset_arguments = { + is_setopt = (($.commandLine words) get 0) equals "setopt" + enums = ((__load_class 'org.jline.reader.LineReader$Option') enumConstants) + candidates = new ArrayList + each $enums { + name = ${(GL)it/_/-} + is_set = ($.reader isSet $it) + neg = %(( if(is_setopt, is_set, not(is_set)) )) + if { $neg } { + name = "no-${name}" + } + if { not { (($.commandLine words) subList 1 ($.commandLine wordIndex)) contains $name } } { + $candidates add (new org.jline.reader.Candidate $name $name (if { $neg } { "unset" } { "set" }) null null null true) + } + } + $candidates +} + +jlineReader = $.reader +if { %(jlineReader != null) } { + + complete -c shell:complete -e + complete -c shell:complete -d "Edit command specific completions" + complete -c shell:complete -s c -l command --description "Command to add completion to" -n '__option_not_present -c --command' -a '$.commands' + complete -c shell:complete -s s -l short-option --description "Posix-style option to complete" -n '__option_not_present -s --short-option' + complete -c shell:complete -s l -l long-option --description "GNU-style option to complete" -n '__option_not_present -l --long-option' + complete -c shell:complete -s a -l arguments --description "A list of possible arguments" -n '__option_not_present -a --argument' + complete -c shell:complete -s d -l description --description "Description of this completions" -n '__option_not_present -d --description' + complete -c shell:complete -s h -l help --description "Display help and exit" -n '__option_not_present -h --help' + complete -c shell:complete -s n -l condition --description "The completion should only be used if the specified command has a zero exit status" -n '__option_not_present -n --condition' + complete -c shell:complete -s e -l erase --description "Remove completion" -n '__option_not_present -e --erase' + + complete -c shell:history -e + complete -c shell:history -d "Show and manipulate command history" + complete -c shell:history -l clear --description "Clear history" -n '__option_not_present --clear' + complete -c shell:history -l save --description "Save history" -n '__option_not_present --save' + + complete -c shell:setopt -e + complete -c shell:setopt -d "Set or view set shell options" + complete -c shell:setopt -a '__set_unset_arguments' + + complete -c shell:unsetopt -e + complete -c shell:unsetopt -d "Unset or view unset shell options" + complete -c shell:unsetopt -a '__set_unset_arguments' + + complete -c shell:cat -e + complete -c shell:cat -d "Concatenate and print files" + complete -c shell:cat -s n "Number the output lines, starting at 1" + complete -c shell:cat -a '__files' + + complete -c shell:pwd -e + complete -c shell:pwd -d "Get current directory" + + complete -c shell:ls -e + complete -c shell:ls -d "List files" + + complete -c shell:cd -e + complete -c shell:cd -d "Change current directory" + complete -c shell:cd -a 'wi = ($.commandLine wordIndex); if { %(wi==1) } { __directories } { [ ] }' + + complete -c shell:sleep -e + complete -c shell:sleep -d "Pause execution for the specified amount of time" + + complete -c shell:echo -e + complete -c shell:echo -d "Write arguments to the standard output" + complete -c shell:echo -s n -d "No trailing new line" + + complete -c shell:grep -e + complete -c shell:grep -d "File pattern searcher" + # TODO + + complete -c shell:sort -e + complete -c shell:sort -d "Sort lines of text files" + # TODO + + complete -c shell:gosh -e + complete -c shell:gosh -d "Execute script with arguments in a new session" + # TODO + + complete -c shell:sh -e + complete -c shell:sh -d "Execute script with arguments in a new session" + # TODO + + complete -c shell:source -e + complete -c shell:source -d "Execute script with arguments" + # TODO + + # TODO: format getopt new set tac type addcommand removeCommand eval + + complete -c shell:break -e + complete -c shell:break -d "Break from a loop" + + complete -c shell:continue -e + complete -c shell:continue -d "Continue to next iteration in a loop" + + complete -c shell:each -e + complete -c shell:each -d "Loop and execute script on the specified elements" + + complete -c shell:if -e + complete -c shell:if -d "Conditionaly execute a script" + + complete -c shell:new -e + complete -c shell:new -d "Creates new instance of the given java class" + + complete -c shell:not -e + complete -c shell:not -d "Negates the result of a script" + + complete -c shell:throw -e + complete -c shell:throw -d "Throws an exception" + + complete -c shell:try -e + complete -c shell:try -d "Try executing a script and catch any exception" + + complete -c shell:until -e + complete -c shell:until -d "Loop and execute script until a condition is satisfied" + + complete -c shell:while -e + complete -c shell:while -d "Loop and execute script while a condition is satisfied" + + complete -c shell:less -e + complete -c shell:less -d "File pager" + complete -c shell:less -s e -l quit-at-eof --description "Exit on second EOF" + complete -c shell:less -s E -l QUIT-AT-EOF --description "Exit on EOF" + complete -c shell:less -s q -l quiet -l silent --description "Silent mode" + complete -c shell:less -s Q -l QUIET -l SILENT --description "Completely silent" + complete -c shell:less -s S -l chop-long-lines --description "Do not fold long lines" + complete -c shell:less -s i -l ignore-case --description "Search ignores lowercase case" + complete -c shell:less -s I -l IGNORE-CASE --description "Search ignores all case" + complete -c shell:less -s x -l tabs --description "Set tab stops" + complete -c shell:less -s N -l LINE-NUMBERS --description "Display line number for each line" + complete -c shell:less -a '__files' + + complete -c shell:nano -e + complete -c shell:nano -d "File editor" + complete -c shell:nano -a '__files' + + complete -c shell:keymap -e + complete -c shell:keymap -d "Manipulate keymaps" + complete -c shell:keymap -s N --description "Create a new keymap" -n '__option_not_present -N -d -D -l -r -s -A' + complete -c shell:keymap -s d --description "Delete existing keymaps and reset to default state" -n '__option_not_present -N -d -D -l -r -s -A' + complete -c shell:keymap -s D --description "Delete named keymaps" -n '__option_not_present -N -d -D -l -r -s -A' + complete -c shell:keymap -s l --description "List existing keymap names" -n '__option_not_present -N -d -D -l -r -s -A' + complete -c shell:keymap -s r --description "Unbind specified in-strings" -n '__option_not_present -N -d -D -l -r -s -A' + complete -c shell:keymap -s s --description "Bind each in-string to each out-string" -n '__option_not_present -N -d -D -l -r -s -A' + complete -c shell:keymap -s A --description "Create alias to keymap" -n '__option_not_present -N -d -D -l -r -s -A' + complete -c shell:keymap -s e --description "Select emacs keymap and bind it to main" -n '__option_not_present -e -a -v -M' + complete -c shell:keymap -s v --description "Select viins keymap and bind it to main" -n '__option_not_present -e -a -v -M' + complete -c shell:keymap -s a --description "Select vicmd keymap" -n '__option_not_present -e -a -v -M' + complete -c shell:keymap -s M --description "Specify keymap to select" -n '__option_not_present -e -a -v -M' -a '(keymap -l | tac) split " "' + complete -c shell:keymap -s R --description "Interpret in-strings as ranges" + complete -c shell:keymap -s p --description "List bindings which have given key sequence as a a prefix" + complete -c shell:keymap -s L --description "Output in form of keymap commands" + + complete -c shell:widget -e + complete -c shell:widget -d "Manipulate widgets" + complete -c shell:widget -s N --description "Create a new widget" -n '__option_not_present -N -A -D -U -l' + complete -c shell:widget -s A --description "Create alias to widget" -n '__option_not_present -N -A -D -U -l' + complete -c shell:widget -s D --description "Delete widgets" -n '__option_not_present -N -A -D -U -l' + complete -c shell:widget -s U --description "Push characters to the stack" -n '__option_not_present -N -A -D -U -l' + complete -c shell:widget -s l --description "List user-defined widgets" -n '__option_not_present -N -A -D -U -l' + complete -c shell:widget -s a --description "With -l, list all widgets" -n '__option_not_present -l' + + complete -c shell:bg -e + complete -c shell:bg -d "Put job in background" + + complete -c shell:fg -e + complete -c shell:fg -d "Put job in foreground" + + complete -c shell:jobs -e + complete -c shell:jobs -d "List jobs" + + complete -c shell:clear -e + complete -c shell:clear -d "Clear screen" + + complete -c shell:head -e + complete -c shell:head -d "Displays first lines of file" + complete -c shell:head -s n -l lines --description "Print line counts" + complete -c shell:head -s c -l bytes --description "Print byte counts" + complete -c shell:head -a '__files' + + complete -c shell:tail -e + complete -c shell:tail -d "Displays last lines of file" + complete -c shell:tail -s q -l quiet --description "Suppress headers when printing multiple sources" + complete -c shell:tail -s f -l follow --description "Do not stop at end of file" + complete -c shell:tail -s F -l FOLLOW --description "Follow and check for file renaming or rotation" + complete -c shell:tail -s n -l lines --description "Number of lines to print" + complete -c shell:tail -s c -l bytes --description "Number of bytes to print" + complete -c shell:tail -a '__files' + + complete -c shell:date -e + complete -c shell:date -d "Display date and time" + complete -c shell:date -s u --description "Use UTC" + complete -c shell:date -s r --description "Print the date represented by 'seconds' since January 1, 1970" + complete -c shell:date -s v --description "Adjust date" + complete -c shell:date -s f --description "Use 'input_fmt' to parse 'new_date'" + + complete -c shell:wc -e + complete -c shell:wc -d "Word, line, character, and byte count" + complete -c shell:wc -s n -l lines --description "Print line count" + complete -c shell:wc -s c -l bytes --description "Print byte count" + complete -c shell:wc -s m -l chars --description "Print character count" + complete -c shell:wc -s w -l words --description "Print word count" + complete -c shell:wc -a '__files' + + __get_scr_components = { + list = [ ] + scrref = ($.context getServiceReference org.osgi.service.component.runtime.ServiceComponentRuntime) + scr = ($.context getService $scrref) + each ($scr getComponentDescriptionDTOs ($.context bundles)) { + $list add ((($it getClass) getField "name") get $it) + } + $.context ungetService $scrref + $list + } + + complete -c scr:config -e + complete -c scr:config -d "Show the current SCR configuration" + + complete -c scr:disable -e + complete -c scr:disable -d "Disable an enabled component" + complete -c scr:disable -a '__get_scr_components' + + complete -c scr:enable -e + complete -c scr:enable -d "Enable an disabled component" + complete -c scr:enable -a '__get_scr_components' + + complete -c scr:info -e + complete -c scr:info -d "Dump information of a component or component configuration" + complete -c scr:info -a '__get_scr_components' + + complete -c scr:list -e + complete -c scr:list -d "List component configurations of a specific bundle" + +} diff --git a/openhab/openhab_userdata/etc/shell.init.script b/openhab/openhab_userdata/etc/shell.init.script new file mode 100644 index 0000000..1d2f8ec --- /dev/null +++ b/openhab/openhab_userdata/etc/shell.init.script @@ -0,0 +1,55 @@ +// +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// +// This script is run each time a shell is created. +// You can define here closures or variables that will be available +// in each session. +// +ld = { log:display $args } ; +lde = { log:exception-display $args } ; +la = { bundle:list -t 0 $args } ; +ls = { service:list $args } ; +cl = { config:list "(service.pid=$args)" } ; +halt = { system:shutdown -h -f $args } ; +help = { *:help $args | more } ; +man = { help $args } ; +log:list = { log:get ALL } ; +service:get = { $.context getService ($.context getServiceReference $args) }; +feature:upgrade = { feature:install -u $args } ; + +env = { shell:set $args } +edit = { shell:nano $args } +more = { shell:less -F $args } + +__load_class = { + (($.reader class) classLoader) loadClass $1 +} + +// make sure that we catch exceptions +// as they do occur if the session is headless / non-interactive +jlineReader = $.reader +if { %(jlineReader != null) } { + setopt group + setopt auto-fresh-line + unsetopt insert-tab + keymap "^[OA" up-line-or-search + keymap "^[[A" up-line-or-search + keymap "^[OB" down-line-or-search + keymap "^[[B" down-line-or-search + +} diff --git a/openhab/openhab_userdata/etc/startup.properties b/openhab/openhab_userdata/etc/startup.properties new file mode 100644 index 0000000..2217321 --- /dev/null +++ b/openhab/openhab_userdata/etc/startup.properties @@ -0,0 +1,20 @@ +# Bundles to be started on startup, with startlevel +mvn\:org.apache.karaf.features/org.apache.karaf.features.extension/4.4.3 = 1 +mvn\:org.ops4j.pax.url/pax-url-aether/2.6.12 = 5 +mvn\:org.apache.felix/org.apache.felix.metatype/1.2.4 = 5 +mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.4.3 = 5 +mvn\:org.ops4j.pax.logging/pax-logging-api/2.2.0 = 8 +mvn\:org.fusesource.jansi/jansi/2.4.0 = 8 +mvn\:org.ops4j.pax.logging/pax-logging-log4j2/2.2.0 = 8 +mvn\:org.osgi/org.osgi.util.function/1.2.0 = 9 +mvn\:org.osgi/org.osgi.util.promise/1.2.0 = 9 +mvn\:org.apache.felix/org.apache.felix.coordinator/1.0.2 = 9 +mvn\:org.apache.felix/org.apache.felix.converter/1.0.14 = 9 +mvn\:org.apache.felix/org.apache.felix.configadmin/1.9.26 = 10 +mvn\:org.apache.karaf.config/org.apache.karaf.config.core/4.4.3 = 11 +mvn\:org.apache.felix/org.apache.felix.configurator/1.0.16 = 11 +mvn\:org.apache.felix/org.apache.felix.configadmin.plugin.interpolation/1.2.6 = 11 +mvn\:org.apache.sling/org.apache.sling.commons.johnzon/1.2.14 = 11 +mvn\:org.apache.felix/org.apache.felix.cm.json/1.0.6 = 11 +mvn\:org.apache.felix/org.apache.felix.fileinstall/3.7.4 = 12 +mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.4.3 = 15 diff --git a/openhab/openhab_userdata/etc/system.properties b/openhab/openhab_userdata/etc/system.properties new file mode 100644 index 0000000..20e5450 --- /dev/null +++ b/openhab/openhab_userdata/etc/system.properties @@ -0,0 +1,162 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# The properties defined in this file will be made available through system +# properties at the very beginning of the Karaf's boot process. +# + +# Properties file inclusions (as a space separated list of relative paths) +# Included files will override the values specified in this file +${optionals} = custom.system.properties + +# Log level when the pax-logging service is not available +# This level will only be used while the pax-logging service bundle +# is not fully available. +# To change log levels, please refer to the org.ops4j.pax.logging.cfg file +# instead. +org.ops4j.pax.logging.DefaultServiceLog.level = ERROR + +# +# Name of this Karaf instance. +# +karaf.name = root + +# +# Default repository where bundles will be loaded from before using +# other Maven repositories. For the full Maven configuration, see +# the org.ops4j.pax.url.mvn.cfg file. +# +karaf.default.repository = system + +# +# Location of a shell script that will be run when starting a shell +# session. This script can be used to create aliases and define +# additional commands. +# +# NB: ${karaf.etc} is implicitly added to the path, don't use absolute path here +# +karaf.shell.init.script = shell.init.script,scripts/*.script + +# +# Sets the maximum size of the shell command history. If not set, +# defaults to 500 entries. Setting to 0 will disable history. +# +# karaf.shell.history.maxSize = 0 + +# +# Sets the maximum size of the local shell command history file. If not set, +# defaults to 10000 entries. +# +# karaf.shell.history.file.maxSize = 10000 + +# +# Deletes the entire karaf.data directory at every start +# +karaf.clean.all = false + +# +# Deletes the karaf.data/cache directory at every start +# +karaf.clean.cache = false + +# +# User name for the Karaf local console +# +karaf.local.user = karaf + +# +# Roles to use when for the default user in the local Karaf console. +# +# The syntax is the following: +# [classname:]principal +# where classname is the class name of the principal object +# (defaults to org.apache.karaf.jaas.modules.RolePrincipal) +# and principal is the name of the principal of that class +# (defaults to instance). +# +karaf.local.roles = admin,manager,viewer,systembundles + +# +# Set this empty property to avoid errors when validating xml documents. +# +xml.catalog.files = + +# +# Specs options +# +org.apache.servicemix.specs.debug = false +org.apache.servicemix.specs.timeout = 0 +org.apache.karaf.specs.debug = false +org.apache.karaf.specs.timeout = 0 + +# +# Settings for the OSGi 4.3 Weaving +# By default, we will not weave any classes. Change this setting to include classes +# that you application needs to have woven. +# +org.apache.aries.proxy.weaving.enabled = none +# Classes not to weave - Aries default + Xerces which is known to have issues. +org.apache.aries.proxy.weaving.disabled = org.objectweb.asm.*,org.slf4j.*,org.apache.log4j.*,javax.*,org.apache.xerces.* + +# +# By default, only Karaf shell commands are secured, but additional services can be +# secured by expanding this filter +# +karaf.secured.services = (&(osgi.command.scope=*)(osgi.command.function=*)) + +# +# If set to true, Karaf will exit if either the resolving of feature repositories, or +# the installation of boot features (as configured in org.apache.karaf.features.cfg) fails. +# +karaf.require.successful.features.boot = false + +# +# By default, if there's no ACL policy for a certain karaf command, this command is allowed to access +# without the RBAC. We can change this behavior by enable the following property, which means +# if a karaf command has no corresponding ACL then access it must have one of the karaf.secured.command.compulsory.roles +# +#karaf.secured.command.compulsory.roles=admin + +# +# Security properties +# +# To enable OSGi security, uncomment the properties below, +# install the framework-security feature and restart. +# +#java.security.policy=${karaf.etc}/all.policy +#org.osgi.framework.security=osgi +#org.osgi.framework.trust.repositories=${karaf.etc}/trustStore.ks + +# +# HA/Lock configuration +# +# Karaf uses a lock mechanism to know which instance is the master (HA) +# The lock can be on the filesystem (default) or on a database. +# +# See http://karaf.apache.org/manual/latest/users-guide/failover.html for details. +# +# Even using a single instance, Karaf creates the lock file +# You can specify the location of the lock file using the +# karaf.lock.dir=/path/to/the/directory/containing/the/lock +# +# By default, the slave instances start but are passive. +# If you want to prevent the slave instances startup, you can use +# the karaf.lock.slave.block property (false by default): +# karaf.lock.slave.block=true diff --git a/openhab/openhab_userdata/etc/users.properties b/openhab/openhab_userdata/etc/users.properties new file mode 100644 index 0000000..b566ad4 --- /dev/null +++ b/openhab/openhab_userdata/etc/users.properties @@ -0,0 +1,33 @@ +################################################################################ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +################################################################################ + +# +# This file contains the users, groups, and roles. +# Each line has to be of the format: +# +# USER=PASSWORD,ROLE1,ROLE2,... +# USER=PASSWORD,_g_:GROUP,... +# _g_\:GROUP=ROLE1,ROLE2,... +# +# All users, groups, and roles entered in this file are available after Karaf startup +# and modifiable via the JAAS command group. These users reside in a JAAS domain +# with the name "karaf". +# +openhab = {CRYPT}4F61A0FD056BC0FD8231899EC4D9F9CA06AF0DEC895B2A3B0773F6FBC1C99776{CRYPT},_g_:admingroup +_g_\:admingroup = group,admin,manager,viewer,systembundles diff --git a/openhab/openhab_userdata/etc/version.properties b/openhab/openhab_userdata/etc/version.properties new file mode 100644 index 0000000..e6b47cc --- /dev/null +++ b/openhab/openhab_userdata/etc/version.properties @@ -0,0 +1,11 @@ +openHAB Distribution Version Information +---------------------------------------- +build-no : Release Build +online-repo : https://openhab.jfrog.io/openhab/libs-release + +Repository Version +---------------------------------------- +openhab-distro : 4.0.3 +openhab-core : 4.0.3 +openhab-addons : 4.0.3 +karaf : 4.4.3 diff --git a/openhab/openhab_userdata/secrets/rsa_json_web_key.json b/openhab/openhab_userdata/secrets/rsa_json_web_key.json new file mode 100644 index 0000000..546a292 --- /dev/null +++ b/openhab/openhab_userdata/secrets/rsa_json_web_key.json @@ -0,0 +1 @@ +{"kty":"RSA","n":"xtlnpVyPt_L4tCCOovuFn6qNrorwSZ6RVmrMzSCZ4E7-9W6YcgRGWf8Rr2Qghv8wYlMtAc5f7xr0-CVSfM12oHyhxenWU6FcitJGFIYmnpuiwCEUphmIg3OtmsL1LnR3VFAJxLlhWYGBOhaGnz97w7zm1igF8YnxrEpuij9cR_QrSSoBd-bHVhMRJtEov0zNrxR45c0-VSGfucfSr-X-vyzd49ZPkMCeuc8BrVwsN8BfqRdX2MtyiCrulFNp8Q8gSFyUFTk67c20qHdgtJPyazT-lNc9K0TaJD5wEFCZcj5Fh-CVqav9Q1BxMLVaKmg3h78-sMgNYDzRferCCmFkCQ","e":"AQAB","d":"UQ6wVFUN9MMjpHGdE00KZFKm3J6gYrIztpFkmL2QXEJ3Zd7GX7vkXa0_LUrYg48kzv_u2cyhiJtpfnngTSWIFNWZME8o4gBl8-TRUm548bCpwD3759WCs2sFOo_8WAp71i-mO74Bs_W5ks8541KChgDL7EJ2YcaEcGIK-2nmmSFy7HZ0KypXdfqSTYbn2ZbEFJjjSYxmqSKTegvvXAUfIMwPfsdGfsy5S3H99QxX3-0K2XgduDi0d1dPxcuHMkftSG_oB0lAQrY9K9l_wisJvZNuqE0J4kucSbuvtEovHYceD0zRcGAQxFEaYa_oYSA5yJI2byr1pKVfBIpucCrYnQ","p":"x5-EO91jPK1rs__8T4orVJ_Q1T8sS7z9ny67hDhV8avbpLMpji1MwGmfNhnmSbJfm648EIvTZwxJj_-C09UaL7cZtEcmkHFJ26c9Rz0eecF_fKQbyfudr12NG0gm_immNXBBSSiRi_3KwnriUEEegfnXSXXeI6VrXHA9YDYiqAc","q":"_wHwNCcHVcxFqBsoZVRiJjRoI_8ZOhDmEE9pUjvDMTFz7cuoLBwKbggrpF-CmguENr8F3xsAQppOrW0Z-tWF9TYl0ydwF2SyiQ5ZRol0_jq2NHK7rZu2KvvRrY48kRSxNi3iRjxEM8Q-gWy8IEH1tW6Db6KQtck9axuFFl6k728","dp":"R1uTRl8OMUuAu5hfFgO7F4YFfaUWbYCCXNu0tj_5IOmhG0_cI_G3hPR8sDcz5dY4bQssd3G0QRrYVPwuRRDhSns2WgYxF-MXVsiClCuZ8EYmD2UOdfZW2LAlV8JEBgjXXDTjcYZp-NPhHgIVUkDk6etodN8IaE-igCmzFuhjHRM","dq":"6KJRCpLMS0Y2CZz05jPr8iR_GM-gqOs_poN7doyUji0qMDZJbiwKi8SiY6rKD1QQQo1Tguwz-Y6h1e6g88aVFVVXfmENDhpMEWJoqUO-2iqfjAtbEY7qyh2-dBE9SbFR1TZYpXBXW85co1-Z4-eoiuKNv2rTjzNN94c8i2K-Hrs","qi":"Q-LuIxo9bC76PubTswus3u4H9SHk-T95ASfaRHNKCqUG8rvBTC25zXB1KJlnX9KMn8cDwFb7UnuY-bqDWUpXpe4IcZJRv3MnZEKkRk0bgfTlNoX3pVOEfMiNXM1qb-3zyt4DBh1Z-1V49R8P9z_82H_gGZStBCfYQw9gZAcqfTA"} \ No newline at end of file