Skip to content

Commit 2b0be84

Browse files
authored
feat: improving application running workflow (#38)
1 parent 8528ec4 commit 2b0be84

39 files changed

+862
-1658
lines changed

.idea/codeStyles/Project.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/cirrina__run_.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/watcherTasks.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CONTRIBUTING.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,12 @@ automatically build and test your changes.
3636
Make sure that your both the commits in your pull request and the pull request title are formatted according to the
3737
[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. Commit linting is enforced by the CI. Squashed commits
3838
upon merging are also enforced by the CI and will receive the pull request title as the commit message. We use Conventional Commits to
39-
generate the changelogs.
39+
generate the changelogs.
40+
41+
## Code Guidelines
42+
43+
This project uses Java for the majority of the code. However, we only accept new contributions in Kotlin, and where possible, Java
44+
implementations should be reimplemented in Kotlin.
45+
46+
Public functions and members should be properly documented using Javadoc or KDoc. Private functions and members should be commented in case
47+
they are not self-explanatory.

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ FROM gcr.io/distroless/java21-debian12 AS runtime
1717

1818
COPY --from=build /tmp/cirrina /opt/cirrina
1919

20-
ENTRYPOINT ["java", "-cp", "/opt/cirrina/lib/*", "at.ac.uibk.dps.cirrina.cirrina.Cirrina"]
20+
ENTRYPOINT ["java", "-cp", "/opt/cirrina/lib/*", "at.ac.uibk.dps.cirrina.cirrina.CirrinaKt"]

build.gradle.kts

Lines changed: 82 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,146 +1,146 @@
11
import com.google.protobuf.gradle.id
22

33
plugins {
4-
application
5-
jacoco
4+
application
5+
jacoco
66

7-
id("com.google.protobuf") version "0.9.4"
8-
id("org.pkl-lang") version "0.29.0"
7+
id("com.google.protobuf") version "0.9.4"
8+
id("org.pkl-lang") version "0.29.0"
99

10-
kotlin("jvm")
10+
kotlin("jvm")
1111
}
1212

1313
group = "ac.at.uibk.dps.cirrina"
1414
version = rootProject.file("version.txt").readText().trim()
1515

1616
application {
17-
mainClass = "at.ac.uibk.dps.cirrina.cirrina.Cirrina"
17+
mainClass = "at.ac.uibk.dps.cirrina.cirrina.CirrinaKt"
1818
}
1919

2020
java {
21-
toolchain {
22-
languageVersion = JavaLanguageVersion.of(21)
23-
}
21+
toolchain {
22+
languageVersion = JavaLanguageVersion.of(21)
23+
}
2424
}
2525

2626
jacoco {
27-
toolVersion = "0.8.11"
27+
toolVersion = "0.8.11"
2828
}
2929

3030
pkl {
31-
project {
32-
packagers {
33-
register("pklMakePackages") {
34-
projectDirectories.from(file("src/main/resources/pkl/csm/"))
35-
outputPath.set(File("build/generated/pkl/packages/csm"))
36-
}
37-
}
31+
project {
32+
packagers {
33+
register("pklMakePackages") {
34+
projectDirectories.from(file("src/main/resources/pkl/csm/"))
35+
outputPath.set(File("build/generated/pkl/packages/csm"))
36+
}
3837
}
39-
javaCodeGenerators {
40-
register("pklGenJava") {
41-
sourceModules.addAll(
42-
"src/main/resources/pkl/csm/Csml.pkl",
43-
"src/main/resources/pkl/csm/HttpServiceImplementationDescription.pkl",
44-
"src/main/resources/pkl/csm/ServiceImplementationDescription.pkl"
45-
)
46-
generateGetters.set(true)
47-
generateJavadoc.set(true)
48-
}
38+
}
39+
javaCodeGenerators {
40+
register("pklGenJava") {
41+
sourceModules.addAll(
42+
"src/main/resources/pkl/csm/Csml.pkl",
43+
"src/main/resources/pkl/csm/HttpServiceImplementationDescription.pkl",
44+
"src/main/resources/pkl/csm/ServiceImplementationDescription.pkl"
45+
)
46+
generateGetters.set(true)
47+
generateJavadoc.set(true)
4948
}
49+
}
5050
}
5151

5252
protobuf {
53-
generateProtoTasks {
54-
all().forEach { task ->
55-
task.builtins {
56-
id("python")
57-
id("cpp")
58-
}
59-
}
53+
generateProtoTasks {
54+
all().forEach { task ->
55+
task.builtins {
56+
id("python")
57+
id("cpp")
58+
}
6059
}
60+
}
6161
}
6262

6363
dependencies {
64-
implementation("com.ecwid.consul:consul-api:1.4.5")
64+
implementation("com.ecwid.consul:consul-api:1.4.5")
6565

66-
implementation("com.fasterxml.jackson.core:jackson-databind:2.15.1")
67-
implementation("com.fasterxml.jackson.module:jackson-module-parameter-names:2.15.1")
68-
implementation("com.fasterxml.jackson.module:jackson-module-jsonSchema:2.15.1")
69-
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.1")
70-
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.1")
66+
implementation("com.fasterxml.jackson.core:jackson-databind:2.15.1")
67+
implementation("com.fasterxml.jackson.module:jackson-module-parameter-names:2.15.1")
68+
implementation("com.fasterxml.jackson.module:jackson-module-jsonSchema:2.15.1")
69+
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.1")
70+
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.1")
7171

72-
implementation("com.google.guava:guava:33.0.0-jre")
72+
implementation("com.google.guava:guava:33.0.0-jre")
7373

74-
implementation("com.google.protobuf:protobuf-java:4.32.0")
74+
implementation("com.google.protobuf:protobuf-java:4.32.0")
7575

76-
implementation("info.schnatterer.moby-names-generator:moby-names-generator:20.10.1-r0")
76+
implementation("io.nats:jnats:2.17.3")
7777

78-
implementation("io.nats:jnats:2.17.3")
78+
implementation(platform("io.opentelemetry:opentelemetry-bom:1.38.0"));
79+
implementation("io.opentelemetry:opentelemetry-api");
80+
implementation("io.opentelemetry:opentelemetry-sdk");
81+
implementation("io.opentelemetry:opentelemetry-exporter-logging");
82+
implementation("io.opentelemetry:opentelemetry-exporter-otlp");
83+
implementation("io.opentelemetry.semconv:opentelemetry-semconv:1.25.0-alpha");
84+
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure");
7985

80-
implementation(platform("io.opentelemetry:opentelemetry-bom:1.38.0"));
81-
implementation("io.opentelemetry:opentelemetry-api");
82-
implementation("io.opentelemetry:opentelemetry-sdk");
83-
implementation("io.opentelemetry:opentelemetry-exporter-logging");
84-
implementation("io.opentelemetry:opentelemetry-exporter-otlp");
85-
implementation("io.opentelemetry.semconv:opentelemetry-semconv:1.25.0-alpha");
86-
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure");
86+
implementation("jakarta.annotation:jakarta.annotation-api:3.0.0")
8787

88-
implementation("jakarta.annotation:jakarta.annotation-api:3.0.0")
88+
implementation("org.apache.commons:commons-jexl3:3.3")
8989

90-
implementation("org.apache.commons:commons-jexl3:3.3")
90+
implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
9191

92-
implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
92+
implementation("org.apache.logging.log4j:log4j-core:2.23.1")
9393

94-
implementation("org.apache.logging.log4j:log4j-core:2.23.1")
94+
implementation("org.glassfish.expressly:expressly:5.0.0")
9595

96-
implementation("org.glassfish.expressly:expressly:5.0.0")
96+
implementation("org.hibernate.validator:hibernate-validator:8.0.1.Final")
97+
implementation("org.hibernate:hibernate-validator-cdi:8.0.1.Final")
9798

98-
implementation("org.hibernate.validator:hibernate-validator:8.0.1.Final")
99-
implementation("org.hibernate:hibernate-validator-cdi:8.0.1.Final")
99+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
100100

101-
implementation("org.jgrapht:jgrapht-core:1.5.2")
101+
implementation("org.jgrapht:jgrapht-core:1.5.2")
102102

103-
implementation("org.pkl-lang:pkl-config-java:0.29.0")
104-
implementation("org.pkl-lang:pkl-codegen-java:0.29.0")
103+
implementation("org.pkl-lang:pkl-config-java:0.29.0")
104+
implementation("org.pkl-lang:pkl-codegen-java:0.29.0")
105105

106-
testImplementation(platform("org.junit:junit-bom:5.9.1"))
107-
testImplementation("org.junit.jupiter:junit-jupiter")
106+
testImplementation(platform("org.junit:junit-bom:5.9.1"))
107+
testImplementation("org.junit.jupiter:junit-jupiter")
108108

109-
testImplementation("org.mockito:mockito-core:5.11.0")
110-
implementation(kotlin("stdlib-jdk8"))
109+
testImplementation("org.mockito:mockito-core:5.11.0")
110+
implementation(kotlin("stdlib-jdk8"))
111111
}
112112

113113
repositories {
114-
mavenCentral()
115-
gradlePluginPortal()
116-
maven(url = "https://repository.cloudera.com/artifactory/cloudera-repos/")
114+
mavenCentral()
115+
gradlePluginPortal()
116+
maven(url = "https://repository.cloudera.com/artifactory/cloudera-repos/")
117117
}
118118

119119
tasks.compileJava {
120-
dependsOn("pklMakePackages")
120+
dependsOn("pklMakePackages")
121121
}
122122

123123
tasks.distZip {
124-
archiveFileName.set("${project.name}.zip")
124+
archiveFileName.set("${project.name}.zip")
125125
}
126126

127127
tasks.test {
128-
useJUnitPlatform()
129-
finalizedBy(tasks.jacocoTestReport)
128+
useJUnitPlatform()
129+
finalizedBy(tasks.jacocoTestReport)
130130
}
131131

132132
tasks.jacocoTestReport {
133-
dependsOn(tasks.test)
134-
reports {
135-
xml.required = true
136-
html.required = false
137-
csv.required = false
138-
}
133+
dependsOn(tasks.test)
134+
reports {
135+
xml.required = true
136+
html.required = false
137+
csv.required = false
138+
}
139139
}
140140

141141
tasks.withType<Jar> {
142-
manifest {
143-
attributes["Main-Class"] = "at.ac.uibk.dps.cirrina.main.Main"
144-
attributes["Implementation-Version"] = version
145-
}
142+
manifest {
143+
attributes["Main-Class"] = "at.ac.uibk.dps.cirrina.main.Main"
144+
attributes["Implementation-Version"] = version
145+
}
146146
}

compose.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
version: '3.7'
2+
configs:
3+
telegraf_config:
4+
file: ./telegraf.conf
5+
services:
6+
influxdb:
7+
image: "influxdb:2"
8+
ports:
9+
- "8086:8086"
10+
environment:
11+
- DOCKER_INFLUXDB_INIT_MODE=setup
12+
- DOCKER_INFLUXDB_INIT_USERNAME=admin
13+
- DOCKER_INFLUXDB_INIT_PASSWORD=adminadmin
14+
- DOCKER_INFLUXDB_INIT_ORG=org
15+
- DOCKER_INFLUXDB_INIT_BUCKET=bucket
16+
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=bzO10KmR8x
17+
telegraf:
18+
image: "telegraf:latest"
19+
ports:
20+
- "4317:4317"
21+
configs:
22+
- source: telegraf_config
23+
target: /etc/telegraf/telegraf.conf
24+
nats:
25+
image: "nats:latest"
26+
command:
27+
- "-js"
28+
ports:
29+
- "4222:4222"
30+
- "6222:6222"

src/main/java/at/ac/uibk/dps/cirrina/cirrina/Cirrina.java

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)