Skip to content

Instantly share code, notes, and snippets.

Avatar

Steve Todorov steve-todorov

  • Carlspring Consulting & Development Ltd.
  • Bulgaria
View GitHub Profile
@steve-todorov
steve-todorov / KafkaProducerTest.java
Created Apr 28, 2021 — forked from itzg/KafkaProducerTest.java
Using embedded Kafka in Spring Boot unit test
View KafkaProducerTest.java
import static org.junit.Assert.assertThat;
import static org.springframework.kafka.test.hamcrest.KafkaMatchers.hasKey;
import static org.springframework.kafka.test.hamcrest.KafkaMatchers.hasValue;
import static org.springframework.kafka.test.utils.KafkaTestUtils.getSingleRecord;
import java.util.Map;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.common.serialization.Deserializer;
View [Spring, JMH] Howto integrate JMH benchmarks with Spring.md

Motivation

Integrate JMH (Java Microbenchmarking Harness) with Spring (Boot) and make developing and running benchmarks as easy and convinent as writing tests.

Idea

Wrap the necessary JMH boilerplate code within JUnit to benefit from all the existing test infrastructure Spring (Boot) provides. It should be as easy and convinent to write benchmarks as it is to write tests.

TL;DR;

View 01-custom-resource-definition-with-rbac.yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: ingressroutes.traefik.containo.us
spec:
group: traefik.containo.us
version: v1alpha1
names:
kind: IngressRoute
@steve-todorov
steve-todorov / AuthenticationToken.java
Created Feb 12, 2020 — forked from phuonghuynh/AuthenticationToken.java
Spring Security - Multiple Authentication Providers
View AuthenticationToken.java
public class AuthenticationToken extends AbstractAuthenticationToken {
private String token;
public AuthenticationToken(String token) {
super(null);
this.token = token;
setAuthenticated(false);
}
@steve-todorov
steve-todorov / System Design.md
Created Feb 11, 2020 — forked from vasanthk/System Design.md
System Design Cheatsheet
View System Design.md

System Design Cheatsheet

Picking the right architecture = Picking the right battles + Managing trade-offs

Basic Steps

  1. Clarify and agree on the scope of the system
  • User cases (description of sequences of events that, taken together, lead to a system doing something useful)
    • Who is going to use it?
    • How are they going to use it?
View MavenProxyRepositoryProviderTestIT-whenDownloadingArtifactMetadataFileShouldBeMergedWhenExist.txt
org.carlspring.strongbox.providers.repository.MavenProxyRepositoryProviderTestIT#whenDownloadingArtifactMetadataFileShouldBeMergedWhenExist
Stacktrace
java.lang.NullPointerException
at org.carlspring.strongbox.providers.repository.MavenProxyRepositoryProviderTestIT.whenDownloadingArtifactMetadataFileShouldBeMergedWhenExist(MavenProxyRepositoryProviderTestIT.java:109)
Standard Output
01:13:10.177 03-02-2020 | DEBUG | kJoinPool-1-worker-2 | o.c.strongbox.services.ArtifactManagementService | Artifact checksum matchings: artifact-[strongbox:/storage0/rmmcjtit-snapshots/org/carlspring/strongbox/strongbox-metadata-one/2.0-SNAPSHOT/strongbox-metadata-one-2.0-20190512.202015-1-javadoc.jar]; ext-[md5]; matched-[[MD5]]; unmatched-[null]; checksum-[3397bc670f840b92ee0d7326ac0f4633]
01:13:10.177 03-02-2020 | DEBUG | kJoinPool-1-worker-2 | o.c.s.storage.checksum.ChecksumCacheManager | Removed [strongbox:/storage0/rmmcjtit-snapshots/org/carlspring/strongbox/strongbox-metadata-one/2.0-SNAPSHOT/strongbox-metadata
@steve-todorov
steve-todorov / .block
Created Dec 10, 2019 — forked from mbostock/.block
Drag & Zoom
View .block
license: gpl-3.0
@steve-todorov
steve-todorov / README.md
Created Dec 10, 2019 — forked from jodyphelan/README.md
Force layout on canvas with zoom/pan and drag
@steve-todorov
steve-todorov / Jenkinsfile.groovy
Created Oct 30, 2019 — forked from Faheetah/Jenkinsfile.groovy
Jenkinsfile idiosynchrasies with escaping and quotes
View Jenkinsfile.groovy
node {
echo 'Results included as an inline comment exactly how they are returned as of Jenkins 2.121, with $BUILD_NUMBER = 1'
echo 'No quotes, pipeline command in single quotes'
sh 'echo $BUILD_NUMBER' // 1
echo 'Double quotes are silently dropped'
sh 'echo "$BUILD_NUMBER"' // 1
echo 'Even escaped with a single backslash they are dropped'
sh 'echo \"$BUILD_NUMBER\"' // 1
echo 'Using two backslashes, the quotes are preserved'
sh 'echo \\"$BUILD_NUMBER\\"' // "1"