Skip to content

Commit

Permalink
Merge pull request #202 from seime/openhab_4_2_0
Browse files Browse the repository at this point in the history
Update build and tests to openhab 4.2.0
  • Loading branch information
seaside1 committed Jul 15, 2024
2 parents 06df4aa + 4b5308b commit 93f04d7
Show file tree
Hide file tree
Showing 14 changed files with 84 additions and 123 deletions.
15 changes: 11 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
<parent>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
<version>4.0.0-SNAPSHOT</version>
<version>4.2.0</version>
</parent>
<artifactId>org.openhab.automation.jrule</artifactId>
<name>openHAB Add-ons :: Bundles :: Standalone Java Rules Automation</name>
<version>4.2.1-SNAPSHOT</version>

<properties>
<bnd.importpackage>com.sun.org.apache.xml.internal.utils.*;resolution:=optional,\
Expand Down Expand Up @@ -92,10 +93,16 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8</artifactId>
<version>2.35.0</version>
<groupId>org.wiremock</groupId>
<artifactId>wiremock</artifactId>
<version>3.8.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
Expand Down
4 changes: 2 additions & 2 deletions src/main/history/dependencies.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.6.0" name="org.openhab.automation.jrule-4.0.0-SNAPSHOT">
<features xmlns="http://karaf.apache.org/xmlns/features/v1.6.0" name="org.openhab.automation.jrule-4.2.0">
<feature version="0.0.0">
<feature>openhab-runtime-base</feature>
<feature>wrap</feature>
<bundle>mvn:javax.el/javax.el-api/2.2.4</bundle>
<bundle>mvn:org.freemarker/freemarker/2.3.32</bundle>
<bundle>mvn:org.openhab.addons.bundles/org.openhab.automation.jrule/4.0.0-SNAPSHOT</bundle>
<bundle>mvn:org.openhab.addons.bundles/org.openhab.automation.jrule/4.2.0</bundle>
<bundle>wrap:mvn:javax.servlet/jsp-api/2.0</bundle>
<bundle>wrap:mvn:javax.servlet/servlet-api/2.4</bundle>
<bundle>wrap:mvn:org.lastnpe.eea/eea-all/2.2.1</bundle>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,21 @@ public Optional<Double> minimumSince(ZonedDateTime timestamp, String persistence

public Optional<Double> varianceSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.varianceSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> deviationSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.deviationSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> averageSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.averageSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> sumSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId).map(DecimalType::doubleValue);
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId)
.map(state -> getNumericValue(state));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import org.openhab.automation.jrule.items.metadata.JRuleMetadataRegistry;
import org.openhab.automation.jrule.rules.value.JRuleStringValue;
import org.openhab.automation.jrule.rules.value.JRuleValue;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.types.State;

