Skip to content

Commit

Permalink
📣 Prepare release 2.4
Browse files Browse the repository at this point in the history
  • Loading branch information
yodamad authored Dec 14, 2021
2 parents 5903f8e + 8d2e136 commit 37fe48d
Show file tree
Hide file tree
Showing 60 changed files with 396 additions and 950 deletions.
24 changes: 14 additions & 10 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,22 +40,25 @@
<profile.tls />

<!-- Dependency versions -->
<jhipster-dependencies.version>2.1.1</jhipster-dependencies.version>
<jhipster-dependencies.version>7.4.1</jhipster-dependencies.version>
<!-- The spring-boot version should match the one managed by
https://mvnrepository.com/artifact/io.github.jhipster/jhipster-dependencies/${jhipster-dependencies.version} -->
<spring-boot.version>2.6.1</spring-boot.version>
https://mvnrepository.com/artifact/tech.jhipster/jhipster-dependencies/${jhipster-dependencies.version} -->
<spring-boot.version>2.5.7</spring-boot.version>
<!-- The hibernate version should match the one managed by
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies/${spring-boot.version} -->
<!--<hibernate.version>5.2.17.Final</hibernate.version>-->
<!-- The javassist version should match the one managed by
https://mvnrepository.com/artifact/org.hibernate/hibernate-core/${hibernate.version} -->
<javassist.version>3.22.0-GA</javassist.version>
<javassist.version>3.27.0-GA</javassist.version>
<!-- The liquibase version should match the one managed by
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies/${spring-boot.version} -->
<liquibase.version>3.5.5</liquibase.version>
<liquibase-hibernate5.version>3.6</liquibase-hibernate5.version>
<liquibase.version>4.6.1</liquibase.version>
<liquibase-hibernate5.version>4.6.1</liquibase-hibernate5.version>
<h2.version>1.4.200</h2.version>
<validation-api.version>2.0.1.Final</validation-api.version>
<mapstruct.version>1.2.0.Final</mapstruct.version>
<jaxb-runtime.version>2.3.3</jaxb-runtime.version>
<archunit-junit5.version>0.22.0</archunit-junit5.version>
<mapstruct.version>1.4.2.Final</mapstruct.version>

<!-- Kotlin support -->
<kotlin.version>1.4.21</kotlin.version>
Expand Down Expand Up @@ -113,7 +116,7 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.jhipster</groupId>
<groupId>tech.jhipster</groupId>
<artifactId>jhipster-dependencies</artifactId>
<version>${jhipster-dependencies.version}</version>
<type>pom</type>
Expand All @@ -125,7 +128,7 @@

<dependencies>
<dependency>
<groupId>io.github.jhipster</groupId>
<groupId>tech.jhipster</groupId>
<artifactId>jhipster-framework</artifactId>
<exclusions>
<exclusion>
Expand Down Expand Up @@ -189,6 +192,7 @@
<dependency>
<groupId>com.mattbertolini</groupId>
<artifactId>liquibase-slf4j</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
Expand Down Expand Up @@ -336,7 +340,7 @@
<!-- Spring Cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-spring-service-connector</artifactId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!-- Security -->
<dependency>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/fr/yodamad/svn2git/Svn2GitApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import fr.yodamad.svn2git.config.ApplicationProperties;
import fr.yodamad.svn2git.config.DefaultProfileUtil;

import io.github.jhipster.config.JHipsterConstants;
import tech.jhipster.config.JHipsterConstants;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package fr.yodamad.svn2git.aop.logging;

