Posts

Java's ScheduledExecutorService example

Example of Java's ScheduledExecutorService to run a block of code once (with a delay) or repeatedly at fixed rate or fixed delay. ScheduledExecutorService can be a single threaded executor (used to execute in a coordinated way) or can be multi threaded executor (used to execute in parallel) import java.util.concurrent.Executors ; import java.util.concurrent.ScheduledExecutorService ; import java.util.concurrent.TimeUnit ; public class ExampleScheduledExecutor implements AutoCloseable { private final ScheduledExecutorService executorService = Executors . newSingleThreadScheduledExecutor (); // use newScheduledThreadPool() for running with multiple threads in parallel // private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(2); public ExampleScheduledExecutor ( long initialDelay , long fixedDelay ) { executorService .schedule(() -> executeOnlyOnce(), initialDelay , TimeUnit . SECONDS ); executorService .scheduleAtFixedR...

less - Unix / Linux command line reader cheat sheet

Useful pdf file that contains the common commands used in less command line reader  https://drive.google.com/file/d/1gxrGEPws6aJBsYa1LL6pkAMSkq-13hKI/view?usp=drive_link

vi - Unix / Linux command line editor cheat sheat

Useful pdf file that contains the common commands used in vi command line editor https://drive.google.com/file/d/1gog8Jn6xzvkVpanxpaX6m2rHKyWSQyc9/view?usp=drive_link

Jetbrains IDE - IntelliJ Customisation for Developer Productivity

The following changes to any Jetbrains IDE (IntelliJ) makes developers more productive. Settings Changes: Settings -> Appearance & Behaviour -> Appearance -> Zoom -> 90 or 100 or 110 based on Screen Resolution Settings -> Appearance & Behaviour -> Appearance -> Use custom font -> Size 16 Settings -> Appearance & Behaviour -> Appearance -> UI Options -> Use project colours in main toolbar -> Tick Settings -> Appearance & Behaviour -> Appearance -> UI Options -> Compact Mode -> Tick Settings -> System Settings -> Confirm before exiting the IDE -> Untick Settings -> System Settings -> Project -> Reopen projects on startup -> Tick Settings -> System Settings -> Project -> open project in : New window Settings -> Editor -> Font -> Size 16 Settings -> Editor -> General -> Soft Wraps -> Soft-wrap these files -> *.* Settings -> Editor -> General -> Breadcrumbs -...

sdkman - Multiple versions of Java JDK on Mac

Install sdkman curl -s "https://get.sdkman.io" | bash Verify Installation Open a new terminal and execute sdk version List candidates sdk list List available version for a candidate sdk list java Install Java LTS versions sdk install java 21.0.4-jbr sdk install java 17.0.12-jbr sdk install java 11.0.14.1-jbr Set default Java version sdk default java 21.0.4-jbr Create alias in $HOME/.zprofile to switch jdk echo "alias jdk_21_use='sdk default java 21.0.4-jbr'" >> $HOME/.zprofile echo "alias jdk_17_use='sdk default java 17.0.12-jbr'" >> $HOME/.zprofile echo "alias jdk_11_use='sdk default java 11.0.14.1-jbr'" >> $HOME/.zprofile List current default version of a candidate sdk current java List currently installed versions of a java sdk list java | grep 'installed' Install Maven sdk install maven List currently installed version of maven or other candidates sdk list maven | grep '*'

Spring Boot - Debug Webflux reactive application in IDE

With Spring Boot Webflux reactive application, to debug and identify the unexpected exception thrown from a handler while handling http request, put a debug / break point in the following method of the class. This will quickly reveal the exception along with stacktrace with your favourite IDE Class: org.springframework.web.reactive.DispatcherHandler Method: handleRequestWith Have a breakpoint in the line after Mono<HandlerResult> resultMono = adapter.handle(exchange, handler)  and evaluate as  resultMono.block() Happy Debugging !!!

Spring Boot - Debug Web MVC application in IDE

With Spring Boot Web MVC application, to debug and identify the unexpected exception thrown from a controller while handling http request, put a debug / break point in the following method of the class. This will quickly reveal the exception along with stacktrace with your favourite IDE Class: org.springframework.web.servlet.DispatcherServlet Method: doService Have a breakpoint in the finally block and evaluate as request.getAttribute("org.springframework.boot.web.servlet.error.DefaultErrorAttributes.ERROR") Happy Debugging !!!