Skip to content

Instantly share code, notes, and snippets.

View bvfalcon's full-sized avatar

Vladimir V. Bychkov bvfalcon

View GitHub Profile
@bvfalcon
bvfalcon / Index.java
Created October 14, 2025 08:03
mail sender
import java.util.Date;
import javax.naming.InitialContext;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Named;
import jakarta.mail.Message;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
@bvfalcon
bvfalcon / gist:c71c1d3476334a4b4935012c73843513
Created April 17, 2025 14:48
HotswapAgent + JetBrains Runtime + Eclipse + GlassFish
Steps:
1. download and unpack JetBrains Runtime JVM ([Java 21](https://github.com/JetBrains/JetBrainsRuntime/releases?q=%22Release+21.%22&expanded=false), [Java 17](https://github.com/JetBrains/JetBrainsRuntime/releases?q=%22Release+17.%22&expanded=false)), appropriated to your OS (vanilla JBR is enougth).
2. download [latest HotswapAgent](https://github.com/HotswapProjects/HotswapAgent/releases) and copy to GLASSFISH_HOME/glassfish/domains/DOMAIN_NAME/lib/ext
3. in Eclipse IDE:
3.1. add JetBrains Runtime JVM into "Installed JREs" list
3.2. set JetBrains Runtime as JVM for GlassFish Server
3.3. Add VM arguments "-XX:+AllowEnhancedClassRedefinition -XX:HotswapAgent=external -javaagent:GLASSFISH_HOME/glassfish/domains/DOMAIN_NAME/lib/ext/hotswap-agent-VERSION.jar=autoHotswap=true" to GlassFish launch configuration properties
@bvfalcon
bvfalcon / LoggingAspect.aj
Last active August 14, 2024 10:02
Lombok + AspectJ + Maven
import java.util.Locale;
import java.text.NumberFormat;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class LoggingAspect {
@Around("execution(* *(..))")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
@bvfalcon
bvfalcon / fragment-pom.xml
Created December 7, 2022 13:00
use git information in project
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>5.0.0</version>
<executions>
<execution>
<id>add-git-info</id>
<phase>process-sources</phase>
<goals>
<goal>revision</goal>
@bvfalcon
bvfalcon / gpg-x509.txt
Created September 26, 2022 08:42
Generate X.509 Certificate with GnuPG
Creating X.509 Certificate from existed GPG
gpg -k --with-keygrip
gpgsm --gen-key > x.pem
Please select what kind of key you want:
(1) RSA
(2) Existing key
(3) Existing key from card
2
@bvfalcon
bvfalcon / gist:9d545b9da5bf7c170b27666056db9ee7
Created June 18, 2021 08:51
Enable @Inject javax.security.enterprise.SecurityContext in JSF 2.3
In case of Wildfly 22 helps adding those dependencies in pom.xml:
...
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId> <!-- or javaee-web-api -->
<version>8.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
FROM adoptopenjdk/openjdk11:jre-11.0.11_9-alpine as intermediate
# Minimize JRE distrib
RUN rm -rf /opt/java/openjdk/
COPY --from=buildcontainer /custom-jre/ /opt/java/openjdk/
# Copy without layers info
FROM alpine:3.13
COPY --from=intermediate / /
ENV JAVA_HOME=/opt/java/openjdk \
PATH="/opt/java/openjdk/bin:$PATH"
@bvfalcon
bvfalcon / gist:1df64ad8d27dc7130b85d2e97bd22a74
Last active December 8, 2021 17:12
Usage JDEPS and JLINK from maven to create custom JRE
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>