8000 Merge prepare release 1.12.0 by banterCZ · Pull Request #373 · wultra/java-core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Merge prepare release 1.12.0 8000 #373

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 45 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
36193b5
Fix #327: Set develop version to 1.12.0-SNAPSHOT
banterCZ Oct 2, 2024
f7f839b
Merge pull request #330 from wultra/issues/327-version-1.12.0-SNAPSHOT
banterCZ Oct 2, 2024
036e10e
Bump org. 8000 apache.maven.plugins:maven-surefire-plugin from 3.5.0 to 3.5.1
dependabot[bot] Oct 7, 2024
7d10c40
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.0 to 3.10.1
dependabot[bot] Oct 7, 2024
3e8eacd
Merge pull request #332 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Oct 8, 2024
b811023
Merge pull request #331 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Oct 8, 2024
4c65d03
Bump spring-boot.version from 3.3.4 to 3.3.5
dependabot[bot] Oct 28, 2024
c743df7
Merge pull request #333 from wultra/dependabot/maven/spring-boot.vers…
dependabot[bot] Oct 31, 2024
e0a308e
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.1 to 3.5.2
dependabot[bot] Nov 4, 2024
437be71
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.10.1 to 3.11.1
dependabot[bot] Nov 4, 2024
05dc16a
Merge pull request #335 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Nov 5, 2024
37ccbd8
Merge pull request #334 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Nov 5, 2024
fa8fc0f
Bump spring-boot.version from 3.3.5 to 3.4.0
dependabot[bot] Nov 25, 2024
b08c660
Merge pull request #336 from wultra/dependabot/maven/spring-boot.vers…
dependabot[bot] Nov 25, 2024
d9b1247
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.1 to 3.11.2
dependabot[bot] Dec 9, 2024
31d2cce
Merge pull request #337 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Dec 10, 2024
4c39319
Bump spring-boot.version from 3.4.0 to 3.4.1
dependabot[bot] Dec 23, 2024
37437f6
Fix #339: REST client should allow key store and trust store in memor…
romanstrobl Dec 31, 2024
7d3dffd
Merge pull request #338 from wultra/dependabot/maven/spring-boot.vers…
dependabot[bot] Jan 2, 2025
5826c45
Merge pull request #340 from wultra/issues/339-configure-keystore-tru…
romanstrobl Jan 2, 2025
d5ef2a1
Fix #341: Null pointer exception when setting certificates
romanstrobl Jan 10, 2025
6a08d47
Merge pull request #342 from wultra/issues/341-npe-certificate-conten…
romanstrobl Jan 10, 2025
97ebee0
Fix #344: Change package to com.wultra
romanstrobl Jan 20, 2025
ccdd97a
Merge pull request #345 from wultra/issues/344-change-package-com-wultra
romanstrobl Jan 21, 2025
d8e52f6
Bump spring-boot.version from 3.4.1 to 3.4.2
dependabot[bot] Jan 27, 2025
fa814b2
Merge pull request #346 from wultra/dependabot/maven/spring-boot.vers…
dependabot[bot] Jan 28, 2025
4a36b72
Bump spring-boot.version from 3.4.2 to 3.4.3
dependabot[bot] Feb 24, 2025
6da0426
Bump org.apache.maven.plugins:maven-compiler-plugin
dependabot[bot] Feb 24, 2025
3317b83
Merge pull request #348 from wultra/dependabot/maven/spring-boot.vers…
dependabot[bot] Feb 24, 2025
e333146
Merge pull request #349 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Feb 24, 2025
415f932
Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.3 to 3.1.4
dependabot[bot] Mar 3, 2025
f6fd2b5
Merge pull request #350 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Mar 4, 2025
2053b50
Bump spring-boot.version from 3.4.3 to 3.4.4
dependabot[bot] Mar 24, 2025
7f3be43
Merge pull request #351 from wultra/dependabot/maven/spring-boot.vers…
dependabot[bot] Mar 24, 2025
2724261
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.2 to 3.5.3
dependabot[bot] Mar 31, 2025
1390939
Merge pull request #352 from wultra/dependabot/maven/org.apache.maven…
dependabot[bot] Apr 1, 2025
ad48289
Bump spring-boot.version from 3.4.4 to 3.4.5
dependabot[bot] Apr 28, 2025
794dd5f
Merge pull request #353 from wultra/dependabot/maven/spring-boot.vers…
dependabot[bot] Apr 29, 2025
d104985
Fix #354: Performance improvement of DatabaseAuditWriter#scheduledCle…
banterCZ May 14, 2025
dc6afff
Merge pull request #362 from wultra/issues/354-performance-scheduledC…
banterCZ May 14, 2025
6ba4189
Bump shedlock.version from 6.6.0 to 6.6.1
dependabot[bot] May 19, 2025
dae89fa
Merge pull request #371 from wultra/dependabot/maven/shedlock.version…
dependabot[bot] May 20, 2025
d124e54
Revert "Fix #344: Change package to com.wultra"
banterCZ May 20, 2025
7a2c45b
Fix #375: Bump Spring Boot to 3.4.6
banterCZ May 23, 2025
7c7c456
Merge pull request #376 from wultra/issues/375-bump-spring-boot
banterCZ May 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -298,15 +298,18 @@ Date: Fri, 25 Nov 2022 06:35:06 GMT