import io.github.jhipster.config.JHipsterConstants;
import tech.jhipster.config.JHipsterConstants;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Properties specific to Svn 2 Git.
* <p>
* Properties are configured in the application.yml file.
* See {@link io.github.jhipster.config.JHipsterProperties} for a good example.
* See {@link tech.jhipster.config.JHipsterProperties} for a good example.
*/
@ConfigurationProperties(prefix = "application", ignoreUnknownFields = false)
public class ApplicationProperties {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package fr.yodamad.svn2git.config;

import io.github.jhipster.async.ExceptionHandlingAsyncTaskExecutor;
import io.github.jhipster.config.JHipsterProperties;
import tech.jhipster.async.ExceptionHandlingAsyncTaskExecutor;
import tech.jhipster.config.JHipsterProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptionHandler;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
Expand All @@ -31,6 +32,7 @@ public class AsyncConfiguration implements AsyncConfigurer, SchedulingConfigurer

@Override
@Bean(name = "taskExecutor")
@Qualifier(value = "taskExecutor")
public Executor getAsyncExecutor() {
log.debug("Creating Async Task Executor");
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
Expand All @@ -45,7 +47,7 @@ public Executor getAsyncExecutor() {
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return new SimpleAsyncUncaughtExceptionHandler();
}

@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(scheduledTaskExecutor());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package fr.yodamad.svn2git.config;

import io.github.jhipster.config.JHipsterConstants;
import io.github.jhipster.config.h2.H2ConfigurationHelper;
import tech.jhipster.config.JHipsterConstants;
import tech.jhipster.config.h2.H2ConfigurationHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package fr.yodamad.svn2git.config;

import io.github.jhipster.config.JHipsterConstants;
import tech.jhipster.config.JHipsterConstants;

import org.springframework.boot.SpringApplication;
import org.springframework.core.env.Environment;
Expand Down
49 changes: 36 additions & 13 deletions src/main/java/fr/yodamad/svn2git/config/LiquibaseConfiguration.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
package fr.yodamad.svn2git.config;

import javax.sql.DataSource;

import liquibase.integration.spring.SpringLiquibase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseDataSource;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.core.env.Environment;
import org.springframework.core.task.TaskExecutor;
import org.springframework.core.env.Profiles;
import tech.jhipster.config.JHipsterConstants;
import tech.jhipster.config.liquibase.SpringLiquibaseUtil;

import io.github.jhipster.config.JHipsterConstants;
import io.github.jhipster.config.liquibase.AsyncSpringLiquibase;
import liquibase.integration.spring.SpringLiquibase;
import javax.sql.DataSource;
import java.util.concurrent.Executor;

@Configuration
@DependsOn("asyncConfiguration")
public class LiquibaseConfiguration {

private final Logger log = LoggerFactory.getLogger(LiquibaseConfiguration.class);
Expand All @@ -28,18 +33,36 @@ public LiquibaseConfiguration(Environment env) {
}

@Bean
public SpringLiquibase liquibase(@Qualifier("taskExecutor") TaskExecutor taskExecutor,
DataSource dataSource, LiquibaseProperties liquibaseProperties) {

// Use liquibase.integration.spring.SpringLiquibase if you don't want Liquibase to start asynchronously
SpringLiquibase liquibase = new AsyncSpringLiquibase(taskExecutor, env);
liquibase.setDataSource(dataSource);
public SpringLiquibase liquibase(
@Qualifier("taskExecutor") Executor executor,
@LiquibaseDataSource ObjectProvider<DataSource> liquibaseDataSource,
LiquibaseProperties liquibaseProperties,
ObjectProvider<DataSource> dataSource,
DataSourceProperties dataSourceProperties
) {
// If you don't want Liquibase to start asynchronously, substitute by this:
// SpringLiquibase liquibase = SpringLiquibaseUtil.createSpringLiquibase(liquibaseDataSource.getIfAvailable(), liquibaseProperties, dataSource.getIfUnique(), dataSourceProperties);
SpringLiquibase liquibase = SpringLiquibaseUtil.createAsyncSpringLiquibase(
this.env,
executor,
liquibaseDataSource.getIfAvailable(),
liquibaseProperties,
dataSource.getIfUnique(),
dataSourceProperties
);
liquibase.setChangeLog("classpath:config/liquibase/master.xml");
liquibase.setContexts(liquibaseProperties.getContexts());
liquibase.setDefaultSchema(liquibaseProperties.getDefaultSchema());
liquibase.setLiquibaseSchema(liquibaseProperties.getLiquibaseSchema());
liquibase.setLiquibaseTablespace(liquibaseProperties.getLiquibaseTablespace());
liquibase.setDatabaseChangeLogLockTable(liquibaseProperties.getDatabaseChangeLogLockTable());
liquibase.setDatabaseChangeLogTable(liquibaseProperties.getDatabaseChangeLogTable());
liquibase.setDropFirst(liquibaseProperties.isDropFirst());
liquibase.setLabels(liquibaseProperties.getLabels());
liquibase.setChangeLogParameters(liquibaseProperties.getParameters());
if (env.acceptsProfiles(JHipsterConstants.SPRING_PROFILE_NO_LIQUIBASE)) {
liquibase.setRollbackFile(liquibaseProperties.getRollbackFile());
liquibase.setTestRollbackOnUpdate(liquibaseProperties.isTestRollbackOnUpdate());
if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_NO_LIQUIBASE))) {
liquibase.setShouldRun(false);
} else {
liquibase.setShouldRun(liquibaseProperties.isEnabled());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package fr.yodamad.svn2git.config;

import io.github.jhipster.config.locale.AngularCookieLocaleResolver;
import tech.jhipster.config.locale.AngularCookieLocaleResolver;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import fr.yodamad.svn2git.aop.logging.LoggingAspect;

import io.github.jhipster.config.JHipsterConstants;
import tech.jhipster.config.JHipsterConstants;

import org.springframework.context.annotation.*;
import org.springframework.core.env.Environment;
Expand Down
96 changes: 3 additions & 93 deletions src/main/java/fr/yodamad/svn2git/config/LoggingConfiguration.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,18 @@
package fr.yodamad.svn2git.config;

import java.net.InetSocketAddress;
import java.util.Iterator;

import io.github.jhipster.config.JHipsterProperties;

import ch.qos.logback.classic.AsyncAppender;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.boolex.OnMarkerEvaluator;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.LoggerContextListener;
import ch.qos.logback.core.Appender;
import ch.qos.logback.core.filter.EvaluatorFilter;
import ch.qos.logback.core.spi.ContextAwareBase;
import ch.qos.logback.core.spi.FilterReply;
import net.logstash.logback.appender.LogstashTcpSocketAppender;
import net.logstash.logback.encoder.LogstashEncoder;
import net.logstash.logback.stacktrace.ShortenedThrowableConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import tech.jhipster.config.JHipsterProperties;

import java.util.Iterator;

@Configuration
public class LoggingConfiguration {
Expand All @@ -45,53 +36,6 @@ public LoggingConfiguration(@Value("${spring.application.name}") String appName,
this.appName = appName;
this.serverPort = serverPort;
this.jHipsterProperties = jHipsterProperties;
if (jHipsterProperties.getLogging().getLogstash().isEnabled()) {
addLogstashAppender(context);
addContextListener(context);
}
if (jHipsterProperties.getMetrics().getLogs().isEnabled()) {
setMetricsMarkerLogbackFilter(context);
}
}

private void addContextListener(LoggerContext context) {
LogbackLoggerContextListener loggerContextListener = new LogbackLoggerContextListener();
loggerContextListener.setContext(context);
context.addListener(loggerContextListener);
}

private void addLogstashAppender(LoggerContext context) {
log.info("Initializing Logstash logging");

LogstashTcpSocketAppender logstashAppender = new LogstashTcpSocketAppender();
logstashAppender.setName(LOGSTASH_APPENDER_NAME);
logstashAppender.setContext(context);
String customFields = "{\"app_name\":\"" + appName + "\",\"app_port\":\"" + serverPort + "\"}";

// More documentation is available at: https://github.com/logstash/logstash-logback-encoder
LogstashEncoder logstashEncoder = new LogstashEncoder();
// Set the Logstash appender config from JHipster properties
logstashEncoder.setCustomFields(customFields);
// Set the Logstash appender config from JHipster properties
logstashAppender.addDestinations(new InetSocketAddress(jHipsterProperties.getLogging().getLogstash().getHost(), jHipsterProperties.getLogging().getLogstash().getPort()));

ShortenedThrowableConverter throwableConverter = new ShortenedThrowableConverter();
throwableConverter.setRootCauseFirst(true);
logstashEncoder.setThrowableConverter(throwableConverter);
logstashEncoder.setCustomFields(customFields);

logstashAppender.setEncoder(logstashEncoder);
logstashAppender.start();

// Wrap the appender in an Async appender for performance
AsyncAppender asyncLogstashAppender = new AsyncAppender();
asyncLogstashAppender.setContext(context);
asyncLogstashAppender.setName(ASYNC_LOGSTASH_APPENDER_NAME);
asyncLogstashAppender.setQueueSize(jHipsterProperties.getLogging().getLogstash().getQueueSize());
asyncLogstashAppender.addAppender(logstashAppender);
asyncLogstashAppender.start();

context.getLogger("ROOT").addAppender(asyncLogstashAppender);
}

// Configure a log filter to remove "metrics" logs from all appenders except the "LOGSTASH" appender
Expand Down Expand Up @@ -119,38 +63,4 @@ private void setMetricsMarkerLogbackFilter(LoggerContext context) {
}
}
}

/**
* Logback configuration is achieved by configuration file and API.
* When configuration file change is detected, the configuration is reset.
* This listener ensures that the programmatic configuration is also re-applied after reset.
*/
class LogbackLoggerContextListener extends ContextAwareBase implements LoggerContextListener {

@Override
public boolean isResetResistant() {
return true;
}

@Override
public void onStart(LoggerContext context) {
addLogstashAppender(context);
}

@Override
public void onReset(LoggerContext context) {
addLogstashAppender(context);
}

@Override
public void onStop(LoggerContext context) {
// Nothing to do.
}

@Override
public void onLevelChange(ch.qos.logback.classic.Logger logger, Level level) {
// Nothing to do.
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.codahale.metrics.health.HealthCheckRegistry;
import com.zaxxer.hikari.HikariDataSource;
import io.github.jhipster.config.JHipsterProperties;
import tech.jhipster.config.JHipsterProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
Expand Down
Loading

0 comments on commit 37fe48d

Please sign in to comment.