Skip to content

Instantly share code, notes, and snippets.

View alexengrig's full-sized avatar
☮️
Make jar, not war!

Grig Alex alexengrig

☮️
Make jar, not war!
View GitHub Profile
@alexengrig
alexengrig / build.gradle
Created March 2, 2023 16:37
Logback / Logstash / Fluentd
dependencies {
implementation 'net.logstash.logback:logstash-logback-encoder:7.2'
implementation 'org.fluentd:fluent-logger:0.3.4'
implementation 'com.sndyuk:logback-more-appenders:1.5.6'
}
@alexengrig
alexengrig / BaseFlagOnBranchCondition.java
Last active November 14, 2022 09:47
JUnit 5: Enable/disable test on master branche
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
import org.junit.jupiter.api.extension.ExecutionCondition;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.platform.commons.util.AnnotationUtils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
@alexengrig
alexengrig / LambdaFactory.java
Created September 12, 2021 16:50
Example of using LambdaMetafactory#metafactory
import java.lang.invoke.CallSite;
import java.lang.invoke.LambdaMetafactory;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.function.BiFunction;
@alexengrig
alexengrig / AtLeastOneBeanCondition.java
Last active August 24, 2022 13:07
Spring Bean Condition - at least one bean
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.annotation.MergedAnnotation;
import org.springframework.core.annotation.MergedAnnotations;
import org.springframework.core.type.AnnotatedTypeMetadata;
import org.springframework.lang.NonNull;
import java.util.Map;
@alexengrig
alexengrig / show_branch_by_creator.sh
Created July 14, 2020 10:10
Show remote branches by creator
git for-each-ref --format=' %(authorname) %09 %(refname)' --sort=authorname | grep /remotes/origin/
@alexengrig
alexengrig / set_gpg_pass_timeout
Last active July 2, 2020 11:58
Set timeout remembering password of GPG
# Add to ~/.gnupg/gpg-agent.conf
# 3600 - 1 hour, 86400 - 1 day
default-cache-ttl 3600
@alexengrig
alexengrig / several_git_configs
Last active March 17, 2022 22:34
Several git configs by git directory
# Add to ~/.gitconfig
[includeIf "gitdir:~/path/to/directory/first/"]
path = .gitconfig-1
[includeIf "gitdir:~/path/to/directory/second/"]
path = .gitconfig-2
# Example .gitconfig-1
[user]
email = my1@email.mail
name = My Name 1
@alexengrig
alexengrig / export_import_gpg.sh
Created June 24, 2020 14:29
Export/import gpg key
# show key (sec block)
gpg --list-keys
# export
gpg --output <public-key-filename> --armor --export <key> # mykey_pub.gpg
gpg --output <secret-key-filename> --armor --export-secret-key <key> # mykey_sec.gpg
# import
gpg --import <public-key-filename>
gpg --allow-secret-key-import --import <secret-key-filename>
@alexengrig
alexengrig / verify.sh
Last active July 2, 2020 12:02
Verify commits to Git
# creat key
gpg --full-generate-key
# show key (sec block)
gpg --list-secret-keys --keyid-format LONG
# print key and copy/past to GitHub
gpg --armor --export <key>
# set key
git config --global user.signingkey <key>
# enable key
git config --global commit.gpgsign true
@alexengrig
alexengrig / ParagraphReplacer.java
Last active June 7, 2020 17:52
Apache POI: Paragraph text replacer
import org.apache.poi.xwpf.usermodel.PositionInParagraph;
import org.apache.poi.xwpf.usermodel.TextSegment;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
/**