Java 21 language features (#4535)

* Java 21 language features

* use getFirst and getLast methods
* replace new Locale by Locale.of
* replace Paths.get by Path.of
* use ThreadLocalRandom.current().nextDouble()
* add @Serial annotations

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
This commit is contained in:
Holger Friedrich
2025-01-06 23:22:43 +01:00
committed by GitHub
parent f8fdd66f78
commit 40d079ae80
190 changed files with 594 additions and 443 deletions
@@ -86,7 +86,7 @@ public abstract class MarketplaceBundleInstaller {
"The local cache folder doesn't contain a single file: " + addonPath, null);
}
try (FileInputStream fileInputStream = new FileInputStream(bundleFiles.get(0).toFile())) {
try (FileInputStream fileInputStream = new FileInputStream(bundleFiles.getFirst().toFile())) {
Bundle bundle = bundleContext.installBundle(addonId, fileInputStream);
try {
bundle.start();
@@ -12,6 +12,8 @@
*/
package org.openhab.core.addon.marketplace;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -24,6 +26,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class MarketplaceHandlerException extends Exception {
@Serial
private static final long serialVersionUID = -5652014141471618161L;
/**
@@ -12,6 +12,7 @@
*/
package org.openhab.core.addon.marketplace.internal.community;
import java.io.Serial;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
@@ -32,6 +33,7 @@ import com.google.gson.annotations.SerializedName;
*/
@NonNullByDefault
final class SerializedNameAnnotationIntrospector extends AnnotationIntrospector {
@Serial
private static final long serialVersionUID = 1L;
@Override
@@ -142,7 +142,7 @@ public class AbstractRemoteAddonServiceTest {
// check only the installed addon is present
addons = addonService.getAddons(null);
assertThat(addons, hasSize(1));
assertThat(addons.get(0).getUid(), is(getFullAddonId(TEST_ADDON)));
assertThat(addons.getFirst().getUid(), is(getFullAddonId(TEST_ADDON)));
}
@Test
@@ -84,26 +84,26 @@ class AddonInfoListReaderTest {
assertNotNull(addons);
List<AddonInfo> addonsInfos = addons.getAddons();
assertEquals(1, addonsInfos.size());
AddonInfo addon = addonsInfos.get(0);
AddonInfo addon = addonsInfos.getFirst();
assertNotNull(addon);
List<AddonDiscoveryMethod> discoveryMethods = addon.getDiscoveryMethods();
assertNotNull(discoveryMethods);
assertEquals(2, discoveryMethods.size());
AddonDiscoveryMethod method = discoveryMethods.get(0);
AddonDiscoveryMethod method = discoveryMethods.getFirst();
assertNotNull(method);
assertEquals("mdns", method.getServiceType());
List<AddonParameter> parameters = method.getParameters();
assertNotNull(parameters);
assertEquals(1, parameters.size());
AddonParameter parameter = parameters.get(0);
AddonParameter parameter = parameters.getFirst();
assertNotNull(parameter);
assertEquals("mdnsServiceType", parameter.getName());
assertEquals("_printer._tcp.local.", parameter.getValue());
List<AddonMatchProperty> matchProperties = method.getMatchProperties();
assertNotNull(matchProperties);
assertEquals(2, matchProperties.size());
AddonMatchProperty property = matchProperties.get(0);
AddonMatchProperty property = matchProperties.getFirst();
assertNotNull(property);
assertEquals("rp", property.getName());
assertEquals(".*", property.getRegex());
@@ -118,7 +118,7 @@ class AddonInfoListReaderTest {
matchProperties = method.getMatchProperties();
assertNotNull(matchProperties);
assertEquals(1, matchProperties.size());
property = matchProperties.get(0);
property = matchProperties.getFirst();
assertNotNull(property);
assertEquals("modelName", property.getName());
assertEquals("Philips hue bridge", property.getRegex());
@@ -12,6 +12,8 @@
*/
package org.openhab.core.audio;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -24,6 +26,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class AudioException extends Exception {
@Serial
private static final long serialVersionUID = 1L;
/**
@@ -12,6 +12,8 @@
*/
package org.openhab.core.audio;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -25,6 +27,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class UnsupportedAudioFormatException extends AudioException {
@Serial
private static final long serialVersionUID = 1L;
/**
@@ -12,6 +12,8 @@
*/
package org.openhab.core.audio;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -24,6 +26,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class UnsupportedAudioStreamException extends AudioException {
@Serial
private static final long serialVersionUID = 1L;
/**
@@ -17,6 +17,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serial;
import java.nio.file.Files;
import java.util.Collections;
import java.util.List;
@@ -72,6 +73,7 @@ import org.slf4j.LoggerFactory;
@NonNullByDefault
public class AudioServlet extends HttpServlet implements AudioHTTPServer {
@Serial
private static final long serialVersionUID = -3364664035854567854L;
private static final List<String> WAV_MIME_TYPES = List.of("audio/wav", "audio/x-wav", "audio/vnd.wave");
@@ -16,7 +16,7 @@ import static java.util.Comparator.comparing;
import java.io.File;
import java.math.BigDecimal;
import java.nio.file.Paths;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -138,7 +138,7 @@ public class MediaActionTypeProvider implements ModuleTypeProvider {
*/
private List<ParameterOption> getSoundOptions() {
List<ParameterOption> options = new ArrayList<>();
File soundsDir = Paths.get(OpenHAB.getConfigFolder(), AudioManager.SOUND_DIR).toFile();
File soundsDir = Path.of(OpenHAB.getConfigFolder(), AudioManager.SOUND_DIR).toFile();
if (soundsDir.isDirectory()) {
for (String fileName : soundsDir.list()) {
if (fileName.contains(".") && !fileName.startsWith(".")) {
@@ -42,7 +42,7 @@ public class ScriptEngineFactoryHelper {
public static Map.@Nullable Entry<String, String> getParameterOption(ScriptEngineFactory engineFactory) {
List<String> scriptTypes = engineFactory.getScriptTypes();
if (!scriptTypes.isEmpty()) {
ScriptEngine scriptEngine = engineFactory.createScriptEngine(scriptTypes.get(0));
ScriptEngine scriptEngine = engineFactory.createScriptEngine(scriptTypes.getFirst());
if (scriptEngine != null) {
Map.Entry<String, String> parameterOption = Map.entry(getPreferredMimeType(engineFactory),
getLanguageName(scriptEngine.getFactory()));
@@ -66,7 +66,7 @@ public class ScriptEngineFactoryHelper {
}
List<String> mimeTypes = new ArrayList<>(scriptTypes);
mimeTypes.removeIf(mimeType -> !mimeType.contains("application") || "application/python".equals(mimeType));
return mimeTypes.isEmpty() ? scriptTypes.get(0) : mimeTypes.get(0);
return mimeTypes.isEmpty() ? scriptTypes.getFirst() : mimeTypes.getFirst();
}
public static String getLanguageName(javax.script.ScriptEngineFactory factory) {
@@ -79,7 +79,7 @@ public class ScriptEngineManagerImpl implements ScriptEngineManager {
}
if (logger.isDebugEnabled()) {
if (!scriptTypes.isEmpty()) {
ScriptEngine scriptEngine = engineFactory.createScriptEngine(scriptTypes.get(0));
ScriptEngine scriptEngine = engineFactory.createScriptEngine(scriptTypes.getFirst());
if (scriptEngine != null) {
javax.script.ScriptEngineFactory factory = scriptEngine.getFactory();
logger.debug(
@@ -105,9 +105,9 @@ public abstract class AbstractScriptModuleHandler<T extends Module> extends Base
Optional<ScriptEngine> engine = getScriptEngine();
if (engine.isPresent()) {
ScriptEngine scriptEngine = engine.get();
if (scriptEngine instanceof Compilable) {
if (scriptEngine instanceof Compilable compilable) {
logger.debug("Pre-compiling script of rule with UID '{}'", ruleUID);
compiledScript = Optional.ofNullable(((Compilable) scriptEngine).compile(script));
compiledScript = Optional.ofNullable(compilable.compile(script));
}
}
}
@@ -161,7 +161,7 @@ public class ScriptModuleTypeProvider extends AbstractProvider<ModuleType> imple
public void unsetScriptEngineFactory(ScriptEngineFactory engineFactory) {
List<String> scriptTypes = engineFactory.getScriptTypes();
if (!scriptTypes.isEmpty()) {
ScriptEngine scriptEngine = engineFactory.createScriptEngine(scriptTypes.get(0));
ScriptEngine scriptEngine = engineFactory.createScriptEngine(scriptTypes.getFirst());
if (scriptEngine != null) {
parameterOptions.remove(ScriptEngineFactoryHelper.getPreferredMimeType(engineFactory));
logger.trace("ParameterOptions: {}", parameterOptions);
@@ -126,7 +126,7 @@ public class AutomationCommandList extends AutomationCommand {
}
if (getLocale) {
String l = parameterValue;
locale = new Locale(l);
locale = Locale.of(l);
getLocale = false;
}
if (getId && getLocale) {
@@ -339,7 +339,7 @@ public class Printer {
if (list != null && !list.isEmpty()) {
for (Object element : list) {
if (element instanceof String string) {
res.add(Utils.getColumn(columnWidths[0], values.get(0)) + string);
res.add(Utils.getColumn(columnWidths[0], values.getFirst()) + string);
if (isFirst) {
isFirst = false;
values.set(0, "");
@@ -347,7 +347,7 @@ public class Printer {
} else if (element instanceof Module module) {
List<String> moduleRecords = getModuleRecords(module);
for (String elementRecord : moduleRecords) {
res.add(Utils.getColumn(columnWidths[0], values.get(0)) + elementRecord);
res.add(Utils.getColumn(columnWidths[0], values.getFirst()) + elementRecord);
if (isFirst) {
isFirst = false;
values.set(0, "");
@@ -12,6 +12,8 @@
*/
package org.openhab.core.automation.internal.module.exception;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -22,5 +24,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
@NonNullByDefault
public class UncomparableException extends Exception {
@Serial
private static final long serialVersionUID = 4891205711357448390L;
}
@@ -196,7 +196,7 @@ public class AnnotationActionModuleTypeProviderTest extends JavaTest {
List<ParameterOption> parameterOptions = cdp.getOptions();
assertEquals(1, parameterOptions.size());
ParameterOption po = parameterOptions.get(0);
ParameterOption po = parameterOptions.getFirst();
assertEquals("conf2", po.getValue());
}
}
@@ -211,7 +211,7 @@ public class AnnotatedThingActionModuleTypeProviderTest extends JavaTest {
List<ParameterOption> parameterOptions = cdp.getOptions();
assertEquals(1, parameterOptions.size());
ParameterOption po = parameterOptions.get(0);
ParameterOption po = parameterOptions.getFirst();
assertEquals("binding:thing-type:test2", po.getValue());
}
}
@@ -208,7 +208,7 @@ public class ActionInputHelperTest {
List<ConfigDescriptionParameter> params = helper
.mapActionInputsToConfigDescriptionParameters(List.of(input1, input2));
assertThat(params.size(), is(2));
checkParameter(params.get(0), "Boolean", ConfigDescriptionParameter.Type.BOOLEAN, PARAM_LABEL,
checkParameter(params.getFirst(), "Boolean", ConfigDescriptionParameter.Type.BOOLEAN, PARAM_LABEL,
PARAM_DESCRIPTION, true, "false", null, null, null);
checkParameter(params.get(1), "String", ConfigDescriptionParameter.Type.TEXT, PARAM_LABEL, PARAM_DESCRIPTION,
false, null, null, null, null);
@@ -262,7 +262,7 @@ public class ConfigUtil {
for (final Object it : collection) {
final Object normalized = normalizeType(it, null);
lst.add(normalized);
if (normalized.getClass() != lst.get(0).getClass()) {
if (normalized.getClass() != lst.getFirst().getClass()) {
throw new IllegalArgumentException(
"Invalid configuration property. Heterogeneous collection value!");
}
@@ -12,6 +12,7 @@
*/
package org.openhab.core.config.core.validation;
import java.io.Serial;
import java.text.MessageFormat;
import java.util.Collection;
import java.util.Collections;
@@ -35,6 +36,7 @@ import org.slf4j.LoggerFactory;
*/
public final class ConfigValidationException extends RuntimeException {
@Serial
private static final long serialVersionUID = 1L;
private final Logger logger = LoggerFactory.getLogger(ConfigValidationException.class);
@@ -62,7 +62,7 @@ public class ConfigDescriptionBuilderTest {
assertThat(configDescription.getUID(), is(CONFIG_URI));
assertThat(configDescription.getParameterGroups(), hasSize(0));
assertThat(configDescription.getParameters(), hasSize(1));
assertThat(configDescription.getParameters().get(0), is(PARAM1));
assertThat(configDescription.getParameters().getFirst(), is(PARAM1));
}
@Test
@@ -81,7 +81,7 @@ public class ConfigDescriptionBuilderTest {
ConfigDescription configDescription = builder.withParameterGroup(GROUP1).build();
assertThat(configDescription.getUID(), is(CONFIG_URI));
assertThat(configDescription.getParameterGroups(), hasSize(1));
assertThat(configDescription.getParameterGroups().get(0), is(GROUP1));
assertThat(configDescription.getParameterGroups().getFirst(), is(GROUP1));
assertThat(configDescription.getParameters(), hasSize(0));
}
@@ -121,9 +121,9 @@ public class ConfigDescriptionRegistryTest extends JavaTest {
assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(1));
List<ConfigDescription> configDescriptions = new ArrayList<>(configDescriptionRegistry.getConfigDescriptions());
assertThat(configDescriptions.get(0).getUID(), is(equalTo(uriDummy)));
assertThat(configDescriptions.get(0).toParametersMap().size(), is(1));
assertThat(configDescriptions.get(0).toParametersMap().get("param1"), notNullValue());
assertThat(configDescriptions.getFirst().getUID(), is(equalTo(uriDummy)));
assertThat(configDescriptions.getFirst().toParametersMap().size(), is(1));
assertThat(configDescriptions.getFirst().toParametersMap().get("param1"), notNullValue());
configDescriptionRegistry.addConfigDescriptionProvider(configDescriptionProviderMock1);
assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(2));
@@ -146,11 +146,11 @@ public class ConfigDescriptionRegistryTest extends JavaTest {
assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(1));
List<ConfigDescription> configDescriptions = new ArrayList<>(configDescriptionRegistry.getConfigDescriptions());
assertThat(configDescriptions.get(0).getUID(), is(equalTo(uriDummy)));
assertThat(configDescriptions.getFirst().getUID(), is(equalTo(uriDummy)));
assertThat(configDescriptions.get(0).getParameters().size(), is(2));
assertThat(configDescriptions.get(0).getParameters().get(0).getName(), is(equalTo("param1")));
assertThat(configDescriptions.get(0).getParameters().get(1).getName(), is(equalTo("param2")));
assertThat(configDescriptions.getFirst().getParameters().size(), is(2));
assertThat(configDescriptions.getFirst().getParameters().getFirst().getName(), is(equalTo("param1")));
assertThat(configDescriptions.getFirst().getParameters().get(1).getName(), is(equalTo("param2")));
configDescriptionRegistry.removeConfigDescriptionProvider(configDescriptionProviderMock);
assertThat(configDescriptionRegistry.getConfigDescriptions().size(), is(1));
@@ -168,8 +168,8 @@ public class ConfigDescriptionRegistryTest extends JavaTest {
configDescriptionRegistry.addConfigOptionProvider(configOptionsProviderMockAliased);
ConfigDescription res = requireNonNull(configDescriptionRegistry.getConfigDescription(uriAliases));
assertThat(res.getParameters().get(0).getOptions().size(), is(1));
assertThat(res.getParameters().get(0).getOptions().get(0).getLabel(), is("Aliased"));
assertThat(res.getParameters().getFirst().getOptions().size(), is(1));
assertThat(res.getParameters().getFirst().getOptions().getFirst().getLabel(), is("Aliased"));
assertThat(res.getUID(), is(uriAliases));
configDescriptionRegistry.removeConfigDescriptionProvider(configDescriptionProviderMock);
@@ -186,8 +186,8 @@ public class ConfigDescriptionRegistryTest extends JavaTest {
configDescriptionRegistry.addConfigOptionProvider(configOptionsProviderMockAliased);
ConfigDescription res = requireNonNull(configDescriptionRegistry.getConfigDescription(uriAliases));
assertThat(res.getParameters().get(0).getOptions().size(), is(1));
assertThat(res.getParameters().get(0).getOptions().get(0).getLabel(), is("Aliased"));
assertThat(res.getParameters().getFirst().getOptions().size(), is(1));
assertThat(res.getParameters().getFirst().getOptions().getFirst().getLabel(), is("Aliased"));
assertThat(res.getUID(), is(uriAliases));
configDescriptionRegistry.removeConfigDescriptionProvider(configDescriptionProviderMock);
@@ -203,8 +203,8 @@ public class ConfigDescriptionRegistryTest extends JavaTest {
configDescriptionRegistry.addConfigOptionProvider(configOptionsProviderMock);
ConfigDescription res = requireNonNull(configDescriptionRegistry.getConfigDescription(uriAliases));
assertThat(res.getParameters().get(0).getOptions().size(), is(1));
assertThat(res.getParameters().get(0).getOptions().get(0).getLabel(), is("Original"));
assertThat(res.getParameters().getFirst().getOptions().size(), is(1));
assertThat(res.getParameters().getFirst().getOptions().getFirst().getLabel(), is("Original"));
assertThat(res.getUID(), is(uriAliases));
configDescriptionRegistry.removeConfigDescriptionProvider(configDescriptionProviderMock);
@@ -119,7 +119,7 @@ public class ConfigurationTest {
configuration.put("stringField", "someValue");
configuration.put("additionalField", "");
assertThat(props.get("stringField"), is(nullValue()));
assertThat(values.get(0), is(nullValue()));
assertThat(values.getFirst(), is(nullValue()));
assertThat(values.get(1), is(nullValue()));
assertThat(values.size(), is(2));
assertThat(keys.size(), is(2));
@@ -85,7 +85,7 @@ class ConfigDescriptionDTOTest {
.map(ConfigDescriptionDTOMapper.mapParameters(subject));
assertThat(result, hasSize(1));
ConfigDescriptionParameter parameter = result.get(0);
ConfigDescriptionParameter parameter = result.getFirst();
assertThat(parameter.getName(), is(PARAM_NAME));
assertThat(parameter.getType(), is(Type.INTEGER));
assertThat(parameter.isAdvanced(), is(true));
@@ -120,7 +120,7 @@ class ConfigDescriptionDTOTest {
.mapParameterGroupsDTO(ConfigDescriptionDTOMapper.mapParameterGroups(subject));
assertThat(result, hasSize(1));
ConfigDescriptionParameterGroup parameterGroup = result.get(0);
ConfigDescriptionParameterGroup parameterGroup = result.getFirst();
assertThat(parameterGroup.getName(), is(PARAMETER_GROUP_NAME));
assertThat(parameterGroup.isAdvanced(), is(true));
assertThat(parameterGroup.getContext(), is(PARAMETER_GROUP_CONTEXT));
@@ -92,7 +92,7 @@ public class MetadataConfigDescriptionProviderImplTest extends JavaTest {
assertEquals(URI_LIBERAL, desc.getUID());
assertEquals(1, desc.getParameters().size());
ConfigDescriptionParameter param = desc.getParameters().get(0);
ConfigDescriptionParameter param = desc.getParameters().getFirst();
assertEquals("value", param.getName());
assertEquals("Liberal", param.getDescription());
assertFalse(param.getLimitToOptions());
@@ -110,11 +110,11 @@ public class MetadataConfigDescriptionProviderImplTest extends JavaTest {
assertEquals(URI_RESTRICTED, desc.getUID());
assertEquals(1, desc.getParameters().size());
ConfigDescriptionParameter param = desc.getParameters().get(0);
ConfigDescriptionParameter param = desc.getParameters().getFirst();
assertEquals("value", param.getName());
assertEquals("Restricted", param.getDescription());
assertTrue(param.getLimitToOptions());
assertEquals("dimmer", param.getOptions().get(0).getValue());
assertEquals("dimmer", param.getOptions().getFirst().getValue());
assertEquals("switch", param.getOptions().get(1).getValue());
}
@@ -136,7 +136,7 @@ public class MetadataConfigDescriptionProviderImplTest extends JavaTest {
assertEquals(URI_LIBERAL, desc.getUID());
assertEquals(1, desc.getParameters().size());
ConfigDescriptionParameter param = desc.getParameters().get(0);
ConfigDescriptionParameter param = desc.getParameters().getFirst();
assertEquals("value", param.getName());
assertEquals("Liberal", param.getDescription());
assertFalse(param.getLimitToOptions());
@@ -161,7 +161,7 @@ public class MetadataConfigDescriptionProviderImplTest extends JavaTest {
assertEquals(URI_RESTRICTED_DIMMER, desc.getUID());
assertEquals(2, desc.getParameters().size());
ConfigDescriptionParameter paramWidth = desc.getParameters().get(0);
ConfigDescriptionParameter paramWidth = desc.getParameters().getFirst();
assertEquals("width", paramWidth.getName());
ConfigDescriptionParameter paramHeight = desc.getParameters().get(1);
@@ -47,8 +47,8 @@ public class ConfigStatusServiceTest extends JavaTest {
private static final String ENTITY_ID1 = "entity1";
private static final String ENTITY_ID2 = "entity2";
private static final Locale LOCALE_DE = new Locale("de");
private static final Locale LOCALE_EN = new Locale("en");
private static final Locale LOCALE_DE = Locale.of("de");
private static final Locale LOCALE_EN = Locale.of("en");
private static final String PARAM1 = "param1";
private static final String PARAM2 = "param2";
@@ -108,7 +108,7 @@ public class ConfigStatusServiceTest extends JavaTest {
MessageFormat.format(MSG3_EN, ARGS), PARAM3_MSG3.statusCode));
LocaleProvider localeProvider = mock(LocaleProvider.class);
when(localeProvider.getLocale()).thenReturn(new Locale("en", "US"));
when(localeProvider.getLocale()).thenReturn(Locale.of("en", "US"));
configStatusService = new ConfigStatusService(mock(EventPublisher.class), localeProvider,
getTranslationProvider(), mock(BundleResolver.class));
@@ -88,17 +88,18 @@ public class XmlDocumentReaderTest {
*/
@Test
public void defaultSecurityProtectsAgainstRemoteCodeExecution() throws Exception {
String xml = "<contact class='dynamic-proxy'>\n" //
+ " <interface>org.openhab.core.Contact</interface>\n"
+ " <handler class='java.beans.EventHandler'>\n" //
+ " <target class='java.lang.ProcessBuilder'>\n" //
+ " <command>\n" //
+ " <string>calc.exe</string>\n" //
+ " </command>\n" //
+ " </target>\n" //
+ " <action>start</action>\n" //
+ " </handler>\n" //
+ "</contact>";
String xml = """
<contact class='dynamic-proxy'>
<interface>org.openhab.core.Contact</interface>
<handler class='java.beans.EventHandler'>
<target class='java.lang.ProcessBuilder'>
<command>
<string>calc.exe</string>
</command>
</target>
<action>start</action>
</handler>
</contact>""";
assertThrows(ForbiddenClassException.class, () -> readXML(xml));
}
@@ -114,7 +114,7 @@ public class UpnpAddonFinderTests {
assertNotNull(upnpService);
List<RemoteDevice> result = new ArrayList<>(upnpService.getRegistry().getRemoteDevices());
assertEquals(1, result.size());
RemoteDevice device = result.get(0);
RemoteDevice device = result.getFirst();
assertEquals("manufacturer", device.getDetails().getManufacturerDetails().getManufacturer());
assertEquals("serialNumber", device.getDetails().getSerialNumber());
}
@@ -159,7 +159,7 @@ public class SddpDiscoveryService extends AbstractDiscoveryService
if (!data.isBlank()) {
List<String> lines = data.lines().toList();
if (lines.size() > 1) {
String statement = lines.get(0).strip();
String statement = lines.getFirst().strip();
boolean offline = statement.startsWith(NOTIFY_OFFLINE_HEADER);
if (offline || statement.startsWith(NOTIFY_ALIVE_HEADER) || statement.startsWith(NOTIFY_IDENTIFY_HEADER)
|| statement.startsWith(SEARCH_RESPONSE_HEADER)) {
@@ -18,7 +18,6 @@ import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
@@ -127,7 +126,7 @@ public class SysfsUsbSerialScanner implements UsbSerialScanner {
@Override
public boolean canPerformScans() {
return isReadable(Paths.get(sysfsTtyDevicesDirectory)) && isReadable(Paths.get(devDirectory));
return isReadable(Path.of(sysfsTtyDevicesDirectory)) && isReadable(Path.of(devDirectory));
}
/**
@@ -140,10 +139,10 @@ public class SysfsUsbSerialScanner implements UsbSerialScanner {
private Set<SerialPortInfo> getSerialPortInfos() throws IOException {
Set<SerialPortInfo> result = new HashSet<>();
try (DirectoryStream<Path> sysfsTtyPaths = newDirectoryStream(Paths.get(sysfsTtyDevicesDirectory))) {
try (DirectoryStream<Path> sysfsTtyPaths = newDirectoryStream(Path.of(sysfsTtyDevicesDirectory))) {
for (Path sysfsTtyPath : sysfsTtyPaths) {
String serialPortName = sysfsTtyPath.getFileName().toString();
Path devicePath = Paths.get(devDirectory).resolve(serialPortName);
Path devicePath = Path.of(devDirectory).resolve(serialPortName);
Path sysfsDevicePath = getRealDevicePath(sysfsTtyPath);
if (sysfsDevicePath != null && isReadable(devicePath) && isWritable(devicePath)) {
result.add(new SerialPortInfo(devicePath, sysfsDevicePath));
@@ -163,7 +162,7 @@ public class SysfsUsbSerialScanner implements UsbSerialScanner {
String serialPortName = devicePath.getFileName().toString();
// get the corresponding real sysinfo special dir :
Path sysfsDevicePath = getRealDevicePath(
Paths.get(sysfsTtyDevicesDirectory).resolve(serialPortName));
Path.of(sysfsTtyDevicesDirectory).resolve(serialPortName));
if (sysfsDevicePath != null && isReadable(devicePath) && isWritable(devicePath)) {
result.add(new SerialPortInfo(devLinkPath, sysfsDevicePath));
}
@@ -217,7 +217,7 @@ public class AutomaticInboxProcessor extends AbstractTypedEventSubscriber<ThingS
if (results.size() == 1) {
logger.debug("Auto-ignoring the inbox entry for the representation value '{}'.", representationValue);
inbox.setFlag(results.get(0).getThingUID(), DiscoveryResultFlag.IGNORED);
inbox.setFlag(results.getFirst().getThingUID(), DiscoveryResultFlag.IGNORED);
}
}
@@ -255,7 +255,7 @@ public class AutomaticInboxProcessor extends AbstractTypedEventSubscriber<ThingS
if (results.size() == 1) {
logger.debug("Removing the ignored result from the inbox for the representation value '{}'.",
representationValue);
inbox.remove(results.get(0).getThingUID());
inbox.remove(results.getFirst().getThingUID());
}
}
@@ -192,7 +192,7 @@ public final class PersistentInbox implements Inbox, DiscoveryListener, ThingReg
if (newThingId != null && newThingId.contains(AbstractUID.SEPARATOR)) {
throw new IllegalArgumentException("New Thing ID " + newThingId + " must not contain multiple segments");
}
DiscoveryResult result = results.get(0);
DiscoveryResult result = results.getFirst();
final Map<String, String> properties = new HashMap<>();
final Map<String, Object> configParams = new HashMap<>();
getPropsAndConfigParams(result, properties, configParams);
@@ -102,7 +102,7 @@ public class DiscoveryConsoleCommandExtension extends AbstractConsoleCommandExte
break;
}
} else {
console.println(getUsages().get(0));
console.println(getUsages().getFirst());
}
}
@@ -81,7 +81,7 @@ public class InboxPredicatesTest {
assertThat(RESULTS.stream().filter(forBinding(BINDING_ID1)).toList().size(), is(3));
assertThat(RESULTS.stream().filter(forBinding(BINDING_ID2)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(forBinding(BINDING_ID2)).toList().get(0), is(equalTo(RESULTS.get(3))));
assertThat(RESULTS.stream().filter(forBinding(BINDING_ID2)).toList().getFirst(), is(equalTo(RESULTS.get(3))));
assertThat(RESULTS.stream().filter(forBinding(BINDING_ID2)).filter(withFlag(DiscoveryResultFlag.NEW)).toList()
.size(), is(0));
@@ -89,7 +89,7 @@ public class InboxPredicatesTest {
assertThat(RESULTS.stream().filter(forBinding(BINDING_ID2)).filter(withFlag(DiscoveryResultFlag.IGNORED))
.toList().size(), is(1));
assertThat(RESULTS.stream().filter(forBinding(BINDING_ID2)).filter(withFlag(DiscoveryResultFlag.IGNORED))
.toList().get(0), is(equalTo(RESULTS.get(3))));
.toList().getFirst(), is(equalTo(RESULTS.get(3))));
}
@Test
@@ -97,27 +97,28 @@ public class InboxPredicatesTest {
assertThat(RESULTS.stream().filter(forThingTypeUID(THING_TYPE_UID11)).toList().size(), is(2));
assertThat(RESULTS.stream().filter(forThingTypeUID(THING_TYPE_UID12)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(forThingTypeUID(THING_TYPE_UID12)).toList().get(0),
assertThat(RESULTS.stream().filter(forThingTypeUID(THING_TYPE_UID12)).toList().getFirst(),
is(equalTo(RESULTS.get(2))));
}
@Test
public void testForThingUID() {
assertThat(RESULTS.stream().filter(forThingUID(THING_UID11)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(forThingUID(THING_UID11)).toList().get(0), is(equalTo(RESULTS.get(0))));
assertThat(RESULTS.stream().filter(forThingUID(THING_UID11)).toList().getFirst(),
is(equalTo(RESULTS.getFirst())));
assertThat(RESULTS.stream().filter(forThingUID(THING_UID12)).toList().size(), is(2));
assertThat(RESULTS.stream().filter(forThingUID(THING_UID12)).filter(forThingTypeUID(THING_TYPE_UID12)).toList()
.size(), is(1));
assertThat(RESULTS.stream().filter(forThingUID(THING_UID12)).filter(forThingTypeUID(THING_TYPE_UID12)).toList()
.get(0), is(equalTo(RESULTS.get(2))));
.getFirst(), is(equalTo(RESULTS.get(2))));
}
@Test
public void testWithFlag() {
assertThat(RESULTS.stream().filter(withFlag(DiscoveryResultFlag.NEW)).toList().size(), is(3));
assertThat(RESULTS.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList().get(0),
assertThat(RESULTS.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList().getFirst(),
is(equalTo(RESULTS.get(3))));
}
@@ -133,20 +134,20 @@ public class InboxPredicatesTest {
@Test
public void testWithRepresentationProperty() {
assertThat(RESULTS.stream().filter(withRepresentationProperty(PROP1)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(withRepresentationProperty(PROP1)).toList().get(0),
is(equalTo(RESULTS.get(0))));
assertThat(RESULTS.stream().filter(withRepresentationProperty(PROP1)).toList().getFirst(),
is(equalTo(RESULTS.getFirst())));
assertThat(RESULTS.stream().filter(withRepresentationProperty(PROP2)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(withRepresentationProperty(PROP2)).toList().get(0),
assertThat(RESULTS.stream().filter(withRepresentationProperty(PROP2)).toList().getFirst(),
is(equalTo(RESULTS.get(2))));
}
@Test
public void testWithRepresentationPropertyValue() {
assertThat(RESULTS.stream().filter(withRepresentationPropertyValue(PROP_VAL1)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(withRepresentationPropertyValue(PROP_VAL1)).toList().get(0),
is(equalTo(RESULTS.get(0))));
assertThat(RESULTS.stream().filter(withRepresentationPropertyValue(PROP_VAL1)).toList().getFirst(),
is(equalTo(RESULTS.getFirst())));
assertThat(RESULTS.stream().filter(withRepresentationPropertyValue(PROP_VAL2)).toList().size(), is(1));
assertThat(RESULTS.stream().filter(withRepresentationPropertyValue(PROP_VAL2)).toList().get(0),
assertThat(RESULTS.stream().filter(withRepresentationPropertyValue(PROP_VAL2)).toList().getFirst(),
is(equalTo(RESULTS.get(2))));
}
}
@@ -168,7 +168,7 @@ public class AutomaticInboxProcessorTest {
// Then there is a discovery result which is NEW
List<DiscoveryResult> results = inbox.stream().filter(withFlag(DiscoveryResultFlag.NEW)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID)));
// Now a thing with thing type THING_TYPE_UID3 goes online, with representation property value being also the
// device id
@@ -181,7 +181,7 @@ public class AutomaticInboxProcessorTest {
// Then there should still be the NEW discovery result, but no IGNORED discovery result
results = inbox.stream().filter(withFlag(DiscoveryResultFlag.NEW)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID)));
results = inbox.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList();
assertThat(results.size(), is(0));
}
@@ -203,7 +203,7 @@ public class AutomaticInboxProcessorTest {
// Then there is a discovery result which is NEW
results = inbox.stream().filter(withFlag(DiscoveryResultFlag.NEW)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID3)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID3)));
}
@Test
@@ -213,7 +213,7 @@ public class AutomaticInboxProcessorTest {
List<DiscoveryResult> results = inbox.stream().filter(withFlag(DiscoveryResultFlag.NEW)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID)));
when(thingRegistryMock.get(THING_UID)).thenReturn(thingMock);
when(thingStatusInfoChangedEventMock.getStatusInfo())
@@ -225,7 +225,7 @@ public class AutomaticInboxProcessorTest {
assertThat(results.size(), is(0));
results = inbox.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID)));
}
@Test
@@ -239,7 +239,7 @@ public class AutomaticInboxProcessorTest {
inbox.add(DiscoveryResultBuilder.create(THING_UID).withProperty(DEVICE_ID_KEY, DEVICE_ID).build());
List<DiscoveryResult> results = inbox.stream().filter(withFlag(DiscoveryResultFlag.NEW)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID)));
when(thingMock.getProperties()).thenReturn(Map.of());
when(thingStatusInfoChangedEventMock.getStatusInfo())
@@ -266,7 +266,7 @@ public class AutomaticInboxProcessorTest {
assertThat(results.size(), is(0));
results = inbox.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID2)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID2)));
}
@Test
@@ -277,7 +277,7 @@ public class AutomaticInboxProcessorTest {
inbox.setFlag(THING_UID, DiscoveryResultFlag.IGNORED);
List<DiscoveryResult> results = inbox.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID)));
automaticInboxProcessor.removed(thingMock);
@@ -302,7 +302,7 @@ public class AutomaticInboxProcessorTest {
results = inbox.getAll();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID3)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID3)));
}
@Test
@@ -312,7 +312,7 @@ public class AutomaticInboxProcessorTest {
List<DiscoveryResult> results = inbox.stream().filter(withFlag(DiscoveryResultFlag.NEW)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID2)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID2)));
when(thingRegistryMock.get(THING_UID2)).thenReturn(thing2Mock);
when(thingStatusInfoChangedEventMock.getStatusInfo())
@@ -324,7 +324,7 @@ public class AutomaticInboxProcessorTest {
assertThat(results.size(), is(0));
results = inbox.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID2)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID2)));
}
@Test
@@ -342,7 +342,7 @@ public class AutomaticInboxProcessorTest {
assertThat(results.size(), is(0));
results = inbox.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID)));
}
@Test
@@ -353,7 +353,7 @@ public class AutomaticInboxProcessorTest {
inbox.setFlag(THING_UID2, DiscoveryResultFlag.IGNORED);
List<DiscoveryResult> results = inbox.stream().filter(withFlag(DiscoveryResultFlag.IGNORED)).toList();
assertThat(results.size(), is(1));
assertThat(results.get(0).getThingUID(), is(equalTo(THING_UID2)));
assertThat(results.getFirst().getThingUID(), is(equalTo(THING_UID2)));
automaticInboxProcessor.removed(thing2Mock);
@@ -294,7 +294,7 @@ public class ConfigDispatcher {
// configuration file contains a PID Marker
List<String> lines = Files.readAllLines(configFile.toPath(), StandardCharsets.UTF_8);
String exclusivePID = !lines.isEmpty() ? getPIDFromLine(lines.get(0)) : null;
String exclusivePID = !lines.isEmpty() ? getPIDFromLine(lines.getFirst()) : null;
if (exclusivePID != null) {
if (exclusivePIDMap.contains(exclusivePID)) {
logger.warn(
@@ -17,7 +17,6 @@ import static org.junit.jupiter.api.Assertions.*;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.junit.jupiter.api.Test;
@@ -41,7 +40,7 @@ public class InstanceUUIDTest {
public void readFromPersistedFile() throws IOException {
// we first need to remove the cached value
InstanceUUID.uuid = null;
Path path = Paths.get(OpenHAB.getUserDataFolder(), InstanceUUID.UUID_FILE_NAME);
Path path = Path.of(OpenHAB.getUserDataFolder(), InstanceUUID.UUID_FILE_NAME);
Files.createDirectories(path.getParent());
Files.write(path, "123".getBytes());
String uuid = InstanceUUID.get();
@@ -52,7 +51,7 @@ public class InstanceUUIDTest {
public void ignoreEmptyFile() throws IOException {
// we first need to remove the cached value
InstanceUUID.uuid = null;
Path path = Paths.get(OpenHAB.getUserDataFolder(), InstanceUUID.UUID_FILE_NAME);
Path path = Path.of(OpenHAB.getUserDataFolder(), InstanceUUID.UUID_FILE_NAME);
Files.createDirectories(path.getParent());
Files.write(path, "".getBytes());
String uuid = InstanceUUID.get();
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.bin2json;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -22,6 +24,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
@NonNullByDefault
public class ConversionException extends Exception {
@Serial
private static final long serialVersionUID = 1L;
public ConversionException() {
@@ -61,8 +61,8 @@ public class CompleterWrapperTest {
completerWrapper.completeCandidates(session, commandLine, candidates);
assertEquals(1, candidates.size());
assertEquals("command", candidates.get(0).value());
assertEquals("description", candidates.get(0).descr());
assertEquals("command", candidates.getFirst().value());
assertEquals("description", candidates.getFirst().descr());
}
@Test
@@ -75,8 +75,8 @@ public class CompleterWrapperTest {
completerWrapper.completeCandidates(session, commandLine, candidates);
assertEquals(2, candidates.size());
assertEquals("command", candidates.get(0).value());
assertEquals("description", candidates.get(0).descr());
assertEquals("command", candidates.getFirst().value());
assertEquals("description", candidates.getFirst().descr());
assertEquals("openhab:command", candidates.get(1).value());
assertEquals("description", candidates.get(1).descr());
@@ -33,7 +33,7 @@ public class StringsCompleterTest {
// positive match
assertTrue(sc.complete(new String[] { "a" }, 0, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("abc ", candidates.get(0));
assertEquals("abc ", candidates.getFirst());
candidates.clear();
// negative match
@@ -43,25 +43,25 @@ public class StringsCompleterTest {
// case insensitive
assertTrue(sc.complete(new String[] { "A" }, 0, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("abc ", candidates.get(0));
assertEquals("abc ", candidates.getFirst());
candidates.clear();
// second argument
assertTrue(sc.complete(new String[] { "a", "d" }, 1, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("def ", candidates.get(0));
assertEquals("def ", candidates.getFirst());
candidates.clear();
// cursor not at end of word (truncates rest)
assertTrue(sc.complete(new String[] { "a", "dg" }, 1, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("def ", candidates.get(0));
assertEquals("def ", candidates.getFirst());
candidates.clear();
// first argument when second is present
assertTrue(sc.complete(new String[] { "a", "d" }, 0, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("abc ", candidates.get(0));
assertEquals("abc ", candidates.getFirst());
}
@Test
@@ -77,7 +77,7 @@ public class StringsCompleterTest {
assertTrue(sc.complete(new String[] { "AB" }, 0, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("ABc ", candidates.get(0));
assertEquals("ABc ", candidates.getFirst());
}
@Test
@@ -87,7 +87,7 @@ public class StringsCompleterTest {
assertTrue(sc.complete(new String[] { "abcd" }, 0, 4, candidates));
assertEquals(5, candidates.size());
assertEquals("abcdd ", candidates.get(0));
assertEquals("abcdd ", candidates.getFirst());
assertEquals("abcde ", candidates.get(1));
assertEquals("abcdee ", candidates.get(2));
assertEquals("abcdef ", candidates.get(3));
@@ -96,13 +96,13 @@ public class StringsCompleterTest {
assertTrue(sc.complete(new String[] { "abcde" }, 0, 5, candidates));
assertEquals(3, candidates.size());
assertEquals("abcde ", candidates.get(0));
assertEquals("abcde ", candidates.getFirst());
assertEquals("abcdee ", candidates.get(1));
assertEquals("abcdef ", candidates.get(2));
candidates.clear();
assertTrue(sc.complete(new String[] { "abcdee" }, 0, 6, candidates));
assertEquals(1, candidates.size());
assertEquals("abcdee ", candidates.get(0));
assertEquals("abcdee ", candidates.getFirst());
}
}
@@ -63,13 +63,13 @@ public class ItemConsoleCommandCompleterTest {
assertTrue(completer.complete(new String[] { "It" }, 0, 2, candidates));
assertEquals(2, candidates.size());
assertEquals("Item1 ", candidates.get(0));
assertEquals("Item1 ", candidates.getFirst());
assertEquals("Item2 ", candidates.get(1));
candidates.clear();
assertTrue(completer.complete(new String[] { "JI" }, 0, 2, candidates));
assertEquals(1, candidates.size());
assertEquals("JItem1 ", candidates.get(0));
assertEquals("JItem1 ", candidates.getFirst());
candidates.clear();
// case sensitive
@@ -98,7 +98,7 @@ public class ItemConsoleCommandCompleterTest {
assertTrue(completer.complete(new String[] { "Item1", "" }, 1, 0, candidates));
assertEquals(3, candidates.size());
assertEquals("OFF ", candidates.get(0));
assertEquals("OFF ", candidates.getFirst());
assertEquals("ON ", candidates.get(1));
assertEquals("REFRESH ", candidates.get(2));
candidates.clear();
@@ -106,7 +106,7 @@ public class ItemConsoleCommandCompleterTest {
// case insensitive
assertTrue(completer.complete(new String[] { "Item1", "o" }, 1, 1, candidates));
assertEquals(2, candidates.size());
assertEquals("OFF ", candidates.get(0));
assertEquals("OFF ", candidates.getFirst());
assertEquals("ON ", candidates.get(1));
}
@@ -123,7 +123,7 @@ public class ItemConsoleCommandCompleterTest {
assertTrue(completer.complete(new String[] { "Item1", "" }, 1, 0, candidates));
assertEquals(4, candidates.size());
assertEquals("NULL ", candidates.get(0));
assertEquals("NULL ", candidates.getFirst());
assertEquals("OFF ", candidates.get(1));
assertEquals("ON ", candidates.get(2));
assertEquals("UNDEF ", candidates.get(3));
@@ -132,7 +132,7 @@ public class ItemConsoleCommandCompleterTest {
// case insensitive
assertTrue(completer.complete(new String[] { "Item1", "o" }, 1, 1, candidates));
assertEquals(2, candidates.size());
assertEquals("OFF ", candidates.get(0));
assertEquals("OFF ", candidates.getFirst());
assertEquals("ON ", candidates.get(1));
}
}
@@ -52,7 +52,7 @@ public class ItemConsoleCommandExtensionTest {
assertTrue(completer.complete(new String[] { "" }, 0, 0, candidates));
assertEquals(5, candidates.size());
assertEquals("addTag ", candidates.get(0));
assertEquals("addTag ", candidates.getFirst());
assertEquals("clear ", candidates.get(1));
assertEquals("list ", candidates.get(2));
assertEquals("remove ", candidates.get(3));
@@ -61,7 +61,7 @@ public class ItemConsoleCommandExtensionTest {
assertTrue(completer.complete(new String[] { "A", "Item1" }, 0, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("addTag ", candidates.get(0));
assertEquals("addTag ", candidates.getFirst());
}
@Test
@@ -75,17 +75,17 @@ public class ItemConsoleCommandExtensionTest {
assertTrue(completer.complete(new String[] { "addTag", "I" }, 0, 6, candidates));
assertEquals(1, candidates.size());
assertEquals("addTag ", candidates.get(0));
assertEquals("addTag ", candidates.getFirst());
candidates.clear();
assertTrue(completer.complete(new String[] { "addTag", "I" }, 1, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("Item1 ", candidates.get(0));
assertEquals("Item1 ", candidates.getFirst());
candidates.clear();
assertTrue(completer.complete(new String[] { "rmTag", "I" }, 1, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("Item1 ", candidates.get(0));
assertEquals("Item1 ", candidates.getFirst());
}
@Test
@@ -96,12 +96,12 @@ public class ItemConsoleCommandExtensionTest {
assertTrue(completer.complete(new String[] { "remove", "I" }, 0, 6, candidates));
assertEquals(1, candidates.size());
assertEquals("remove ", candidates.get(0));
assertEquals("remove ", candidates.getFirst());
candidates.clear();
assertTrue(completer.complete(new String[] { "remove", "I" }, 1, 1, candidates));
assertEquals(1, candidates.size());
assertEquals("Item2 ", candidates.get(0));
assertEquals("Item2 ", candidates.getFirst());
}
@Test
@@ -135,6 +135,6 @@ public class ItemConsoleCommandExtensionTest {
assertTrue(completer.complete(new String[] { "rmTag", "Item3", "" }, 2, 0, candidates));
assertEquals(1, candidates.size());
assertEquals("Tag1 ", candidates.get(0));
assertEquals("Tag1 ", candidates.getFirst());
}
}
@@ -14,6 +14,7 @@ package org.openhab.core.io.http.auth.internal;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serial;
import java.io.UncheckedIOException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
@@ -51,6 +52,7 @@ import org.slf4j.LoggerFactory;
@NonNullByDefault
public abstract class AbstractAuthPageServlet extends HttpServlet {
@Serial
private static final long serialVersionUID = 5340598701104679840L;
private static final String MESSAGES_BUNDLE_NAME = "messages";
@@ -13,6 +13,7 @@
package org.openhab.core.io.http.auth.internal;
import java.io.IOException;
import java.io.Serial;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -62,6 +63,7 @@ public class AuthorizePageServlet extends AbstractAuthPageServlet {
public static final String SERVLET_PATH = "/auth";
@Serial
private static final long serialVersionUID = 5340598701104679843L;
private final Logger logger = LoggerFactory.getLogger(AuthorizePageServlet.class);
@@ -13,6 +13,7 @@
package org.openhab.core.io.http.auth.internal;
import java.io.IOException;
import java.io.Serial;
import java.util.Map;
import javax.servlet.Servlet;
@@ -48,6 +49,7 @@ public class ChangePasswordPageServlet extends AbstractAuthPageServlet {
public static final String SERVLET_PATH = "/changePassword";
@Serial
private static final long serialVersionUID = 5340598701104679843L;
@Activate
@@ -13,6 +13,7 @@
package org.openhab.core.io.http.auth.internal;
import java.io.IOException;
import java.io.Serial;
import java.util.Map;
import javax.servlet.Servlet;
@@ -46,6 +47,7 @@ import org.osgi.service.http.whiteboard.propertytypes.HttpWhiteboardServletPatte
@HttpWhiteboardServletPattern(CreateAPITokenPageServlet.SERVLET_PATH + "/*")
public class CreateAPITokenPageServlet extends AbstractAuthPageServlet {
@Serial
private static final long serialVersionUID = 5340598701104679843L;
public static final String SERVLET_PATH = "/createApiToken";
@@ -69,7 +69,7 @@ public class ThingStateMetricTest {
List<Meter> meters = meterRegistry.getMeters();
assertEquals(1, meters.size());
assertEquals(strThingUid, meters.get(0).getId().getTag("thing"));
assertEquals(strThingUid, meters.getFirst().getId().getTag("thing"));
// Still only one meter registered after receiving an event
ThingStatusInfo thingStatusInfo = new ThingStatusInfo(ThingStatus.ONLINE, ThingStatusDetail.NONE, null);
@@ -77,7 +77,7 @@ public class ThingStateMetricTest {
meters = meterRegistry.getMeters();
assertEquals(1, meters.size());
assertEquals(strThingUid, meters.get(0).getId().getTag("thing"));
assertEquals(strThingUid, meters.getFirst().getId().getTag("thing"));
// Now another one is added
thingStateMetric.receive(ThingEventFactory.createStatusInfoEvent(thingUid2, thingStatusInfo));
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.net.http;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -23,6 +25,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class HttpClientInitializationException extends RuntimeException {
@Serial
private static final long serialVersionUID = -3187938868560212413L;
public HttpClientInitializationException(String message, @Nullable Throwable cause) {
@@ -17,7 +17,7 @@ import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -84,7 +84,7 @@ public class JwtHelper {
}
private RsaJsonWebKey loadOrGenerateKey() throws JoseException, IOException {
try (final BufferedReader reader = Files.newBufferedReader(Paths.get(KEY_FILE_PATH))) {
try (final BufferedReader reader = Files.newBufferedReader(Path.of(KEY_FILE_PATH))) {
return (RsaJsonWebKey) JsonWebKey.Factory.newJwk(reader.readLine());
} catch (IOException | JoseException e) {
RsaJsonWebKey key = generateNewKey();
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.rest.auth.internal;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.core.auth.AuthenticationException;
@@ -26,6 +28,7 @@ import org.openhab.core.auth.AuthenticationException;
*/
@NonNullByDefault
public class TokenEndpointException extends AuthenticationException {
@Serial
private static final long serialVersionUID = 610324537843397832L;
/**
@@ -179,7 +179,7 @@ public class ItemChannelLinkResource implements RESTResource {
.toList();
if (!links.isEmpty()) {
return JSONResponse.createResponse(Status.OK, links.get(0), null);
return JSONResponse.createResponse(Status.OK, links.getFirst(), null);
}
return JSONResponse.createErrorResponse(Status.NOT_FOUND,
"No link found for item '" + itemName + "' + and channelUID '" + channelUid + "'");
@@ -174,7 +174,7 @@ public class ConfigurableServiceResource implements RESTResource {
+ "=*))";
List<ConfigurableServiceDTO> services = getServicesByFilter(filter, locale);
if (services.size() == 1) {
return services.get(0);
return services.getFirst();
}
return null;
}
@@ -391,9 +391,9 @@ public class ConfigurableServiceResource implements RESTResource {
case 0:
return "";
case 1:
return pids.get(0);
return pids.getFirst();
default: // multiple entries
final String first = pids.get(0);
final String first = pids.getFirst();
boolean differences = false;
for (int i = 1; i < pids.size(); ++i) {
if (!first.equals(pids.get(i))) {
@@ -49,7 +49,7 @@ public class EnrichedConfigDescriptionDTOMapperTest {
ConfigDescriptionDTO cddto = EnrichedConfigDescriptionDTOMapper.map(configDescription);
assertThat(cddto.parameters, hasSize(1));
ConfigDescriptionParameterDTO cdpdto = cddto.parameters.get(0);
ConfigDescriptionParameterDTO cdpdto = cddto.parameters.getFirst();
assertThat(cdpdto, instanceOf(EnrichedConfigDescriptionParameterDTO.class));
assertThat(cdpdto.defaultValue, is(nullValue()));
EnrichedConfigDescriptionParameterDTO ecdpdto = (EnrichedConfigDescriptionParameterDTO) cdpdto;
@@ -66,7 +66,7 @@ public class EnrichedConfigDescriptionDTOMapperTest {
ConfigDescriptionDTO cddto = EnrichedConfigDescriptionDTOMapper.map(configDescription);
assertThat(cddto.parameters, hasSize(1));
ConfigDescriptionParameterDTO cdpdto = cddto.parameters.get(0);
ConfigDescriptionParameterDTO cdpdto = cddto.parameters.getFirst();
assertThat(cdpdto, instanceOf(EnrichedConfigDescriptionParameterDTO.class));
assertThat(cdpdto.defaultValue, is(CONFIG_PARAMETER_DEFAULT_VALUE));
EnrichedConfigDescriptionParameterDTO ecdpdto = (EnrichedConfigDescriptionParameterDTO) cdpdto;
@@ -84,7 +84,7 @@ public class EnrichedConfigDescriptionDTOMapperTest {
ConfigDescriptionDTO cddto = EnrichedConfigDescriptionDTOMapper.map(configDescription);
assertThat(cddto.parameters, hasSize(1));
ConfigDescriptionParameterDTO cdpdto = cddto.parameters.get(0);
ConfigDescriptionParameterDTO cdpdto = cddto.parameters.getFirst();
assertThat(cdpdto, instanceOf(EnrichedConfigDescriptionParameterDTO.class));
assertThat(cdpdto.defaultValue, is(CONFIG_PARAMETER_DEFAULT_VALUE));
EnrichedConfigDescriptionParameterDTO ecdpdto = (EnrichedConfigDescriptionParameterDTO) cdpdto;
@@ -127,7 +127,7 @@ public class PersistenceResourceTest {
// since we added binary state type elements, all except the first have to be repeated but with the timestamp of
// the following item
HistoryDataBean item0 = dto.data.get(0);
HistoryDataBean item0 = dto.data.getFirst();
HistoryDataBean item1 = dto.data.get(1);
assertEquals(item0.state, item1.state);
@@ -94,9 +94,9 @@ public class EnrichedThingDTOMapperTest {
private void assertChannels(EnrichedThingDTO enrichedThingDTO) {
assertThat(enrichedThingDTO.channels, hasSize(2));
assertThat(enrichedThingDTO.channels.get(0), is(instanceOf(EnrichedChannelDTO.class)));
assertThat(enrichedThingDTO.channels.getFirst(), is(instanceOf(EnrichedChannelDTO.class)));
EnrichedChannelDTO channel1 = enrichedThingDTO.channels.get(0);
EnrichedChannelDTO channel1 = enrichedThingDTO.channels.getFirst();
assertThat(channel1.linkedItems, hasSize(2));
}
@@ -299,9 +299,9 @@ public class SitemapSubscriptionService implements ModelRepositoryChangeListener
// subscribing to whole sitemap --> get items for all subpages as well
LinkedList<Widget> childrenQueue = new LinkedList<>(widgets);
while (!childrenQueue.isEmpty()) {
Widget child = childrenQueue.remove(0);
if (child instanceof LinkableWidget) {
List<Widget> subWidgets = itemUIRegistry.getChildren((LinkableWidget) child);
Widget child = childrenQueue.removeFirst();
if (child instanceof LinkableWidget widget) {
List<Widget> subWidgets = itemUIRegistry.getChildren(widget);
widgets.addAll(subWidgets);
childrenQueue.addAll(subWidgets);
}
@@ -358,18 +358,18 @@ public class SitemapResourceTest extends JavaTest {
assertThat(pageDTO.widgets, notNullValue());
assertThat((Collection<?>) pageDTO.widgets, hasSize(3));
assertThat(pageDTO.widgets.get(0).widgetId, is(WIDGET1_ID));
assertThat(pageDTO.widgets.get(0).label, is(WIDGET1_LABEL));
assertThat(pageDTO.widgets.get(0).labelSource, is("SITEMAP_WIDGET"));
assertThat(pageDTO.widgets.get(0).labelcolor, is("GREEN"));
assertThat(pageDTO.widgets.get(0).valuecolor, is("BLUE"));
assertThat(pageDTO.widgets.get(0).iconcolor, is("ORANGE"));
assertThat(pageDTO.widgets.get(0).icon, is(WIDGET1_ICON));
assertThat(pageDTO.widgets.get(0).staticIcon, is(true));
assertThat(pageDTO.widgets.get(0).state, nullValue());
assertThat(pageDTO.widgets.get(0).item, notNullValue());
assertThat(pageDTO.widgets.get(0).item.name, is(ITEM_NAME));
assertThat(pageDTO.widgets.get(0).item.state, is("50"));
assertThat(pageDTO.widgets.getFirst().widgetId, is(WIDGET1_ID));
assertThat(pageDTO.widgets.getFirst().label, is(WIDGET1_LABEL));
assertThat(pageDTO.widgets.getFirst().labelSource, is("SITEMAP_WIDGET"));
assertThat(pageDTO.widgets.getFirst().labelcolor, is("GREEN"));
assertThat(pageDTO.widgets.getFirst().valuecolor, is("BLUE"));
assertThat(pageDTO.widgets.getFirst().iconcolor, is("ORANGE"));
assertThat(pageDTO.widgets.getFirst().icon, is(WIDGET1_ICON));
assertThat(pageDTO.widgets.getFirst().staticIcon, is(true));
assertThat(pageDTO.widgets.getFirst().state, nullValue());
assertThat(pageDTO.widgets.getFirst().item, notNullValue());
assertThat(pageDTO.widgets.getFirst().item.name, is(ITEM_NAME));
assertThat(pageDTO.widgets.getFirst().item.state, is("50"));
assertThat(pageDTO.widgets.get(1).widgetId, is(WIDGET2_ID));
assertThat(pageDTO.widgets.get(1).label, is(ITEM_LABEL));
@@ -399,7 +399,7 @@ public class SitemapResourceTest extends JavaTest {
private void configureItemUIRegistryWithSubpages(State state1, State state2, State state3)
throws ItemNotFoundException {
Group group1 = (Group) widgets.get(0);
Group group1 = (Group) widgets.getFirst();
Group group2 = (Group) widgets.get(4);
when(itemUIRegistryMock.getChildren(defaultSitemapMock)).thenReturn(new BasicEList<>(List.of(group1, group2)));
@@ -441,7 +441,7 @@ public class SitemapResourceTest extends JavaTest {
private void configureWidgetStatesPage1(State state1, State state2) {
EList<Widget> mainpageWidgets = new BasicEList<>(widgets.subList(1, 4));
Widget w1 = mainpageWidgets.get(0);
Widget w1 = mainpageWidgets.getFirst();
configureItemUIRegistryForWidget(w1, WIDGET1_ID, WIDGET1_ICON, WIDGET1_LABEL, WidgetLabelSource.SITEMAP_WIDGET,
true, "GREEN", "BLUE", "ORANGE", state1);
@@ -62,9 +62,9 @@ public class SseUtilTest {
List<String> regexes = SseUtil
.convertToRegex("openhab/*/test/test/test/test, openhab/test/*/test/test/test, openhab/*,qivicon/*");
assertThat("openhab/test/test/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/asdf/test/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/asdf/ASDF/test/test/test".matches(regexes.get(0)), is(false));
assertThat("openhab/test/test/test/test/test".matches(regexes.getFirst()), is(true));
assertThat("openhab/asdf/test/test/test/test".matches(regexes.getFirst()), is(true));
assertThat("openhab/asdf/ASDF/test/test/test".matches(regexes.getFirst()), is(false));
assertThat("openhab/test/test/test/test/test".matches(regexes.get(1)), is(true));
assertThat("openhab/asdf/test/test/test/test".matches(regexes.get(1)), is(false));
@@ -83,9 +83,9 @@ public class SseUtilTest {
public void testMoreFilterMatchers() {
List<String> regexes = SseUtil.convertToRegex(", *, openhab/items/*/added, openhab/items/*/*");
assertThat("openhab/test/test/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/asdf/test/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/asdf/ASDF/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/test/test/test/test/test".matches(regexes.getFirst()), is(true));
assertThat("openhab/asdf/test/test/test/test".matches(regexes.getFirst()), is(true));
assertThat("openhab/asdf/ASDF/test/test/test".matches(regexes.getFirst()), is(true));
assertThat("openhab/test/test/test/test/test".matches(regexes.get(1)), is(false));
assertThat("openhab/items/anyitem/added".matches(regexes.get(1)), is(true));
@@ -101,20 +101,20 @@ public class SseUtilTest {
public void testEvenMoreFilterMatchers() {
List<String> regexes = SseUtil.convertToRegex("");
assertThat("openhab/test/test/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/asdf/test/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/asdf/ASDF/test/test/test".matches(regexes.get(0)), is(true));
assertThat("openhab/test/test/test/test/test".matches(regexes.getFirst()), is(true));
assertThat("openhab/asdf/test/test/test/test".matches(regexes.getFirst()), is(true));
assertThat("openhab/asdf/ASDF/test/test/test".matches(regexes.getFirst()), is(true));
regexes = SseUtil.convertToRegex("*/added");
assertThat("openhab/items/anyitem/added".matches(regexes.get(0)), is(true));
assertThat("openhab/items/anyitem/removed".matches(regexes.get(0)), is(false));
assertThat("openhab/items/anyitem/added".matches(regexes.getFirst()), is(true));
assertThat("openhab/items/anyitem/removed".matches(regexes.getFirst()), is(false));
regexes = SseUtil.convertToRegex("*added");
assertThat("openhab/items/anyitem/added".matches(regexes.get(0)), is(true));
assertThat("openhab/items/anyitem/removed".matches(regexes.get(0)), is(false));
assertThat("openhab/items/anyitem/added".matches(regexes.getFirst()), is(true));
assertThat("openhab/items/anyitem/removed".matches(regexes.getFirst()), is(false));
regexes = SseUtil.convertToRegex("openhab/items/*/state");
assertThat("openhab/items/anyitem/state".matches(regexes.get(0)), is(true));
assertThat("openhab/items/anyitem/statechanged".matches(regexes.get(0)), is(false));
assertThat("openhab/items/anyitem/state".matches(regexes.getFirst()), is(true));
assertThat("openhab/items/anyitem/statechanged".matches(regexes.getFirst()), is(false));
}
}
@@ -52,9 +52,9 @@ public class LocaleServiceImpl implements LocaleService {
split = acceptLanguageHttpHeader.split("-");
}
if (split.length == 2) {
locale = new Locale(split[0], split[1]);
locale = Locale.of(split[0], split[1]);
} else {
locale = new Locale(split[0]);
locale = Locale.of(split[0]);
}
}
return locale;
@@ -157,7 +157,7 @@ public class CorsFilter implements ContainerResponseFilter {
if (values == null || values.isEmpty()) {
return null;
}
return values.get(0);
return values.getFirst();
}
/**
@@ -129,6 +129,6 @@ public class ProxyFilter implements ContainerRequestFilter {
return null;
}
return values.get(0);
return values.getFirst();
}
}
@@ -23,6 +23,7 @@ import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@@ -139,7 +140,7 @@ public class JSONResponseTest {
private List<BigDecimal> getRandoms() {
List<BigDecimal> randoms = new ArrayList<>();
for (int i = 0; i < 100000; i++) {
randoms.add(new BigDecimal(Math.random()));
randoms.add(new BigDecimal(ThreadLocalRandom.current().nextDouble()));
}
return randoms;
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.modbus.exception;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.core.io.transport.modbus.endpoint.ModbusSlaveEndpoint;
@@ -25,6 +27,7 @@ import org.openhab.core.io.transport.modbus.endpoint.ModbusSlaveEndpoint;
@NonNullByDefault
public class ModbusConnectionException extends ModbusTransportException {
@Serial
private static final long serialVersionUID = -6171226761518661925L;
private ModbusSlaveEndpoint endpoint;
@@ -12,6 +12,7 @@
*/
package org.openhab.core.io.transport.modbus.exception;
import java.io.Serial;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@@ -153,6 +154,7 @@ public abstract class ModbusSlaveErrorResponseException extends ModbusTransportE
public static final int GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND = KnownExceptionCode.GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND
.getExceptionCode();
@Serial
private static final long serialVersionUID = -1435199498550990487L;
/**
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.modbus.exception;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -23,5 +25,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
@NonNullByDefault
public class ModbusSlaveIOException extends ModbusTransportException {
@Serial
private static final long serialVersionUID = -8568199166837844463L;
}
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.modbus.exception;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -23,5 +25,6 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
@NonNullByDefault
public class ModbusTransportException extends Exception {
@Serial
private static final long serialVersionUID = 1684767401685843339L;
}
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.modbus.exception;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -24,6 +26,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class ModbusUnexpectedResponseFunctionCodeException extends ModbusTransportException {
@Serial
private static final long serialVersionUID = 1109165449703638949L;
private int requestFunctionCode;
private int responseFunctionCode;
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.modbus.exception;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -24,6 +26,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class ModbusUnexpectedResponseSizeException extends ModbusTransportException {
@Serial
private static final long serialVersionUID = 2460907938819984483L;
private int requestSize;
private int responseSize;
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.modbus.exception;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -24,6 +26,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class ModbusUnexpectedTransactionIdException extends ModbusTransportException {
@Serial
private static final long serialVersionUID = -2453232634024813933L;
private int requestId;
private int responseId;
@@ -12,6 +12,7 @@
*/
package org.openhab.core.io.transport.modbus.internal;
import java.io.Serial;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -30,6 +31,7 @@ import net.wimpi.modbus.ModbusSlaveException;
@NonNullByDefault
public class ModbusSlaveErrorResponseExceptionImpl extends ModbusSlaveErrorResponseException {
@Serial
private static final long serialVersionUID = 6334580162425192133L;
private int rawCode;
private Optional<KnownExceptionCode> exceptionCode;
@@ -13,6 +13,7 @@
package org.openhab.core.io.transport.modbus.internal;
import java.io.IOException;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -29,6 +30,7 @@ import net.wimpi.modbus.ModbusIOException;
@NonNullByDefault
public class ModbusSlaveIOExceptionImpl extends ModbusSlaveIOException {
@Serial
private static final long serialVersionUID = -8910463902857643468L;
private Exception error;
@@ -440,7 +440,7 @@ public class SmokeTest extends IntegrationTestSupport {
assertThat(response.getFunctionCode(), is(equalTo(15)));
assertThat(modbustRequestCaptor.getAllReturnValues().size(), is(equalTo(1)));
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().get(0);
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().getFirst();
assertThat(request.getFunctionCode(), is(equalTo(15)));
assertThat(((WriteMultipleCoilsRequest) request).getReference(), is(equalTo(3)));
assertThat(((WriteMultipleCoilsRequest) request).getBitCount(), is(equalTo(bits.size())));
@@ -481,7 +481,7 @@ public class SmokeTest extends IntegrationTestSupport {
assertInstanceOf(ModbusSlaveErrorResponseException.class, lastError.get(), lastError.toString());
assertThat(modbustRequestCaptor.getAllReturnValues().size(), is(equalTo(1)));
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().get(0);
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().getFirst();
assertThat(request.getFunctionCode(), is(equalTo(15)));
assertThat(((WriteMultipleCoilsRequest) request).getReference(), is(equalTo(3)));
assertThat(((WriteMultipleCoilsRequest) request).getBitCount(), is(equalTo(bits.size())));
@@ -520,7 +520,7 @@ public class SmokeTest extends IntegrationTestSupport {
assertThat(response.getFunctionCode(), is(equalTo(5)));
assertThat(modbustRequestCaptor.getAllReturnValues().size(), is(equalTo(1)));
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().get(0);
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().getFirst();
assertThat(request.getFunctionCode(), is(equalTo(5)));
assertThat(((WriteCoilRequest) request).getReference(), is(equalTo(3)));
assertThat(((WriteCoilRequest) request).getCoil(), is(equalTo(true)));
@@ -558,7 +558,7 @@ public class SmokeTest extends IntegrationTestSupport {
assertInstanceOf(ModbusSlaveErrorResponseException.class, lastError.get(), lastError.toString());
assertThat(modbustRequestCaptor.getAllReturnValues().size(), is(equalTo(1)));
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().get(0);
ModbusRequest request = modbustRequestCaptor.getAllReturnValues().getFirst();
assertThat(request.getFunctionCode(), is(equalTo(5)));
assertThat(((WriteCoilRequest) request).getReference(), is(equalTo(300)));
assertThat(((WriteCoilRequest) request).getCoil(), is(equalTo(true)));
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.mqtt;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -23,6 +25,7 @@ import org.eclipse.jdt.annotation.Nullable;
*/
@NonNullByDefault
public class MqttException extends Exception {
@Serial
private static final long serialVersionUID = 301L;
private Throwable cause;
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.serial;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -22,6 +24,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
@NonNullByDefault
public class PortInUseException extends Exception {
@Serial
private static final long serialVersionUID = -2709480420743139383L;
public PortInUseException(String message, Exception cause) {
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.transport.serial;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -22,6 +24,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
@NonNullByDefault
public class UnsupportedCommOperationException extends Exception {
@Serial
private static final long serialVersionUID = 1L;
public UnsupportedCommOperationException() {
@@ -13,6 +13,7 @@
package org.openhab.core.io.websocket;
import java.io.IOException;
import java.io.Serial;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
@@ -65,6 +66,7 @@ import org.slf4j.LoggerFactory;
@HttpWhiteboardServletPattern(CommonWebSocketServlet.SERVLET_PATH + "/*")
@Component(immediate = true, service = { Servlet.class })
public class CommonWebSocketServlet extends WebSocketServlet {
@Serial
private static final long serialVersionUID = 1L;
public static final String SEC_WEBSOCKET_PROTOCOL_HEADER = "Sec-WebSocket-Protocol";
@@ -12,6 +12,8 @@
*/
package org.openhab.core.io.websocket.event;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -21,6 +23,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
*/
@NonNullByDefault
public class EventProcessingException extends Exception {
@Serial
private static final long serialVersionUID = 1L;
public EventProcessingException(String message) {
@@ -18,7 +18,6 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -283,7 +282,7 @@ public class FeatureInstaller implements ConfigurationListener {
}
private void setOnlineRepoUrl() {
Path versionFilePath = Paths.get(OpenHAB.getUserDataFolder(), "etc", "version.properties");
Path versionFilePath = Path.of(OpenHAB.getUserDataFolder(), "etc", "version.properties");
try (BufferedReader reader = Files.newBufferedReader(versionFilePath)) {
Properties prop = new Properties();
prop.load(reader);
@@ -81,7 +81,7 @@ public class ModelRepositoryImpl implements ModelRepository {
Resource resource = getResource(name);
if (resource != null) {
if (!resource.getContents().isEmpty()) {
return resource.getContents().get(0);
return resource.getContents().getFirst();
} else {
logger.warn("Configuration model '{}' is either empty or cannot be parsed correctly!", name);
resourceSet.getResources().remove(resource);
@@ -274,7 +274,7 @@ public class ModelRepositoryImpl implements ModelRepository {
// Check for validation errors, but log them only
try {
final org.eclipse.emf.common.util.Diagnostic diagnostic = safeEmf
.call(() -> Diagnostician.INSTANCE.validate(resource.getContents().get(0)));
.call(() -> Diagnostician.INSTANCE.validate(resource.getContents().getFirst()));
for (org.eclipse.emf.common.util.Diagnostic d : diagnostic.getChildren()) {
warnings.add(d.getMessage());
}
@@ -29,7 +29,6 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Comparator;
import java.util.Dictionary;
@@ -253,7 +252,7 @@ public class FolderObserverTest extends JavaTest {
configProps.put(subdir, "");
folderObserver.activate(contextMock);
File file = new File(WATCHED_DIRECTORY, Paths.get(subdir, "MockFileInNoExtSubDir.txt").toString());
File file = new File(WATCHED_DIRECTORY, Path.of(subdir, "MockFileInNoExtSubDir.txt").toString());
Files.writeString(file.toPath(), INITIAL_FILE_CONTENT, StandardCharsets.UTF_8, StandardOpenOption.CREATE);
waitForAssert(() -> assertThat(file.exists(), is(true)));
@@ -12,6 +12,8 @@
*/
package org.openhab.core.model.item;
import java.io.Serial;
/**
* This exception is used by {@link BindingConfigReader} instances if parsing configurations fails
*
@@ -19,6 +21,7 @@ package org.openhab.core.model.item;
*/
public class BindingConfigParseException extends Exception {
@Serial
private static final long serialVersionUID = 1434607160082879845L;
public BindingConfigParseException(String msg) {
@@ -354,7 +354,7 @@ public class GenericItemProvider extends AbstractProvider<Item>
// Single valued lists get unwrapped to just their one value for
// backwards compatibility
if (value instanceof List listValue && listValue.size() == 1) {
value = listValue.get(0);
value = listValue.getFirst();
}
configuration.put(p.getKey(), value);
});
@@ -16,7 +16,6 @@ import java.io.File;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.eclipse.emf.common.util.URI;
import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -50,7 +49,7 @@ public class MappingUriExtensions extends UriExtensions {
}
protected String calcServerLocation(String configFolder) {
Path configPath = Paths.get(configFolder);
Path configPath = Path.of(configFolder);
Path absoluteConfigPath = configPath.toAbsolutePath();
java.net.URI configPathURI = absoluteConfigPath.toUri();
return removeTrailingSlash(configPathURI.toString());
@@ -184,6 +183,6 @@ public class MappingUriExtensions extends UriExtensions {
// output new: file:///d/
// We use this method now to keep the old behavior.
return Paths.get(uri).toUri().toString();
return Path.of(uri).toUri().toString();
}
}
@@ -12,6 +12,7 @@
*/
package org.openhab.core.model.rule.scoping;
import java.io.Serial;
import java.util.HashMap;
import org.eclipse.xtext.common.types.access.impl.Primitives;
@@ -36,6 +37,7 @@ import org.slf4j.LoggerFactory;
@Component
public class RulesClassCache extends HashMap<String, Class<?>> {
@Serial
private static final long serialVersionUID = 1L;
private static RulesClassCache instance;
@@ -16,6 +16,7 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ThreadLocalRandom;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
@@ -143,9 +144,9 @@ public class ScriptEngineImpl implements ScriptEngine, ModelParser {
EList<EObject> contents = resource.getContents();
if (!contents.isEmpty()) {
Iterable<Issue> validationErrors = getValidationErrors(contents.get(0));
Iterable<Issue> validationErrors = getValidationErrors(contents.getFirst());
if (!validationErrors.iterator().hasNext()) {
return (XExpression) contents.get(0);
return (XExpression) contents.getFirst();
} else {
deleteResource(resource);
throw new ScriptParsingException("Failed to parse expression (due to managed ValidationError/s)",
@@ -162,7 +163,8 @@ public class ScriptEngineImpl implements ScriptEngine, ModelParser {
final int MAX_TRIES = 1000;
for (int i = 0; i < MAX_TRIES; i++) {
// NOTE: The "filename extension" (".script") must match the file.extensions in the *.mwe2
URI syntheticUri = URI.createURI(name + Math.random() + "." + Script.SCRIPT_FILEEXT);
URI syntheticUri = URI
.createURI(name + ThreadLocalRandom.current().nextDouble() + "." + Script.SCRIPT_FILEEXT);
if (resourceSet.getResource(syntheticUri, false) == null) {
return syntheticUri;
}
@@ -12,6 +12,8 @@
*/
package org.openhab.core.model.script.actions;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@@ -24,6 +26,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class TransformationException extends Exception {
@Serial
private static final long serialVersionUID = -1L;
public TransformationException(@Nullable String message) {
@@ -325,9 +325,9 @@ public class Voice {
String[] split = locale.split("-");
Locale loc;
if (split.length == 2) {
loc = new Locale(split[0], split[1]);
loc = Locale.of(split[0], split[1]);
} else {
loc = new Locale(split[0]);
loc = Locale.of(split[0]);
}
dialogContextBuilder.withLocale(loc);
}
@@ -453,9 +453,9 @@ public class Voice {
Locale loc;
String[] split = locale.split("-");
if (split.length == 2) {
loc = new Locale(split[0], split[1]);
loc = Locale.of(split[0], split[1]);
} else {
loc = new Locale(split[0]);
loc = Locale.of(split[0]);
}
dialogContextBuilder.withLocale(loc);
}
@@ -12,6 +12,7 @@
*/
package org.openhab.core.model.script.engine;
import java.io.Serial;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@@ -22,6 +23,7 @@ import java.util.List;
* @author Kai Kreuzer - Initial contribution
*/
public abstract class ScriptException extends Exception {
@Serial
private static final long serialVersionUID = -4155948282895039148L;
private String scriptText;
@@ -12,6 +12,8 @@
*/
package org.openhab.core.model.script.engine;
import java.io.Serial;
/**
* Exception that is thrown on errors during script execution.
*
@@ -19,6 +21,7 @@ package org.openhab.core.model.script.engine;
*/
public class ScriptExecutionException extends ScriptException {
@Serial
private static final long serialVersionUID = 149490362444673405L;
public ScriptExecutionException(final String message, final int line, final int column, final int length) {
@@ -12,6 +12,7 @@
*/
package org.openhab.core.model.script.engine;
import java.io.Serial;
import java.util.List;
import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
@@ -26,6 +27,7 @@ import org.eclipse.xtext.validation.Issue;
*/
public class ScriptParsingException extends ScriptException {
@Serial
private static final long serialVersionUID = -3784970293118871807L;
public ScriptParsingException(String message, String scriptAsString) {
@@ -30,8 +30,8 @@ public class ThingSyntacticSequencerExtension extends ThingSyntacticSequencer {
@Override
protected void emit_ModelThing_ThingKeyword_0_q(EObject semanticObject, ISynNavigable transition,
List<INode> nodes) {
ILeafNode node = nodes != null && nodes.size() == 1 && nodes.get(0) instanceof ILeafNode
? (ILeafNode) nodes.get(0)
ILeafNode node = nodes != null && nodes.size() == 1 && nodes.getFirst() instanceof ILeafNode
? (ILeafNode) nodes.getFirst()
: null;
Keyword keyword = grammarAccess.getModelThingAccess().getThingKeyword_0();
acceptUnassignedKeyword(keyword, keyword.getValue(), node);
@@ -157,7 +157,7 @@ public class YamlModelRepositoryImplTest {
assertThat(arguments, hasSize(4));
// added originally
assertThat(arguments.get(0), containsInAnyOrder(new FirstTypeDTO("First", "First original"),
assertThat(arguments.getFirst(), containsInAnyOrder(new FirstTypeDTO("First", "First original"),
new FirstTypeDTO("Second", "Second original"), new FirstTypeDTO("Third", "Third original")));
// added by update
assertThat(arguments.get(1), contains(new FirstTypeDTO("Fourth", "Fourth original")));
@@ -185,10 +185,10 @@ public class YamlModelRepositoryImplTest {
assertThat(arguments, hasSize(2));
// all are added
assertThat(arguments.get(0), containsInAnyOrder(new FirstTypeDTO("First", "First original"),
assertThat(arguments.getFirst(), containsInAnyOrder(new FirstTypeDTO("First", "First original"),
new FirstTypeDTO("Second", "Second original"), new FirstTypeDTO("Third", "Third original")));
// all are removed
assertThat(arguments.get(0), containsInAnyOrder(new FirstTypeDTO("First", "First original"),
assertThat(arguments.getFirst(), containsInAnyOrder(new FirstTypeDTO("First", "First original"),
new FirstTypeDTO("Second", "Second original"), new FirstTypeDTO("Third", "Third original")));
}
@@ -2681,20 +2681,19 @@ public class PersistenceExtensions {
}
// add HistoricItem at begin
if (betweenItemsList.isEmpty() || !betweenItemsList.get(0).getTimestamp().equals(begin)) {
if (betweenItemsList.isEmpty() || !betweenItemsList.getFirst().getTimestamp().equals(begin)) {
HistoricItem first = beginTime.equals(now) ? historicItemOrCurrentState(item, null)
: internalPersistedState(item, beginTime, serviceId);
if (first != null) {
first = new RetimedHistoricItem(first, beginTime);
}
if (first != null) {
betweenItemsList.add(0, first);
betweenItemsList.addFirst(first);
}
}
// add HistoricItem at end
if (betweenItemsList.isEmpty()
|| !betweenItemsList.get(betweenItemsList.size() - 1).getTimestamp().equals(end)) {
if (betweenItemsList.isEmpty() || !betweenItemsList.getLast().getTimestamp().equals(end)) {
HistoricItem last = endTime.equals(now) ? historicItemOrCurrentState(item, null)
: internalPersistedState(item, endTime, serviceId);
if (last != null) {
@@ -415,7 +415,7 @@ public class PersistenceManagerTest {
assertThat(filterCriteria.getEndDate(), is(time4.atZone(ZoneId.systemDefault())));
// verify restore future is not cancelled
verify(futures.get(0), never()).cancel(anyBoolean());
verify(futures.getFirst(), never()).cancel(anyBoolean());
// verify new values are stored
inOrder.verify(service, times(2)).store(any(Item.class), any(ZonedDateTime.class), any(State.class));
@@ -430,7 +430,7 @@ public class PersistenceManagerTest {
manager.timeSeriesUpdated(TEST_ITEM, timeSeries3);
// verify old restore future is cancelled
inOrder.verify(service, times(1)).store(any(Item.class), any(ZonedDateTime.class), any(State.class));
verify(futures.get(0)).cancel(true);
verify(futures.getFirst()).cancel(true);
// verify new restore future is properly created
inOrder.verify(schedulerMock).at(any(SchedulerRunnable.class), eq(time5));
@@ -452,8 +452,8 @@ public class PersistenceManagerTest {
verify(readyServiceMock, timeout(1000)).markReady(any());
List<SchedulerRunnable> runnables = runnableCaptor.getAllValues();
assertThat(runnables.size(), is(2));
runnables.get(0).run();
runnables.get(0).run();
runnables.getFirst().run();
runnables.getFirst().run();
runnables.get(1).run();
runnables.get(1).run();
@@ -164,7 +164,7 @@ public class SemanticsMetadataProvider extends AbstractProvider<Metadata>
return;
}
for (Entry<List<Class<? extends Tag>>, String> relation : propertyRelations.entrySet()) {
Class<? extends Tag> entityClass = relation.getKey().get(0);
Class<? extends Tag> entityClass = relation.getKey().getFirst();
if (entityClass.isAssignableFrom(type)) {
Class<? extends Property> p = SemanticTags.getProperty(item);
if (p != null) {
@@ -211,7 +211,7 @@ public class SemanticsMetadataProvider extends AbstractProvider<Metadata>
}
for (Entry<List<Class<? extends Tag>>, String> relation : parentRelations.entrySet()) {
List<Class<? extends Tag>> relClasses = relation.getKey();
Class<? extends Tag> entityClass = relClasses.get(0);
Class<? extends Tag> entityClass = relClasses.getFirst();
Class<? extends Tag> parentClass = relClasses.get(1);
// process relations of locations
if (entityClass.isAssignableFrom(type)) {
@@ -236,7 +236,7 @@ public class SemanticsMetadataProvider extends AbstractProvider<Metadata>
}
for (Entry<List<Class<? extends Tag>>, String> relation : memberRelations.entrySet()) {
List<Class<? extends Tag>> relClasses = relation.getKey();
Class<? extends Tag> entityClass = relClasses.get(0);
Class<? extends Tag> entityClass = relClasses.getFirst();
Class<? extends Tag> parentClass = relClasses.get(1);
// process relations of locations
if (entityClass.isAssignableFrom(type)) {
@@ -160,7 +160,7 @@ public class SemanticsServiceImplTest {
public void testGetLabelAndSynonyms() {
List<String> result = service.getLabelAndSynonyms(bathroomTagClass, Locale.ENGLISH);
assertEquals(6, result.size());
assertEquals("bathroom", result.get(0));
assertEquals("bathroom", result.getFirst());
assertEquals("bathrooms", result.get(1));
assertEquals("bath", result.get(2));
assertEquals("baths", result.get(3));
@@ -169,14 +169,14 @@ public class SemanticsServiceImplTest {
result = service.getLabelAndSynonyms(cleaningRobotTagClass, Locale.FRENCH);
assertEquals(4, result.size());
assertEquals("robot de nettoyage", result.get(0));
assertEquals("robot de nettoyage", result.getFirst());
assertEquals("robos de nettoyage", result.get(1));
assertEquals("robot aspirateur", result.get(2));
assertEquals("robots aspirateur", result.get(3));
result = service.getLabelAndSynonyms(userLocationTagClass, Locale.ENGLISH);
assertEquals(4, result.size());
assertEquals("custom label", result.get(0));
assertEquals("custom label", result.getFirst());
assertEquals("synonym1", result.get(1));
assertEquals("synonym2", result.get(2));
assertEquals("synonym with space", result.get(3));
@@ -204,28 +204,28 @@ public class SemanticsServiceImplTest {
public void testGetByLabelOrSynonym() {
List<Class<? extends Tag>> tags = service.getByLabelOrSynonym("BATHROOM", Locale.ENGLISH);
assertEquals(1, tags.size());
assertEquals(bathroomTagClass, tags.get(0));
assertEquals(bathroomTagClass, tags.getFirst());
tags = service.getByLabelOrSynonym("POWDER Rooms", Locale.ENGLISH);
assertEquals(1, tags.size());
assertEquals(bathroomTagClass, tags.get(0));
assertEquals(bathroomTagClass, tags.getFirst());
tags = service.getByLabelOrSynonym("other bath", Locale.ENGLISH);
assertTrue(tags.isEmpty());
tags = service.getByLabelOrSynonym("ROBOT de nettoyage", Locale.FRENCH);
assertEquals(1, tags.size());
assertEquals(cleaningRobotTagClass, tags.get(0));
assertEquals(cleaningRobotTagClass, tags.getFirst());
tags = service.getByLabelOrSynonym("ROBOTS aspirateur", Locale.FRENCH);
assertEquals(1, tags.size());
assertEquals(cleaningRobotTagClass, tags.get(0));
assertEquals(cleaningRobotTagClass, tags.getFirst());
tags = service.getByLabelOrSynonym("Robot cuiseur", Locale.FRENCH);
assertTrue(tags.isEmpty());
tags = service.getByLabelOrSynonym("CUSTOM label", Locale.ENGLISH);
assertEquals(1, tags.size());
assertEquals(userLocationTagClass, tags.get(0));
assertEquals(userLocationTagClass, tags.getFirst());
tags = service.getByLabelOrSynonym("Synonym with space", Locale.ENGLISH);
assertEquals(1, tags.size());
assertEquals(userLocationTagClass, tags.get(0));
assertEquals(userLocationTagClass, tags.getFirst());
tags = service.getByLabelOrSynonym("wrong label", Locale.ENGLISH);
assertTrue(tags.isEmpty());
}
@@ -12,6 +12,8 @@
*/
package org.openhab.core.storage.json.internal.migration;
import java.io.Serial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
@@ -21,6 +23,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
*/
@NonNullByDefault
public class TypeMigrationException extends Exception {
@Serial
private static final long serialVersionUID = 1L;
public TypeMigrationException(String message) {
@@ -132,10 +132,10 @@ public class JsonStorageTest extends JavaTest {
assertEquals(0, ((BigDecimal) dummy.configuration.get("testInt")).scale());
assertEquals(0, ((BigDecimal) dummy.configuration.get("testLong")).scale());
assertEquals(0, ((BigDecimal) dummy.configuration.get("testBigDecimal")).scale());
assertEquals(0, ((List<BigDecimal>) dummy.configuration.get("multiInt")).get(0).scale());
assertEquals(0, ((List<BigDecimal>) dummy.configuration.get("multiInt")).getFirst().scale());
assertEquals(0, ((List<BigDecimal>) dummy.configuration.get("multiInt")).get(1).scale());
assertEquals(0, ((List<BigDecimal>) dummy.configuration.get("multiInt")).get(2).scale());
assertEquals(0, ((BigDecimal) dummy.channels.get(0).configuration.get("testChildLong")).scale());
assertEquals(0, ((BigDecimal) dummy.channels.getFirst().configuration.get("testChildLong")).scale());
}
@Test

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