/**
Expand Down Expand Up @@ -139,6 +141,16 @@ public boolean equals(Object o) {
&& id.equals(that.id);
}

protected Double getNumericValue(State state) {
if (state instanceof DecimalType) {
return ((DecimalType) state).doubleValue();
} else if (state instanceof QuantityType<?>) {
return ((QuantityType<?>) state).doubleValue();
} else {
return null;
}
}

@Override
public int hashCode() {
return Objects.hash(name, label, type, id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,21 @@ public Optional<Double> minimumSince(ZonedDateTime timestamp, String persistence

public Optional<Double> varianceSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.varianceSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> deviationSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.deviationSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> averageSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.averageSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> sumSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId).map(DecimalType::doubleValue);
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId)
.map(state -> getNumericValue(state));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,21 @@ public Optional<Double> minimumSince(ZonedDateTime timestamp, String persistence

public Optional<Double> varianceSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.varianceSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> deviationSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.deviationSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> averageSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.averageSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> sumSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId).map(DecimalType::doubleValue);
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId)
.map(state -> getNumericValue(state));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,21 @@ public Optional<Double> minimumSince(ZonedDateTime timestamp, String persistence

public Optional<Double> varianceSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.varianceSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> deviationSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.deviationSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> averageSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.averageSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> sumSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId).map(DecimalType::doubleValue);
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId)
.map(state -> getNumericValue(state));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,21 @@ public Optional<Double> minimumSince(ZonedDateTime timestamp, String persistence

public Optional<Double> varianceSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.varianceSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> deviationSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.deviationSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> averageSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.averageSince(name, timestamp, persistenceServiceId)
.map(DecimalType::doubleValue);
.map(state -> getNumericValue(state));
}

public Optional<Double> sumSince(ZonedDateTime timestamp, String persistenceServiceId) {
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId).map(DecimalType::doubleValue);
return JRulePersistenceExtensions.sumSince(name, timestamp, persistenceServiceId)
.map(state -> getNumericValue(state));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,7 @@
import org.openhab.core.items.ItemNotFoundException;
import org.openhab.core.items.ItemRegistry;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.persistence.FilterCriteria;
import org.openhab.core.persistence.HistoricItem;
import org.openhab.core.persistence.ModifiablePersistenceService;
import org.openhab.core.persistence.PersistenceService;
import org.openhab.core.persistence.PersistenceServiceRegistry;
import org.openhab.core.persistence.QueryablePersistenceService;
import org.openhab.core.persistence.*;
import org.openhab.core.persistence.extensions.PersistenceExtensions;
import org.openhab.core.types.State;

Expand Down Expand Up @@ -138,45 +133,50 @@ public static Optional<DecimalType> minimumSince(String itemName, ZonedDateTime
.map(historicItem -> historicItem.getState().as(DecimalType.class));
}

public static Optional<DecimalType> varianceSince(String itemName, ZonedDateTime timestamp)
public static Optional<State> varianceSince(String itemName, ZonedDateTime timestamp)
throws JRuleItemNotFoundException {
return varianceSince(itemName, timestamp, null);
}

public static Optional<DecimalType> varianceSince(String itemName, ZonedDateTime timestamp, String serviceId) {
public static Optional<State> varianceSince(String itemName, ZonedDateTime timestamp, String serviceId) {
Item item = getItem(itemName);
return Optional.ofNullable(serviceId == null ? PersistenceExtensions.varianceSince(item, timestamp)
: PersistenceExtensions.varianceSince(item, timestamp, serviceId));
}

public static Optional<DecimalType> deviationSince(String itemName, ZonedDateTime timestamp) {
public static Optional<State> deviationSince(String itemName, ZonedDateTime timestamp) {
return deviationSince(itemName, timestamp, null);
}

public static Optional<DecimalType> deviationSince(String itemName, ZonedDateTime timestamp, String serviceId) {
public static Optional<State> deviationSince(String itemName, ZonedDateTime timestamp, String serviceId) {
Item item = getItem(itemName);
return Optional.ofNullable(serviceId == null ? PersistenceExtensions.deviationSince(item, timestamp)
: PersistenceExtensions.deviationSince(item, timestamp, serviceId));
}

public static Optional<DecimalType> averageSince(String itemName, ZonedDateTime timestamp) {
public static Optional<State> averageSince(String itemName, ZonedDateTime timestamp) {
return averageSince(itemName, timestamp, null);
}

public static Optional<DecimalType> averageSince(String itemName, ZonedDateTime timestamp, String serviceId) {
public static Optional<State> averageSince(String itemName, ZonedDateTime timestamp, String serviceId) {
Item item = getItem(itemName);
return Optional.ofNullable(serviceId == null ? PersistenceExtensions.averageSince(item, timestamp)
: PersistenceExtensions.averageSince(item, timestamp, serviceId));
}

public static Optional<DecimalType> sumSince(String itemName, ZonedDateTime timestamp) {
public static Optional<State> sumSince(String itemName, ZonedDateTime timestamp) {
return sumSince(itemName, timestamp, null);
}

public static Optional<DecimalType> sumSince(String itemName, ZonedDateTime timestamp, String serviceId) {
public static Optional<State> sumSince(String itemName, ZonedDateTime timestamp, String serviceId) {
Item item = getItem(itemName);
return Optional.of(serviceId == null ? PersistenceExtensions.sumSince(item, timestamp)
: PersistenceExtensions.sumSince(item, timestamp, serviceId));
State state;
if (serviceId == null) {
state = PersistenceExtensions.sumSince(item, timestamp);
} else {
state = PersistenceExtensions.sumSince(item, timestamp, serviceId);
}
return state != null ? Optional.of(state) : Optional.empty();
}

public static Optional<ZonedDateTime> lastUpdate(String itemName) {
Expand All @@ -185,8 +185,13 @@ public static Optional<ZonedDateTime> lastUpdate(String itemName) {

public static Optional<ZonedDateTime> lastUpdate(String itemName, String serviceId) {
Item item = getItem(itemName);
return Optional.ofNullable(serviceId == null ? PersistenceExtensions.lastUpdate(item)
: PersistenceExtensions.lastUpdate(item, serviceId));
ZonedDateTime state;
if (serviceId == null) {
state = PersistenceExtensions.lastUpdate(item);
} else {
state = PersistenceExtensions.lastUpdate(item, serviceId);
}
return state != null ? Optional.of(state) : Optional.empty();
}

public static Optional<State> previousState(String itemName, boolean skipEquals) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,7 @@

import java.io.File;
import java.io.FileWriter;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;

import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -93,7 +89,7 @@ private Map<String, Object> createItemModel(Item item, Map<String, JRuleItemMeta
itemModel.put("type", item.getType());
itemModel.put("metadata", metadata.entrySet().stream().map(e -> e.getKey() + ": " + e.getValue())
.collect(Collectors.joining(", ")));
itemModel.put("tags", StringUtils.join(item.getTags(), ", "));
itemModel.put("tags", StringUtils.join(item.getTags().stream().sorted().toList(), ", "));

// Group handling
if (item.getType().equals(GroupItem.TYPE)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,7 @@

import java.io.File;
import java.io.FileWriter;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;

import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -87,7 +83,7 @@ private Map<String, Object> createItemModel(Item item, Map<String, JRuleItemMeta
itemModel.put("type", item.getType());
itemModel.put("metadata", metadata.entrySet().stream().map(e -> e.getKey() + ": " + e.getValue())
.collect(Collectors.joining(", ")));
itemModel.put("tags", StringUtils.join(item.getTags(), ", "));
itemModel.put("tags", StringUtils.join(item.getTags().stream().sorted().toList(), ", "));
return itemModel;
}
}
Loading

0 comments on commit 93f04d7

Please sign in to comment.