From 72abf6443f83ecf92b4af8d1a02b1965e5eff6af Mon Sep 17 00:00:00 2001 From: Philipp Zehnder Date: Thu, 6 Apr 2023 20:37:03 +0200 Subject: [PATCH] [#1289] Fix AdapterConfigurationBuilder --- .../machine/v2/FileReplayAdapter.java | 29 +++++++++---------- .../v2/NewMachineDataSimulatorAdapter.java | 21 +++++--------- .../adapter/AdapterConfigurationBuilder.java | 18 ++++++++---- .../AdapterConfigurationBuilderTest.java | 14 +++++---- 4 files changed, 42 insertions(+), 40 deletions(-) diff --git a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/FileReplayAdapter.java b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/FileReplayAdapter.java index 0a8ca57f8c..97ca05fb4e 100644 --- a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/FileReplayAdapter.java +++ b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/FileReplayAdapter.java @@ -28,7 +28,6 @@ import org.apache.streampipes.model.connect.guess.AdapterGuessInfo; import org.apache.streampipes.sdk.StaticProperties; import org.apache.streampipes.sdk.builder.adapter.AdapterConfigurationBuilder; -import org.apache.streampipes.sdk.builder.adapter.AdapterDescriptionBuilder; import org.apache.streampipes.sdk.builder.adapter.CsvParser; import org.apache.streampipes.sdk.builder.adapter.JsonParser; import org.apache.streampipes.sdk.extractor.AdapterParameterExtractor; @@ -59,21 +58,19 @@ public class FileReplayAdapter implements AdapterInterface { @Override public AdapterConfiguration declareConfig() { - return AdapterConfigurationBuilder.create().withSupportedParsers(new JsonParser(), new CsvParser()) - // TODO write new builder - .withAdapterDescription( - AdapterDescriptionBuilder.create("org.apache.streampipes.connect.iiot.adapters.simulator.machine.v2") - .withAssets(Assets.DOCUMENTATION, Assets.ICON) - .withLocales(Locales.EN) - .category(AdapterType.Generic) - .requiredFile(Labels.withId(FILE_PATH), Filetypes.CSV, Filetypes.JSON, Filetypes.XML) - .requiredMultiValueSelection(Labels.withId(REPLACE_TIMESTAMP), Options.from("")) - .requiredSingleValueSelection(Labels.withId(REPLAY_ONCE), Options.from("no", "yes")) - .requiredAlternatives(Labels.withId(SPEED), - Alternatives.from(Labels.withId(KEEP_ORIGINAL_TIME), true), - Alternatives.from(Labels.withId(FASTEST)), Alternatives.from(Labels.withId(SPEED_UP_FACTOR), - StaticProperties.group(Labels.withId(SPEED_UP_FACTOR_GROUP), - StaticProperties.doubleFreeTextProperty(Labels.withId(SPEED_UP))))).build()) + return AdapterConfigurationBuilder.create("org.apache.streampipes.connect.iiot.adapters.simulator.machine.v2") + .withSupportedParsers(new JsonParser(), new CsvParser()) + .withAssets(Assets.DOCUMENTATION, Assets.ICON) + .withLocales(Locales.EN) + .withCategory(AdapterType.Generic) + .requiredFile(Labels.withId(FILE_PATH), Filetypes.CSV, Filetypes.JSON, Filetypes.XML) + .requiredMultiValueSelection(Labels.withId(REPLACE_TIMESTAMP), Options.from("")) + .requiredSingleValueSelection(Labels.withId(REPLAY_ONCE), Options.from("no", "yes")) + .requiredAlternatives(Labels.withId(SPEED), + Alternatives.from(Labels.withId(KEEP_ORIGINAL_TIME), true), + Alternatives.from(Labels.withId(FASTEST)), Alternatives.from(Labels.withId(SPEED_UP_FACTOR), + StaticProperties.group(Labels.withId(SPEED_UP_FACTOR_GROUP), + StaticProperties.doubleFreeTextProperty(Labels.withId(SPEED_UP))))) .build(); } diff --git a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/NewMachineDataSimulatorAdapter.java b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/NewMachineDataSimulatorAdapter.java index a2a8eb55bb..04754104ce 100644 --- a/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/NewMachineDataSimulatorAdapter.java +++ b/streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/v2/NewMachineDataSimulatorAdapter.java @@ -46,7 +46,6 @@ import org.apache.streampipes.model.connect.adapter.IEventCollector; import org.apache.streampipes.model.connect.guess.AdapterGuessInfo; import org.apache.streampipes.sdk.builder.adapter.AdapterConfigurationBuilder; -import org.apache.streampipes.sdk.builder.adapter.AdapterDescriptionBuilder; import org.apache.streampipes.sdk.extractor.AdapterParameterExtractor; import org.apache.streampipes.sdk.helpers.Labels; import org.apache.streampipes.sdk.helpers.Locales; @@ -62,19 +61,13 @@ public class NewMachineDataSimulatorAdapter implements AdapterInterface { @Override public AdapterConfiguration declareConfig() { - return AdapterConfigurationBuilder.create() - - // TODO write new builder - .withAdapterDescription( - AdapterDescriptionBuilder - .create("org.apache.streampipes.connect.iiot.adapters.simulator.machine.v2") - .withAssets(Assets.DOCUMENTATION, Assets.ICON) - .withLocales(Locales.EN) - .category(AdapterType.Debugging) - .requiredIntegerParameter(Labels.withId(WAIT_TIME_MS), 1000) - .requiredSingleValueSelection(Labels.withId(SELECTED_SIMULATOR_OPTION), Options.from( - "flowrate", "pressure", "waterlevel")) - .build()) + return AdapterConfigurationBuilder.create("org.apache.streampipes.connect.iiot.adapters.simulator.machine.v2") + .withAssets(Assets.DOCUMENTATION, Assets.ICON) + .withLocales(Locales.EN) + .withCategory(AdapterType.Debugging) + .requiredIntegerParameter(Labels.withId(WAIT_TIME_MS), 1000) + .requiredSingleValueSelection(Labels.withId(SELECTED_SIMULATOR_OPTION), Options.from( + "flowrate", "pressure", "waterlevel")) .build(); } diff --git a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilder.java b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilder.java index eb2f6c5008..ba18d450b4 100644 --- a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilder.java +++ b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilder.java @@ -18,19 +18,22 @@ package org.apache.streampipes.sdk.builder.adapter; +import org.apache.streampipes.model.AdapterType; import org.apache.streampipes.model.connect.adapter.AdapterConfiguration; import org.apache.streampipes.model.connect.adapter.AdapterDescription; import org.apache.streampipes.model.connect.adapter.Parser; import org.apache.streampipes.sdk.builder.AbstractConfigurablePipelineElementBuilder; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; public class AdapterConfigurationBuilder extends AbstractConfigurablePipelineElementBuilder { - private AdapterDescription adapterDescription; + private final AdapterDescription adapterDescription; private final List supportedParsers; protected AdapterConfigurationBuilder(String appId) { @@ -64,9 +67,14 @@ public AdapterConfigurationBuilder withSupportedParsers(Parser... parsers) { return this; } - - public AdapterConfigurationBuilder withAdapterDescription(AdapterDescription adapterDescription) { - this.adapterDescription = adapterDescription; - return this; + public AdapterConfigurationBuilder withCategory(AdapterType... categories) { + this.adapterDescription + .setCategory(Arrays + .stream(categories) + .map(Enum::name) + .collect(Collectors.toList())); + return me(); } + + } diff --git a/streampipes-sdk/src/test/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilderTest.java b/streampipes-sdk/src/test/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilderTest.java index 6a4f42c369..c397674e52 100644 --- a/streampipes-sdk/src/test/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilderTest.java +++ b/streampipes-sdk/src/test/java/org/apache/streampipes/sdk/builder/adapter/AdapterConfigurationBuilderTest.java @@ -19,6 +19,7 @@ package org.apache.streampipes.sdk.builder.adapter; +import org.apache.streampipes.model.AdapterType; import org.apache.streampipes.model.connect.adapter.AdapterDescription; import org.apache.streampipes.model.connect.adapter.Parser; @@ -41,6 +42,7 @@ public void create() { assertNotNull(adapterConfiguration); assertEquals(id, adapterConfiguration.getAdapterDescription().getAppId()); + assertEquals(new AdapterDescription(), adapterConfiguration.getAdapterDescription()); } @Test @@ -80,15 +82,17 @@ public void withMultipleParserInTwoCall() { } @Test - public void withAdapterDescription() { - var expected = new AdapterDescription(); - + public void withCategory() { var adapterConfiguration = AdapterConfigurationBuilder .create(id) - .withAdapterDescription(expected) + .withCategory(AdapterType.Manufacturing) .build(); - assertEquals(expected, adapterConfiguration.getAdapterDescription()); + var actual = adapterConfiguration.getAdapterDescription().getCategory(); + + assertEquals(1, actual.size()); + assertEquals(AdapterType.Manufacturing.getCode(), actual.get(0)); } + } \ No newline at end of file