Remove lombok.

This commit is contained in:
Stephan Schnabel 2021-12-29 12:05:55 +01:00
parent 4f7077f6b7
commit 6efc2bcb49
Signed by: stephan.schnabel
GPG key ID: F74FE2422AA07290
8 changed files with 48 additions and 42 deletions

13
pom.xml
View file

@ -81,7 +81,6 @@
<version.ch.qos.logback>1.2.8</version.ch.qos.logback> <version.ch.qos.logback>1.2.8</version.ch.qos.logback>
<version.ch.qos.logback.contrib>0.1.5</version.ch.qos.logback.contrib> <version.ch.qos.logback.contrib>0.1.5</version.ch.qos.logback.contrib>
<version.io.micronaut>3.2.3</version.io.micronaut> <version.io.micronaut>3.2.3</version.io.micronaut>
<version.org.projectlombok>1.18.22</version.org.projectlombok>
<!-- plugins --> <!-- plugins -->
@ -171,13 +170,6 @@
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- build -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<!-- logback --> <!-- logback -->
<dependency> <dependency>
<groupId>ch.qos.logback</groupId> <groupId>ch.qos.logback</groupId>
@ -208,11 +200,6 @@
<version>${version.org.apache.maven.plugins.compiler}</version> <version>${version.org.apache.maven.plugins.compiler}</version>
<configuration> <configuration>
<annotationProcessorPaths> <annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${version.org.projectlombok}</version>
</path>
<path> <path>
<groupId>io.micronaut</groupId> <groupId>io.micronaut</groupId>
<artifactId>micronaut-inject-java</artifactId> <artifactId>micronaut-inject-java</artifactId>

View file

