Skip to content

Commit 65ab68b

Browse files
add generic type to PollingInput for the PollingContext (#445)
* add generic type to PollingInput for the PollingContext * fix compilation
1 parent 8726fb9 commit 65ab68b

File tree

11 files changed

+30
-29
lines changed

11 files changed

+30
-29
lines changed

hivemq-edge/src/main/java/com/hivemq/edge/modules/adapters/simulation/SimulationAdapterConfig.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import com.fasterxml.jackson.annotation.JsonProperty;
2020
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
2121
import com.hivemq.adapter.sdk.api.annotations.ModuleConfigField;
22+
import com.hivemq.adapter.sdk.api.config.PollingContext;
2223
import com.hivemq.adapter.sdk.api.config.ProtocolAdapterConfig;
23-
import com.hivemq.edge.modules.config.impl.PollingContextImpl;
2424
import com.hivemq.extension.sdk.api.annotations.NotNull;
2525

2626
import java.util.ArrayList;
@@ -69,7 +69,7 @@ public int getMaxPollingErrorsBeforeRemoval() {
6969
@ModuleConfigField(title = "Subscriptions",
7070
description = "List of subscriptions for the simulation",
7171
required = true)
72-
private @NotNull List<PollingContextImpl> adapterSubscriptions = new ArrayList<>();
72+
private @NotNull List<PollingContext> adapterSubscriptions = new ArrayList<>();
7373

7474
@JsonProperty("minValue")
7575
@ModuleConfigField(title = "Min. Generated Value",
@@ -89,7 +89,7 @@ public SimulationAdapterConfig() {
8989
}
9090

9191
public SimulationAdapterConfig(
92-
final @NotNull String id, final @NotNull List<PollingContextImpl> adapterSubscriptions) {
92+
final @NotNull String id, final @NotNull List<PollingContext> adapterSubscriptions) {
9393
this.id = id;
9494
this.adapterSubscriptions = adapterSubscriptions;
9595
}
@@ -103,11 +103,11 @@ public void setId(final @NotNull String id) {
103103
}
104104

105105

106-
public void setSubscriptions(List<PollingContextImpl> adapterSubscriptions) {
106+
public void setSubscriptions(@NotNull List<PollingContext> adapterSubscriptions) {
107107
this.adapterSubscriptions = adapterSubscriptions;
108108
}
109109

110-
public @NotNull List<PollingContextImpl> getSubscriptions() {
110+
public @NotNull List<PollingContext> getSubscriptions() {
111111
return adapterSubscriptions;
112112
}
113113

hivemq-edge/src/main/java/com/hivemq/edge/modules/adapters/simulation/SimulationProtocolAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
import static com.hivemq.adapter.sdk.api.state.ProtocolAdapterState.ConnectionStatus.STATELESS;
3535

36-
public class SimulationProtocolAdapter implements PollingProtocolAdapter {
36+
public class SimulationProtocolAdapter implements PollingProtocolAdapter<PollingContext> {
3737

3838
private final @NotNull ProtocolAdapterInformation adapterInformation;
3939
private final @NotNull SimulationAdapterConfig adapterConfig;
@@ -71,7 +71,7 @@ public void stop(@NotNull final ProtocolAdapterStopInput input, @NotNull final P
7171

7272
@Override
7373
public void poll(
74-
final @NotNull PollingInput pollingInput, final @NotNull PollingOutput pollingOutput) {
74+
final @NotNull PollingInput<com.hivemq.adapter.sdk.api.config.PollingContext> pollingInput, final @NotNull PollingOutput pollingOutput) {
7575
pollingOutput.addDataPoint("sample",
7676
ThreadLocalRandom.current()
7777
.nextDouble(Math.min(adapterConfig.getMinValue(), adapterConfig.getMaxValue()),
@@ -80,7 +80,7 @@ public void poll(
8080
}
8181

8282
@Override
83-
public @NotNull List<? extends PollingContext> getPollingContexts() {
83+
public @NotNull List<PollingContext> getPollingContexts() {
8484
return adapterConfig.getSubscriptions();
8585
}
8686

hivemq-edge/src/main/java/com/hivemq/protocols/PerSubscriptionSampler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@
1414
import java.util.concurrent.CompletableFuture;
1515
import java.util.concurrent.TimeUnit;
1616

17-
public class PerSubscriptionSampler extends AbstractSubscriptionSampler {
17+
public class PerSubscriptionSampler<T extends PollingContext> extends AbstractSubscriptionSampler {
1818

1919
private static final Logger log = LoggerFactory.getLogger(PerSubscriptionSampler.class);
2020

2121

2222
private final @NotNull PollingProtocolAdapter perSubscriptionProtocolAdapter;
23-
private final @NotNull PollingContext pollingContext;
23+
private final @NotNull T pollingContext;
2424

2525
public PerSubscriptionSampler(
2626
final @NotNull ProtocolAdapterWrapper<PollingProtocolAdapter> protocolAdapter,
2727
final @NotNull MetricRegistry metricRegistry,
2828
final @NotNull ObjectMapper objectMapper,
2929
final @NotNull ProtocolAdapterPublishService adapterPublishService,
30-
final @NotNull PollingContext pollingContext,
30+
final @NotNull T pollingContext,
3131
final @NotNull EventService eventService) {
3232
super(protocolAdapter,
3333
protocolAdapter.getAdapter().getPollingIntervalMillis(),
@@ -48,7 +48,7 @@ public PerSubscriptionSampler(
4848
}
4949
final PollingOutputImpl pollingOutput = new PollingOutputImpl(new ProtocolAdapterDataSampleImpl());
5050
try {
51-
perSubscriptionProtocolAdapter.poll(new PollingInputImpl(pollingContext), pollingOutput);
51+
perSubscriptionProtocolAdapter.poll(new PollingInputImpl<>(pollingContext), pollingOutput);
5252
} catch (Throwable t) {
5353
pollingOutput.fail(t, null);
5454
throw t;

hivemq-edge/src/main/java/com/hivemq/protocols/PollingInputImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
import com.hivemq.adapter.sdk.api.polling.PollingInput;
55
import com.hivemq.extension.sdk.api.annotations.NotNull;
66

7-
public class PollingInputImpl implements PollingInput {
7+
public class PollingInputImpl<T extends PollingContext> implements PollingInput<T> {
88

9-
private final @NotNull PollingContext pollingContext;
9+
private final @NotNull T pollingContext;
1010

11-
public PollingInputImpl(final @NotNull PollingContext pollingContext) {
11+
public PollingInputImpl(final @NotNull T pollingContext) {
1212
this.pollingContext = pollingContext;
1313
}
1414

1515
@Override
16-
public @NotNull PollingContext getPollingContext() {
16+
public @NotNull T getPollingContext() {
1717
return pollingContext;
1818
}
1919
}

hivemq-edge/src/main/java/com/hivemq/protocols/ProtocolAdapterManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.common.util.concurrent.ListenableFuture;
2424
import com.hivemq.adapter.sdk.api.ProtocolAdapter;
2525
import com.hivemq.adapter.sdk.api.ProtocolAdapterInformation;
26+
import com.hivemq.adapter.sdk.api.config.PollingContext;
2627
import com.hivemq.adapter.sdk.api.config.ProtocolAdapterConfig;
2728
import com.hivemq.adapter.sdk.api.events.EventService;
2829
import com.hivemq.adapter.sdk.api.events.model.Event;
@@ -268,14 +269,13 @@ private void schedulePolling(final @NotNull ProtocolAdapterWrapper protocolAdapt
268269
if (protocolAdapterWrapper.getAdapter() instanceof PollingProtocolAdapter) {
269270
log.info("Scheduling polling for adapter {}", protocolAdapterWrapper.getId());
270271
final PollingProtocolAdapter adapter = (PollingProtocolAdapter) protocolAdapterWrapper.getAdapter();
271-
272272
adapter.getPollingContexts().forEach(adapterSubscription -> {
273273
//noinspection unchecked this is safe as we literally make a check on the adapter class before
274-
final PerSubscriptionSampler sampler = new PerSubscriptionSampler(protocolAdapterWrapper,
274+
final PerSubscriptionSampler<? extends PollingContext> sampler = new PerSubscriptionSampler<>(protocolAdapterWrapper,
275275
metricRegistry,
276276
objectMapper,
277277
moduleServices.adapterPublishService(),
278-
adapterSubscription,
278+
(PollingContext)adapterSubscription,
279279
eventService);
280280
protocolAdapterPollingService.schedulePolling(protocolAdapterWrapper, sampler);
281281
});

hivemq-edge/src/test/java/com/hivemq/configuration/writer/LargeConfigFileTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.fasterxml.jackson.annotation.JsonProperty;
2020
import com.fasterxml.jackson.databind.ObjectMapper;
2121
import com.hivemq.adapter.sdk.api.annotations.ModuleConfigField;
22+
import com.hivemq.adapter.sdk.api.config.PollingContext;
2223
import com.hivemq.configuration.entity.HiveMQConfigEntity;
2324
import com.hivemq.configuration.reader.ConfigFileReaderWriter;
2425
import com.hivemq.configuration.reader.ConfigurationFile;
@@ -62,7 +63,7 @@ public void readSmallWriteLarge_reread_config() throws IOException {
6263
start = printTimer("Initial Read", System.out, start);
6364

6465
SimulationAdapterConfig config = readConfig(mapper, entity.getProtocolAdapterConfig());
65-
List<PollingContextImpl> subscriptions = config.getSubscriptions();
66+
List<PollingContext> subscriptions = config.getSubscriptions();
6667

6768
for (int i = 0; i < 100000; i++){
6869
subscriptions.add(new PollingContextImpl("foo" + i, 1, null));

modules/hivemq-edge-module-modbus/src/main/java/com/hivemq/edge/adapters/modbus/ModbusProtocolAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848

4949
import static com.hivemq.adapter.sdk.api.state.ProtocolAdapterState.ConnectionStatus.CONNECTED;
5050

51-
public class ModbusProtocolAdapter implements PollingProtocolAdapter {
51+
public class ModbusProtocolAdapter implements PollingProtocolAdapter<ModbusAdapterConfig.PollingContextImpl> {
5252
private static final Logger log = LoggerFactory.getLogger(ModbusProtocolAdapter.class);
5353
private final @NotNull Object lock = new Object();
5454
private final @NotNull ProtocolAdapterInformation adapterInformation;
@@ -96,7 +96,7 @@ public void stop(@NotNull final ProtocolAdapterStopInput input, @NotNull final P
9696

9797
@Override
9898
public void poll(
99-
final @NotNull PollingInput pollingInput, final @NotNull PollingOutput pollingOutput) {
99+
final @NotNull PollingInput<ModbusAdapterConfig.PollingContextImpl> pollingInput, final @NotNull PollingOutput pollingOutput) {
100100

101101
//-- If a previously linked job has terminally disconnected the client
102102
//-- we need to ensure any orphaned jobs tidy themselves up properly
@@ -122,7 +122,7 @@ public void poll(
122122
}
123123

124124
@Override
125-
public @NotNull List<? extends PollingContext> getPollingContexts() {
125+
public @NotNull List<ModbusAdapterConfig.PollingContextImpl> getPollingContexts() {
126126
return new ArrayList<>(adapterConfig.getSubscriptions());
127127
}
128128

modules/hivemq-edge-module-plc4x/src/main/java/com/hivemq/edge/adapters/plc4x/impl/AbstractPlc4xAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
*
5959
* @author Simon L Johnson
6060
*/
61-
public abstract class AbstractPlc4xAdapter<T extends Plc4xAdapterConfig> implements PollingProtocolAdapter {
61+
public abstract class AbstractPlc4xAdapter<T extends Plc4xAdapterConfig, C extends Plc4xAdapterConfig.PollingContextImpl> implements PollingProtocolAdapter<C> {
6262

6363
protected static final String TAG_ADDRESS_TYPE_SEP = ":";
6464
private final Logger log = LoggerFactory.getLogger(getClass());
@@ -110,9 +110,9 @@ protected void handleDataAndExceptions(
110110
}
111111

112112
@Override
113-
public @NotNull List<? extends PollingContext> getPollingContexts() {
113+
public @NotNull List<C> getPollingContexts() {
114114
if (getReadType() == ReadType.Read) {
115-
return adapterConfig.getSubscriptions();
115+
return (List<C>) adapterConfig.getSubscriptions();
116116
} else {
117117
return List.of();
118118
}

modules/hivemq-edge-module-plc4x/src/main/java/com/hivemq/edge/adapters/plc4x/types/ads/ADSProtocolAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
/**
2828
* @author HiveMQ Adapter Generator
2929
*/
30-
public class ADSProtocolAdapter extends AbstractPlc4xAdapter<ADSAdapterConfig> {
30+
public class ADSProtocolAdapter extends AbstractPlc4xAdapter<ADSAdapterConfig, Plc4xAdapterConfig.PollingContextImpl> {
3131

3232
static final String SOURCE_AMS_NET_ID = "sourceAmsNetId", SOURCE_AMS_PORT = "sourceAmsPort", TARGET_AMS_PORT =
3333
"targetAmsPort", TARGET_AMS_NET_ID = "targetAmsNetId";

modules/hivemq-edge-module-plc4x/src/main/java/com/hivemq/edge/adapters/plc4x/types/eip/EIPProtocolAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
/**
3232
* @author HiveMQ Adapter Generator
3333
*/
34-
public class EIPProtocolAdapter extends AbstractPlc4xAdapter<EIPAdapterConfig> {
34+
public class EIPProtocolAdapter extends AbstractPlc4xAdapter<EIPAdapterConfig, Plc4xAdapterConfig.PollingContextImpl> {
3535

3636
static final String SLOT = "slot", BACKPLANE = "backplane";
3737

0 commit comments

Comments
 (0)