Added OSGi configurable service declarations (#9132)

Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
This commit is contained in:
Christoph Weitkamp 2020-11-25 22:16:10 +01:00 committed by GitHub
parent 1b588bc4fa
commit 64b15bcc48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 23 deletions

View File

@ -19,6 +19,7 @@ import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.core.config.core.ConfigurableService;
import org.openhab.core.items.GroupItem;
import org.openhab.core.items.Item;
import org.openhab.core.items.ItemNotFoundException;
@ -31,9 +32,9 @@ import org.openhab.core.persistence.QueryablePersistenceService;
import org.openhab.core.persistence.strategy.PersistenceStrategy;
import org.openhab.core.types.UnDefType;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.ConfigurationPolicy;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
@ -47,9 +48,13 @@ import org.slf4j.LoggerFactory;
*/
@NonNullByDefault
@Component(service = { PersistenceService.class,
QueryablePersistenceService.class }, configurationPid = "org.openhab.jdbc", configurationPolicy = ConfigurationPolicy.REQUIRE)
QueryablePersistenceService.class }, configurationPid = "org.openhab.jdbc", //
property = Constants.SERVICE_PID + "=org.openhab.jdbc")
@ConfigurableService(category = "persistence", label = "JDBC Persistence Service", description_uri = JdbcPersistenceService.CONFIG_URI)
public class JdbcPersistenceService extends JdbcMapper implements QueryablePersistenceService {
protected static final String CONFIG_URI = "persistence:jdbc";
private final Logger logger = LoggerFactory.getLogger(JdbcPersistenceService.class);
private final ItemRegistry itemRegistry;

View File

@ -48,14 +48,15 @@
jdbc:sqlite:./testSqlite.db]]></description>
</parameter>
<parameter name="user" type="text" required="false">
<parameter name="user" type="text" required="true">
<label>Database User</label>
<description><![CDATA[Defines optional database user.]]></description>
<description>Defines the database user.</description>
</parameter>
<parameter name="password" type="text" required="false">
<parameter name="password" type="text" required="true">
<context>password</context>
<label>Database Password</label>
<description><![CDATA[Defines optional database password.]]></description>
<description>Defines the database password.</description>
</parameter>
<!--
@ -79,46 +80,46 @@
# For Itemtype "Number" default decimal digit count (optional, default: 3)
#numberDecimalcount=
-->
<parameter name="sqltype.CALL" type="text" required="false">
<parameter name="sqltype.CALL" type="text">
<label>SqlType CALL</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for CALL <br>(optional, default: "VARCHAR(200)"). <br>
General about JdbcTypes/SqlTypes see: https://mybatis.github.io/mybatis-3/apidocs/reference/org/apache/ibatis/type/JdbcType.html <br>
see: http://www.h2database.com/html/datatypes.html <br>
see: http://www.postgresql.org/docs/9.5/static/datatype.html]]></description>
</parameter>
<parameter name="sqltype.COLOR" type="text" required="false">
<parameter name="sqltype.COLOR" type="text">
<label>SqlType COLOR</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for COLOR <br>(optional, default: "VARCHAR(70)").]]></description>
</parameter>
<parameter name="sqltype.CONTACT" type="text" required="false">
<parameter name="sqltype.CONTACT" type="text">
<label>SqlType CONTACT</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for CONTACT <br>(optional, default: "VARCHAR(6)").]]></description>
</parameter>
<parameter name="sqltype.DATETIME" type="text" required="false">
<parameter name="sqltype.DATETIME" type="text">
<label>SqlType DATETIME</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for DATETIME <br>(optional, default: "DATETIME").]]></description>
</parameter>
<parameter name="sqltype.DIMMER" type="text" required="false">
<parameter name="sqltype.DIMMER" type="text">
<label>SqlType DIMMER</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for DIMMER <br>(optional, default: "TINYINT").]]></description>
</parameter>
<parameter name="sqltype.LOCATION" type="text" required="false">
<parameter name="sqltype.LOCATION" type="text">
<label>SqlType LOCATION</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for LOCATION <br>(optional, default: "VARCHAR(30)").]]></description>
</parameter>
<parameter name="sqltype.NUMBER" type="text" required="false">
<parameter name="sqltype.NUMBER" type="text">
<label>SqlType NUMBER</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for NUMBER <br>(optional, default: "DOUBLE").]]></description>
</parameter>
<parameter name="sqltype.ROLLERSHUTTER" type="text" required="false">
<parameter name="sqltype.ROLLERSHUTTER" type="text">
<label>SqlType ROLLERSHUTTER</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for ROLLERSHUTTER <br>(optional, default: "TINYINT").]]></description>
</parameter>
<parameter name="sqltype.STRING" type="text" required="false">
<parameter name="sqltype.STRING" type="text">
<label>SqlType STRING</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for STRING <br>(optional, default: "VARCHAR(65500)").]]></description>
</parameter>
<parameter name="sqltype.SWITCH" type="text" required="false">
<parameter name="sqltype.SWITCH" type="text">
<label>SqlType SWITCH</label>
<description><![CDATA[Overrides used JDBC/SQL datatype for SWITCH <br>(optional, default: "VARCHAR(6)").]]></description>
</parameter>
@ -142,12 +143,12 @@
# USE WITH CARE! Deactivate after Renaming is done!
#rebuildTableNames=true
-->
<parameter name="tableNamePrefix" type="text" required="false">
<parameter name="tableNamePrefix" type="text">
<label>Tablename Prefix String</label>
<description><![CDATA[Tablename prefix string <br>(optional, default: "item"). <br>
For migration from MYSQL-Bundle set to 'Item'.]]></description>
</parameter>
<parameter name="tableUseRealItemNames" type="text" required="false">
<parameter name="tableUseRealItemNames" type="text">
<label>Tablename Realname Generation</label>
<description><![CDATA[Enables Tablename prefix generation per Items realname <br>(optional, default: disabled -> "Tablename Prefix String" is used). <br>
If true, 'Tablename Prefix String' is ignored.]]></description>
@ -156,12 +157,12 @@
<option value="false">Disable</option>
</options>
</parameter>
<parameter name="tableIdDigitCount" type="text" required="false">
<parameter name="tableIdDigitCount" type="text">
<label>Tablename Suffix ID Count</label>
<description><![CDATA[Tablename Suffix ID Count <br>(optional, default: 4 -> 0001-9999). <br>
For migration from MYSQL-Bundle set to 0.]]></description>
</parameter>
<parameter name="rebuildTableNames" type="text" required="false">
<parameter name="rebuildTableNames" type="text">
<label>Tablename Rebuild</label>
<description><![CDATA[Rename existing tables using 'Tablename Realname Generation' and 'Tablename Suffix ID Count', (optional, default: disabled). <br>
USE WITH CARE! Deactivate after renaming is done!]]></description>
@ -179,12 +180,12 @@
# maximumPoolSize = 1
# minimumIdle = 1
-->
<parameter name="maximumPoolSize" type="text" required="false">
<parameter name="maximumPoolSize" type="text">
<label>Connections Max Pool Size</label>
<description><![CDATA[Overrides max pool size in database connection. <br>(optional, default: differs each Database)<br>
https://github.com/brettwooldridge/HikariCP/issues/256]]></description>
</parameter>
<parameter name="minimumIdle" type="text" required="false">
<parameter name="minimumIdle" type="text">
<label>Connections Min Idle</label>
<description><![CDATA[Overrides min idle database connections. <br>(optional, default: differs each Database)<br>
https://github.com/brettwooldridge/HikariCP/issues/256]]></description>
@ -195,7 +196,7 @@
# (optional, default: false)
#enableLogTime=true
-->
<parameter name="enableLogTime" type="text" required="false">
<parameter name="enableLogTime" type="text">
<label>Timekeeping Enable</label>
<description><![CDATA[Enables a time, performance measurement. <br>(optional, default: disabled)]]></description>
<options>