@ -3,6 +3,8 @@ package io.kokuwa.micronaut.logging.http;
import java.util.Map; import java.util.Map;
import org.reactivestreams.Publisher; import org.reactivestreams.Publisher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC; import org.slf4j.MDC;
import io.micronaut.core.async.publisher.Publishers; import io.micronaut.core.async.publisher.Publishers;
@ -18,6 +20,7 @@ import io.micronaut.http.filter.ServerFilterChain;
*/ */
public abstract class AbstractMdcFilter implements HttpServerFilter { public abstract class AbstractMdcFilter implements HttpServerFilter {
protected final Logger log = LoggerFactory.getLogger(getClass());
protected final int order; protected final int order;
protected final String prefix; protected final String prefix;

View file

@ -17,7 +17,6 @@ import io.micronaut.http.filter.ServerFilterChain;
import io.micronaut.http.filter.ServerFilterPhase; import io.micronaut.http.filter.ServerFilterPhase;
import io.micronaut.runtime.context.scope.Refreshable; import io.micronaut.runtime.context.scope.Refreshable;
import io.micronaut.security.authentication.Authentication; import io.micronaut.security.authentication.Authentication;
import lombok.extern.slf4j.Slf4j;
/** /**
* Filter to add claims from authentication to MDC. * Filter to add claims from authentication to MDC.
@ -28,7 +27,6 @@ import lombok.extern.slf4j.Slf4j;
@Requires(classes = Authentication.class) @Requires(classes = Authentication.class)
@Requires(property = AuthenticationMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE) @Requires(property = AuthenticationMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
@Filter("${" + AuthenticationMdcFilter.PREFIX + ".path:/**}") @Filter("${" + AuthenticationMdcFilter.PREFIX + ".path:/**}")
@Slf4j
public class AuthenticationMdcFilter extends AbstractMdcFilter { public class AuthenticationMdcFilter extends AbstractMdcFilter {
public static final String PREFIX = "logger.http.authentication"; public static final String PREFIX = "logger.http.authentication";

View file

@ -18,7 +18,6 @@ import io.micronaut.http.annotation.Filter;
import io.micronaut.http.filter.ServerFilterChain; import io.micronaut.http.filter.ServerFilterChain;
import io.micronaut.http.filter.ServerFilterPhase; import io.micronaut.http.filter.ServerFilterPhase;
import io.micronaut.runtime.context.scope.Refreshable; import io.micronaut.runtime.context.scope.Refreshable;
import lombok.extern.slf4j.Slf4j;
/** /**
* Filter to add http headers to MDC. * Filter to add http headers to MDC.
@ -29,7 +28,6 @@ import lombok.extern.slf4j.Slf4j;
@Requires(property = HeaderMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE) @Requires(property = HeaderMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
@Requires(property = HeaderMdcFilter.PREFIX + ".names") @Requires(property = HeaderMdcFilter.PREFIX + ".names")
@Filter("${" + HeaderMdcFilter.PREFIX + ".path:/**}") @Filter("${" + HeaderMdcFilter.PREFIX + ".path:/**}")
@Slf4j
public class HeaderMdcFilter extends AbstractMdcFilter { public class HeaderMdcFilter extends AbstractMdcFilter {
public static final String PREFIX = "logger.http.header"; public static final String PREFIX = "logger.http.header";

View file

@ -21,7 +21,6 @@ import io.micronaut.http.annotation.Filter;
import io.micronaut.http.filter.ServerFilterChain; import io.micronaut.http.filter.ServerFilterChain;
import io.micronaut.http.filter.ServerFilterPhase; import io.micronaut.http.filter.ServerFilterPhase;
import io.micronaut.runtime.context.scope.Refreshable; import io.micronaut.runtime.context.scope.Refreshable;
import lombok.extern.slf4j.Slf4j;
/** /**
* Filter to add request path parts to MDC. * Filter to add request path parts to MDC.
@ -32,7 +31,6 @@ import lombok.extern.slf4j.Slf4j;
@Requires(property = PathMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE) @Requires(property = PathMdcFilter.PREFIX + ".enabled", notEquals = StringUtils.FALSE)
@Requires(property = PathMdcFilter.PREFIX + ".patterns") @Requires(property = PathMdcFilter.PREFIX + ".patterns")
@Filter("${" + PathMdcFilter.PREFIX + ".path:/**}") @Filter("${" + PathMdcFilter.PREFIX + ".path:/**}")
@Slf4j
public class PathMdcFilter extends AbstractMdcFilter { public class PathMdcFilter extends AbstractMdcFilter {
public static final String PREFIX = "logger.http.path"; public static final String PREFIX = "logger.http.path";

View file

@ -8,8 +8,6 @@ import java.util.Map;
import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.contrib.json.classic.JsonLayout; import ch.qos.logback.contrib.json.classic.JsonLayout;
import io.micronaut.core.util.StringUtils; import io.micronaut.core.util.StringUtils;
import lombok.Setter;
import lombok.experimental.Accessors;
/** /**
* GCP logging layout. * GCP logging layout.
@ -18,7 +16,6 @@ import lombok.experimental.Accessors;
* @see "https://cloud.google.com/logging/docs/agent/configuration#process-payload" * @see "https://cloud.google.com/logging/docs/agent/configuration#process-payload"
* @see "https://cloud.google.com/error-reporting/reference/rest/v1beta1/ServiceContext" * @see "https://cloud.google.com/error-reporting/reference/rest/v1beta1/ServiceContext"
*/ */
@Accessors(chain = false)
public class GcpJsonLayout extends JsonLayout { public class GcpJsonLayout extends JsonLayout {
private static final String UNDEFINED = "_IS_UNDEFINED"; private static final String UNDEFINED = "_IS_UNDEFINED";
@ -26,9 +23,7 @@ public class GcpJsonLayout extends JsonLayout {
private static final String SEVERITY_ATTR_NAME = "severity"; private static final String SEVERITY_ATTR_NAME = "severity";
private Map<String, String> serviceContext; private Map<String, String> serviceContext;
@Setter
private String serviceName; private String serviceName;
@Setter
private String serviceVersion; private String serviceVersion;
@Override @Override

View file

@ -2,6 +2,9 @@ package io.kokuwa.micronaut.logging.mdc;
import java.util.Set; import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Level;
import io.kokuwa.micronaut.logging.LogbackUtil; import io.kokuwa.micronaut.logging.LogbackUtil;
import io.micronaut.context.annotation.BootstrapContextCompatible; import io.micronaut.context.annotation.BootstrapContextCompatible;
@ -11,7 +14,6 @@ import io.micronaut.context.env.Environment;
import io.micronaut.core.annotation.Internal; import io.micronaut.core.annotation.Internal;
import io.micronaut.core.type.Argument; import io.micronaut.core.type.Argument;
import io.micronaut.core.util.StringUtils; import io.micronaut.core.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
/** /**
* Configure MDC filter. * Configure MDC filter.
@ -24,11 +26,11 @@ import lombok.extern.slf4j.Slf4j;
@BootstrapContextCompatible @BootstrapContextCompatible
@Context @Context
@Internal @Internal
@Slf4j
public class MDCTurboFilterConfigurer { public class MDCTurboFilterConfigurer {
public static final String PREFIX = "logger.mdc"; public static final String PREFIX = "logger.mdc";
private static final Logger log = LoggerFactory.getLogger(MDCTurboFilterConfigurer.class);
private final LogbackUtil logback; private final LogbackUtil logback;
private final Environment environment; private final Environment environment;

View file

@ -2,6 +2,7 @@ package io.kokuwa.micronaut.logging.http;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.Map; import java.util.Map;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -9,8 +10,13 @@ import java.util.function.Consumer;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC; import org.slf4j.MDC;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.nimbusds.jose.JOSEException;
import com.nimbusds.jwt.JWTClaimsSet; import com.nimbusds.jwt.JWTClaimsSet;
import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Level;
@ -31,11 +37,6 @@ import io.micronaut.security.rules.SecurityRule;
import io.micronaut.security.token.jwt.signature.SignatureGeneratorConfiguration; import io.micronaut.security.token.jwt.signature.SignatureGeneratorConfiguration;
import io.micronaut.test.extensions.junit5.annotation.MicronautTest; import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
/** /**
* Test for {@link HttpServerFilter}. * Test for {@link HttpServerFilter}.
@ -70,16 +71,19 @@ public abstract class AbstractFilterTest extends AbstractTest {
return token(subject, claims -> {}); return token(subject, claims -> {});
} }
@SneakyThrows
public String token(String subject, Consumer<JWTClaimsSet.Builder> manipulator) { public String token(String subject, Consumer<JWTClaimsSet.Builder> manipulator) {
var claims = new JWTClaimsSet.Builder().subject(subject); var claims = new JWTClaimsSet.Builder().subject(subject);
manipulator.accept(claims); manipulator.accept(claims);
return HttpHeaderValues.AUTHORIZATION_PREFIX_BEARER + " " + signature.sign(claims.build()).serialize(); try {
return HttpHeaderValues.AUTHORIZATION_PREFIX_BEARER + " " + signature.sign(claims.build()).serialize();
} catch (JOSEException e) {
fail(e);
return null;
}
} }
// request // request
@SneakyThrows
public TestResponse get(String path, Map<String, String> headers) { public TestResponse get(String path, Map<String, String> headers) {
var request = HttpRequest.GET(path); var request = HttpRequest.GET(path);
@ -98,9 +102,10 @@ public abstract class AbstractFilterTest extends AbstractTest {
@Secured({ SecurityRule.IS_ANONYMOUS, SecurityRule.IS_AUTHENTICATED }) @Secured({ SecurityRule.IS_ANONYMOUS, SecurityRule.IS_AUTHENTICATED })
@Controller @Controller
@Slf4j
public static class TestController { public static class TestController {
private static final Logger log = LoggerFactory.getLogger(TestController.class);
@Get("/{+path}") @Get("/{+path}")
TestResponse run(@PathVariable String path) { TestResponse run(@PathVariable String path) {
@ -120,16 +125,36 @@ public abstract class AbstractFilterTest extends AbstractTest {
var mdc = MDC.getCopyOfContextMap(); var mdc = MDC.getCopyOfContextMap();
log.info("Found MDC: {}", mdc); log.info("Found MDC: {}", mdc);
return new TestResponse(path, level.toString(), mdc == null ? Map.of() : mdc); return new TestResponse(path, level.toString(), mdc);
} }
} }
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class TestResponse { public static class TestResponse {
private String path;
private String level; private final String path;
private Map<String, String> context = Map.of(); private final String level;
private final Map<String, String> context;
@JsonCreator
public TestResponse(
@JsonProperty("path") String path,
@JsonProperty("level") String level,
@JsonProperty("context") Map<String, String> context) {
this.path = path;
this.level = level;
this.context = context == null ? Map.of() : context;
}
public String getPath() {
return path;
}
public String getLevel() {
return level;
}
public Map<String, String> getContext() {
return context;
}
} }
} }