Skip to content

Instantly share code, notes, and snippets.

@wpik
wpik / IsoDateString.java
Created February 16, 2021 12:42
Spring and validation
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
@wpik
wpik / SystemResponseMetrics.java
Created February 16, 2021 12:18
External system metrics with micrometer
package p;
import feign.FeignException;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Timer;
import org.springframework.util.Assert;
import java.util.Arrays;
import java.util.Objects;
import java.util.function.Supplier;
import AuthResult;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import static org.springframework.util.StringUtils.isEmpty;
@wpik
wpik / snippet.scala
Created July 8, 2020 10:44
Scala string interpolation for java.sql.Timestamp and java.sql.Date
implicit class StringTimeConversions(sc: StringContext) {
def t(args: Any*): Timestamp =
Timestamp.valueOf(sc.s(args: _*))
def d(args: Any*): Date =
Date.valueOf(sc.s(args: _*))
}
@wpik
wpik / pom fragment.xml
Created May 25, 2020 11:14
Solve problem with NoSuchMethodError: 'java.lang.String javax.annotation.Resource.lookup()'
<extensions>
<!-- Adding these extensions prevents the error below, with JDK 9 and
higher: -->
<!-- NoSuchMethodError: 'java.lang.String javax.annotation.Resource.lookup()' -->
<extension>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</extension>
<extension>
@wpik
wpik / find.sh
Created May 20, 2020 14:25
Find with two commands on each file
find . -name \*.jar -print | xargs sh -c 'for arg do echo "$arg"; jar -tf "$arg" | grep javax.annotation; done' _
@wpik
wpik / docker.md
Last active March 5, 2020 12:55
Hints

Build project using docker image

Using .m2 from home directory:

docker run -t -v "$(pwd):/app" -v "$(echo ~)/.m2:/root/.m2" -w "/app" --entrypoint 'mvn' maven:3-jdk-11 clean package

Using local .m2:

docker run -t -v "$(pwd):/app" -v "$(pwd)/.m2:/root/.m2" -w "/app" --entrypoint 'mvn' maven:3-jdk-11 clean package

@wpik
wpik / KafkaConfig
Created November 18, 2019 14:03
Reprocess kafka events in Spring Kafka
import org.springframework.boot.autoconfigure.kafka.ConcurrentKafkaListenerContainerFactoryConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
import org.springframework.kafka.core.ConsumerFactory;
import org.springframework.kafka.listener.SeekToCurrentErrorHandler;
@Configuration
public class KafkaConfig {
@wpik
wpik / MongoConvertersConfig.java
Last active September 15, 2023 14:56
OffsetDateTime converters in Mongo in Spring
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.List;
@Configuration
@wpik
wpik / ObjectMapperConfig.java
Created September 20, 2019 09:40
Spring tips
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
@Configuration
public class ObjectMapperConfig {
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();