diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f9ac712bd1c2fb00225cd84aa1f5a5eda9fb0ded..94c0923a37b8674c2ca6cefaef579b9223be225e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -92,12 +92,15 @@ spotbugs: script: - DOCKER_TAG_NAME=$(echo $CI_COMMIT_REF_SLUG- | sed 's/^master-$//') - docker build --pull -t $IMAGE_NAME ./$JAVA_PROJECT_NAME - - docker tag $IMAGE_NAME $DOCKERHUB_ORG/$IMAGE_NAME:${DOCKER_TAG_NAME}latest - - docker tag $IMAGE_NAME $DOCKERHUB_ORG/$IMAGE_NAME:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA + - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $DOCKERHUB_ORG/$IMAGE_NAME:${DOCKER_TAG_NAME}latest" + - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $DOCKERHUB_ORG/$IMAGE_NAME:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" + - "[ $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $DOCKERHUB_ORG/$IMAGE_NAME:CI_COMMIT_TAG" - echo $DOCKERHUB_PW | docker login -u $DOCKERHUB_ID --password-stdin - docker push $DOCKERHUB_ORG/$IMAGE_NAME - docker logout rules: + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: # - $JAVA_PROJECT_NAME/**/* # hope this can be simplified soon, see #51 - application-kafkastreams-commons/**/* @@ -113,6 +116,8 @@ deploy-uc1-kstreams-app: IMAGE_NAME: "theodolite-uc1-kstreams-app" JAVA_PROJECT_NAME: "uc1-application" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc1-application/**/* - application-kafkastreams-commons/**/* @@ -128,6 +133,8 @@ deploy-uc2-kstreams-app: IMAGE_NAME: "theodolite-uc2-kstreams-app" JAVA_PROJECT_NAME: "uc2-application" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc2-application/**/* - application-kafkastreams-commons/**/* @@ -143,6 +150,8 @@ deploy-uc3-kstreams-app: IMAGE_NAME: "theodolite-uc3-kstreams-app" JAVA_PROJECT_NAME: "uc3-application" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc3-application/**/* - application-kafkastreams-commons/**/* @@ -158,6 +167,8 @@ deploy-uc4-kstreams-app: IMAGE_NAME: "theodolite-uc4-kstreams-app" JAVA_PROJECT_NAME: "uc4-application" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc4-application/**/* - application-kafkastreams-commons/**/* @@ -173,6 +184,8 @@ deploy-uc1-workload-generator: IMAGE_NAME: "theodolite-uc1-workload-generator" JAVA_PROJECT_NAME: "uc1-workload-generator" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc1-workload-generator/**/* - application-kafkastreams-commons/**/* @@ -188,6 +201,8 @@ deploy-uc2-workload-generator: IMAGE_NAME: "theodolite-uc2-workload-generator" JAVA_PROJECT_NAME: "uc2-workload-generator" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc2-workload-generator/**/* - application-kafkastreams-commons/**/* @@ -203,6 +218,8 @@ deploy-uc3-workload-generator: IMAGE_NAME: "theodolite-uc3-workload-generator" JAVA_PROJECT_NAME: "uc3-workload-generator" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc3-workload-generator/**/* - application-kafkastreams-commons/**/* @@ -218,6 +235,8 @@ deploy-uc4-workload-generator: IMAGE_NAME: "theodolite-uc4-workload-generator" JAVA_PROJECT_NAME: "uc4-workload-generator" rules: # hope this can be simplified soon, see #51 + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - uc4-workload-generator/**/* - application-kafkastreams-commons/**/* diff --git a/execution/uc1-application/aggregation-deployment.yaml b/execution/uc1-application/aggregation-deployment.yaml index 519004df32e7853d47b00d44a63652a93363b14c..bcb0a955de0d5ce64fe6bdcba1e537468c833e5b 100644 --- a/execution/uc1-application/aggregation-deployment.yaml +++ b/execution/uc1-application/aggregation-deployment.yaml @@ -15,7 +15,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: uc1-application - image: "soerenhenning/uc1-app:latest" + image: "theodolite/theodolite-uc1-kstreams-app:latest" ports: - containerPort: 5555 name: jmx diff --git a/execution/uc1-workload-generator/deployment.yaml b/execution/uc1-workload-generator/deployment.yaml index 0a8b947bd3e901c379dd2ff18f8825c5cedae2eb..ab377d2f5769462d24ff7cd889d330464821c967 100644 --- a/execution/uc1-workload-generator/deployment.yaml +++ b/execution/uc1-workload-generator/deployment.yaml @@ -16,7 +16,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: workload-generator - image: soerenhenning/uc1-wg:latest + image: theodolite/theodolite-uc1-workload-generator:latest env: - name: ZK_HOST value: "my-confluent-cp-zookeeper" diff --git a/execution/uc2-application/aggregation-deployment.yaml b/execution/uc2-application/aggregation-deployment.yaml index 4804cc7604537b47ea5084b15665c96cf6284ccb..199966a31d0ccac1f5bb8e3b1c0e17e1cae1f8c9 100644 --- a/execution/uc2-application/aggregation-deployment.yaml +++ b/execution/uc2-application/aggregation-deployment.yaml @@ -15,7 +15,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: uc2-application - image: "benediktwetzel/uc2-app:latest" + image: "theodolite/theodolite-uc2-kstreams-app:latest" ports: - containerPort: 5555 name: jmx diff --git a/execution/uc2-workload-generator/deployment.yaml b/execution/uc2-workload-generator/deployment.yaml index 8c3b86e0d9497652885a580ce066c13078388c7a..05ac3607c64014547be119f8005c652c5ff9ca8d 100644 --- a/execution/uc2-workload-generator/deployment.yaml +++ b/execution/uc2-workload-generator/deployment.yaml @@ -15,7 +15,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: workload-generator - image: benediktwetzel/uc2-wg:latest + image: theodolite/theodolite-uc2-workload-generator:latest env: - name: ZK_HOST value: "my-confluent-cp-zookeeper" diff --git a/execution/uc3-application/aggregation-deployment.yaml b/execution/uc3-application/aggregation-deployment.yaml index f6f789381d98362c5287dea85e03a6b4f9856bb6..a535b5b6443e89564d4bb0cbe17593c60dc289dc 100644 --- a/execution/uc3-application/aggregation-deployment.yaml +++ b/execution/uc3-application/aggregation-deployment.yaml @@ -15,7 +15,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: uc3-application - image: "soerenhenning/uc3-app:latest" + image: "theodolite/theodolite-uc3-kstreams-app:latest" ports: - containerPort: 5555 name: jmx diff --git a/execution/uc3-workload-generator/deployment.yaml b/execution/uc3-workload-generator/deployment.yaml index 615a437886be7b0153bc6cb950ac3daa3ddce3fa..76eccb4d1d05ec33fc214e000b105b344ae76a80 100644 --- a/execution/uc3-workload-generator/deployment.yaml +++ b/execution/uc3-workload-generator/deployment.yaml @@ -16,7 +16,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: workload-generator - image: soerenhenning/uc3-wg:latest + image: theodolite/theodolite-uc3-workload-generator:latest env: - name: ZK_HOST value: "my-confluent-cp-zookeeper" diff --git a/execution/uc4-application/aggregation-deployment.yaml b/execution/uc4-application/aggregation-deployment.yaml index 390c17230d0b092534e9c600772e3af04611fb02..5f71737046e12b7f0116d59c4b55f0c0de39bbd2 100644 --- a/execution/uc4-application/aggregation-deployment.yaml +++ b/execution/uc4-application/aggregation-deployment.yaml @@ -15,7 +15,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: uc4-application - image: "soerenhenning/uc4-app:latest" + image: "theodolite/theodolite-uc4-kstreams-app:latest" ports: - containerPort: 5555 name: jmx diff --git a/execution/uc4-workload-generator/deployment.yaml b/execution/uc4-workload-generator/deployment.yaml index c6a84f56f3733cb4e8c1e0aa46255c391b290dd0..e3e223fd32a12ae0bd04a1068a0f58af39469de1 100644 --- a/execution/uc4-workload-generator/deployment.yaml +++ b/execution/uc4-workload-generator/deployment.yaml @@ -15,7 +15,7 @@ spec: terminationGracePeriodSeconds: 0 containers: - name: workload-generator - image: soerenhenning/uc4-wg:latest + image: theodolite/theodolite-uc4-workload-generator:latest env: - name: ZK_HOST value: "my-confluent-cp-zookeeper" diff --git a/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointRecordParents.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointRecordParents.java index fc8c077b0414dc2b4079639bb34c5d966e4de0d3..cba05f1ed8e585d5c31aaa92207e0d2854436736 100644 --- a/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointRecordParents.java +++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/JointRecordParents.java @@ -1,5 +1,6 @@ package theodolite.uc2.streamprocessing; +import java.util.Objects; import java.util.Set; import titan.ccp.model.records.ActivePowerRecord; @@ -26,6 +27,27 @@ public class JointRecordParents { return this.record; } + @Override + public String toString() { + return "{" + this.parents + ", " + this.record + "}"; + } + + @Override + public int hashCode() { + return Objects.hash(this.parents, this.record); + } + @Override + public boolean equals(final Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof JointRecordParents) { + final JointRecordParents other = (JointRecordParents) obj; + return Objects.equals(this.parents, other.parents) + && Objects.equals(this.record, other.record); + } + return false; + } } diff --git a/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKey.java b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKey.java index d65c93034a0fc9a801cf5be0c2f7f50e38d9178e..a4fb5b33966882b94d46c96282bdaaed92d67ebd 100644 --- a/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKey.java +++ b/uc2-application/src/main/java/theodolite/uc2/streamprocessing/SensorParentKey.java @@ -1,5 +1,7 @@ package theodolite.uc2.streamprocessing; +import java.util.Objects; + /** * A key consisting of the identifier of a sensor and an identifier of parent sensor. */ @@ -27,4 +29,22 @@ public class SensorParentKey { return "{" + this.sensorIdentifier + ", " + this.parentIdentifier + "}"; } + @Override + public int hashCode() { + return Objects.hash(this.sensorIdentifier, this.parentIdentifier); + } + + @Override + public boolean equals(final Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof SensorParentKey) { + final SensorParentKey other = (SensorParentKey) obj; + return Objects.equals(this.sensorIdentifier, other.sensorIdentifier) + && Objects.equals(this.parentIdentifier, other.parentIdentifier); + } + return false; + } + }