Paul Sterl has written 34 articles

Quartz integration in Spring

Why Quartz? motivation Spring comes already with an own timer and this is fine if we have very simple requirements and we don’t really care about state or on which pod the timer is actually running. To be more precise the timer/ job is running in each of our spring containers independently. Lets be honest,…

Disable @Scheduled timers for test in Spring

Problem As soon we have timers in our project they may cause issues in our integration tests, as they start running in the most undesirable situation. E.g. during the trigger a specific function which would usually be triggered by the timer. Solution In the easiest scenario if it is a in memory Spring test we…

Aspects with Annotations

Problem Define a pointcut for annotated methods. The most example are based only on @within or @annotation which has the downside that the aspect is added to all methods and the check of the annotation is executed during runtime. Solution Git Repository https://github.com/sterlp/training/tree/master/aspect Links https://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html https://docs.spring.io/spring-framework/docs/5.3.x/reference/html/core.html#aop-pointcuts-designators

Java language extensions

Java 15 https://www.oracle.com/java/technologies/javase/15-relnote-issues.html Records Preview (JEP 384) Example on Github Text Blocks (JEP 378) Example on Github Pattern Matching Type Checks (JEP 375) Example on Github Other Java 15 language changes Nashorn JavaScript Engine removed Java 14 https://www.oracle.com/java/technologies/javase/14-relnote-issues.html Switch Expressions (JEP 361) Helpful NullPointerExceptions (JEP 358) example Java 13 https://www.oracle.com/java/technologies/javase/13-relnote-issues.html Java 12 https://www.oracle.com/java/technologies/javase/12-relnote-issues.html

Clean Code

Jede Funktion macht genau eine Sache Damit wird sichergestellt das dieser eine klare API und Funktion hat und der Nutzer einer Methode nicht überrascht wird, zB indem es zu einem unerwarteten Seiteneffekt führt. Beispiele: „readPersonById“ ändern zudem auch den Status in der DB, weil es den Zugriff protokolliert „formatDate“ vom DateFormatter führt zu einem Fehler,…

Install minishift

Install on Windows Startup Guide Note: Windows 10 Pro or higher is required for Hyper-V — the install was recommended to be on the C: drive. Auto Install Check that your CPU virtualization is enabled Download minishift and extract it into a folder Add your user to the Hyper-V Administrators Open Command-Line as Admin User…

Reconnecting JMS listener

Problem In some projects we still may need to manually to reconnect to our JMS provider. For what ever reason the framework or the container cannot do the job for us. As so we have to ensure that an once registered JMS listener re-register itself if something bad happens. Note: Check first if your container…