2021-03-16 14:25:15 +01:00
plugins {
2023-11-27 17:19:53 +01:00
id 'org.springframework.boot' version '2.7.18'
2024-10-14 23:57:12 +02:00
id 'io.spring.dependency-management' version '1.1.6'
2021-03-16 14:25:15 +01:00
id 'java'
}
2024-10-30 19:21:15 +01:00
ext {
app_group = 'eu.openaire.urls_controller'
hadoopVersion = '3.4.1'
}
2023-07-05 16:10:30 +02:00
java {
2024-10-30 19:21:15 +01:00
group = "${app_group}"
2024-10-30 19:31:01 +01:00
version = '2.8.3'
2023-07-13 17:32:45 +02:00
sourceCompatibility = JavaVersion . VERSION_1_8
2023-07-05 16:10:30 +02:00
}
2021-03-16 14:25:15 +01:00
2024-10-30 19:21:15 +01:00
// Disable default jar generation and create a Fat-Jar only.
tasks . jar . enabled = false
bootJar {
mainClass = "${app_group}.UrlsControllerApplication"
}
2021-03-16 14:25:15 +01:00
repositories {
mavenCentral ( )
2021-11-09 22:59:27 +01:00
maven {
2024-03-20 14:08:01 +01:00
name "madgik"
2024-03-15 11:22:13 +01:00
url "https://repo.madgik.di.uoa.gr/content/repositories/thirdparty/"
2021-11-09 22:59:27 +01:00
}
2021-03-16 14:25:15 +01:00
}
dependencies {
2024-10-30 19:21:15 +01:00
//developmentOnly "org.springframework.boot:spring-boot-devtools"
2021-03-16 14:25:15 +01:00
2021-11-04 10:57:19 +01:00
implementation "org.springframework.boot:spring-boot-starter-web"
implementation ( "org.springframework.boot:spring-boot-starter-security" )
implementation ( "org.springframework.boot:spring-boot-starter-jdbc" )
implementation ( "org.springframework.boot:spring-boot-configuration-processor" )
2023-03-21 15:46:33 +01:00
implementation ( "org.springframework.boot:spring-boot-starter-actuator" )
implementation ( "org.springframework.boot:spring-boot-starter-aop" )
2021-11-04 10:57:19 +01:00
implementation ( "org.springframework.security:spring-security-core" )
implementation ( "org.springframework.security:spring-security-web" )
implementation ( "org.springframework.security:spring-security-config" )
2021-09-09 14:56:37 +02:00
2022-06-27 20:41:32 +02:00
//implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' // Use this in case we use auth-tokens later on.
2021-03-16 14:25:15 +01:00
2021-11-04 10:57:19 +01:00
// Enable the validation annotations.
2022-06-27 20:41:32 +02:00
//implementation group: 'jakarta.validation', name: 'jakarta.validation-api', version: '3.0.2'
2021-11-04 10:57:19 +01:00
2021-05-18 16:23:20 +02:00
// https://mvnrepository.com/artifact/com.google.guava/guava
2024-10-14 23:57:12 +02:00
implementation group: 'com.google.guava' , name: 'guava' , version: '33.3.1-jre'
2021-03-16 14:25:15 +01:00
2021-12-23 23:25:50 +01:00
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
2024-10-14 23:57:12 +02:00
implementation group: 'org.apache.commons' , name: 'commons-lang3' , version: '3.17.0'
2021-12-23 23:25:50 +01:00
2023-01-10 12:34:54 +01:00
// https://mvnrepository.com/artifact/org.apache.commons/commons-compress
2024-10-14 23:57:12 +02:00
implementation ( "org.apache.commons:commons-compress:1.27.1" ) {
2023-07-27 16:42:57 +02:00
exclude group: 'com.github.luben' , module: 'zstd-jni'
}
2024-10-30 19:21:15 +01:00
implementation 'com.github.luben:zstd-jni:1.5.6-7' // Even though this is part of the above dependency, the Apache commons rarely updates it, while the zstd team makes improvements very often.
2023-01-10 12:34:54 +01:00
2024-10-30 19:21:15 +01:00
implementation 'io.minio:minio:8.5.13'
2021-11-30 17:23:27 +01:00
2021-11-09 22:59:27 +01:00
// https://mvnrepository.com/artifact/com.cloudera.impala/jdbc
2022-01-30 21:14:52 +01:00
implementation ( "com.cloudera.impala:jdbc:2.5.31" ) {
2022-11-10 16:18:21 +01:00
exclude group: 'org.apache.hive' , module: 'hive-exec'
exclude group: 'com.twitter' , module: 'parquet-hadoop-bundle'
exclude group: 'org.apache.parquet' , module: 'parquet-avro'
exclude group: 'org.apache.avro' , module: 'avro'
2022-01-30 21:14:52 +01:00
exclude group: 'org.slf4j' , module: 'slf4j-log4j12'
exclude group: 'org.apache.derby' , module: 'derby'
exclude group: 'org.eclipse.jetty.aggregate' , module: 'jetty-all'
2022-11-10 16:18:21 +01:00
exclude group: 'ch.qos.log4j' , module: 'log4j'
exclude group: 'ch.qos.log4j' , module: 'apache-log4j-extras'
// Vulnerable dependencies:
2022-01-30 21:14:52 +01:00
exclude group: 'log4j' , module: 'log4j'
2022-11-10 16:18:21 +01:00
exclude group: 'org.apache.ant' , module: 'ant'
exclude group: 'org.apache.thrift' , module: 'libthrift' // This is an older version (we add the updated one later).
exclude group: 'org.apache.hive' , module: 'hive-metastore'
// Avoid excluding 'org.apache.hive:hive-service', as this is needed and unfortunately, even adding a newer version separately, it introducing other vulnerable dependencies.
2022-01-30 21:14:52 +01:00
}
2021-03-16 14:25:15 +01:00
2022-11-10 16:18:21 +01:00
// https://mvnrepository.com/artifact/org.apache.parquet/parquet-avro
2024-10-22 20:25:36 +02:00
implementation ( 'org.apache.parquet:parquet-avro:1.14.3' )
2022-11-10 16:18:21 +01:00
// https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common
2024-03-28 05:09:28 +01:00
implementation ( "org.apache.hadoop:hadoop-common:$hadoopVersion" ) {
2022-11-10 16:18:21 +01:00
exclude group: 'org.apache.parquet' , module: 'parquet-avro'
exclude group: 'org.apache.avro' , module: 'avro'
exclude group: 'org.slf4j' , module: 'slf4j-api'
exclude group: 'org.slf4j' , module: 'slf4j-reload4j'
exclude group: 'ch.qos.reload4j' , module: 'reload4j'
// Vulnerable dependencies:
exclude group: 'com.google.protobuf' , module: 'protobuf-java'
exclude group: 'org.codehaus.jackson' , module: 'jackson-core-asl'
exclude group: 'org.codehaus.jackson' , module: 'jackson-mapper-asl'
2022-11-30 15:28:39 +01:00
exclude group: 'com.fasterxml.woodstox' , module: 'woodstox-core'
2023-03-27 18:43:15 +02:00
//exclude group: 'commons-collections', module: 'commons-collections' // This dependency is required in order for the program to run without errors. It is discontinued.
2022-11-10 16:18:21 +01:00
}
// https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core
2024-03-28 05:09:28 +01:00
implementation ( "org.apache.hadoop:hadoop-mapreduce-client-core:$hadoopVersion" ) {
2022-11-10 16:18:21 +01:00
exclude group: 'org.apache.parquet' , module: 'parquet-avro'
exclude group: 'org.apache.avro' , module: 'avro'
exclude group: 'org.slf4j' , module: 'slf4j-api'
exclude group: 'org.slf4j' , module: 'slf4j-reload4j'
exclude group: 'ch.qos.reload4j' , module: 'reload4j'
// Vulnerable dependencies:
exclude group: 'com.google.protobuf' , module: 'protobuf-java'
exclude group: 'io.netty' , module: 'netty'
2024-10-22 20:25:36 +02:00
exclude group: 'io.netty' , module: 'netty-all'
exclude group: 'com.jayway.jsonpath' , module: 'json-path'
2022-11-10 16:18:21 +01:00
}
2022-11-30 15:28:39 +01:00
// Add back some updated version of the needed dependencies.
2023-03-07 15:55:41 +01:00
implementation 'org.apache.thrift:libthrift:0.17.0' // Newer versions (>=0.18.X) are not compatible with JAVA 8.
2024-10-30 19:21:15 +01:00
implementation 'com.fasterxml.woodstox:woodstox-core:7.1.0'
2022-11-30 15:28:39 +01:00
2023-05-11 02:07:55 +02:00
// https://mvnrepository.com/artifact/com.google.code.gson/gson
2024-05-27 09:40:05 +02:00
implementation 'com.google.code.gson:gson:2.11.0'
2023-05-11 02:07:55 +02:00
2023-03-21 15:46:33 +01:00
// https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus
2024-10-22 20:25:36 +02:00
runtimeOnly 'io.micrometer:micrometer-registry-prometheus:1.13.6'
2023-03-21 15:46:33 +01:00
2022-12-07 12:48:00 +01:00
testImplementation 'org.springframework.security:spring-security-test'
2021-11-09 22:59:27 +01:00
testImplementation "org.springframework.boot:spring-boot-starter-test"
}
2022-11-10 16:18:21 +01:00
configurations . implementation {
exclude group: 'com.twitter' , module: 'parquet-hadoop-bundle'
}
2021-12-06 19:27:39 +01:00
// Set increased lower and upper limits for the java-execution.
2022-12-15 13:04:22 +01:00
tasks . withType ( JavaExec ) . configureEach {
2021-12-06 19:27:39 +01:00
jvmArgs = [ '-Xms512m' , '-Xmx8g' ]
}
2021-03-16 17:07:30 +01:00
test {
useJUnitPlatform ( )
2022-01-27 23:41:29 +01:00
}