You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2021/06/01 17:59:16 UTC
[airavata-data-lake] 33/46: Data orchestrator events
This is an automated email from the ASF dual-hosted git repository.
isjarana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git
commit 6918b882215532db94491060f3f545bcf82543f2
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Mon May 17 23:39:06 2021 -0400
Data orchestrator events
---
airavata-data-lake.ipr | 811 ++++++++++++++++++++-
airavata-data-lake.iws | 154 ++--
.../clients/core/AbstractListener.java | 2 +-
.../logs/airavata.log | 12 +
.../messaging/MessagingEvents.java | 2 +-
.../messaging/consumer/ConsumerCallback.java | 2 +-
.../messaging/consumer/MessageConsumer.java | 10 +-
.../messaging/model/NotificationEvent.java | 4 +
.../model/NotificationEventDeserializer.java | 1 +
.../data-orchestrator-api-server/pom.xml | 17 +-
.../orchestrator/APIServerInitializer.java | 2 +
.../datalake/orchestrator/Configuration.java | 106 +++
.../db/inmemory/DefaultInMemoryStore.java | 76 ++
.../db/persistance/DataOrchestratorEntity.java | 150 ++++
.../DataOrchestratorEventRepository.java | 6 +
.../orchestrator/db/persistance/EntityStatus.java | 8 +
.../handlers/OrchestratorEventHandler.java | 22 +-
.../orchestrator/processor/EventProcessor.java | 20 -
.../processor/InboundEventProcessor.java | 79 ++
.../processor/OutboundEventProcessor.java | 88 +++
.../src/main/resources/application.properties | 11 +
.../src/main/resources/config.yml | 9 +
.../core/adaptors/OutboundAdaptor.java | 5 -
.../orchestrator/core/adaptors/StorageAdaptor.java | 17 +
.../core/processor/MessageProcessor.java | 2 +-
25 files changed, 1534 insertions(+), 82 deletions(-)
diff --git a/airavata-data-lake.ipr b/airavata-data-lake.ipr
index bcd682a..c73e67d 100644
--- a/airavata-data-lake.ipr
+++ b/airavata-data-lake.ipr
@@ -13,19 +13,22 @@
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
- <module name="data-orchestrator-service" />
+ <module name="data-orchestrator-api-server" />
<module name="data-orchestrator-messaging" />
<module name="data-orchestrator-file-event-listener" />
+ <module name="data-orchestrator-service-core" />
<module name="data-orchestrator-clients-core" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="commons" target="11" />
+ <module name="data-orchestrator-api-server" target="11" />
<module name="data-orchestrator-clients" target="11" />
<module name="data-orchestrator-clients-core" target="11" />
<module name="data-orchestrator-file-event-listener" target="11" />
<module name="data-orchestrator-messaging" target="11" />
<module name="data-orchestrator-service" target="11" />
+ <module name="data-orchestrator-service-core" target="11" />
<module name="drms-rest-proxy" target="11" />
</bytecodeTargetLevel>
</component>
@@ -36,6 +39,9 @@
<file url="file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/resources" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java" charset="UTF-8" />
</component>
<component name="ExportToHTMLSettings">
<option name="PRINT_LINE_NUMBERS" value="false" />
@@ -281,6 +287,72 @@
<root url="jar://$MAVEN_REPOSITORY$/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.11.3/jackson-annotations-2.11.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.11.3/jackson-annotations-2.11.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.11.3/jackson-annotations-2.11.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.11.3/jackson-core-2.11.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.11.3/jackson-core-2.11.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.11.3/jackson-core-2.11.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.11.3/jackson-databind-2.11.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.11.3/jackson-databind-2.11.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.11.3/jackson-databind-2.11.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.3/jackson-datatype-jdk8-2.11.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.3/jackson-datatype-jdk8-2.11.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.3/jackson-datatype-jdk8-2.11.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.3/jackson-datatype-jsr310-2.11.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.3/jackson-datatype-jsr310-2.11.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.3/jackson-datatype-jsr310-2.11.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.3/jackson-module-parameter-names-2.11.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.3/jackson-module-parameter-names-2.11.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.3/jackson-module-parameter-names-2.11.3-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: com.google.android:annotations:4.1.1.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/" />
@@ -402,6 +474,83 @@
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: com.google.protobuf:protobuf-java:3.6.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.6.1/protobuf-java-3.6.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.6.1/protobuf-java-3.6.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.6.1/protobuf-java-3.6.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.h2database:h2:1.4.197">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/h2database/h2/1.4.197/h2-1.4.197.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/h2database/h2/1.4.197/h2-1.4.197-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/h2database/h2/1.4.197/h2-1.4.197-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.jayway.jsonpath:json-path:2.4.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: com.zaxxer:HikariCP:3.4.5">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: commons-beanutils:commons-beanutils:1.9.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: commons-collections:commons-collections:3.2.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/" />
@@ -655,6 +804,17 @@
<root url="jar://$MAVEN_REPOSITORY$/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: jakarta.activation:jakarta.activation-api:1.2.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" />
@@ -666,6 +826,94 @@
<root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: mysql:mysql-connector-java:8.0.18">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: net.bytebuddy:byte-buddy-agent:1.10.18">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy-agent/1.10.18/byte-buddy-agent-1.10.18.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy-agent/1.10.18/byte-buddy-agent-1.10.18-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy-agent/1.10.18/byte-buddy-agent-1.10.18-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: net.bytebuddy:byte-buddy:1.10.18">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy/1.10.18/byte-buddy-1.10.18.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy/1.10.18/byte-buddy-1.10.18-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/bytebuddy/byte-buddy/1.10.18/byte-buddy-1.10.18-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: net.minidev:accessors-smart:1.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/net/minidev/accessors-smart/1.2/accessors-smart-1.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/minidev/accessors-smart/1.2/accessors-smart-1.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: net.minidev:json-smart:2.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.3/json-smart-2.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.3/json-smart-2.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.3/json-smart-2.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: net.sf.dozer:dozer:5.5.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/net/sf/dozer/dozer/5.5.1/dozer-5.5.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/net/sf/dozer/dozer/5.5.1/dozer-5.5.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.apache.commons:commons-lang3:3.2.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.apache.kafka:kafka-clients:1.0.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka-clients/1.0.0/kafka-clients-1.0.0.jar!/" />
@@ -688,6 +936,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.12.1/log4j-api-2.12.1-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.apache.logging.log4j:log4j-api:2.13.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.12.1/log4j-to-slf4j-2.12.1.jar!/" />
@@ -699,6 +958,61 @@
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.12.1/log4j-to-slf4j-2.12.1-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.apiguardian:apiguardian-api:1.1.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.assertj:assertj-core:3.18.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/assertj/assertj-core/3.18.1/assertj-core-3.18.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/assertj/assertj-core/3.18.1/assertj-core-3.18.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/assertj/assertj-core/3.18.1/assertj-core-3.18.1-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.checkerframework:checker-compat-qual:2.5.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/" />
@@ -721,6 +1035,94 @@
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.glassfish:jakarta.el:3.0.3">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.hamcrest:hamcrest:2.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest/2.2/hamcrest-2.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest/2.2/hamcrest-2.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.7.0/junit-jupiter-engine-5.7.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.7.0/junit-jupiter-engine-5.7.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.7.0/junit-jupiter-engine-5.7.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.7.0/junit-jupiter-params-5.7.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.7.0/junit-jupiter-params-5.7.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.7.0/junit-jupiter-params-5.7.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.junit.jupiter:junit-jupiter:5.7.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.7.0/junit-jupiter-5.7.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.7.0/junit-jupiter-5.7.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.7.0/junit-jupiter-5.7.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.junit.platform:junit-platform-commons:1.7.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.7.0/junit-platform-commons-1.7.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.7.0/junit-platform-commons-1.7.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.7.0/junit-platform-commons-1.7.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.junit.platform:junit-platform-engine:1.7.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.7.0/junit-platform-engine-1.7.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.7.0/junit-platform-engine-1.7.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.7.0/junit-platform-engine-1.7.0-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.lz4:lz4-java:1.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/lz4/lz4-java/1.4/lz4-java-1.4.jar!/" />
@@ -732,6 +1134,83 @@
<root url="jar://$MAVEN_REPOSITORY$/org/lz4/lz4-java/1.4/lz4-java-1.4-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.mockito:mockito-core:3.6.28">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-core/3.6.28/mockito-core-3.6.28.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-core/3.6.28/mockito-core-3.6.28-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-core/3.6.28/mockito-core-3.6.28-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.mockito:mockito-junit-jupiter:3.6.28">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-junit-jupiter/3.6.28/mockito-junit-jupiter-3.6.28.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-junit-jupiter/3.6.28/mockito-junit-jupiter-3.6.28-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-junit-jupiter/3.6.28/mockito-junit-jupiter-3.6.28-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.objenesis:objenesis:3.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/3.1/objenesis-3.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/3.1/objenesis-3.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/3.1/objenesis-3.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.opentest4j:opentest4j:1.2.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.ow2.asm:asm:5.0.4">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.4/asm-5.0.4.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.4/asm-5.0.4-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.4/asm-5.0.4-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.skyscreamer:jsonassert:1.5.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.slf4j:jcl-over-slf4j:1.7.5">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.slf4j:jul-to-slf4j:1.7.29">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.29/jul-to-slf4j-1.7.29.jar!/" />
@@ -743,6 +1222,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.29/jul-to-slf4j-1.7.29-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.slf4j:jul-to-slf4j:1.7.30">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.slf4j:slf4j-api:1.7.25">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
@@ -754,6 +1244,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.slf4j:slf4j-api:1.7.5">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.2.1.RELEASE/spring-boot-autoconfigure-2.2.1.RELEASE.jar!/" />
@@ -765,6 +1266,50 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.2.1.RELEASE/spring-boot-autoconfigure-2.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.4.1/spring-boot-autoconfigure-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.4.1/spring-boot-autoconfigure-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-autoconfigure/2.4.1/spring-boot-autoconfigure-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter-data-jdbc:2.4.5">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-data-jdbc/2.4.5/spring-boot-starter-data-jdbc-2.4.5.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-data-jdbc/2.4.5/spring-boot-starter-data-jdbc-2.4.5-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-data-jdbc/2.4.5/spring-boot-starter-data-jdbc-2.4.5-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.4.5">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.4.5/spring-boot-starter-jdbc-2.4.5.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.4.5/spring-boot-starter-jdbc-2.4.5-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-jdbc/2.4.5/spring-boot-starter-jdbc-2.4.5-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-json/2.4.1/spring-boot-starter-json-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-json/2.4.1/spring-boot-starter-json-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-json/2.4.1/spring-boot-starter-json-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.2.1.RELEASE/spring-boot-starter-logging-2.2.1.RELEASE.jar!/" />
@@ -776,6 +1321,50 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.2.1.RELEASE/spring-boot-starter-logging-2.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.4.1/spring-boot-starter-logging-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.4.1/spring-boot-starter-logging-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-logging/2.4.1/spring-boot-starter-logging-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter-test:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-test/2.4.1/spring-boot-starter-test-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-test/2.4.1/spring-boot-starter-test-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-test/2.4.1/spring-boot-starter-test-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-tomcat/2.4.1/spring-boot-starter-tomcat-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-tomcat/2.4.1/spring-boot-starter-tomcat-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-tomcat/2.4.1/spring-boot-starter-tomcat-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-web/2.4.1/spring-boot-starter-web-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-web/2.4.1/spring-boot-starter-web-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-web/2.4.1/spring-boot-starter-web-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework.boot:spring-boot-starter:2.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.2.1.RELEASE/spring-boot-starter-2.2.1.RELEASE.jar!/" />
@@ -787,6 +1376,39 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.2.1.RELEASE/spring-boot-starter-2.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework.boot:spring-boot-starter:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.4.1/spring-boot-starter-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.4.1/spring-boot-starter-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter/2.4.1/spring-boot-starter-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test-autoconfigure/2.4.1/spring-boot-test-autoconfigure-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test-autoconfigure/2.4.1/spring-boot-test-autoconfigure-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test-autoconfigure/2.4.1/spring-boot-test-autoconfigure-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.boot:spring-boot-test:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test/2.4.1/spring-boot-test-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test/2.4.1/spring-boot-test-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-test/2.4.1/spring-boot-test-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework.boot:spring-boot:2.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.2.1.RELEASE/spring-boot-2.2.1.RELEASE.jar!/" />
@@ -798,6 +1420,50 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.2.1.RELEASE/spring-boot-2.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework.boot:spring-boot:2.4.1">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.4.1/spring-boot-2.4.1.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.4.1/spring-boot-2.4.1-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/2.4.1/spring-boot-2.4.1-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.data:spring-data-commons:2.4.8">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.4.8/spring-data-commons-2.4.8.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.4.8/spring-data-commons-2.4.8-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.4.8/spring-data-commons-2.4.8-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.data:spring-data-jdbc:2.1.8">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jdbc/2.1.8/spring-data-jdbc-2.1.8.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jdbc/2.1.8/spring-data-jdbc-2.1.8-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-jdbc/2.1.8/spring-data-jdbc-2.1.8-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework.data:spring-data-relational:2.1.8">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-relational/2.1.8/spring-data-relational-2.1.8.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-relational/2.1.8/spring-data-relational-2.1.8-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-relational/2.1.8/spring-data-relational-2.1.8-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework:spring-aop:5.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.2.1.RELEASE/spring-aop-5.2.1.RELEASE.jar!/" />
@@ -809,6 +1475,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.2.1.RELEASE/spring-aop-5.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework:spring-aop:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.3.2/spring-aop-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.3.2/spring-aop-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/5.3.2/spring-aop-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework:spring-beans:5.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.2.1.RELEASE/spring-beans-5.2.1.RELEASE.jar!/" />
@@ -820,6 +1497,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.2.1.RELEASE/spring-beans-5.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework:spring-beans:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.3.2/spring-beans-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.3.2/spring-beans-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.3.2/spring-beans-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework:spring-context:5.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.2.1.RELEASE/spring-context-5.2.1.RELEASE.jar!/" />
@@ -831,6 +1519,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.2.1.RELEASE/spring-context-5.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework:spring-context:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.3.2/spring-context-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.3.2/spring-context-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.3.2/spring-context-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework:spring-core:5.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.2.1.RELEASE/spring-core-5.2.1.RELEASE.jar!/" />
@@ -842,6 +1541,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.2.1.RELEASE/spring-core-5.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework:spring-core:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.3.2/spring-core-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.3.2/spring-core-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.3.2/spring-core-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework:spring-expression:5.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.2.1.RELEASE/spring-expression-5.2.1.RELEASE.jar!/" />
@@ -853,6 +1563,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.2.1.RELEASE/spring-expression-5.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework:spring-expression:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.3.2/spring-expression-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.3.2/spring-expression-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-expression/5.3.2/spring-expression-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.springframework:spring-jcl:5.2.1.RELEASE">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.2.1.RELEASE/spring-jcl-5.2.1.RELEASE.jar!/" />
@@ -864,6 +1585,72 @@
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.2.1.RELEASE/spring-jcl-5.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.springframework:spring-jcl:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.3.2/spring-jcl-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.3.2/spring-jcl-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jcl/5.3.2/spring-jcl-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework:spring-jdbc:5.3.6">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.3.6/spring-jdbc-5.3.6.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.3.6/spring-jdbc-5.3.6-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-jdbc/5.3.6/spring-jdbc-5.3.6-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework:spring-test:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/5.3.2/spring-test-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/5.3.2/spring-test-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-test/5.3.2/spring-test-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework:spring-tx:5.3.6">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.3.6/spring-tx-5.3.6.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.3.6/spring-tx-5.3.6-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-tx/5.3.6/spring-tx-5.3.6-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework:spring-web:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.3.2/spring-web-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.3.2/spring-web-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/5.3.2/spring-web-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
+ <library name="Maven: org.springframework:spring-webmvc:5.3.2">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/5.3.2/spring-webmvc-5.3.2.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/5.3.2/spring-webmvc-5.3.2-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/5.3.2/spring-webmvc-5.3.2-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.xerial.snappy:snappy-java:1.1.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4.jar!/" />
@@ -875,6 +1662,17 @@
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.xmlunit:xmlunit-core:2.7.0">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/xmlunit/xmlunit-core/2.7.0/xmlunit-core-2.7.0-sources.jar!/" />
+ </SOURCES>
+ </library>
<library name="Maven: org.yaml:snakeyaml:1.15">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.15/snakeyaml-1.15.jar!/" />
@@ -886,5 +1684,16 @@
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.15/snakeyaml-1.15-sources.jar!/" />
</SOURCES>
</library>
+ <library name="Maven: org.yaml:snakeyaml:1.27">
+ <CLASSES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/" />
+ </CLASSES>
+ <JAVADOC>
+ <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.27/snakeyaml-1.27-javadoc.jar!/" />
+ </JAVADOC>
+ <SOURCES>
+ <root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.27/snakeyaml-1.27-sources.jar!/" />
+ </SOURCES>
+ </library>
</component>
</project>
\ No newline at end of file
diff --git a/airavata-data-lake.iws b/airavata-data-lake.iws
index adc85d9..55b304b 100644
--- a/airavata-data-lake.iws
+++ b/airavata-data-lake.iws
@@ -5,47 +5,24 @@
</component>
<component name="ChangeListManager">
<list default="true" id="1d1ef003-bfaa-49fa-837e-dc14d1daa977" name="Default Changelist" comment="">
- <change afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/AbstractListener.java" afterDir="false" />
- <change afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/publisher/MessageProducer.java" afterDir="false" />
- <change afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/pom.xml" afterDir="false" />
- <change afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/APIServerInitializer.java" afterDir="false" />
- <change afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/pom.xml" afterDir="false" />
- <change afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/AbstractTask.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/StorageAdaptor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/airavata-data-lake.ipr" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.ipr" afterDir="false" />
<change beforePath="$PROJECT_DIR$/airavata-data-lake.iws" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.iws" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/pom.xml" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/Application.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/controller/HookController.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/controller/TransferController.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/controller/remote/SFTPController.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/db/entity/SFTPCredentialEntity.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/db/entity/SFTPRemoteEntity.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/db/repo/SFTPCredentialRepository.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/db/repo/SFTPRemoteRepository.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/model/TransferEntry.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/model/remote/SFTPCredential.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/src/main/java/org/apache/airavata/datalake/orchestrator/api/model/remote/SFTPRemote.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/pom.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/listener/AbstractListener.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/model/NotificationEvent.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEvent.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/processor/EventProcessor.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/EventPublisher.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/publisher/ClientEventsPublisher.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/publisher/PublisherCallback.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/pom.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/FileClientInitializer.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/FileClientInitializer.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/adaptor/FileAdaptor.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/Listener/FileListener.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/model/FileEvent.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/model/FileEvent.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/watcher/FileWatcher.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/java/org/apache/airavata/dataorchestrator/file/client/watcher/FileWatcher.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/resources/logback.xml" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-core/pom.xml" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/task/AbstractTask.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/pom.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationMessage.java" beforeDir="false" />
- <change beforePath="$PROJECT_DIR$/data-orchestrator/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/pom.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/drms.pb" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/drms.pb" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/metadata-service/data-builders/data-builders.iml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/data-builders/data-builders.iml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/AbstractListener.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/AbstractListener.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/logs/airavata.log" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/logs/airavata.log" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/MessagingEvents.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/MessagingEvents.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/ConsumerCallback.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/ConsumerCallback.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/MessageConsumer.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/MessageConsumer.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEvent.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEvent.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEventDeserializer.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEventDeserializer.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/APIServerInitializer.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/APIServerInitializer.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/Configuration.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/Configuration.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/handlers/OrchestratorEventHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/handlers/OrchestratorEventHandler.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/EventProcessor.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/config.yml" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/config.yml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/OutboundAdaptor.java" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/processor/MessageProcessor.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/processor/MessageProcessor.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -293,12 +270,16 @@
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
+ <property name="Downloaded.Files.Path.Enabled" value="false" />
<property name="GoToClass.includeLibraries" value="false" />
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
<property name="GoToFile.includeJavaFiles" value="false" />
<property name="MemberChooser.copyJavadoc" value="false" />
<property name="MemberChooser.showClasses" value="true" />
<property name="MemberChooser.sorted" value="false" />
+ <property name="Repository.Attach.Annotations" value="false" />
+ <property name="Repository.Attach.JavaDocs" value="false" />
+ <property name="Repository.Attach.Sources" value="false" />
<property name="RequestMappingsPanelOrder0" value="0" />
<property name="RequestMappingsPanelOrder1" value="1" />
<property name="RequestMappingsPanelWidth0" value="75" />
@@ -309,6 +290,9 @@
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/src/main/resources" />
<property name="nodejs_package_manager_path" value="npm" />
+ <property name="project.structure.last.edited" value="Libraries" />
+ <property name="project.structure.proportion" value="0.0" />
+ <property name="project.structure.side.proportion" value="0.32220942" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
@@ -369,15 +353,13 @@
<option name="Make" enabled="true" />
</method>
</configuration>
- <configuration default="true" type="ArquillianTestNG" factoryName="" nameIsGenerated="true">
+ <configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
<option name="arquillianRunConfiguration">
<value>
<option name="containerStateName" value="" />
</value>
</option>
- <option name="TEST_OBJECT" value="CLASS" />
- <properties />
- <listeners />
+ <option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
@@ -504,7 +486,8 @@
<workItem from="1617717367883" duration="16718000" />
<workItem from="1619528905307" duration="115000" />
<workItem from="1620245029118" duration="11436000" />
- <workItem from="1620909178858" duration="61118000" />
+ <workItem from="1620909178858" duration="76752000" />
+ <workItem from="1621278859757" duration="14545000" />
</task>
<servers />
</component>
@@ -845,6 +828,89 @@
<line>89</line>
<option name="timeStamp" value="82" />
</line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>47</line>
+ <option name="timeStamp" value="85" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>48</line>
+ <option name="timeStamp" value="86" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>53</line>
+ <option name="timeStamp" value="87" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>60</line>
+ <option name="timeStamp" value="88" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/inmemory/DefaultInMemoryStore.java</url>
+ <line>28</line>
+ <properties>
+ <option name="lambda-ordinal" value="-1" />
+ </properties>
+ <option name="timeStamp" value="93" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/inmemory/DefaultInMemoryStore.java</url>
+ <line>29</line>
+ <option name="timeStamp" value="94" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>75</line>
+ <option name="timeStamp" value="95" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>72</line>
+ <option name="timeStamp" value="96" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>50</line>
+ <option name="timeStamp" value="97" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>57</line>
+ <option name="timeStamp" value="100" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>59</line>
+ <option name="timeStamp" value="101" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/MessageConsumer.java</url>
+ <line>49</line>
+ <option name="timeStamp" value="102" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>63</line>
+ <option name="timeStamp" value="104" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>66</line>
+ <option name="timeStamp" value="105" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>69</line>
+ <option name="timeStamp" value="106" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java</url>
+ <line>71</line>
+ <option name="timeStamp" value="107" />
+ </line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
diff --git a/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/AbstractListener.java b/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/AbstractListener.java
index fbadc62..ba9932b 100644
--- a/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/AbstractListener.java
+++ b/data-orchestrator/data-orchestrator-clients/data-orchestrator-clients-core/src/main/java/org/apache/airavata/dataorchestrator/clients/core/AbstractListener.java
@@ -36,7 +36,7 @@ public abstract class AbstractListener implements EventListener {
public void onModified(NotificationEvent event) throws Exception {
LOGGER.info(event.getResourceType() + " " +
event.getResourcePath() + ":" + event.getResourceName() + " Created");
- eventPublisher.publish(event, MessagingEvents.MODIFIED);
+ eventPublisher.publish(event, MessagingEvents.MODIFY);
}
diff --git a/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/logs/airavata.log b/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/logs/airavata.log
index f12965b..1f917d2 100644
--- a/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/logs/airavata.log
+++ b/data-orchestrator/data-orchestrator-clients/data-orchestrator-file-event-listener/logs/airavata.log
@@ -525,3 +525,15 @@ java.nio.file.ClosedWatchServiceException: null
2021-05-16 14:04:13,992 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File .WSED.txt.swp Deleted []
2021-05-16 14:07:43,990 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File fvgh Modified []
2021-05-16 14:07:43,993 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File WSED.txt Modified []
+2021-05-17 12:28:59,325 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File fvgh Modified []
+2021-05-17 12:28:59,395 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File WSED.txt.back Created []
+2021-05-17 12:33:19,293 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File fvgh Modified []
+2021-05-17 12:33:19,298 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File XDCFV.txt Created []
+2021-05-17 12:35:29,291 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File fvgh Modified []
+2021-05-17 12:35:29,295 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File WSED.txt.back Deleted []
+2021-05-17 12:35:59,283 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File fvgh Modified []
+2021-05-17 12:35:59,284 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File WSDCFVG.txt Created []
+2021-05-17 13:56:18,984 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File azsx Created []
+2021-05-17 13:56:19,021 [pool-1-thread-1] INFO o.a.a.d.f.c.w.FileWatcher registering: /Users/isururanawaka/Documents/texts/azsx []
+2021-05-17 13:56:28,956 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File azsx Modified []
+2021-05-17 13:56:29,035 [pool-1-thread-1] INFO o.a.a.d.c.c.l.AbstractListener File EDCFV.txt Created []
diff --git a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/MessagingEvents.java b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/MessagingEvents.java
index 5f7d226..3771b72 100644
--- a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/MessagingEvents.java
+++ b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/MessagingEvents.java
@@ -4,6 +4,6 @@ public enum MessagingEvents {
REGISTER,
CREATE,
- MODIFIED,
+ MODIFY,
DELETE
}
diff --git a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/ConsumerCallback.java b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/ConsumerCallback.java
index e2a2a23..3eacc07 100644
--- a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/ConsumerCallback.java
+++ b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/ConsumerCallback.java
@@ -5,6 +5,6 @@ import org.apache.airavata.dataorchestrator.messaging.model.NotificationEvent;
@FunctionalInterface
public interface ConsumerCallback {
- void process(NotificationEvent notificationEvent);
+ void process(NotificationEvent notificationEvent) throws Exception;
}
diff --git a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/MessageConsumer.java b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/MessageConsumer.java
index 3d96f9d..9af5a59 100644
--- a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/MessageConsumer.java
+++ b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/consumer/MessageConsumer.java
@@ -46,9 +46,15 @@ public class MessageConsumer {
for (ConsumerRecord<String, NotificationEvent> record : partitionRecords) {
- callback.process(record.value());
+ try {
+ callback.process(record.value());
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }finally {
+ consumer.commitSync(Collections.singletonMap(partition, new OffsetAndMetadata(record.offset() + 1)));
+ }
+
- consumer.commitSync(Collections.singletonMap(partition, new OffsetAndMetadata(record.offset() + 1)));
}
}
}
diff --git a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEvent.java b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEvent.java
index 7f1955a..483cb5c 100644
--- a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEvent.java
+++ b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEvent.java
@@ -111,5 +111,9 @@ public class NotificationEvent {
}
}
+ public String getResourceId() {
+ return host + ":" + resourcePath + ":" + resourceType;
+ }
+
}
diff --git a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEventDeserializer.java b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEventDeserializer.java
index e4d4f4a..065aebd 100644
--- a/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEventDeserializer.java
+++ b/data-orchestrator/data-orchestrator-messaging/src/main/java/org/apache/airavata/dataorchestrator/messaging/model/NotificationEventDeserializer.java
@@ -29,6 +29,7 @@ public class NotificationEventDeserializer implements Deserializer<NotificationE
event.setResourcePath(parts[6]);
event.setResourceType(parts[7]);
event.setResourceName(parts[8]);
+ event.setContext(context);
return event;
}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/pom.xml b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/pom.xml
index 43bb23c..5ec2657 100644
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/pom.xml
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/pom.xml
@@ -41,8 +41,8 @@
<dependency>
<groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- <version>2.4.1</version>
+ <artifactId>spring-boot-starter-data-jdbc</artifactId>
+ <version>2.4.5</version>
</dependency>
<dependency>
@@ -50,6 +50,19 @@
<artifactId>dozer</artifactId>
<version>5.5.1</version>
</dependency>
+
+
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>8.0.18</version>
+ </dependency>
+<!-- <dependency>-->
+<!-- <groupId>javax.persistence</groupId>-->
+<!-- <artifactId>persistence-api</artifactId>-->
+<!-- <version>1.0.2</version>-->
+<!-- </dependency>-->
+
<dependency>
<groupId>org.apache.airavata.data.lake</groupId>
<artifactId>data-orchestrator-core</artifactId>
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/APIServerInitializer.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/APIServerInitializer.java
index fe48c20..9cfeecc 100644
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/APIServerInitializer.java
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/APIServerInitializer.java
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.yaml.snakeyaml.Yaml;
import java.io.FileInputStream;
@@ -36,6 +37,7 @@ import java.util.Optional;
* TODO: Spring Boot API
*/
@SpringBootApplication
+@EnableJpaAuditing
public class APIServerInitializer implements CommandLineRunner {
private static final Logger LOGGER = LoggerFactory.getLogger(APIServerInitializer.class);
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/Configuration.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/Configuration.java
index 6fbf520..be90614 100644
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/Configuration.java
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/Configuration.java
@@ -6,6 +6,20 @@ public class Configuration {
private Consumer consumer;
+ private String inMemoryStorageAdaptor;
+
+ private FilterConfig messageFilter;
+
+ private OutboundEventProcessorConfig outboundEventProcessor;
+
+ public FilterConfig getMessageFilter() {
+ return messageFilter;
+ }
+
+ public void setMessageFilter(FilterConfig messageFilter) {
+ this.messageFilter = messageFilter;
+ }
+
public Configuration() {
}
@@ -30,6 +44,22 @@ public class Configuration {
this.consumer = consumer;
}
+ public String getInMemoryStorageAdaptor() {
+ return inMemoryStorageAdaptor;
+ }
+
+ public void setInMemoryStorageAdaptor(String inMemoryStorageAdaptor) {
+ this.inMemoryStorageAdaptor = inMemoryStorageAdaptor;
+ }
+
+ public OutboundEventProcessorConfig getOutboundEventProcessor() {
+ return outboundEventProcessor;
+ }
+
+ public void setOutboundEventProcessor(OutboundEventProcessorConfig outboundEventProcessor) {
+ this.outboundEventProcessor = outboundEventProcessor;
+ }
+
public static class Consumer {
private String brokerURL;
@@ -80,5 +110,81 @@ public class Configuration {
}
}
+ public static class FilterConfig {
+
+ private String resourceType;
+ private String eventType;
+ private String resourceNameExclusions;
+
+ public FilterConfig() {
+
+ }
+
+ public String getResourceType() {
+ return resourceType;
+ }
+
+ public void setResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ }
+
+ public String getEventType() {
+ return eventType;
+ }
+
+ public void setEventType(String eventType) {
+ this.eventType = eventType;
+ }
+
+ public String getResourceNameExclusions() {
+ return resourceNameExclusions;
+ }
+
+ public void setResourceNameExclusions(String resourceNameExclusions) {
+ this.resourceNameExclusions = resourceNameExclusions;
+ }
+ }
+
+
+ public static class OutboundEventProcessorConfig {
+
+ private long pollingDelay;
+ private long pollingInterval;
+ private int numOfEventsPerPoll;
+
+
+ public OutboundEventProcessorConfig() {
+ }
+
+ public OutboundEventProcessorConfig(long pollingDelay, long pollingInterval) {
+ this.pollingDelay = pollingDelay;
+ this.pollingInterval = pollingInterval;
+ }
+
+ public long getPollingDelay() {
+ return pollingDelay;
+ }
+
+ public void setPollingDelay(long pollingDelay) {
+ this.pollingDelay = pollingDelay;
+ }
+
+ public long getPollingInterval() {
+ return pollingInterval;
+ }
+
+ public void setPollingInterval(long pollingInterval) {
+ this.pollingInterval = pollingInterval;
+ }
+
+ public int getNumOfEventsPerPoll() {
+ return numOfEventsPerPoll;
+ }
+
+ public void setNumOfEventsPerPoll(int numOfEventsPerPoll) {
+ this.numOfEventsPerPoll = numOfEventsPerPoll;
+ }
+ }
+
}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/inmemory/DefaultInMemoryStore.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/inmemory/DefaultInMemoryStore.java
new file mode 100644
index 0000000..cbae03b
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/inmemory/DefaultInMemoryStore.java
@@ -0,0 +1,76 @@
+package org.apache.airavata.datalake.orchestrator.db.inmemory;
+
+import org.apache.airavata.datalake.orchestrator.core.adaptors.StorageAdaptor;
+import org.apache.airavata.dataorchestrator.messaging.model.NotificationEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.Stack;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Default in memory store that stores all transient events
+ */
+public class DefaultInMemoryStore implements StorageAdaptor<NotificationEvent> {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(DefaultInMemoryStore.class);
+
+ private static final ConcurrentHashMap<String, Stack<NotificationEvent>> inmemoryStore = new ConcurrentHashMap();
+ private static final ConcurrentLinkedQueue<String> resourceIdQueue = new ConcurrentLinkedQueue<>();
+
+
+ @Override
+ public void save(NotificationEvent object) {
+ inmemoryStore.computeIfAbsent(object.getResourceId(), k -> new Stack<NotificationEvent>()).push(object);
+ resourceIdQueue.add(object.getResourceId());
+ }
+
+ @Override
+ public void delete(String id) {
+ inmemoryStore.computeIfPresent(id, (k, v) -> {
+ v.remove(id);
+ return v;
+ });
+ resourceIdQueue.remove(id);
+ }
+
+ @Override
+ public NotificationEvent get(String id) {
+ return inmemoryStore.get(id).get(0);
+ }
+
+ @Override
+ public NotificationEvent update(NotificationEvent object) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Update events are not supported in default inmemory store");
+ }
+
+ @Override
+ public List<NotificationEvent> poll(int numOfEvents) {
+ LOGGER.info("Polling events " + numOfEvents);
+ List<NotificationEvent> notificationEventList = new ArrayList<>();
+ AtomicInteger count = new AtomicInteger(1);
+ int iterations = 0;
+ while (count.get() <= numOfEvents) {
+ String value = resourceIdQueue.poll();
+ List<NotificationEvent> finalNotificationEventList = notificationEventList;
+ Optional.ofNullable(value).ifPresent(val-> {
+ Stack events = inmemoryStore.remove(val);
+ count.set(count.get() + events.size());
+ finalNotificationEventList.addAll(events);
+ });
+ iterations++;
+ if (iterations > 100) {
+ break;
+ }
+ }
+ LOGGER.info("Notification event list size " + notificationEventList.size());
+ return notificationEventList;
+ }
+
+
+}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/DataOrchestratorEntity.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/DataOrchestratorEntity.java
new file mode 100644
index 0000000..a53e81e
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/DataOrchestratorEntity.java
@@ -0,0 +1,150 @@
+package org.apache.airavata.datalake.orchestrator.db.persistance;
+
+import org.springframework.data.annotation.CreatedDate;
+import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+import javax.persistence.*;
+import java.util.Date;
+
+/**
+ * DataOrchestrator entity
+ */
+@Entity
+@Table(name = "DATAORCHESTRATOR_ENTITY")
+@EntityListeners(AuditingEntityListener.class)
+public class DataOrchestratorEntity {
+
+ @Id
+ private String id;
+
+ @Column(nullable = false)
+ private String resourceId;
+
+ @Column(nullable = false)
+ private String host;
+ private int port;
+ private String protocol;
+ @Column(nullable = false)
+ private String resourcePath;
+
+ @Column(nullable = false)
+ private String resourceName;
+
+ @Column(nullable = false)
+ private String resourceType;
+
+ @Column(nullable = false)
+ private Date occurredTime;
+
+
+ @Column(nullable = false)
+ @Temporal(TemporalType.TIMESTAMP)
+ @CreatedDate
+ private Date createdAt;
+
+
+ @Column(nullable = false)
+ @Temporal(TemporalType.TIMESTAMP)
+ @LastModifiedDate
+ private Date lastModifiedAt;
+
+ @Column(nullable = false)
+ private String status;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public String getProtocol() {
+ return protocol;
+ }
+
+ public void setProtocol(String protocol) {
+ this.protocol = protocol;
+ }
+
+ public String getResourcePath() {
+ return resourcePath;
+ }
+
+ public void setResourcePath(String resourcePath) {
+ this.resourcePath = resourcePath;
+ }
+
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ public void setResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ }
+
+ public String getResourceType() {
+ return resourceType;
+ }
+
+ public void setResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ }
+
+ public Date getOccurredTime() {
+ return occurredTime;
+ }
+
+ public void setOccurredTime(Date occurredTime) {
+ this.occurredTime = occurredTime;
+ }
+
+ public Date getCreatedAt() {
+ return createdAt;
+ }
+
+ public void setCreatedAt(Date createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public Date getLastModifiedAt() {
+ return lastModifiedAt;
+ }
+
+ public void setLastModifiedAt(Date lastModifiedAt) {
+ this.lastModifiedAt = lastModifiedAt;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/DataOrchestratorEventRepository.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/DataOrchestratorEventRepository.java
new file mode 100644
index 0000000..e956fcf
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/DataOrchestratorEventRepository.java
@@ -0,0 +1,6 @@
+package org.apache.airavata.datalake.orchestrator.db.persistance;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface DataOrchestratorEventRepository extends JpaRepository<DataOrchestratorEntity, String> {
+}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/EntityStatus.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/EntityStatus.java
new file mode 100644
index 0000000..a102469
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/db/persistance/EntityStatus.java
@@ -0,0 +1,8 @@
+package org.apache.airavata.datalake.orchestrator.db.persistance;
+
+public enum EntityStatus {
+ RECEIVED,
+ PUBLISHED,
+ CALLBACK_RECEIVED,
+ COMPLETED
+}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/handlers/OrchestratorEventHandler.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/handlers/OrchestratorEventHandler.java
index 7eb58f0..ff8328b 100644
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/handlers/OrchestratorEventHandler.java
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/handlers/OrchestratorEventHandler.java
@@ -2,14 +2,19 @@ package org.apache.airavata.datalake.orchestrator.handlers;
import org.apache.airavata.datalake.orchestrator.Configuration;
import org.apache.airavata.datalake.orchestrator.core.processor.MessageProcessor;
-import org.apache.airavata.datalake.orchestrator.processor.EventProcessor;
+import org.apache.airavata.datalake.orchestrator.db.persistance.DataOrchestratorEventRepository;
+import org.apache.airavata.datalake.orchestrator.processor.InboundEventProcessor;
+import org.apache.airavata.datalake.orchestrator.processor.OutboundEventProcessor;
import org.apache.airavata.dataorchestrator.messaging.consumer.MessageConsumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
/**
* Orchestrator event handler
@@ -23,6 +28,10 @@ public class OrchestratorEventHandler {
private ExecutorService executorService;
private MessageProcessor messageProcessor;
private MessageConsumer messageConsumer;
+ private ScheduledExecutorService scheduledExecutorService;
+
+ @Autowired
+ private DataOrchestratorEventRepository dataOrchestratorEventRepository;
public OrchestratorEventHandler() {
@@ -31,21 +40,26 @@ public class OrchestratorEventHandler {
public void init(Configuration configuration) {
this.configuration = configuration;
this.executorService = Executors.newFixedThreadPool(configuration.getEventProcessorWorkers());
- this.messageProcessor = new EventProcessor();
- this.messageProcessor.init();
messageConsumer = new MessageConsumer(configuration.getConsumer().getBrokerURL(),
configuration.getConsumer().getConsumerGroup(),
configuration.getConsumer().getMaxPollRecordsConfig(),
configuration.getConsumer().getTopic());
+ this.scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
}
- public void startProcessing() {
+ public void startProcessing() throws Exception {
messageConsumer.consume((notificationEvent -> {
LOGGER.info("Message received " + notificationEvent.getResourceName());
LOGGER.info("Submitting {} to process in thread pool", notificationEvent.getId());
+ this.executorService.submit(new InboundEventProcessor(configuration, notificationEvent));
}));
+ this.scheduledExecutorService
+ .scheduleAtFixedRate(new OutboundEventProcessor(configuration, dataOrchestratorEventRepository),
+ configuration.getOutboundEventProcessor().getPollingDelay(),
+ configuration.getOutboundEventProcessor().getPollingInterval(),
+ TimeUnit.MILLISECONDS);
}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/EventProcessor.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/EventProcessor.java
deleted file mode 100644
index 43c62bf..0000000
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/EventProcessor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.airavata.datalake.orchestrator.processor;
-
-import org.apache.airavata.datalake.orchestrator.core.processor.MessageProcessor;
-import org.apache.airavata.dataorchestrator.messaging.consumer.MessageConsumer;
-
-public class EventProcessor implements MessageProcessor {
-
- private MessageConsumer messageConsumer;
-
- @Override
- public void init() {
-
- }
-
- @Override
- public void run() {
-
-
- }
-}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java
new file mode 100644
index 0000000..7faac56
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/InboundEventProcessor.java
@@ -0,0 +1,79 @@
+package org.apache.airavata.datalake.orchestrator.processor;
+
+import org.apache.airavata.datalake.orchestrator.Configuration;
+import org.apache.airavata.datalake.orchestrator.core.adaptors.StorageAdaptor;
+import org.apache.airavata.datalake.orchestrator.core.processor.MessageProcessor;
+import org.apache.airavata.dataorchestrator.messaging.model.NotificationEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * This class is responsible for pick events from kafka queue and publish them into inmemory store
+ */
+public class InboundEventProcessor implements MessageProcessor {
+ private static final Logger LOGGER = LoggerFactory.getLogger(InboundEventProcessor.class);
+ private StorageAdaptor store;
+
+ private Configuration configuration;
+ private NotificationEvent notificationEvent;
+
+ public InboundEventProcessor(Configuration configuration, NotificationEvent notificationEvent) throws Exception {
+ this.configuration = configuration;
+ this.notificationEvent = notificationEvent;
+ this.init();
+ }
+
+ @Override
+ public void init() throws Exception {
+ try {
+ Class<StorageAdaptor> storeClass = (Class<StorageAdaptor>) Class.
+ forName(this.configuration.getInMemoryStorageAdaptor());
+ store = storeClass.getDeclaredConstructor().newInstance();
+ } catch (ClassNotFoundException | NoSuchMethodException |
+ IllegalAccessException | InvocationTargetException | InstantiationException exception) {
+ LOGGER.error(" Error occurred while initiating Inbound event processor ", exception);
+ throw exception;
+ }
+
+ }
+
+ @Override
+ public void run() {
+ LOGGER.info("Inbound event processor received event "+notificationEvent.getResourceId());
+ String typeStr = this.configuration.getMessageFilter().getResourceType();
+ String[] allowedTypes = typeStr.split(",");
+ boolean proceed = false;
+ long size = Arrays.stream(allowedTypes).filter(type ->
+ type.equals(notificationEvent.getResourceType())).count();
+ if (size == 0) {
+ return;
+ }
+ String eventTypeStr = this.configuration.getMessageFilter().getEventType();
+ String[] eventTypes = eventTypeStr.split(",");
+ long eventSize = Arrays.stream(eventTypes).filter(type ->
+ type.trim().equals(notificationEvent.getContext().getEvent().name())).count();
+ if (eventSize == 0) {
+ return;
+ }
+
+ String pattern = this.configuration.getMessageFilter().getResourceNameExclusions();
+
+ // Create a Pattern object
+ Pattern r = Pattern.compile(pattern);
+
+ // Now create matcher object.
+ Matcher m = r.matcher(notificationEvent.getResourceName());
+
+ if (m.find()) {
+ return;
+ }
+
+ store.save(notificationEvent);
+
+ }
+}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/OutboundEventProcessor.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/OutboundEventProcessor.java
new file mode 100644
index 0000000..e840516
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/java/org/apache/airavata/datalake/orchestrator/processor/OutboundEventProcessor.java
@@ -0,0 +1,88 @@
+package org.apache.airavata.datalake.orchestrator.processor;
+
+import org.apache.airavata.datalake.orchestrator.Configuration;
+import org.apache.airavata.datalake.orchestrator.core.adaptors.StorageAdaptor;
+import org.apache.airavata.datalake.orchestrator.core.processor.MessageProcessor;
+import org.apache.airavata.datalake.orchestrator.db.persistance.DataOrchestratorEntity;
+import org.apache.airavata.datalake.orchestrator.db.persistance.DataOrchestratorEventRepository;
+import org.apache.airavata.datalake.orchestrator.db.persistance.EntityStatus;
+import org.apache.airavata.dataorchestrator.messaging.model.NotificationEvent;
+import org.dozer.DozerBeanMapper;
+import org.dozer.loader.api.BeanMappingBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.*;
+
+/**
+ * This class is responsible for pick events from inmemory store and publish events to registry and
+ * Workflow engine
+ */
+public class OutboundEventProcessor implements MessageProcessor {
+ private static final Logger LOGGER = LoggerFactory.getLogger(OutboundEventProcessor.class);
+
+ private Configuration configuration;
+ private StorageAdaptor store;
+
+ private DozerBeanMapper dozerBeanMapper;
+ private DataOrchestratorEventRepository repository;
+
+ public OutboundEventProcessor(Configuration configuration, DataOrchestratorEventRepository repository) throws Exception {
+ this.configuration = configuration;
+ this.repository = repository;
+ this.init();
+ }
+
+ @Override
+ public void init() throws Exception {
+ try {
+ Class<StorageAdaptor> storeClass = (Class<StorageAdaptor>) Class.
+ forName(this.configuration.getInMemoryStorageAdaptor());
+ store = storeClass.getDeclaredConstructor().newInstance();
+ dozerBeanMapper = new DozerBeanMapper();
+ BeanMappingBuilder orchestratorEventMapper = new BeanMappingBuilder() {
+ @Override
+ protected void configure() {
+ mapping(NotificationEvent.class, DataOrchestratorEntity.class);
+ }
+ };
+ dozerBeanMapper.addMapping(orchestratorEventMapper);
+ } catch (ClassNotFoundException | NoSuchMethodException |
+ IllegalAccessException | InvocationTargetException | InstantiationException exception) {
+ LOGGER.error(" Error occurred while initiating Inbound event processor ", exception);
+ throw exception;
+ }
+
+ }
+
+ @Override
+ public void run() {
+ try {
+ List<NotificationEvent> notificationEventList =
+ store.poll(configuration.getOutboundEventProcessor().getNumOfEventsPerPoll());
+
+ List<NotificationEvent> notificationEvents = getLatestEventOfGivenPath(notificationEventList);
+
+ notificationEvents.forEach(event -> {
+ DataOrchestratorEntity entity = dozerBeanMapper.map(event, DataOrchestratorEntity.class);
+ entity.setOccurredTime(new Date(event.getContext().getOccuredTime()));
+ entity.setStatus(EntityStatus.RECEIVED.name());
+ repository.save(entity);
+ });
+
+
+ } catch (Exception exception) {
+ LOGGER.error("Error occurred at outbound event processor ", exception);
+ }
+ }
+
+
+ private List<NotificationEvent> getLatestEventOfGivenPath(List<NotificationEvent> events) {
+ Map<String, NotificationEvent> eventMap = new HashMap<>();
+ events.forEach(event -> {
+ eventMap.put(event.getResourceId(), event);
+ });
+ return new ArrayList<NotificationEvent>(eventMap.values());
+ }
+}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/application.properties b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/application.properties
new file mode 100644
index 0000000..33c8d9e
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/application.properties
@@ -0,0 +1,11 @@
+spring.datasource.url = jdbc:mysql://localhost:3306/data_orchestrator?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true
+spring.datasource.username = root
+
+
+## Hibernate Properties
+# The SQL dialect makes Hibernate generate better SQL for the chosen database
+spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
+spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
+# Hibernate ddl auto (create, create-drop, validate, update)
+spring.jpa.hibernate.ddl-auto = update
+spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/config.yml b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/config.yml
index 7815149..8e88af1 100644
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/config.yml
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/src/main/resources/config.yml
@@ -1,4 +1,13 @@
eventProcessorWorkers: 10
+inMemoryStorageAdaptor: "org.apache.airavata.datalake.orchestrator.db.inmemory.DefaultInMemoryStore"
+messageFilter:
+ resourceType: "FILE"
+ eventType: "CREATE,MODIFY "
+ resourceNameExclusions: "swp$"
+outboundEventProcessor:
+ pollingDelay: 10000
+ pollingInterval: 10000
+ numOfEventsPerPoll: 10
consumer:
brokerURL: "localhost:9092"
consumerGroup: "DataOrchestratorGroup"
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/OutboundAdaptor.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/OutboundAdaptor.java
deleted file mode 100644
index 644558a..0000000
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/OutboundAdaptor.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.airavata.datalake.orchestrator.core.adaptors;
-
-public interface OutboundAdaptor {
-
-}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/StorageAdaptor.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/StorageAdaptor.java
new file mode 100644
index 0000000..aab4c32
--- /dev/null
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/adaptors/StorageAdaptor.java
@@ -0,0 +1,17 @@
+package org.apache.airavata.datalake.orchestrator.core.adaptors;
+
+import java.util.List;
+
+public interface StorageAdaptor<T> {
+
+ void save(T object) throws UnsupportedOperationException;
+
+ void delete(String id) throws UnsupportedOperationException;
+
+ T get(String id) throws UnsupportedOperationException;
+
+ T update(T object) throws UnsupportedOperationException;
+
+ List<T> poll(int numOfEvents) throws UnsupportedOperationException;
+
+}
diff --git a/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/processor/MessageProcessor.java b/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/processor/MessageProcessor.java
index 393f432..0192d2b 100644
--- a/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/processor/MessageProcessor.java
+++ b/data-orchestrator/data-orchestrator-service/data-orchestrator-service-core/src/main/java/org/apache/airavata/datalake/orchestrator/core/processor/MessageProcessor.java
@@ -2,7 +2,7 @@ package org.apache.airavata.datalake.orchestrator.core.processor;
public interface MessageProcessor extends Runnable{
- void init();
+ void init() throws Exception;
}