Skip to content

Commit

Permalink
Finally Spring Boot 1.5.x to 2.0.x upgrade / migration #33, incl the …
Browse files Browse the repository at this point in the history
…following new deps:

Spring Boot 1.5.14.RELEASE --> 2.0.6.RELEASE
Apache CXF 3.2.5 --> 3.2.6
Spring Cloud Sleuth 1.3.4.RELEASE --> 2.0.1.RELEASE (we NEED to upgrade this dep also, since Spring Cloud & Boot need to have compatible versions. Problem in the migration from 1.3.x --> 2.0.x is as https://github.com/spring-cloud/spring-cloud-sleuth/wiki/Spring-Cloud-Sleuth-2.0-Migration-Guide describes, that now Sleuth shiftes completely to zipkin brave library (https://github.com/openzipkin/brave), which doesn´t implement a timestamp we used to use inside the TimeLoggingFilter. After hours & hours of research, I found that the maintainer aims to provide MDC functionality in Sleuth 2.1.x again, see https://stackoverflow.com/a/51854323/4964553. Therefore reimplemented a simple algorithm until Sleuth has timestamp support again)
fluent hc 4.5.5 --> 4.5.6
logstash-logback-encoder 5.1 --> 5.2

Also major overhaul of the pom.xml version to also contain the Maven Central Release tools, which versions were also upgraded.
  • Loading branch information
jonashackt committed Oct 17, 2018
1 parent e639fdb commit 23f9997
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 35 deletions.
36 changes: 24 additions & 12 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,23 +44,35 @@
</snapshotRepository>
</distributionManagement>
<properties>
<cxf-spring-boot-starter-maven-plugin.version>1.1.5.RELEASE</cxf-spring-boot-starter-maven-plugin.version>
<java.version>1.8</java.version>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring.boot.version>1.5.14.RELEASE</spring.boot.version>
<cxf.version>3.2.5</cxf.version>
<fluent-hc.version>4.5.5</fluent-hc.version>

<!-- Project dependencies -->

<spring.boot.version>2.0.6.RELEASE</spring.boot.version>
<cxf-spring-boot-starter-maven-plugin.version>1.1.5.RELEASE</cxf-spring-boot-starter-maven-plugin.version>
<cxf.version>3.2.6</cxf.version>
<fluent-hc.version>4.5.6</fluent-hc.version>
<camunda.version>7.9.0</camunda.version>
<logstash-logback-encoder.version>5.1</logstash-logback-encoder.version>
<logstash-logback-encoder.version>5.2</logstash-logback-encoder.version>
<commons-io.version>2.6</commons-io.version>
<spring.cloud.sleuth.version>1.3.4.RELEASE</spring.cloud.sleuth.version>
<spring.cloud.sleuth.version>2.0.1.RELEASE</spring.cloud.sleuth.version>
<system-rules.version>1.18.0</system-rules.version>

<!-- Analysis Tools for CI -->
<build-plugin.jacoco.version>0.8.1</build-plugin.jacoco.version>
<build-plugin.jacoco.version>0.8.2</build-plugin.jacoco.version>
<build-plugin.coveralls.version>4.3.0</build-plugin.coveralls.version>

<!-- Maven Central Release tools -->
<versions-maven-plugin.version>2.7</versions-maven-plugin.version>
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version>
<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>

<!-- Exclude generated JAXB-Java-Classes from Sonar-Analysis -->
<sonar.exclusions>**/target/generated-sources/wsdlimport/**</sonar.exclusions>
</properties>
Expand Down Expand Up @@ -225,7 +237,7 @@
<plugins>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
Expand All @@ -246,7 +258,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.5</version>
<version>${versions-maven-plugin.version}</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
Expand All @@ -260,7 +272,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
Expand All @@ -273,7 +285,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.0</version>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
Expand All @@ -286,7 +298,7 @@
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
<version>${nexus-staging-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<serverId>oss.sonatype.org</serverId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@
@Configuration
public class TimeLoggingConfiguration {

@Autowired
private BeanFactory beanFactory;

@Bean
@ConditionalOnProperty(name = "endpoint.autoinit", matchIfMissing = true)
public FilterRegistrationBean filterRegistrationBean(){
Expand All @@ -27,6 +24,6 @@ public FilterRegistrationBean filterRegistrationBean(){
}

private Filter timeLoggingFilter() {
return new TimeLoggingFilter(beanFactory);
return new TimeLoggingFilter();
}
}
27 changes: 8 additions & 19 deletions src/main/java/de/codecentric/cxf/logging/TimeLoggingFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.web.filter.GenericFilterBean;

import javax.servlet.FilterChain;
Expand All @@ -17,33 +14,25 @@
public class TimeLoggingFilter extends GenericFilterBean{

private static final String MDC_KEY = "time-calltime";
private static final Logger LOGGER = LoggerFactory.getLogger(TimeLoggingFilter.class);

private BeanFactory beanFactory;

public TimeLoggingFilter(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
private static final Logger LOG = LoggerFactory.getLogger(TimeLoggingFilter.class);

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
long startMillis = System.currentTimeMillis();
try {
filterChain.doFilter(servletRequest,servletResponse);
} finally {
populateTimingInformation();
populateTimingInformation(startMillis);
}
}

private void populateTimingInformation() {
final Span currentSpan = tracer().getCurrentSpan();
final long callTimeInMs = currentSpan.getAccumulatedMicros() / 1000;
private void populateTimingInformation(long startMillis) {

final long callTimeInMs = System.currentTimeMillis() - startMillis;
MDC.put(MDC_KEY, Long.toString(callTimeInMs));
if(LOGGER.isInfoEnabled()){
LOGGER.info("Call time {}ms", callTimeInMs);
if(LOG.isInfoEnabled()){
LOG.info("Call time {}ms", callTimeInMs);
}
}

Tracer tracer() {
return this.beanFactory.getBean(Tracer.class);
}
}

0 comments on commit 23f9997

Please sign in to comment.