diff --git a/src-java/base-topology/base-messaging-mappers/build.gradle b/src-java/base-topology/base-messaging-mappers/build.gradle
new file mode 100644
index 00000000000..961b69ee720
--- /dev/null
+++ b/src-java/base-topology/base-messaging-mappers/build.gradle
@@ -0,0 +1,18 @@
+description = 'Base Topology Messaging Mappers'
+dependencies {
+ implementation project(':base-messaging')
+
+ implementation 'com.google.guava:guava'
+ implementation 'com.fasterxml.jackson.core:jackson-annotations'
+ testImplementation 'org.junit.jupiter:junit-jupiter-api'
+ testImplementation 'org.junit.vintage:junit-vintage-engine'
+
+ implementation 'org.mapstruct:mapstruct'
+ implementation 'org.mapstruct:mapstruct-processor'
+ annotationProcessor 'org.mapstruct:mapstruct-processor'
+ testAnnotationProcessor 'org.mapstruct:mapstruct-processor'
+
+ compileOnly 'org.projectlombok:lombok'
+ annotationProcessor 'org.projectlombok:lombok'
+ annotationProcessor 'org.projectlombok:lombok-mapstruct-binding'
+}
diff --git a/src-java/base-topology/base-messaging-mappers/src/checkstyle/checkstyle-suppressions.xml b/src-java/base-topology/base-messaging-mappers/src/checkstyle/checkstyle-suppressions.xml
new file mode 100644
index 00000000000..722b573f214
--- /dev/null
+++ b/src-java/base-topology/base-messaging-mappers/src/checkstyle/checkstyle-suppressions.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/DetectConnectedDevicesMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/DetectConnectedDevicesMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/DetectConnectedDevicesMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/DetectConnectedDevicesMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/FeatureTogglesMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/FeatureTogglesMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/FeatureTogglesMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/FeatureTogglesMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/FlowMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/FlowMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/FlowMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/FlowMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/FlowPathMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/FlowPathMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/FlowPathMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/FlowPathMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/IslMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/IslMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/IslMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/IslMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/KildaConfigurationMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/KildaConfigurationMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/KildaConfigurationMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/KildaConfigurationMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/PortMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/PortMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/PortMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/PortMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/SwitchMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/SwitchMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/SwitchMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/SwitchMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/SwitchPropertiesMapper.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/SwitchPropertiesMapper.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/mappers/SwitchPropertiesMapper.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/mappers/SwitchPropertiesMapper.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/model/Endpoint.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/model/Endpoint.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/model/Endpoint.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/model/Endpoint.java
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/model/IslReference.java b/src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/model/IslReference.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/share/model/IslReference.java
rename to src-java/base-topology/base-messaging-mappers/src/main/java/org/openkilda/wfm/share/model/IslReference.java
diff --git a/src-java/base-topology/base-storm-topology/src/test/java/org/openkilda/wfm/share/mappers/FlowMapperTest.java b/src-java/base-topology/base-messaging-mappers/src/test/java/org/openkilda/wfm/share/mappers/FlowMapperTest.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/test/java/org/openkilda/wfm/share/mappers/FlowMapperTest.java
rename to src-java/base-topology/base-messaging-mappers/src/test/java/org/openkilda/wfm/share/mappers/FlowMapperTest.java
diff --git a/src-java/base-topology/base-storm-topology/src/test/java/org/openkilda/wfm/share/mappers/IslMapperTest.java b/src-java/base-topology/base-messaging-mappers/src/test/java/org/openkilda/wfm/share/mappers/IslMapperTest.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/test/java/org/openkilda/wfm/share/mappers/IslMapperTest.java
rename to src-java/base-topology/base-messaging-mappers/src/test/java/org/openkilda/wfm/share/mappers/IslMapperTest.java
diff --git a/src-java/base-topology/base-storm-topology/src/test/java/org/openkilda/wfm/share/mappers/PortMapperTest.java b/src-java/base-topology/base-messaging-mappers/src/test/java/org/openkilda/wfm/share/mappers/PortMapperTest.java
similarity index 100%
rename from src-java/base-topology/base-storm-topology/src/test/java/org/openkilda/wfm/share/mappers/PortMapperTest.java
rename to src-java/base-topology/base-messaging-mappers/src/test/java/org/openkilda/wfm/share/mappers/PortMapperTest.java
diff --git a/src-java/base-topology/base-messaging/build.gradle b/src-java/base-topology/base-messaging/build.gradle
index 0488bb67a9b..17f485f10e3 100644
--- a/src-java/base-topology/base-messaging/build.gradle
+++ b/src-java/base-topology/base-messaging/build.gradle
@@ -4,8 +4,8 @@ plugins {
description = 'Base Topology Messaging'
dependencies {
- api project(':kilda-model')
implementation project(':blue-green')
+ api project(':kilda-model')
implementation 'com.fasterxml.jackson.core:jackson-core'
implementation 'com.fasterxml.jackson.core:jackson-annotations'
diff --git a/src-java/base-topology/base-storm-topology/build.gradle b/src-java/base-topology/base-storm-topology/build.gradle
index c0e9905d94d..b30d1b5897c 100644
--- a/src-java/base-topology/base-storm-topology/build.gradle
+++ b/src-java/base-topology/base-storm-topology/build.gradle
@@ -22,15 +22,13 @@ compileJava.ajc.options.compilerArgs += '-verbose'
description = 'Base Storm Topology'
dependencies {
+ api project(':blue-green')
api project(':base-messaging')
+ api project(':base-messaging-mappers')
api project(':kilda-configuration')
api project(':kilda-persistence-api')
aspect project(':kilda-persistence-api')
- api project(':blue-green')
- implementation project(':kilda-pce')
implementation project(':kilda-reporting')
- implementation project(':floodlight-api')
- implementation project(':grpc-api')
testImplementation project(path: ':kilda-persistence-api', configuration: 'testArtifacts')
testImplementation project(path: ':kilda-persistence-tinkerpop', configuration: 'testArtifacts')
testImplementation project(':kilda-utils:stubs')
diff --git a/src-java/base-topology/base-storm-topology/src/checkstyle/checkstyle-suppressions.xml b/src-java/base-topology/base-storm-topology/src/checkstyle/checkstyle-suppressions.xml
index 33c0345692b..8a84ada9b97 100644
--- a/src-java/base-topology/base-storm-topology/src/checkstyle/checkstyle-suppressions.xml
+++ b/src-java/base-topology/base-storm-topology/src/checkstyle/checkstyle-suppressions.xml
@@ -6,21 +6,10 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/CtrlBoltRef.java b/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/CtrlBoltRef.java
deleted file mode 100644
index f93c25572fd..00000000000
--- a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/CtrlBoltRef.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright 2018 Telstra Open Source
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openkilda.wfm;
-
-import org.openkilda.wfm.ctrl.ICtrlBolt;
-
-import org.apache.storm.topology.BoltDeclarer;
-
-public class CtrlBoltRef {
- private final String boltId;
- private final ICtrlBolt bolt;
- private final BoltDeclarer declarer;
-
- public CtrlBoltRef(String boltId, ICtrlBolt bolt, BoltDeclarer declarer) {
- this.boltId = boltId;
- this.bolt = bolt;
- this.declarer = declarer;
- }
-
- public String getBoltId() {
- return boltId;
- }
-
- public ICtrlBolt getBolt() {
- return bolt;
- }
-
- public BoltDeclarer getDeclarer() {
- return declarer;
- }
-}
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/WatchDog.java b/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/WatchDog.java
deleted file mode 100644
index 6442a0b623a..00000000000
--- a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/WatchDog.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2018 Telstra Open Source
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openkilda.wfm;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class WatchDog {
- private static final Logger logger = LoggerFactory.getLogger(WatchDog.class);
-
- private final long safePeriod;
- private long lastReset;
- private boolean available = true;
-
- public WatchDog(float safePeriod) {
- this((long) (safePeriod * 1000));
- }
-
- public WatchDog(long safePeriod) {
- this.lastReset = System.currentTimeMillis();
- this.safePeriod = safePeriod;
- }
-
- public void reset() {
- lastReset = System.currentTimeMillis();
- logger.debug("Being kicked");
- }
-
- public boolean isTimeout() {
- return ! this.isAvailable();
- }
-
- public boolean isAvailable() {
- long current = System.currentTimeMillis();
- if (current < lastReset) {
- lastReset = current;
- }
-
- boolean become = (current - lastReset) < safePeriod;
- if (available != become) {
- logger.info(String.format("Become %savailable", become ? "" : "un"));
- }
- available = become;
-
- return available;
- }
-}
diff --git a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/ctrl/RouteAction.java b/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/ctrl/RouteAction.java
deleted file mode 100644
index 9485fad83e1..00000000000
--- a/src-java/base-topology/base-storm-topology/src/main/java/org/openkilda/wfm/ctrl/RouteAction.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2018 Telstra Open Source
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openkilda.wfm.ctrl;
-
-import org.openkilda.messaging.Message;
-import org.openkilda.messaging.ctrl.CtrlRequest;
-import org.openkilda.wfm.AbstractAction;
-import org.openkilda.wfm.IKildaBolt;
-import org.openkilda.wfm.error.MessageFormatException;
-import org.openkilda.wfm.protocol.KafkaMessage;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.google.common.base.Strings;
-import org.apache.storm.tuple.Tuple;
-
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Path;
-import java.nio.file.PathMatcher;
-import java.util.List;
-import java.util.Map;
-
-public class RouteAction extends AbstractAction {
- private String topologyName;
- private Map endpoints;
-
- public RouteAction(
- IKildaBolt bolt, Tuple tuple,
- String topologyName, Map endpoint) {
- super(bolt, tuple);
-
- this.topologyName = topologyName;
- this.endpoints = endpoint;
- }
-
- @Override
- protected void handle() throws MessageFormatException, JsonProcessingException {
- KafkaMessage input = new KafkaMessage(getTuple());
- Message payload = input.getPayload();
-
- if (! (payload instanceof CtrlRequest)) {
- log.debug(String.format(
- "Skip foreign message (correlation-id: %s timestamp: %s)",
- payload.getCorrelationId(), payload.getTimestamp()));
- return;
- }
-
- handleMessage((CtrlRequest) payload);
- }
-
- private void handleMessage(CtrlRequest payload) throws JsonProcessingException {
- RouteMessage message = new RouteMessage(
- payload.getData(), payload.getCorrelationId(), topologyName);
- List