Skip to content

Instantly share code, notes, and snippets.

@JorgenRingen
JorgenRingen / pom.xml
Created July 20, 2018 13:56
combine.self="override" overrides the whole plugin definition instead of appending
<profile>
<id>appConfigTest</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<groups>appConfigTest</groups>
</configuration>
</plugin>
@JorgenRingen
JorgenRingen / DatabaseCleanup.java
Created August 30, 2018 09:00
Clean up database when using @SpringBootTest and initiating transactions from the test. Test and server runs in different threads.
package no.vegvesen.kjoretoy.registrering.register.web;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Table;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.InitializingBean;
@JorgenRingen
JorgenRingen / TimingExtension.java
Created October 12, 2018 11:46
Timing-extension to measure test performance. Include before SpringExtension to measure test including instantiation of applicationcontext.
public class TimingExtension implements AfterAllCallback, TestInstancePostProcessor {
private static final Logger logger = Logger.getLogger(TimingExtension.class.getName());
private static final String START_TIME = "start time";
@Override
public void postProcessTestInstance(Object testInstance, ExtensionContext context) {
getStore(context).put(START_TIME, System.currentTimeMillis());
}
@JorgenRingen
JorgenRingen / DatabaseCleanup.java
Created October 18, 2018 10:31
Empty @Entity-tables before running test
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Table;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
@JorgenRingen
JorgenRingen / pom.xml
Created December 7, 2018 11:51
Example of flatten-maven-plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<configuration>
<updatePomFile>true</updatePomFile>
<outputDirectory>${project.build.directory}</outputDirectory>
<pomElements>
<repositories>remove</repositories>
</pomElements>
</configuration>
@JorgenRingen
JorgenRingen / AkrForhandlerWebSpringConfig.java
Last active December 19, 2018 09:42
MdcTaskDecoratorExample
package no.vegvesen.kjoretoy.registrering.forhandler.web.config;
import java.util.concurrent.Executor;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.core.task.SimpleAsyncTaskExecutor;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.annotation.EnableAsync;
@JorgenRingen
JorgenRingen / gist:637db2e308a22853d84c1ed768033cac
Created December 19, 2018 09:38
SpringBoot - Read file from a jar on classpath
private String readContentFromFileInJarOnClasspath() {
try {
return StreamUtils.copyToString(new ClassPathResource("/lol.txt").getInputStream(), Charset.defaultCharset());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
DateTimeFormatter timeFormatter = new DateTimeFormatterBuilder()
.appendValue(HOUR_OF_DAY, 2)
.appendLiteral(':')
.appendValue(MINUTE_OF_HOUR, 2)
.optionalStart()
.appendLiteral(':')
.appendValue(SECOND_OF_MINUTE, 2)
.toFormatter();
return LocalTime.now().format(timeFormatter);
@JorgenRingen
JorgenRingen / TimingExtension.java
Created February 18, 2019 09:03
JUnit5 timingextension for tests
import java.lang.reflect.Method;
import java.util.logging.Logger;
import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
import org.junit.jupiter.api.extension.BeforeTestExecutionCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
import org.junit.jupiter.api.extension.ExtensionContext.Store;
public class TimingExtension implements BeforeTestExecutionCallback, AfterTestExecutionCallback {
@JorgenRingen
JorgenRingen / scratch_11.java
Last active May 29, 2019 08:58
Declare slf4j logger in a copy-paste-friendly way
private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());