The `audit-base` project provides auditing functionality for easier investigation of issues. Audit records are stored in a database and can be easily queried. The auditing library also handles removal of old audit records.

The audit library requires one database table `audit_log` and optionally the second table `audit_params` for logging detail parameters. The DDL is available for the following databases:
The audit library requires one database table `audit_log` and optionally the second table `audit_params` for logging detail parameters.
Also the `shedlock` table is required for locking scheduled tasks.

The DDL is available for the following databases:
- [DDL for MySQL](./docs/sql/mysql/create_schema.sql)
- [DDL for Oracle](./docs/sql/oracle/create_schema.sql)
- [DDL for PostgreSQL](./docs/sql/postgresql/create_schema.sql)

### Configuration

The following configuration is required for integration of the auditing library:
- Enable scheduling on the application using `@EnableScheduling` annotation on class annotated with `@SpringBootApplication` so that the `flush` and `cleanup` functionality can be scheduled.
- Enable scheduling on the application using `@EnableScheduling` annotation on class annotated with `@SpringBootApplication` so that the `flush` and `cleanup` functionality can be scheduled. In order to enable schedule locking use `@EnableSchedulerLock` annotation and configure the `LockProvider` bean, see [ShedLock documentation](https://github.com/lukas-krecan/ShedLock) for details.
- Add the `com.wultra.core.audit.base` package to the `@ComponentScan`, e.g. `@ComponentScan(basePackages = {"...", "com.wultra.core.audit.base"})`, so that the annotations used in auditing library can be discovered.
- Configure the `spring.application.name` property to enable storing application name with audit records.

Expand All @@ -318,7 +321,10 @@ The following properties can be configured in case the default configuration nee
- `audit.db.table.log.name` - name of audit log database table (default: `audit_log`)
- `audit.db.table.param.name` - name of audit parameters database table (default: `audit_param`)
- `audit.db.table.param.enabled` - flag if logging params to parameters database is enabled (default: `false`)
- `audit.db.batch.size` - database batch size (default: `1000`)
- `audit.db.batch.size` - database batch size (default: `1000`)
- `audit.cleanup.cron` - A cron expression for the cleanup job. (default: `0 0 * * * *`, use `-` to turn it off completely)
- `audit.cleanup.lockAtLeastFor` - The lock will be held at least for given duration. (default: `5s`)
- `audit.cleanup.lockAtMostFor` - The lock will be held at most for given duration. (default: `30m`)

You can configure database schema used by the auditing library using regular Spring JPA/Hibernate property in your application:
- `spring.jpa.properties.hibernate.default_schema` - database database schema (default: none)
Expand Down
2 changes: 1 addition & 1 deletion annotations/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>io.getlime.core</groupId>
<artifactId>lime-java-core-parent</artifactId>
<version>1.11.0</version>
<version>1.12.0-SNAPSHOT</version>
</parent>

<artifactId>annotations</artifactId>
Expand Down
17 changes: 16 additions & 1 deletion audit-base/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>io.getlime.core</groupId>
<artifactId>lime-java-core-parent</artifactId>
<version>1.11.0</version>
<version>1.12.0-SNAPSHOT</version>
</parent>

<artifactId>audit-base</artifactId>
Expand All @@ -31,6 +31,21 @@
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
</dependency>

<!-- Shedlock -->
<dependency>
<groupId>net.javacrumbs.shedlock</groupId>
<artifactId>shedlock-provider-jdbc-template</artifactId>
<version>${shedlock.version}</version>
</dependency>

<dependency>
<groupId>net.javacrumbs.shedlock</groupId>
<artifactId>shedlock-spring</artifactId>
<version>${shedlock.version}</version>
</dependency>

<!-- Test dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
import com.wultra.core.audit.base.util.JsonUtil;
import com.wultra.core.audit.base.util.StringUtil;
import jakarta.annotation.PreDestroy;
import net.javacrumbs.shedlock.core.LockAssert;
import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
Expand Down Expand Up @@ -60,6 +62,8 @@ public class DatabaseAuditWriter implements AuditWriter {
private static final Logger logger = LoggerFactory.getLogger(DatabaseAuditWriter.class);

private static final String SPRING_FRAMEWORK_PACKAGE_PREFIX = "org.springframework";
private static final String JDK_INTERNAL_REFLECT_PACKAGE_PREFIX = "jdk.internal.reflect";
private static final String JAVA_LANG_REFLECT_PACKAGE_PREFIX = "java.lang.reflect";

private final BlockingQueue<AuditRecord> queue;
private final JdbcTemplate jdbcTemplate;
Expand Down Expand Up @@ -133,9 +137,11 @@ private void prepareSqlInsertQueries() {

@Override
public void write(AuditRecord auditRecord) {
List<String> packageFilter = new ArrayList<>();
packageFilter.add(this.getClass().getPackage().getName());
packageFilter.add(SPRING_FRAMEWORK_PACKAGE_PREFIX);
final List<String> packageFilter = List.of(
this.getClass().getPackage().getName(),
SPRING_FRAMEWORK_PACKAGE_PREFIX,
JDK_INTERNAL_REFLECT_PACKAGE_PREFIX,
JAVA_LANG_REFLECT_PACKAGE_PREFIX);
auditRecord.setCallingClass(ClassUtil.getCallingClass(packageFilter));
auditRecord.setThreadName(Thread.currentThread().getName());
try {
Expand Down Expand Up @@ -283,12 +289,16 @@ public void scheduledFlush() {
}

/**
* Scheduled cleanup of audit data in database.
* Scheduled cleanup of audit data in the database.
*/
@Scheduled(fixedDelayString = "${audit.cleanup.delay.fixed:3600000}", initialDelayString = "${audit.cleanup.delay.initial:1000}")
@Scheduled(cron = "${audit.cleanup.cron:0 0 * * * *}")
@SchedulerLock(name = "audit.cleanup", lockAtLeastFor = "${audit.cleanup.lockAtLeastFor:5s}", lockAtMostFor = "${audit.cleanup.lockAtMostFor:30m}")
public void scheduledCleanup() {
logger.debug("Scheduled audit log cleanup called");
logger.info("action: scheduledCleanup, state: initiated");
LockAssert.assertLocked();
logger.info("action: scheduledCleanup, state: lockAsserted");
cleanup();
logger.info("action: scheduledCleanup, state: succeeded");
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import static org.junit.jupiter.api.Assertions.*;

@SpringBootTest(classes = TestApplication.class, properties = {"audit.db.table.param.enabled=false"})
@Sql(scripts = "/db_schema.sql")
@Sql("/db_schema.sql")
class AuditTest {

private final AuditFactory auditFactory;
Expand All @@ -45,7 +45,7 @@ public AuditTest(AuditFactory auditFactory, JdbcTemplate jdbcTemplate) {
}

@BeforeEach
public void cleanTestDb() {
void cleanTestDb() {
jdbcTemplate.execute("DELETE FROM audit_log");
jdbcTemplate.execute("DELETE FROM audit_param");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,20 @@
*/
package com.wultra.core.audit.base;

import net.javacrumbs.shedlock.core.LockProvider;
import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.EnableScheduling;

import javax.sql.DataSource;

@SpringBootApplication
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "30m")
public class TestApplication {

/**
Expand All @@ -32,4 +40,13 @@ public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}

@Bean
public LockProvider lockProvider(final DataSource dataSource) {
return new JdbcTemplateLockProvider(
JdbcTemplateLockProvider.Configuration.builder()
.withJdbcTemplate(new JdbcTemplate(dataSource))
.usingDbTime()
.build()
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/*
* Copyright 2025 Wultra s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.wultra.core.audit.base.database;

import com.wultra.core.audit.base.Audit;
import com.wultra.core.audit.base.AuditFactory;
import com.wultra.core.audit.base.TestApplication;
import com.wultra.core.audit.base.model.AuditDetail;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.test.context.jdbc.Sql;

import java.time.Duration;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

/**
* Test for {@link DatabaseAuditWriter}.
*
* @author Lubos Racansky, lubos.racansky@wultra.com
*/
class DatabaseAuditWriterTest {

@SpringBootTest(
classes = TestApplication.class,
properties = {
"audit.cleanup.cron=0/3 * * * * *",
"audit.db.cleanup.days=-1" // time shift to the future to enable cleanup test
}
)
@Sql("/db_schema.sql")
@Nested
class ScheduledCleanupOn {

@Autowired
private AuditFactory auditFactory;

@Autowired
private JdbcTemplate jdbcTemplate;

@Test
void testAuditScheduledCleanup() {
final Audit audit = auditFactory.getAudit();
audit.info("test message", AuditDetail.builder().param("my_id", "test_id").build());
audit.flush();

assertEquals(1, countAuditLogs(jdbcTemplate));

Awaitility.await()
.atMost(Duration.ofSeconds(5))
.until(() -> countAuditLogs(jdbcTemplate) == 0);
}
}

@SpringBootTest(
classes = TestApplication.class,
properties = {
"audit.cleanup.cron=-",
"audit.db.cleanup.days=-1" // time shift to the future to enable cleanup test
}
)
@Sql("/db_schema.sql")
@Nested
class ScheduledCleanupOff {

@Autowired
private AuditFactory auditFactory;

@Autowired
private JdbcTemplate jdbcTemplate;

@Test
void testAuditScheduledCleanup() {
final Audit audit = auditFactory.getAudit();
audit.info("test message", AuditDetail.builder().param("my_id", "test_id").build());
audit.flush();

assertEquals(1, countAuditLogs(jdbcTemplate));

Awaitility.await()
.atMost(Duration.ofSeconds(6))
.pollInterval(Duration.ofSeconds(5))
.until(() -> countAuditLogs(jdbcTemplate) == 1);
}
}

private int countAuditLogs(final JdbcTemplate jdbcTemplate) {
final SqlRowSet rs = jdbcTemplate.queryForRowSet("SELECT COUNT(*) FROM audit_log");
assertTrue(rs.next());
return rs.getInt(1);
}
}
3 changes: 3 additions & 0 deletions audit-base/src/test/resources/db_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,6 @@ CREATE INDEX audit_param_log ON audit_param (audit_log_id);
CREATE INDEX audit_param_timestamp ON audit_param (timestamp_created);
CREATE INDEX audit_param_key ON audit_param (param_key);
CREATE INDEX audit_param_value ON audit_param (param_value);

-- Shedlock
CREATE TABLE IF NOT EXISTS shedlock(name VARCHAR(64) NOT NULL, lock_until TIMESTAMP NOT NULL, locked_at TIMESTAMP NOT NULL, locked_by VARCHAR(255) NOT NULL, PRIMARY KEY (name));
2 changes: 1 addition & 1 deletion bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>io.getlime.core</groupId>
<artifactId>lime-java-core-parent</artifactId>
<version>1.11.0</version>
<version>1.12.0-SNAPSHOT</version>
</parent>

<artifactId>core-bom</artifactId>
Expand Down
5 changes: 4 additions & 1 deletion docs/sql/mysql/create_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,7 @@ CREATE INDEX audit_log_type ON audit_log (audit_type);
CREATE INDEX audit_param_log ON audit_param (audit_log_id);
CREATE INDEX audit_param_timestamp ON audit_param (timestamp_created);
CREATE INDEX audit_param_key ON audit_param (param_key);
CREATE FULLTEXT INDEX audit_param_value ON audit_param (param_value);
CREATE FULLTEXT INDEX audit_param_value ON audit_param (param_value);

-- Shedlock
CREATE TABLE shedlock(name VARCHAR(64) NOT NULL, lock_until TIMESTAMP(3) NOT NULL, locked_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), locked_by VARCHAR(255) NOT NULL, PRIMARY KEY (name));
5 changes: 4 additions & 1 deletion docs/sql/oracle/create_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,7 @@ CREATE INDEX audit_log_type ON audit_log (audit_type);
CREATE INDEX audit_param_log ON audit_param (audit_log_id);
CREATE INDEX audit_param_timestamp ON audit_param (timestamp_created);
CREATE INDEX audit_param_key ON audit_param (param_key);
CREATE INDEX audit_param_value ON audit_param (param_value);
CREATE INDEX audit_param_value ON audit_param (param_value);

-- Shedlock
CREATE TABLE shedlock(name VARCHAR(64) NOT NULL, lock_until TIMESTAMP(3) NOT NULL, locked_at TIMESTAMP(3) NOT NULL, locked_by VARCHAR(255) NOT NULL, PRIMARY KEY (name));
5 changes: 4 additions & 1 deletion docs/sql/postgresql/create_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,7 @@ CREATE INDEX audit_log_type ON audit_log (audit_type);
CREATE INDEX audit_param_log ON audit_param (audit_log_id);
CREATE INDEX audit_param_timestamp ON audit_param (timestamp_created);
CREATE INDEX audit_param_key ON audit_param (param_key);
CREATE INDEX audit_param_value ON audit_param (param_value);
CREATE INDEX audit_param_value ON audit_param (param_value);

-- Shedlock
CREATE TABLE shedlock(name VARCHAR(64) NOT NULL, lock_until TIMESTAMP NOT NULL, locked_at TIMESTAMP NOT NULL, locked_by VARCHAR(255) NOT NULL, PRIMARY KEY (name));
2 changes: 1 addition & 1 deletion http-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>io.getlime.core</groupId>
<artifactId>lime-java-core-parent</artifactId>
<version>1.11.0</version>
<version>1.12.0-SNAPSHOT</version>
</parent>

<artifactId>http-common</artifactId>
Expand Down
13 changes: 7 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<description>Wultra - Core Java Libraries</description>
<groupId>io.getlime.core</groupId>
<artifactId>lime-java-core-parent</artifactId>
<version>1.11.0</version>
<version>1.12.0-SNAPSHOT</version>
<packaging>pom</packaging>

<inceptionYear>2017</inceptionYear>
Expand Down Expand Up @@ -56,12 +56,13 @@
<java.version>17</java.version>
<maven.compiler.release>${java.version}</maven.compiler.release>

<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.5.0</maven-surefire-plugin.version>
<maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
<maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>

<!-- Dependencies -->
<spring-boot.version>3.3.4</spring-boot.version>
<spring-boot.version>3.4.6</spring-boot.version>
<shedlock.version>6.6.1</shedlock.version>
</properties>

<dependencyManagement>
Expand Down Expand Up @@ -119,7 +120,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.10.0</version>
<version>3.11.2</version>
<configuration>
<failOnError>false</failOnError>
</configuration>
Expand All @@ -135,7 +136,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.3</version>
<version>3.1.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Expand Down
Loading
0