init: docker file + openhab config files

This commit is contained in:
theBigBlase 2023-12-09 16:10:01 -05:00
parent 065e2b01e6
commit 246357858b
113 changed files with 4381 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
openhab/openhab_userdata/cache
openhab/openhab_userdata/logs
openhab/openhab_userdata/tmp

7
Makefile Normal file
View file

@ -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

23
docker-compose.yml Normal file
View file

@ -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"

118
mqtt/rumqttd.toml Normal file
View file

@ -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

View file

@ -0,0 +1,5 @@
<html>
<h1>openHAB user provided static content</h1>
<p>Serve your own static html pages or resources from here. Files stored in the openHAB configuration subfolder <tt>html</tt> will be available through the HTTP server of openHAB, e.g. <a href="http://device-address:8080/static/image.png">http://device-address:8080/static/image.png</a>.</p>
<p>Resources for sitemap elements (image, video,...) can also be provided though this folder.</p>
</html>

View file

@ -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.

View file

@ -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

View file

@ -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" <lightbulb> (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip1"}
Dimmer stripIntensity "el-wire" <lightbulb> (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip1"}
Color stripColor2 "el-wire" <lightbulb> (Lights, SmartClothes) {channel="elwire:0210:ewbridge:strip2"}
Dimmer stripIntensity2 "el-wire" <lightbulb> (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" <battery> (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" <battery> (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"}

View file

@ -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

View file

@ -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

View file

@ -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<String>()
var luminanceMeasures = new HashMap<String, Integer>()
var noiseMeasures = new HashMap<String, Integer>()
// 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

View file

@ -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

View file

@ -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

View file

@ -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 =

View file

@ -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=

View file

@ -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

View file

@ -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
#<dsName>.def=[ABSOLUTE|COUNTER|DERIVE|GAUGE],<heartBeat>,[<minValue>|U],[<maxValue>|U],<sampleInterval>
#<dsName>.archives=[AVERAGE|MIN|MAX|LAST|FIRST|TOTAL],<xff>,<samplesPerBox>,<boxCount>
#<dsName>.items=<comma separated list of items for this dsName>

View file

@ -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 <latitude>,<longitude>[<altitude>]
# 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

View file

@ -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

Binary file not shown.

Binary file not shown.

View file

@ -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"

View file

@ -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

View file

@ -0,0 +1,3 @@
CLOSED=zu
OPEN=offen
NULL=undefiniert

View file

@ -0,0 +1,4 @@
CLOSED=closed
OPEN=open
NULL=unknown

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -0,0 +1,3 @@
:org.apache.felix.configadmin.revision:=L"1"
_felix_.cm.newConfiguration=B"true"
service.pid="org.apache.karaf.http"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -0,0 +1,3 @@
:org.apache.felix.configadmin.revision:=L"1"
_felix_.cm.newConfiguration=B"true"
service.pid="org.openhab.addons"

View file

@ -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"

View file

@ -0,0 +1,3 @@
:org.apache.felix.configadmin.revision:=L"1"
sendOptimisticUpdates="true"
service.pid="org.openhab.autoupdate"

View file

@ -0,0 +1,3 @@
:org.apache.felix.configadmin.revision:=L"1"
_felix_.cm.newConfiguration=B"true"
service.pid="org.openhab.basicui"

View file

@ -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"

View file

@ -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"

View file

@ -0,0 +1,3 @@
:org.apache.felix.configadmin.revision:=L"1"
_felix_.cm.newConfiguration=B"true"
service.pid="org.openhab.rrd4j"

View file

@ -0,0 +1,3 @@
:org.apache.felix.configadmin.revision:=L"1"
_felix_.cm.newConfiguration=B"true"
service.pid="org.openhab.runtime"

View file

@ -0,0 +1,3 @@
:org.apache.felix.configadmin.revision:=L"1"
_felix_.cm.newConfiguration=B"true"
service.pid="org.openhab.services"

View file

@ -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"

View file

@ -0,0 +1,5 @@
:org.apache.felix.configadmin.revision:=L"1"
discovery="5"
safeCall="10"
service.pid="org.openhab.threadpool"
thingHandler="5"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -0,0 +1 @@
org.openhab.addons="mvn:org.openhab.core.bundles/org.openhab.core.karaf/4.0.3"

View file

@ -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"

View file

@ -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;
};

View file

@ -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<tab>\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<ctrl-d>\u001B[0m' or '\u001B[1mlogout\u001B[0m'.\r\n
prompt = \u001B[36mopenhab>\u001B[0m

View file

@ -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<tab>\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<ctrl-d>\u001B[0m' or '\u001B[1mlogout\u001B[0m'.\r\n
prompt = \u001B[36mopenhab>\u001B[0m

View file

@ -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<String>=org.apache.karaf.info.ServerInfo
felix-capabilities= \
osgi.service;objectClass:List<String>=org.osgi.service.packageadmin.PackageAdmin, \
osgi.service;objectClass:List<String>=org.osgi.service.resolver.Resolver, \
osgi.service;objectClass:List<String>=org.osgi.service.startlevel.StartLevel
equinox-capabilities= \
osgi.service;objectClass:List<String>=java.lang.ClassLoader;equinox.classloader.type=contextClassLoader, \
osgi.service;objectClass:List<String>=javax.xml.parsers.DocumentBuilderFactory, \
osgi.service;objectClass:List<String>=javax.xml.parsers.SAXParserFactory, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.framework.log.FrameworkLog, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.framework.log.FrameworkLog;performance=true, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=eclipse.home.location, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.configuration.area, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.install.area, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.instance.area, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.datalocation.Location;type=osgi.user.area, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.debug.DebugOptions, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.environment.EnvironmentInfo, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.localization.BundleLocalization, \
osgi.service;objectClass:List<String>="org.osgi.service.log.LogReaderService,org.eclipse.equinox.log.ExtendedLogReaderService", \
osgi.service;objectClass:List<String>="org.osgi.service.log.LogService,org.eclipse.equinox.log.ExtendedLogService", \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.security.TrustEngine;osgi.signedcontent.trust.engine=org.eclipse.osgi, \
osgi.service;objectClass:List<String>=org.eclipse.osgi.service.urlconversion.URLConverter;protocol:List<String>="bundleentry,bundleresource"
eecap-18 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="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<Version>="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<Version>="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<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="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<Version>="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<Version>="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<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0,15.0,16.0", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="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<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0,15.0", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0,15.0", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0,15.0"
eecap-14 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0,10.0,11.0,13.0,14.0"
eecap-13 = osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0,11.0,13.0", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0,11.0,13.0", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0,10.0,11.0,13.0"
eecap-11= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0,11.0", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0,11.0", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0,10.0,11.0"
eecap-10= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0,10.0", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0,10.0", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0,10.0"
eecap-9= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8,9.0", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8,9.0", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="1.8,9.0"
eecap-1.8= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
osgi.ee; osgi.ee="JavaSE"; version:List<Version>="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<Version>="1.0,1.1", \
osgi.ee; osgi.ee="JavaSE/compact1"; version:List<Version>="1.8", \
osgi.ee; osgi.ee="JavaSE/compact2"; version:List<Version>="1.8", \
osgi.ee; osgi.ee="JavaSE/compact3"; version:List<Version>="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:
# <library>mvn:net.java.dev.jna/jna/${jna.version};type:=boot;export:=false</library>
# <library>mvn:net.java.dev.jna/jna-platform/${jna.version};type:=boot;export:=false</library>
#
#karaf.systemd.enabled=true

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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=<comma separated list of plugins whose classes to trace>
# packages=<comma separated list of package prefixes of classes to trace>
# 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

View file

@ -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

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Copyright 2022 OPS4J.
Licensed 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.
-->
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
<!--
The only working way to configure a context in pax-web-jetty is to:
- put WEB-INF/jetty-web.xml or WEB-INF/web-jetty.xml into the WAB/WAR, or
- put it into know location and configure org.ops4j.pax.web.context.file option
- use root element <Configure> with id="Context", as that's the ID under which we can find an instance
of org.ops4j.pax.web.service.jetty.internal.PaxWebServletContextHandler
-->
<Configure id="Context">
<!--
<Set name="virtualHosts">
<Array type="java.lang.String">
<Item>localhost</Item>
</Array>
</Set>
-->
</Configure>

View file

@ -0,0 +1,135 @@
<?xml version="1.0"?>
<!--
Copyright 2021 OPS4J.
Licensed 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.
-->
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
<!-- Object named "Server" of org.eclipse.jetty.server.Server class is configured by pax-web-jetty -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- =========================================================== -->
<!-- Set connectors -->
<!-- =========================================================== -->
<!-- One of each type! -->
<!-- =========================================================== -->
<!-- Use this connector for many frequently idle connections and for
threadless continuations. -->
<!--
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
<Set name="secureScheme">https</Set>
<Set name="securePort">
<Property name="jetty.secure.port" default="8443" />
</Set>
<Set name="outputBufferSize">32768</Set>
<Set name="requestHeaderSize">8192</Set>
<Set name="responseHeaderSize">8192</Set>
<Set name="sendServerVersion">true</Set>
<Set name="sendDateHeader">false</Set>
<Set name="headerCacheSize">512</Set>
</New>
-->
<!-- Uncomment these two elements to enable GZIP compression -->
<!-- https://www.eclipse.org/jetty/javadoc/jetty-9/org/eclipse/jetty/server/handler/gzip/GzipHandler.html -->
<!--
<Get id="OrigHandler" name="handler" />
<Set name="handler">
<New id="GzipHandler" class="org.eclipse.jetty.server.handler.gzip.GzipHandler">
<Set name="handler">
<Ref refid="OrigHandler" />
</Set>
</New>
</Set>
-->
<!-- =========================================================== -->
<!-- Special server connectors -->
<!-- =========================================================== -->
<!-- This is a sample for alternative connectors, enable if needed -->
<!-- =========================================================== -->
<!--
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<Ref refid="Server" />
</Arg>
<Arg name="factories">
<Array type="org.eclipse.jetty.server.ConnectionFactory">
<Item>
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
<Arg name="config">
<Ref refid="httpConfig" />
</Arg>
</New>
</Item>
</Array>
</Arg>
<Set name="host">
<Property name="jetty.host" default="localhost" />
</Set>
<Set name="port">
<Property name="jetty.port" default="8282" />
</Set>
<Set name="idleTimeout">
<Property name="http.timeout" default="30000" />
</Set>
<Set name="name">jettyConn1</Set>
</New>
</Arg>
</Call>
-->
<!-- =========================================================== -->
<!-- Configure Authentication Realms -->
<!-- Realms may be configured for the entire server here, or -->
<!-- they can be configured for a specific web app in a context -->
<!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
<!-- example). -->
<!-- =========================================================== -->
<!--
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.jaas.JAASLoginService">
<Set name="name">karaf</Set>
<Set name="loginModuleName">karaf</Set>
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>org.apache.karaf.jaas.boot.principal.RolePrincipal</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.jaas.JAASLoginService">
<Set name="name">default</Set>
<Set name="loginModuleName">karaf</Set>
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>org.apache.karaf.jaas.boot.principal.RolePrincipal</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
-->
</Configure>

View file

@ -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

View file

@ -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

View file

@ -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}

View file

@ -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

Binary file not shown.

View file

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Configuration monitorInterval="10">
<Appenders>
<!-- Console appender not used by default (see Root logger AppenderRefs) -->
<Console name="STDOUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
</Console>
<!-- Rolling file appender -->
<RollingFile fileName="${sys:openhab.logdir}/openhab.log" filePattern="${sys:openhab.logdir}/openhab.log.%i.gz" name="LOGFILE">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingFile>
<!-- Event log appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/events.log" filePattern="${sys:openhab.logdir}/events.log.%i.gz" name="EVENT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingRandomAccessFile>
<!-- Audit file appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/audit.log" filePattern="${sys:openhab.logdir}/audit.log.%i.gz" name="AUDIT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="8 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingRandomAccessFile>
<!-- OSGi appender -->
<PaxOsgi filter="*" name="OSGI"/>
</Appenders>
<Loggers>
<!-- Root logger configuration -->
<Root level="WARN">
<AppenderRef ref="LOGFILE"/>
<AppenderRef ref="OSGI"/>
</Root>
<!-- Karaf Shell logger -->
<Logger level="OFF" name="org.apache.karaf.shell.support">
<AppenderRef ref="STDOUT"/>
</Logger>
<!-- Security audit logger -->
<Logger additivity="false" level="INFO" name="org.apache.karaf.jaas.modules.audit">
<AppenderRef ref="AUDIT"/>
</Logger>
<!-- openHAB specific logger configuration -->
<Logger level="INFO" name="org.openhab"/>
<Logger level="ERROR" name="openhab.event.ItemStateEvent"/>
<Logger level="ERROR" name="openhab.event.ItemStateUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.GroupStateUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemChannelLinkAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemChannelLinkRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.ChannelDescriptionChangedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingStatusInfoEvent"/>
<Logger level="ERROR" name="openhab.event.ThingAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.InboxUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.RuleStatusInfoEvent"/>
<Logger level="ERROR" name="openhab.event.RuleAddedEvent"/>
<Logger level="ERROR" name="openhab.event.RuleRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.StartlevelEvent"/>
<Logger level="ERROR" name="openhab.event.AddonEvent"/>
<Logger additivity="false" level="INFO" name="openhab.event">
<AppenderRef ref="EVENT"/>
<AppenderRef ref="OSGI"/>
</Logger>
<Logger level="ERROR" name="javax.jmdns"/>
<Logger level="ERROR" name="org.jupnp"/>
<!-- This suppresses all Maven download issues from the log when doing feature installations -->
<!-- as we are logging errors ourselves in a nicer way anyhow. -->
<Logger level="ERROR" name="org.ops4j.pax.url.mvn.internal.AetherBasedResolver"/>
<!-- Filters known issues of pax-web (issue link to be added here). -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="OFF" name="org.ops4j.pax.web.pax-web-runtime"/>
<!-- Filters known issues of lsp4j, see -->
<!-- https://github.com/eclipse/smarthome/issues/4639 -->
<!-- https://github.com/eclipse/smarthome/issues/4629 -->
<!-- https://github.com/eclipse/smarthome/issues/4643 -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="OFF" name="org.eclipse.lsp4j"/>
<!-- Filters warnings for events that could not be delivered to a disconnected client. -->
<Logger level="ERROR" name="org.apache.cxf.jaxrs.sse.SseEventSinkImpl"/>
<!-- Filters warnings from broken connections during startup -->
<!-- https://github.com/openhab/openhab-core/issues/2998 -->
<Logger level="ERROR" name="org.apache.cxf.phase.PhaseInterceptorChain"/>
<!-- Filters known issues of KarServiceImpl, see -->
<!-- https://github.com/openhab/openhab-distro/issues/519#issuecomment-351944506 -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="ERROR" name="org.apache.karaf.kar.internal.KarServiceImpl"/>
<!-- Filters warnings about unavailable ciphers when JCE is not installed, see -->
<!-- https://github.com/openhab/openhab-distro/issues/999 -->
<Logger level="ERROR" name="org.apache.karaf.shell.ssh.SshUtils"/>
<!-- Filters known issues of javax.mail, see -->
<!-- https://github.com/openhab/openhab-addons/issues/5530 -->
<Logger level="ERROR" name="javax.mail"/>
<!-- Filters disconnection warnings of the ChromeCast Java API, see -->
<!-- https://github.com/openhab/openhab-addons/issues/3770 -->
<Logger level="ERROR" name="su.litvak.chromecast.api.v2.Channel"/>
<!-- Added by Karaf to prevent debug logging loops, see -->
<!-- https://issues.apache.org/jira/browse/KARAF-5559 -->
<Logger level="WARN" name="org.apache.sshd"/>
</Loggers>
</Configuration>

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<featuresProcessing xmlns="http://karaf.apache.org/xmlns/features-processing/v1.0.0">
<!--
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.
-->
<!-- you can eventually blacklist features repositories, features, or even bundle here, to exclude from resolution -->
<!-- <blacklistRepositories/> -->
</featuresProcessing>

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,3 @@
multicastResponsePort=0
asyncThreadPoolSize=30
threadPoolSize=15

View file

@ -0,0 +1,2 @@
defaultSink = enhancedjavasound

View file

@ -0,0 +1,2 @@
defaultHLI = rulehli

Some files were not shown because too many files have changed in this diff Show more