Skip to content

Commit d3b6df4

Browse files
Merge remote-tracking branch 'origin/postgresql-protocol-adapter' into postgresql-protocol-adapter
# Conflicts: # build.gradle.kts # modules/hivemq-edge-module-databases/src/main/java/com/hivemq/edge/adapters/databases/DatabasesPollingProtocolAdapter.java
2 parents f6dd5cb + 11cec6c commit d3b6df4

File tree

2 files changed

+36
-66
lines changed

2 files changed

+36
-66
lines changed

build.gradle.kts

Lines changed: 27 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2,76 +2,50 @@ group = "com.hivemq"
22

33
plugins {
44
id("com.hivemq.edge-version-updater")
5-
id("com.hivemq.repository-convention")
65
id("io.github.sgtsilvio.gradle.oci") version "0.22.0"
7-
id("jacoco")
86
}
97

10-
jacoco {
11-
toolVersion = libs.versions.jacoco.get()
12-
}
13-
14-
// Repository settings are now applied by the repository-convention plugin
15-
168
tasks.register("clean") {
179
group = "build"
18-
//required since we don't apply the base plugin and otherwise the reports can't be cleaned out
19-
project.delete(files("${project.layout.buildDirectory.get()}"))
20-
dependsOn(gradle.includedBuilds.map { it.task(":clean") })
10+
11+
gradle.includedBuilds.forEach {
12+
dependsOn(it.task(":$name"))
13+
}
2114
}
2215

2316
tasks.register("build") {
2417
group = "build"
2518

26-
dependsOn(gradle.includedBuilds.map { it.task(":$name") })
27-
}
28-
29-
tasks.register("license") {
30-
group = "license"
31-
32-
dependsOn(gradle.includedBuilds.filter { it.name != "edge-plugins" }.map { it.task(":$name") })
19+
gradle.includedBuilds.forEach {
20+
dependsOn(it.task(":$name"))
21+
}
3322
}
3423

3524
tasks.register("check") {
3625
group = "verification"
3726

38-
dependsOn(gradle.includedBuilds.map { it.task(":$name") })
27+
gradle.includedBuilds.forEach {
28+
dependsOn(it.task(":$name"))
29+
}
3930
}
4031

4132
tasks.register("test") {
4233
group = "verification"
4334

44-
dependsOn(gradle.includedBuilds.map { it.task(":$name") })
35+
gradle.includedBuilds.forEach {
36+
dependsOn(it.task(":$name"))
37+
}
4538
}
4639

4740
tasks.register("classes") {
48-
dependsOn(gradle.includedBuilds.map { it.task(":$name") })
41+
gradle.includedBuilds.forEach {
42+
dependsOn(it.task(":$name"))
43+
}
4944
}
5045

