Skip to content

Commit 083058d

Browse files
Feature/21401 extract adapter sdk (#401)
* sdk extraction > compile again * sdk extraction > remove dependencies of modules on edge * sdk extraction > extract logic for ProtocolAdapterSchemaManager and re-include it in edge * sdk extraction > extract logic for ProtocolAdapterSchemaManager and re-include it in edge * mqtt event log integration > extract abstract classes to own module * sdk extraction > fix subscription deserialization * sdk extraction > fix HttpProtocolAdapterTest * sdk extraction > fix AdapterConfigModelTest * sdk extraction > further extractions of implementations and utils * sdk extraction > fix test compilation * sdk extraction > cleanup * sdk extraction > cleanup * sdk extraction > setup for publishing * sdk extraction > add javadoc cleaner * extract SDK > begin to completely remove ABCs * extract SDK > update OpcUaProtocolAdapter to remove dependency on ABCs * extract SDK > update ModbusProtocolAdapter to remove dependency on ABCs * extract SDK > update plc4x and simulation adapters to remove dependency on ABCs * extract SDK > fix tests * extract SDK > cleanup, remove adapter lib * extract SDK > cleanup * extract SDK > fix tests * extract SDK > fix docu link and version in ProtocolAdapterInformations * extract SDK > move state storing to wrapped adapter * extract SDK > move error message handling to framework instead of adapters * extract SDK > fix tests * extract SDK > fix sdk version in edge * extract SDK > remove debug statement * extract SDK > cleanuo, reduce methods to implement * fix after rebase * fix test compilation * sdk extraction > start polling config * cleanup * cleanup * cleanup * cleanup * fix ModbusAdapterConfig returning NULL for user properties * remove constant class from SDK * cleanup * sdk extraction > add tests for life cycle of protocol adapters * sdk extraction > add tests for life cycle of protocol adapters * sdk extraction > cleanup, add automatic conversion for UserProperty * sdk extraction > cleanup, fix packages * sdk extraction > cleanup, add java doc * sdk extraction > cleanup, add java doc * sdk extraction > simplify start method * sdk extraction > simplify start method * sdk extraction > move packages, add java doc * sdk extraction > extract to own repository * sdk extraction > add git clone for adapter sdk * sdk extraction > rename package to adapter * sdk extraction > refactor package name * sdk extraction > rename AdapterSubscription to PublishingConfig * sdk extraction > rename PublishingConfig to PollingContext * sdk extraction > combine two polling protocol adapter interfaces into one * sdk extraction > remove EventBuilderFactory and use a fluent api in EventService instead * sdk extraction > remove EventBuilderFactory and use a fluent api in EventService instead * sdk extraction > remove payload factory * sdk extraction > update tests * sdk extraction > cleanup APIs * sdk extraction > fix naming * sdk extraction > fix InMemoryEventTest * sdk extraction > cleanup java doc * sdk extraction > remove necessity of explicit config converters, fix naminngs * sdk extraction > fix namings of DataSample classes * sdk extraction > refactored poll() method to have input/output pattern * sdk extraction > fix after rebase * Changes from CR * Changes from CR * Changes from CR * Changes from CR * fix exception handling * adapter sdk > fix name and dependencies * SDK extraction > fix http adapter setup * SDK extraction > fix modbus adapter setup * SDK extraction > fix opcua adapter setup * SDK extraction > fix plc4x adapter setup * SDK extraction > removed dependency on extension-sdk and replaced nullability annotations
1 parent 10b045c commit 083058d

File tree

240 files changed

+4349
-4897
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

240 files changed

+4349
-4897
lines changed

.github/workflows/check.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ jobs:
2020
git clone https://github.com/hivemq/hivemq-edge-extension-sdk.git ../hivemq-edge-extension-sdk
2121
cd ../hivemq-edge-extension-sdk
2222
git checkout ${GITHUB_REF#refs/heads/} || true
23+
git clone https://github.com/hivemq/hivemq-edge-adapter-sdk.git ../hivemq-edge-adapter-sdk
24+
cd ../hivemq-edge-adapter-sdk
25+
git checkout ${GITHUB_REF#refs/heads/} || true
2326
cd ../hivemq-edge
2427
- name: Setup Java
2528
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4

hivemq-edge/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ dependencies {
111111
//HiveMQ
112112
api("com.hivemq:hivemq-extension-sdk:${property("hivemq-extension-sdk.version")}")
113113
api("com.hivemq:hivemq-edge-extension-sdk:${property("hivemq-edge-extension-sdk.version")}")
114+
api("com.hivemq:hivemq-edge-adapter-sdk:${property("hivemq-edge-adapter-sdk.version")}")
115+
114116

115117
// netty
116118
implementation("io.netty:netty-buffer:${property("netty.version")}")

hivemq-edge/gradle.properties

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ version=2024.4
22
#
33
# main dependencies
44
#
5-
hivemq-extension-sdk.version=4.16.0
6-
hivemq-edge-extension-sdk.version=2024.2
5+
hivemq-extension-sdk.version=4.28.0
6+
hivemq-edge-extension-sdk.version=2024.4
7+
hivemq-edge-adapter-sdk.version=2024.4
8+
79
# netty
810
netty.version=4.1.108.Final
911
# Jersey (JAXRS / Sun)

hivemq-edge/settings.gradle.kts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,36 +40,36 @@ includeBuild("./src/frontend") {
4040
name = "hivemq-edge-frontend"
4141
}
4242

43-
if (file("../../hivemq-extension-sdk").exists()) {
44-
includeBuild("../../hivemq-extension-sdk")
43+
44+
if (file("../../hivemq-edge-extension-sdk").exists()) {
45+
includeBuild("../../hivemq-edge-extension-sdk")
4546
} else {
4647
logger.warn(
4748
"""
4849
######################################################################################################
49-
You can not use the latest changes of or modify the hivemq-extension-sdk.
50-
Please checkout the hivemq-extension-sdk repository next to the hivemq-edge repository.
50+
You can not use the latest changes of or modify the hivemq-edge-extension-sdk.
51+
Please checkout the hivemq-edge-extension-sdk repository next to the hivemq-edge repository.
5152
Execute the following command from your project directory:
52-
git clone https://github.com/hivemq/hivemq-extension-sdk.git ../hivemq-extension-sdk
53+
git clone https://github.com/hivemq/hivemq-edge-extension-sdk.git ../hivemq-edge-extension-sdk
5354
You can also clone your fork:
54-
git clone https://github.com/<replace-with-your-fork>/hivemq-extension-sdk.git ../hivemq-extension-sdk
55+
git clone https://github.com/<replace-with-your-fork>/hivemq-edge-extension-sdk.git ../hivemq-edge-extension-sdk
5556
######################################################################################################
5657
""".trimIndent()
5758
)
5859
}
5960

60-
61-
if (file("../../hivemq-edge-extension-sdk").exists()) {
62-
includeBuild("../../hivemq-edge-extension-sdk")
61+
if (file("../../hivemq-edge-adapter-sdk").exists()) {
62+
includeBuild("../../hivemq-edge-adapter-sdk")
6363
} else {
6464
logger.warn(
6565
"""
6666
######################################################################################################
67-
You can not use the latest changes of or modify the hivemq-edge-extension-sdk.
68-
Please checkout the hivemq-edge-extension-sdk repository next to the hivemq-edge repository.
67+
You can not use the latest changes of or modify the hivemq-edge-adapter-sdk.
68+
Please checkout the hivemq-edge-adapter-sdk repository next to the hivemq-edge repository.
6969
Execute the following command from your project directory:
70-
git clone https://github.com/hivemq/hivemq-edge-extension-sdk.git ../hivemq-edge-extension-sdk
70+
git clone https://github.com/hivemq/hivemq-edge-adapter-sdk.git ../hivemq-edge-adapter-sdk
7171
You can also clone your fork:
72-
git clone https://github.com/<replace-with-your-fork>/hivemq-edge-extension-sdk.git ../hivemq-edge-extension-sdk
72+
git clone https://github.com/<replace-with-your-fork>/hivemq-edge-adapter-sdk.git ../hivemq-edge-adapter-sdk
7373
######################################################################################################
7474
""".trimIndent()
7575
)

hivemq-edge/src/main/java/com/hivemq/HiveMQEdgeBootstrap.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,8 @@ private void bootstrapPersistences() {
176176
Preconditions.checkNotNull(generalBootstrapService);
177177
Preconditions.checkNotNull(configService);
178178
Preconditions.checkNotNull(commercialModuleLoaderDiscovery);
179+
Preconditions.checkNotNull(injector);
180+
179181

180182
try {
181183
persistenceBootstrapService = injector.persistenceBootstrapService();

hivemq-edge/src/main/java/com/hivemq/api/AbstractApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import com.hivemq.api.auth.ApiPrincipal;
1919
import com.hivemq.api.error.ApiException;
20-
import com.hivemq.http.core.HttpConstants;
20+
import com.hivemq.http.HttpConstants;
2121
import org.slf4j.Logger;
2222
import org.slf4j.LoggerFactory;
2323

hivemq-edge/src/main/java/com/hivemq/api/auth/handler/impl/AbstractHeaderAuthenticationHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.google.common.base.Preconditions;
1919
import com.hivemq.api.auth.handler.AuthenticationResult;
2020
import com.hivemq.extension.sdk.api.annotations.NotNull;
21-
import com.hivemq.http.core.HttpConstants;
21+
import com.hivemq.http.HttpConstants;
2222

2323
import javax.ws.rs.container.ContainerRequestContext;
2424
import javax.ws.rs.core.MultivaluedMap;

hivemq-edge/src/main/java/com/hivemq/api/auth/handler/impl/BasicAuthenticationHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import com.hivemq.api.auth.handler.AuthenticationResult;
2121
import com.hivemq.api.auth.provider.IUsernamePasswordProvider;
2222
import com.hivemq.extension.sdk.api.annotations.NotNull;
23-
import com.hivemq.http.core.HttpConstants;
23+
import com.hivemq.http.HttpConstants;
2424
import com.hivemq.http.core.UsernamePasswordRoles;
2525

2626
import javax.inject.Inject;

hivemq-edge/src/main/java/com/hivemq/api/error/ApiException.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import com.fasterxml.jackson.annotation.JsonIgnore;
1919
import com.hivemq.extension.sdk.api.annotations.NotNull;
20-
import com.hivemq.http.core.HttpConstants;
2120

2221
/**
2322
* @author Simon L Johnson
@@ -26,7 +25,7 @@ public class ApiException extends RuntimeException {
2625

2726
private Object subject = null;
2827
private String errorMessage;
29-
private int httpStatusCode = HttpConstants.SC_INTERNAL_SERVER_ERROR;
28+
private int httpStatusCode = 500;
3029
private Throwable cause;
3130
private String fieldName;
3231

hivemq-edge/src/main/java/com/hivemq/api/json/CustomConfigSchemaGenerator.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,9 @@
1919
import com.fasterxml.jackson.databind.node.ArrayNode;
2020
import com.fasterxml.jackson.databind.node.ObjectNode;
2121
import com.github.victools.jsonschema.generator.FieldScope;
22-
import com.github.victools.jsonschema.generator.InstanceAttributeOverrideV2;
2322
import com.github.victools.jsonschema.generator.MemberScope;
2423
import com.github.victools.jsonschema.generator.MethodScope;
2524
import com.github.victools.jsonschema.generator.Module;
26-
import com.github.victools.jsonschema.generator.Option;
2725
import com.github.victools.jsonschema.generator.OptionPreset;
2826
import com.github.victools.jsonschema.generator.SchemaGenerationContext;
2927
import com.github.victools.jsonschema.generator.SchemaGenerator;
@@ -33,8 +31,8 @@
3331
import com.github.victools.jsonschema.generator.SchemaVersion;
3432
import com.github.victools.jsonschema.module.jackson.JacksonModule;
3533
import com.github.victools.jsonschema.module.jackson.JacksonOption;
36-
import com.hivemq.edge.modules.adapters.annotations.ModuleConfigField;
37-
import com.hivemq.edge.modules.config.CustomConfig;
34+
import com.hivemq.adapter.sdk.api.annotations.ModuleConfigField;
35+
import com.hivemq.adapter.sdk.api.config.ProtocolAdapterConfig;
3836
import com.hivemq.extension.sdk.api.annotations.NotNull;
3937
import com.hivemq.extension.sdk.api.annotations.Nullable;
4038

@@ -45,7 +43,7 @@ public class CustomConfigSchemaGenerator {
4543

4644
public static final String ENUM_NAMES_ATTRIBUTE = "enumNames";
4745

48-
public @NotNull JsonNode generateJsonSchema(final @NotNull Class<? extends CustomConfig> clazz) {
46+
public @NotNull JsonNode generateJsonSchema(final @NotNull Class<? extends ProtocolAdapterConfig> clazz) {
4947
SchemaGeneratorConfigBuilder configBuilder =
5048
new SchemaGeneratorConfigBuilder(SchemaVersion.DRAFT_2020_12, OptionPreset.PLAIN_JSON).
5149
with(new JacksonModule(JacksonOption.RESPECT_JSONPROPERTY_REQUIRED,

0 commit comments

Comments
 (0)