Paul Sterl has written 57 articles

Azure DevOps Function App Deployment „No package found“

Problem This error occurs using the default MS deployment example. Even if we have an uploaded artefact Solution The problem is, that we have a deployment step by default but the MS documentation is outdated and so is missing the download step: As so we have to: Deploy Node Function App using Azure DevOps The…

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

Spring Boot Redirect to SwaggerUI

Problem Some services don’t have an UI and the OpenAPI/ Swagger UI should be used as default UI of the service. As so the root should be redirected directly to the SwaggerUI. Solution Just add a WebMvc redirect. Swagger Open API dependencies Spring Boot 2.x Ensure you check the current version: Spring Boot 3.x Ensure…

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,…