5146
tasks.register("testClasses") {
52-
dependsOn(gradle.includedBuilds.map { it.task(":$name") })
53-
}
54-
55-
56-
tasks.register<JacocoReport>("jacocoMergedReport") {
57-
dependsOn(gradle.includedBuilds.map { it.task(":test") }) // Run tests in included builds
58-
59-
val executionDataFiles: FileCollection = files(gradle.includedBuilds.map { file(it.projectDir.absolutePath + "/build/jacoco/test.exec") })
60-
val classFiles = files(gradle.includedBuilds.map { fileTree(it.projectDir.absolutePath + "/build/classes/java/main") {
61-
include("**/*.class")
62-
exclude("com/hivemq/edge/api/model/**") // Exclude generated classes
63-
} })
64-
65-
executionData.setFrom(executionDataFiles)
66-
classDirectories.setFrom(classFiles)
67-
68-
sourceDirectories.setFrom(
69-
files(gradle.includedBuilds.map { file(it.projectDir.absolutePath + "/src/main/java")})
70-
)
71-
72-
reports {
73-
xml.required.set(true)
74-
html.required.set(true)
47+
gradle.includedBuilds.forEach {
48+
dependsOn(it.task(":$name"))
7549
}
7650
}
7751

@@ -110,7 +84,7 @@ dependencies {
11084
edgeModule("com.hivemq:hivemq-edge-module-plc4x")
11185
edgeModule("com.hivemq:hivemq-edge-module-opcua")
11286
edgeModule("com.hivemq:hivemq-edge-module-modbus")
113-
edgeModule("com.hivemq:hivemq-edge-module-mtconnect")
87+
edgeModule("com.hivemq:hivemq-edge-module-postgresql")
11488
}
11589

11690
val hivemqEdgeZip by tasks.registering(Zip::class) {
@@ -135,7 +109,6 @@ val edgeProjectsToUpdate = setOf(
135109
"hivemq-edge-module-file",
136110
"hivemq-edge-module-http",
137111
"hivemq-edge-module-modbus",
138-
"hivemq-edge-module-mtconnect",
139112
"hivemq-edge-module-opcua",
140113
"hivemq-edge-module-plc4x",
141114
"hivemq-edge-module-postgresql"
@@ -147,15 +120,6 @@ tasks.register("updateDependantVersions") {
147120
edgeProjectsToUpdate.forEach {
148121
dependsOn(gradle.includedBuild(it).task(":updateVersion"))
149122
}
150-
doLast {
151-
val prevVersion = project.findProperty("prevVersion") as String?
152-
val version = project.findProperty("version") as String?
153-
if(prevVersion != null && prevVersion.endsWith("-SNAPSHOT")) {
154-
file("ext/hivemq-edge-openapi-$prevVersion.yaml").renameTo(file("ext/hivemq-edge-openapi-$version.yaml"))
155-
} else {
156-
file("ext/hivemq-edge-openapi-$prevVersion.yaml").copyTo(file("ext/hivemq-edge-openapi-$version.yaml"))
157-
}
158-
}
159123
}
160124

161125

@@ -209,9 +173,9 @@ oci {
209173
layer("hivemq") {
210174
contents {
211175
into("opt") {
212-
filePermissions = 0b110_110_110
213-
directoryPermissions = 0b111_111_111
214-
permissions("**/*.sh", 0b111_111_111)
176+
filePermissions = 0b110_110_000
177+
directoryPermissions = 0b111_111_000
178+
permissions("**/*.sh", 0b111_111_000)
215179
from("docker/docker-entrypoint.sh")
216180
into("hivemq") {
217181
from("./hivemq-edge/src/distribution") { filter { exclude("**/.gitkeep") } }
@@ -233,8 +197,8 @@ oci {
233197
layer("open-source-modules") {
234198
contents {
235199
into("opt") {
236-
filePermissions = 0b110_110_110
237-
directoryPermissions = 0b111_111_111
200+
filePermissions = 0b110_110_000
201+
directoryPermissions = 0b111_111_000
238202
into("hivemq/modules") {
239203
// copy OSS modules
240204
from(openSourceEdgeModuleBinaries.elements)
@@ -248,3 +212,6 @@ oci {
248212
specificPlatform(platform("linux", "arm", "v7"))
249213
}
250214
}
215+
216+
217+

modules/hivemq-edge-module-databases/src/main/java/com/hivemq/edge/adapters/databases/DatabasesPollingProtocolAdapter.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import com.fasterxml.jackson.databind.node.ObjectNode;
2020
import com.hivemq.adapter.sdk.api.ProtocolAdapterInformation;
2121
import com.hivemq.adapter.sdk.api.config.PollingContext;
22-
import com.hivemq.adapter.sdk.api.data.DataPoint;
2322
import com.hivemq.adapter.sdk.api.model.ProtocolAdapterInput;
2423
import com.hivemq.adapter.sdk.api.model.ProtocolAdapterStartInput;
2524
import com.hivemq.adapter.sdk.api.model.ProtocolAdapterStartOutput;
@@ -72,7 +71,7 @@ public DatabasesPollingProtocolAdapter(
7271
this.tags = input.getTags();
7372

7473
log.debug("Building connection string");
75-
final String compiledUri = getConnectionString(adapterConfig.getType());
74+
String compiledUri = getConnectionString(adapterConfig.getType());
7675
assert compiledUri != null;
7776
log.debug(compiledUri);
7877
this.databaseConnection = new DatabaseConnection(compiledUri,
@@ -82,7 +81,7 @@ public DatabasesPollingProtocolAdapter(
8281
adapterConfig.getEncrypt());
8382
}
8483

85-
private @Nullable String getConnectionString(final DatabaseType inputType) {
84+
private @Nullable String getConnectionString(DatabaseType inputType) {
8685
switch (inputType){
8786
case POSTGRESQL -> {
8887
return String.format("jdbc:postgresql://%s:%s/%s?ssl=%s",
@@ -128,7 +127,7 @@ public void start(
128127

129128
log.debug("Loading MySQL Driver");
130129
try {
131-
Class.forName("com.mysql.cj.jdbc.Driver");
130+
Class.forName("com.mysql.jdbc.Driver");
132131
} catch (final ClassNotFoundException e) {
133132
output.failStart(e, null);
134133
return;
@@ -142,6 +141,8 @@ public void start(
142141
return;
143142
}
144143

144+
145+
145146
databaseConnection.connect();
146147

147148
try {
@@ -176,10 +177,12 @@ public void stop(
176177

177178
@Override
178179
public void poll(final @NotNull PollingInput pollingInput, final @NotNull PollingOutput pollingOutput) {
179-
log.debug("Getting polling context for {}", adapterInformation.getDisplayName());
180+
log.debug("Getting polling context");
180181
final PollingContext pollingContext = pollingInput.getPollingContext();
181182

182-
log.debug("Handling tags for the database adapter : {}", adapterInformation.getDisplayName());
183+
/* Connect to the database and execute the query */
184+
log.debug("Checking database connection state");
185+
log.debug("Handling tags for the adapter");
183186
tags.stream()
184187
.filter(tag -> tag.getName().equals(pollingContext.getTagName()))
185188
.findFirst()

0 commit comments

Comments
 (0)