diff --git a/Dockerfile b/Dockerfile
index c0759be893..c36a65ea82 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -13,6 +13,7 @@
#
FROM eclipse-temurin:21-jdk-alpine AS builder
+RUN apk update && apk upgrade --no-cache
# build jcmd tools to make them available at runtime
RUN ${JAVA_HOME}/bin/jlink --module-path jmods --add-modules jdk.jcmd --output /jcmd
WORKDIR /build
@@ -22,6 +23,7 @@ COPY ./ ./
RUN if [[ ! -d thirdeye-distribution/target/thirdeye-distribution-*-dist/thirdeye-distribution-* ]]; then ./mvnw package -U -DskipTests; fi
FROM eclipse-temurin:21-jre-alpine
+RUN apk update && apk upgrade --no-cache
RUN addgroup -g 1000 thirdeye && \
adduser -u 1000 thirdeye -G thirdeye -D
diff --git a/config/server.yaml b/config/server.yaml
index a3e64968a1..bfbf8c6ee8 100644
--- a/config/server.yaml
+++ b/config/server.yaml
@@ -77,7 +77,7 @@ database:
url: jdbc:mysql://127.0.0.1:3306/thirdeye_test?autoReconnect=true&allowPublicKeyRetrieval=true&sslMode=DISABLED
user: uthirdeye
password: pass
- driver: com.mysql.cj.jdbc.Driver
+ driver: org.mariadb.jdbc.Driver
swagger:
# Enable/Disable the swagger resource. Helps in API documentation. Should be true by default
diff --git a/kubernetes/helm/startree-thirdeye/templates/coordinator/configmap.yaml b/kubernetes/helm/startree-thirdeye/templates/coordinator/configmap.yaml
index 4ffc8aab1f..6e933e6144 100644
--- a/kubernetes/helm/startree-thirdeye/templates/coordinator/configmap.yaml
+++ b/kubernetes/helm/startree-thirdeye/templates/coordinator/configmap.yaml
@@ -67,7 +67,7 @@ data:
url: jdbc:mysql://{{- if .Values.mysql.enabled -}}{{- include "thirdeye.mysql.fullname" . -}}{{- else -}}{{- .Values.mysql.url -}}:{{- .Values.mysql.port -}}{{- end -}}/{{- .Values.mysql.mysqlDatabase -}}?autoReconnect=true&{{ .Values.config.jdbcParameters }}
user: {{ .Values.mysql.mysqlUser }}
password: {{ .Values.mysql.mysqlPassword }}
- driver: com.mysql.cj.jdbc.Driver
+ driver: org.mariadb.jdbc.Driver
swagger:
# Enable/Disable the swagger resource. Helps in API documentation. Should be true by default
diff --git a/kubernetes/helm/startree-thirdeye/templates/scheduler/scheduler-config.yaml b/kubernetes/helm/startree-thirdeye/templates/scheduler/scheduler-config.yaml
index 80678378aa..575f436673 100644
--- a/kubernetes/helm/startree-thirdeye/templates/scheduler/scheduler-config.yaml
+++ b/kubernetes/helm/startree-thirdeye/templates/scheduler/scheduler-config.yaml
@@ -91,7 +91,7 @@ data:
url: jdbc:mysql://{{- if .Values.mysql.enabled -}}{{- include "thirdeye.mysql.fullname" . -}}{{- else -}}{{- .Values.mysql.url -}}:{{- .Values.mysql.port -}}{{- end -}}/{{- .Values.mysql.mysqlDatabase -}}?autoReconnect=true&{{ .Values.config.jdbcParameters }}
user: {{ .Values.mysql.mysqlUser }}
password: {{ .Values.mysql.mysqlPassword }}
- driver: com.mysql.cj.jdbc.Driver
+ driver: org.mariadb.jdbc.Driver
swagger:
# Enable/Disable the swagger resource. Helps in API documentation. Should be true by default
diff --git a/kubernetes/helm/startree-thirdeye/templates/ui/deployment.yaml b/kubernetes/helm/startree-thirdeye/templates/ui/deployment.yaml
index 0952fb06af..6cdb59ab4c 100644
--- a/kubernetes/helm/startree-thirdeye/templates/ui/deployment.yaml
+++ b/kubernetes/helm/startree-thirdeye/templates/ui/deployment.yaml
@@ -54,7 +54,7 @@ spec:
{{ toYaml .Values.ui.tolerations | indent 8 }}
initContainers:
- name: init-config
- image: alpine:3.18
+ image: alpine:3.21
imagePullPolicy: {{ .Values.image.imagePullPolicy }}
env:
- name: NGINX_ENVSUBST_TEMPLATE_DIR
diff --git a/kubernetes/helm/startree-thirdeye/templates/worker/worker-config.yaml b/kubernetes/helm/startree-thirdeye/templates/worker/worker-config.yaml
index 723f33273c..af1bc47cb2 100644
--- a/kubernetes/helm/startree-thirdeye/templates/worker/worker-config.yaml
+++ b/kubernetes/helm/startree-thirdeye/templates/worker/worker-config.yaml
@@ -91,7 +91,7 @@ data:
url: jdbc:mysql://{{- if .Values.mysql.enabled -}}{{- include "thirdeye.mysql.fullname" . -}}{{- else -}}{{- .Values.mysql.url -}}:{{- .Values.mysql.port -}}{{- end -}}/{{- .Values.mysql.mysqlDatabase -}}?autoReconnect=true&{{ .Values.config.jdbcParameters }}
user: {{ .Values.mysql.mysqlUser }}
password: {{ .Values.mysql.mysqlPassword }}
- driver: com.mysql.cj.jdbc.Driver
+ driver: org.mariadb.jdbc.Driver
swagger:
# Enable/Disable the swagger resource. Helps in API documentation. Should be true by default
diff --git a/pinot-test-container/src/main/java/org/apache/pinot/testcontainer/PinotContainer.java b/pinot-test-container/src/main/java/org/apache/pinot/testcontainer/PinotContainer.java
index 501bbf50d9..1bd55c06cf 100644
--- a/pinot-test-container/src/main/java/org/apache/pinot/testcontainer/PinotContainer.java
+++ b/pinot-test-container/src/main/java/org/apache/pinot/testcontainer/PinotContainer.java
@@ -42,7 +42,8 @@ public enum PinotVersion {
v0_12_1("0.12.1", "0.12.1"),
v1_0_0("1.0.0", "1.0.0"),
v1_1_0("1.1.0", "1.1.0"),
- v1_2_0("1.2.0", "1.2.0");
+ v1_2_0("1.2.0", "1.2.0"),
+ v1_4_0("1.4.0", "1.4.0");
private final String amdTag;
private final String armTag;
@@ -61,7 +62,7 @@ public String getTag() {
// if the test does not run for every supported Pinot version, use this version
public static PinotVersion recommendedVersion() {
- return v1_2_0;
+ return v1_4_0;
}
}
diff --git a/pom.xml b/pom.xml
index 42159f090a..6007ae0b97 100644
--- a/pom.xml
+++ b/pom.xml
@@ -70,16 +70,14 @@
6.0.0
2.7.1
- 2.18.1
+ 2.18.6
2.12.7
3.3.0
5.12.0
3.1.1
-
-
- 8.0.28
+ 3.5.8
1.5.5.Final
- 1.2.0
+ 1.4.0
0.11.0
2.3.2
0.10.2
@@ -603,6 +601,11 @@
httpclient
4.5.14
+
+ org.apache.httpcomponents
+ httpmime
+ 4.5.14
+
com.sendgrid
sendgrid-java
@@ -640,7 +643,7 @@
io.dropwizard
dropwizard-bom
- 4.0.11
+ 4.0.17
pom
import
@@ -656,6 +659,12 @@
${testcontainers.version}
test
+
+ org.testcontainers
+ mariadb
+ ${testcontainers.version}
+ test
+
org.aspectj
aspectjrt
@@ -812,9 +821,9 @@
- mysql
- mysql-connector-java
- ${mysql.connector.version}
+ org.mariadb.jdbc
+ mariadb-java-client
+ ${mariadb.jdbc.version}
com.google.inject
diff --git a/thirdeye-integration-tests/src/test/resources/auth/server.yaml b/thirdeye-integration-tests/src/test/resources/auth/server.yaml
index c486c20c77..2f4ca4bc0a 100644
--- a/thirdeye-integration-tests/src/test/resources/auth/server.yaml
+++ b/thirdeye-integration-tests/src/test/resources/auth/server.yaml
@@ -56,7 +56,7 @@ database:
url: jdbc:mysql://localhost/thirdeye_test?autoReconnect=true&allowPublicKeyRetrieval=true&sslMode=DISABLED
user: uthirdeye
password: pass
- driver: com.mysql.cj.jdbc.Driver
+ driver: org.mariadb.jdbc.Driver
swagger:
# Enable/Disable the swagger resource. Helps in API documentation. Should be true by default
diff --git a/thirdeye-persistence/pom.xml b/thirdeye-persistence/pom.xml
index cb72c5fbfa..e138bcaf49 100644
--- a/thirdeye-persistence/pom.xml
+++ b/thirdeye-persistence/pom.xml
@@ -38,8 +38,8 @@
dropwizard-db
- mysql
- mysql-connector-java
+ org.mariadb.jdbc
+ mariadb-java-client
org.apache.commons
@@ -109,7 +109,7 @@
org.testcontainers
- mysql
+ mariadb
test
diff --git a/thirdeye-persistence/src/test/java/ai/startree/thirdeye/datalayer/MySqlTestDatabase.java b/thirdeye-persistence/src/test/java/ai/startree/thirdeye/datalayer/MySqlTestDatabase.java
index f49d4953a8..d949399846 100644
--- a/thirdeye-persistence/src/test/java/ai/startree/thirdeye/datalayer/MySqlTestDatabase.java
+++ b/thirdeye-persistence/src/test/java/ai/startree/thirdeye/datalayer/MySqlTestDatabase.java
@@ -27,21 +27,21 @@
import org.apache.tomcat.jdbc.pool.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.containers.MariaDBContainer;
public class MySqlTestDatabase {
private static final Logger log = LoggerFactory.getLogger(MySqlTestDatabase.class);
private static final String SYS_PROP_LOCAL_MYSQL_INSTANCE = "thirdeye.test.useLocalMysqlInstance";
private static final AtomicInteger counter = new AtomicInteger(0);
- private static final String MYSQL_DOCKER_IMAGE = "mysql:8.0";
+ private static final String MARIADB_DOCKER_IMAGE = "mariadb:11.4";
private static final String USERNAME = "root";
private static final String PASSWORD = "test";
private static String jdbcUrl = null;
private static String defaultDatabaseName = null;
- private static MySQLContainer> persistenceDbContainer = null;
+ private static MariaDBContainer> persistenceDbContainer = null;
private static DatabaseConfiguration sharedConfiguration = null;
public static DatabaseConfiguration sharedDatabaseConfiguration() {
@@ -106,7 +106,7 @@ public static void cleanSharedDatabase() {
public static synchronized DatabaseConfiguration newDatabaseConfiguration() {
if (persistenceDbContainer == null) {
// init docker container
- persistenceDbContainer = new MySQLContainer<>(MYSQL_DOCKER_IMAGE).withPassword(PASSWORD);
+ persistenceDbContainer = new MariaDBContainer<>(MARIADB_DOCKER_IMAGE).withPassword(PASSWORD);
persistenceDbContainer.start();
jdbcUrl = persistenceDbContainer.getJdbcUrl();
final String[] elements = jdbcUrl.split("/");
@@ -130,7 +130,7 @@ public static synchronized DatabaseConfiguration newDatabaseConfiguration() {
+ "?autoReconnect=true&allowPublicKeyRetrieval=true&sslMode=DISABLED")
.setUser(USERNAME)
.setPassword(PASSWORD)
- .setDriver(persistenceDbContainer.getDriverClassName());
+ .setDriver("org.mariadb.jdbc.Driver");
}
private static DatabaseConfiguration localMysqlDatabaseConfiguration() {
@@ -143,7 +143,7 @@ private static DatabaseConfiguration localMysqlDatabaseConfiguration() {
+ "?autoReconnect=true&allowPublicKeyRetrieval=true&sslMode=DISABLED")
.setUser("test_user")
.setPassword("pass")
- .setDriver("com.mysql.cj.jdbc.Driver");
+ .setDriver("org.mariadb.jdbc.Driver");
}
public static DataSource newDataSource(final DatabaseConfiguration dbConfig) throws Exception {
diff --git a/thirdeye-plugins/thirdeye-pinot/pom.xml b/thirdeye-plugins/thirdeye-pinot/pom.xml
index 4990678a7b..8ee28b4b3d 100644
--- a/thirdeye-plugins/thirdeye-pinot/pom.xml
+++ b/thirdeye-plugins/thirdeye-pinot/pom.xml
@@ -221,6 +221,10 @@
org.apache.httpcomponents
httpclient
+
+ org.apache.httpcomponents
+ httpmime
+
diff --git a/thirdeye-server/src/main/java/ai/startree/thirdeye/logging/UriFilterFactory.java b/thirdeye-server/src/main/java/ai/startree/thirdeye/logging/UriFilterFactory.java
index ffec2fa5ee..9e8f621358 100644
--- a/thirdeye-server/src/main/java/ai/startree/thirdeye/logging/UriFilterFactory.java
+++ b/thirdeye-server/src/main/java/ai/startree/thirdeye/logging/UriFilterFactory.java
@@ -13,7 +13,7 @@
*/
package ai.startree.thirdeye.logging;
-import ch.qos.logback.access.spi.IAccessEvent;
+import ch.qos.logback.access.common.spi.IAccessEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -23,8 +23,6 @@
import java.util.Collections;
import java.util.Set;
-// TODO: shounak. Remove this class and META-INF/services/io.dropwizard.logging.filter.FilterFactory file once dropwizard is upgraded to v2.1.x
-
@JsonTypeName("uri")
public class UriFilterFactory implements FilterFactory {
@NotNull
diff --git a/thirdeye-server/src/main/resources/META-INF/services/io.dropwizard.logging.filter.FilterFactory b/thirdeye-server/src/main/resources/META-INF/services/io.dropwizard.logging.common.filter.FilterFactory
similarity index 100%
rename from thirdeye-server/src/main/resources/META-INF/services/io.dropwizard.logging.filter.FilterFactory
rename to thirdeye-server/src/main/resources/META-INF/services/io.dropwizard.logging.common.filter.FilterFactory
diff --git a/thirdeye-spi/src/main/java/ai/startree/thirdeye/spi/PluginClassLoader.java b/thirdeye-spi/src/main/java/ai/startree/thirdeye/spi/PluginClassLoader.java
index 36fdea8db8..ba52095820 100644
--- a/thirdeye-spi/src/main/java/ai/startree/thirdeye/spi/PluginClassLoader.java
+++ b/thirdeye-spi/src/main/java/ai/startree/thirdeye/spi/PluginClassLoader.java
@@ -36,7 +36,7 @@ public class PluginClassLoader extends URLClassLoader {
.add("io.micrometer")
.add("org.joda.time")
.add("org.slf4j")
- .add("com.mysql")
+ .add("org.mariadb.jdbc")
.add("jakarta.activation")
.add("com.fasterxml.jackson")
.build();