{"id":13694681,"url":"https://github.com/rieckpil/blog-tutorials","last_synced_at":"2025-05-14T15:05:43.672Z","repository":{"id":38348698,"uuid":"135796936","full_name":"rieckpil/blog-tutorials","owner":"rieckpil","description":":star: Codebase for various tutorials  about Java, Spring Boot, AWS, Kotlin, and Testing","archived":false,"fork":false,"pushed_at":"2025-05-08T23:10:19.000Z","size":26526,"stargazers_count":789,"open_issues_count":14,"forks_count":762,"subscribers_count":51,"default_branch":"master","last_synced_at":"2025-05-09T00:20:46.045Z","etag":null,"topics":["aws","java","java-ee","jdk","junit","kotlin","maven","microprofile","postgresql","react","spring-boot","spring-framework","spring-security","spring-test","spring-web","spring-webclient","spring-webflux","testcontainers"],"latest_commit_sha":null,"homepage":"https://rieckpil.de/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rieckpil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-06-02T07:25:24.000Z","updated_at":"2025-04-30T13:58:06.000Z","dependencies_parsed_at":"2025-04-11T14:07:50.297Z","dependency_job_id":"675eac54-33d9-4830-8d5e-3c6a2562cf53","html_url":"https://github.com/rieckpil/blog-tutorials","commit_stats":{"total_commits":1048,"total_committers":11,"mean_commits":95.27272727272727,"dds":"0.35591603053435117","last_synced_commit":"a61f0e1b11f9649ceab54959dd8b16879a5ca792"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fblog-tutorials","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fblog-tutorials/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fblog-tutorials/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fblog-tutorials/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rieckpil","download_url":"https://codeload.github.com/rieckpil/blog-tutorials/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254168846,"owners_count":22026206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","java","java-ee","jdk","junit","kotlin","maven","microprofile","postgresql","react","spring-boot","spring-framework","spring-security","spring-test","spring-web","spring-webclient","spring-webflux","testcontainers"],"created_at":"2024-08-02T17:01:37.229Z","updated_at":"2025-05-14T15:05:43.635Z","avatar_url":"https://github.com/rieckpil.png","language":"Java","readme":"# Hands-On Code Examples for Tutorials on [rieckpil.de](https://rieckpil.de/)\n\n[![Build Spring Boot Parent](https://github.com/rieckpil/blog-tutorials/actions/workflows/maven-parent.yml/badge.svg)](https://github.com/rieckpil/blog-tutorials/actions/workflows/maven-parent.yml) [![Build Non-Spring Boot Projects](https://github.com/rieckpil/blog-tutorials/actions/workflows/maven.yml/badge.svg)](https://github.com/rieckpil/blog-tutorials/actions/workflows/maven.yml)\n\nIf you find an issue or bug within the provided code examples, feel free to open an [issue](https://github.com/rieckpil/blog-tutorials/issues), and we'll take a look.\n\n## Articles about Testing\n\n* [Generating Java Test Data With Instancio](https://rieckpil.de/generating-java-test-data-with-instancio/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/generating-test-data-with-instancio))\n* [Reducing Testcontainers Execution Time with JUnit 5 Callbacks](https://rieckpil.de/reducing-testcontainers-execution-time-with-junit-5-callbacks/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/reducing-testcontainers-execution-time))\n* [Validating Caching Mechanism with Testcontainers in Spring Boot](https://rieckpil.de/testing-caching-mechanism-with-testcontainers-in-spring-boot/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/caching-validation-testcontainers))\n* [Parallelizing Only Java Unit Tests with JUnit 5 and Maven](https://rieckpil.de/parallelize-only-java-unit-tests-with-junit-5-and-maven/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/maven-junit-paralellize-tests))\n* [Test Thymeleaf Controller Endpoints with Spring Boot and MockMvc](https://rieckpil.de/test-thymeleaf-controller-endpoints-with-spring-boot-and-mockmvc/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-thymeleaf-testing))\n* [Spring Boot Testing: MockMvc vs. WebTestClient vs. TestRestTemplate](https://rieckpil.de/spring-boot-testing-mockmvc-vs-webtestclient-vs-testresttemplate/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-test-mockmvc-webtestclient-testresttemplate))\n* [Amazon SQS Listener Testing with @SqsTest (Spring Cloud AWS)](https://rieckpil.de/amazon-sqs-listener-testing-with-sqstest-spring-cloud-aws/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-cloud-aws-sqs-testing))\n* [Spring Boot Test Spring Web MVC HandlerInterceptor](https://rieckpil.de/spring-boot-test-spring-web-mvc-handlerinterceptor/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-web-mvc-testing))\n* [LaunchDarkly Java Testing and Local Development Hints](https://rieckpil.de/launchdarkly-java-testing-and-local-development-hints/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/launchdarkly-java-development-testing-hints))\n* [What the Heck Is the SpringExtension Used For?](https://rieckpil.de/what-the-heck-is-the-springextension-used-for/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-testing-tips-and-tricks))\n* [Maven Setup For Testing Java Applications](https://rieckpil.de/maven-setup-for-testing-java-applications/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/testing-java-applications-with-maven))\n* [Creating Deep Stubs With Mockito to Chain Method Stubbing](https://rieckpil.de/creating-deep-stubs-with-mockito-to-chain-method-stubbing/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/mockito-tips-and-tricks))\n* [Spring Boot Unit and Integration Testing Overview](https://rieckpil.de/spring-boot-unit-and-integration-testing-overview/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-testing-tips-and-tricks))\n* [Initialization Strategies With Testcontainers For Integration Tests](https://rieckpil.de/initialization-strategies-with-testcontainers-for-integration-tests/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/testcontainers-youtube-series))\n* [Record Spring Events When Testing Spring Boot Applications](https://rieckpil.de/record-spring-events-when-testing-spring-boot-applications/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-test-spring-events))\n* [Testing Spring Boot Applications With REST Assured](https://rieckpil.de/testing-spring-boot-applications-with-rest-assured/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-rest-assured))\n* [How to Test Java HTTP Client Usages (e.g OkHttp, Apache HttpClient)](https://rieckpil.de/how-to-test-java-http-client-usages-e-g-okhttp-apache-httpclient/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/test-java-http-clients))\n* [Spring Boot Test Slices Overview and Usage](https://rieckpil.de/spring-boot-test-slices-overview-and-usage/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-test-slice-annotations))\n* [Guide to Testing Spring Boot applications with MockMvc](https://rieckpil.de/guide-to-testing-spring-boot-applications-with-mockmvc/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/testing-spring-boot-applications-with-mockmvc))\n* [MongoDB Testcontainers Setup for @DataMongoTest](https://rieckpil.de/mongodb-testcontainers-setup-for-datamongotest/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-data-mongo-test-testcontainers))\n* [Mocking Statics Methods with Mockito (Kotlin \u0026 Java)](https://rieckpil.de/mocking-static-methods-with-mockito-java-kotlin/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/mockito-tips-and-tricks))\n* [Mock Java Constructors And Their Object Creation With Mockito](https://rieckpil.de/mock-java-constructors-and-their-object-creation-with-mockito/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/mockito-tips-and-tricks))\n* [Write Concise Web Tests With Selenide for Java Projects](https://rieckpil.de/write-concise-web-tests-with-selenide-for-java-projects/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/write-concise-web-tests-with-selenide))\n* [Test Your Spring MVC Controller with the WebTestClient and MockMvc](https://rieckpil.de/test-your-spring-mvc-controller-with-webtestclient-against-mockmvc/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-mockmvc-with-webtestclient))\n* [Test Your Spring Boot JPA Persistence Layer With @DataJpaTest](https://rieckpil.de/test-your-spring-boot-jpa-persistence-layer-with-datajpatest/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-datajpatest))\n* [Override Spring Boot Configuration Properties For Tests](https://rieckpil.de/override-spring-boot-configuration-properties-for-tests/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-override-test-properties))\n* [Use GreenMail For Spring Mail (JavaMailSender) JUnit 5 Integration Tests](https://rieckpil.de/use-greenmail-for-spring-mail-javamailsender-junit-5-integration-tests/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-test-mail-sending))\n* [Write Spring Boot integration tests with Testcontainers (JUnit 4 and 5)](https://rieckpil.de/howto-write-spring-boot-integration-tests-with-a-real-database/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-integration-tests-testcontainers))\n* [Reuse containers with Testcontainers for fast integration tests](https://rieckpil.de/reuse-containers-with-testcontainers-for-fast-integration-tests/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/testcontainers-reuse-existing-containers))\n* [Test Spring WebClient with MockWebServer from OkHttp](https://rieckpil.de/test-spring-webclient-with-mockwebserver-from-okhttp/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-client-testing-with-mockwebserver))\n* [Test Spring applications using AWS with Testcontainers and LocalStack](https://rieckpil.de/test-spring-applications-using-aws-with-testcontainers-and-localstack/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-aws-integration-tests))\n* [Write integration tests for your Spring WebSocket endpoints](https://rieckpil.de/write-integration-tests-for-your-spring-websocket-endpoints/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-websocket-integration-tests))\n* [Improve build times with Context Caching from Spring Test](https://rieckpil.de/improve-build-times-with-context-caching-from-spring-test/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/))\n* [Testing Spring Boot Applications with Kotlin and Testcontainers](https://rieckpil.de/testing-spring-boot-applications-with-kotlin-and-testcontainers/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-kotlin-testcontainers))\n* [Write JPA integration tests with Java EE](https://rieckpil.de/howto-jpa-integration-tests-with-java-ee/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/jpa-integration-tests-java-ee))\n* [Simple load-testing with Apache Benchmark](https://rieckpil.de/howto-simple-load-testing-with-apache-benchmark/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/load-testing-your-application))\n* [Java Benchmarking with JMH (Java Microbenchmark Harness)](https://rieckpil.de/howto-java-benchmarking-with-jmh-java-microbenchmark-harness/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/java-benchmarking-with-jmh))\n* [Consumer-Driven Contracts with Spring Cloud Contract](https://rieckpil.de/howto-consumer-driven-contracts-with-spring-cloud-contract/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/consumer-driven-contracts-with-spring-cloud-contract))\n* [Jakarta EE integration tests with MicroShed Testing](https://rieckpil.de/jakarta-ee-integration-tests-with-microshed-testing/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/review-microshed-testing))\n* [Spring Boot Integration Tests with WireMock and JUnit 5](https://rieckpil.de/spring-boot-integration-tests-with-wiremock-and-junit-5/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-integration-tests-wiremock))\n* [Spring WebTestClient for efficient testing of your REST API](https://rieckpil.de/spring-webtestclient-for-efficient-testing-of-your-rest-api/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-test-client))\n* [Spring Boot Functional Tests with Selenium and Testcontainers](https://rieckpil.de/spring-boot-functional-tests-with-selenium-and-testcontainers/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-selenium-integration-tests))\n* [Testing your Spring RestTemplate with @RestClientTest](https://rieckpil.de/testing-your-spring-resttemplate-with-restclienttest/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/testing-spring-rest-template))\n* [Five JUnit 5 features you might not know yet](https://rieckpil.de/five-junit-5-features-you-might-not-know-yet/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/five-unknown-junit-5-features))\n* [Testing your JSON serialization with @JsonTest](https://rieckpil.de/testing-your-json-serialization-with-jsontest) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/testing-json-serialization-spring))\n\n## Articles about Spring Boot\n\n* [Lock @Scheduled Tasks With ShedLock And Spring Boot](https://rieckpil.de/lock-scheduled-tasks-with-shedlock-and-spring-boot/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-shedlock))\n* [Best Practices Flyway and Hibernate with Spring Boot](https://rieckpil.de/howto-best-practices-for-flyway-and-hibernate-with-spring-boot/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-hibernate-flyway-best-practices))\n* [Up- and download files with React and Spring Boot](https://rieckpil.de/howto-up-and-download-files-with-react-and-spring-boot/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-uploading-and-downloading-files-with-react))\n* [Expose git information with Spring Boot’s Actuator](https://rieckpil.de/howto-expose-git-information-with-spring-boots-actuator/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/expose-git-information-actuator))\n* [Lazy Loading of JPA attributes with Hibernate](https://rieckpil.de/how-to-lazy-loading-of-jpa-attributes-with-hibernate/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/lazy-loading-of-jpa-attributes-with-hibernate))\n* [Send E-Mails with SendGrid and Spring Boot](https://rieckpil.de/howto-send-e-mails-with-sendgrid-and-spring-boot/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/send-emails-with-sendgrid-and-spring-boot))\n* [Dynamic SQL Querying \u0026 Pagination with Querydsl and Spring Data JPA](https://rieckpil.de/howto-dynamic-sql-querying-pagination-with-querydsl-and-spring-data-jpa) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/dynamic-sql-querying-with-pagination))\n* [Remote Debug Spring Boot applications (IntelliJ IDEA + Eclipse)](https://rieckpil.de/howto-remote-debug-spring-boot-applications-intellij-idea-eclipse/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/remote-debugging-spring-boot-application))\n* [Use Spring’s WebClient for RESTful communication](https://rieckpil.de/howto-use-springs-webclient-for-restful-communication/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-client-demo))\n* [Generate random data in Java using Java Faker](https://rieckpil.de/howto-generate-random-data-in-java-using-java-faker/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/random-data-in-java-using-java-faker))\n* [Feature Toggles for Spring Boot applications with Togglz](https://rieckpil.de/howto-feature-toggles-for-spring-boot-applications-with-togglz/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-feature-toggles-with-togglz))\n* [Spring WebClient OAuth2 Integration for Spring WebFlux](https://rieckpil.de/spring-webclient-oauth2-integration-using-github-as-an-example/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-client-oauth2-reactive-stack))\n* [Spring WebClient OAuth2 Integration for Spring Web (Servlet)](https://rieckpil.de/spring-webclient-oauth2-integration-for-spring-web-servlet/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-client-oauth2-servlet-stack))\n* [Expose Metrics of Spring WebClient using Spring Boot Actuator](https://rieckpil.de/expose-metrics-of-spring-webclient-using-spring-boot-actuator) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-client-expose-metrics))\n* [Spring WebClient exchange vs. retireve a comparison](https://rieckpil.de/spring-webclient-exchange-vs-retrieve-a-comparison/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-client-exchange-retrieve))\n* [Customize Spring WebClient with WebClientCustomizer](https://rieckpil.de/customize-spring-webclient-with-webclientcustomizer/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-web-client-customizing))\n\n## Articles about AWS\n\n* [AWS Lambda with Kotlin and Spring Cloud Function](https://rieckpil.de/aws-lambda-with-kotlin-and-spring-cloud-function/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/serverless-java-aws-examples/spring-cloud-function-kotlin-aws))\n* [OIDC Logout With AWS Cognito and Spring Security](https://rieckpil.de/oidc-logout-with-aws-cognito-and-spring-security/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-security-aws-cognito-thymeleaf))\n* [Java AWS Lambda Container Image Support (Complete Guide)](https://rieckpil.de/java-aws-lambda-container-image-support-complete-guide/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/serverless-java-aws-examples/java-aws-lambda-custom-image))\n* [Resolving Spring Boot properties using the AWS Parameter Store (SSM)](https://rieckpil.de/resolving-spring-boot-properties-using-the-aws-parameter-store-ssm/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-aws-ssm-parameter-resolving))\n* [Java AWS Lambda with Serverless and Maven - Thumbnail Generator](http://rieckpil.de/aws-lambda-with-serverless-java-and-maven-thumbnail-generator) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/serverless-java-aws-examples/thumbnail-generator))\n* [Java AWS Lambda with Spring Cloud Function](https://rieckpil.de/java-aws-lambda-with-spring-cloud-function/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/serverless-java-aws-examples/spring-cloud-function-aws))\n* [Thymeleaf OAuth2 Login with Spring Security and AWS Cognito](https://rieckpil.de/thymeleaf-oauth2-login-with-spring-security-and-aws-cognito/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-security-aws-cognito-thymeleaf))\n\n## Articles about Azure\n\n* [Using Azurite to Test Azure Blob Storage Interactions in Spring Boot](https://rieckpil.de/using-azurite-to-test-azure-blob-interactions-in-spring-boot/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/azure-blob-storage-azurite-testing))\n\n## Articles about Kotlin\n\n* [Create Spring Boot applications with Maven and Kotlin](https://rieckpil.de/create-spring-boot-applications-with-maven-and-kotlin/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-with-kotlin))\n* [Write Java EE applications with Kotlin](https://rieckpil.de/howto-write-java-ee-applications-with-kotlin/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/java-ee-with-kotlin))\n* [Writing JavaScript code with Kotlin using Gradle](https://rieckpil.de/writing-javascript-code-with-kotlin-using-gradle/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/kotlin-javascript-transpiling-gradle))\n\n\n## Articles about Java EE/Jakarta EE/MicroProfile\n\n* [Avoid repeating attributes in JPA entities](https://rieckpil.de/howto-avoid-repeating-attributes-in-jpa-entities/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/avoid-repeating-attributes-in-jpa-entities))\n* [Deploy a Spring Boot Uber-Jar application within Open Liberty](https://rieckpil.de/howto-run-spring-boot-uber-jar-application-within-open-liberty/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/spring-boot-with-open-liberty/))\n* [Simple CRUD table with JSF and PrimeFaces](https://rieckpil.de/howto-simple-crud-table-with-jsf-2-3-and-primefaces/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/simple-crud-table-with-jsf-and-primefaces))\n* [Simple JSF 2.3 Login with Java EE 8 Security API](https://rieckpil.de/howto-simple-form-based-authentication-for-jsf-2-3-with-java-ee-8-security-api/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/jsf-simple-login-with-java-ee-security-api))\n* [Simple JMS application with the embedded messaging engine in Open Liberty](https://rieckpil.de/howto-simple-jms-application-with-the-embedded-messaging-engine-in-open-liberty/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/embedded-messaging-engine-open-liberty))\n* [JAX-RS user-based API rate-limiting with JSR-375](https://rieckpil.de/howto-jax-rs-user-based-rate-limiting-with-jsr-375/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/jax-rs-api-rate-limiting-with-jsr-375))\n* [Generate documents from Word templates with Docx4j on Wildfly 14](https://rieckpil.de/howto-generate-documents-from-word-templates-with-docx4j-on-wildfly-14/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/generate-documents-from-word-templates-with-docx4j-on-wildfly14))\n* [MicroProfile JWT Authentication with Keycloak and React](https://rieckpil.de/howto-microprofile-jwt-authentication-with-keycloak-and-react/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/microprofile-jwt-keycloak-auth))\n* [Generate PDFs (Apache PDFBox) including Charts (XChart) with Java EE](https://rieckpil.de/howto-generate-pdfs-apache-pdfbox-including-charts-xchart-with-java-ee/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/charts-in-pdf-java-ee))\n* [Up- and downloading files with Java EE and Web Components](https://rieckpil.de/howto-up-and-download-files-with-java-ee-and-web-components/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/java-ee-uploading-and-downloading-files-with-web-components))\n* [RESTEasy (WildFly) file up- and downloading](https://rieckpil.de/howto-resteasy-wildfly-jax-rs-2-1-file-up-and-downloading/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/rest-easy-file-uploading-and-downloading))\n* [Messaging with JMS using Payara with embedded OpenMQ broker](https://rieckpil.de/howto-messaging-with-jms-using-payara-with-embedded-openmq-broker/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/messaging-with-jms-using-payara))\n* [Nice-looking JSF 2.3 apps with PrimeFaces 7.0](https://rieckpil.de/howto-create-nice-looking-jsf-2-3-applications-with-primefaces-7-0) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/nice-looking-jsf-apps-with-prime-faces-7))\n* [Send emails with Java EE using Payara](https://rieckpil.de/howto-send-emails-with-java-ee-using-payara) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/java-ee-sending-mails))\n* [Deploy Java EE applications to Kubernetes](https://rieckpil.de/howto-deploy-java-ee-applications-to-kubernetes) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/java-ee-kubernetes-deployment))\n* [MicroProfile Rest Client for RESTful communication](https://rieckpil.de/howto-microprofile-rest-client-for-restful-communication/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/microprofile-rest-client-for-restful-communication))\n* [Intercept method calls using CDI interceptors](https://rieckpil.de/howto-intercept-method-calls-using-cdi-interceptors/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/intercept-methods-with-cdi-interceptors))\n* [Bootstrap your first Jakarta EE 8 application](https://rieckpil.de/howto-bootstrap-your-first-jakarta-ee-8-application/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/bootstrap-jakarta-ee-8-application))\n* [Jakarta EE and MicroProfile applications with React and PostgreSQL](https://rieckpil.de/jakarta-ee-and-microprofile-applications-with-react-and-postgresql) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/guide-to-jakarta-ee-with-react-and-postgresql))\n* [Create real-time applications with Jakarta EE WebSocket](https://rieckpil.de/create-real-time-applications-with-jakarta-ee-websocket/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/websockets-with-jakarta-ee))\n* [Jakarta EE \u0026 React file up- and download using Java 11 and TypeScript](https://rieckpil.de/jakarta-ee-react-file-up-and-download-using-java-11-and-typescript) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/jakarta-ee-react-file-handling))\n\n## Miscellaneous\n\n* [Automatic Java Code Migration with OpenRewrite (Mockito Example)](https://rieckpil.de/automatic-java-code-migration-with-openrewrite-mockito-example) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/open-rewrite-example))\n* [Simple database documentation with SchemaSpy](https://rieckpil.de/howto-simple-database-documentation-with-schemaspy/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/simple-database-documentation-with-schema-spy))\n* [Preview PDF files with React](https://rieckpil.de/howto-pdf-preview-with-react/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/pdf-preview-react))\n* [Writing PostgreSQL functions with Java using PL/Java](https://rieckpil.de/howto-writing-postgresql-functions-with-java-using-pl-java/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/running-java-within-postgres))\n* [Deploy a React application to Kuberntes](https://dev.to/rieckpil/deploy-a-react-application-to-kubernetes-in-5-easy-steps-516j) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/react-app-kubernetes))\n* [Create your own Maven Archetype in 5 simple steps](https://rieckpil.de/create-your-own-maven-archetype-in-5-simple-steps/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/custom-maven-archetype))\n* [GitHub Actions for Java - automate your Maven workflows](https://rieckpil.de/github-actions-for-java-automate-your-maven-workflows/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/github-actions-java-maven))\n\n## WHATIS? Articles\n\n* [JavaServer Faces. An introduction to JSF 2.3](https://rieckpil.de/whatis-java-server-faces-an-introduction-to-jsf-2-3/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/hello-world-jsf-2.3))\n* [GraalVM - an introduction to the next level JVM](https://rieckpil.de/whatis-graalvm/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/graalvm-intro))\n* [MicroProfile Config](https://rieckpil.de/whatis-eclipse-microprofile-config/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-config))\n* [MicroProfile Fault Tolerance](https://rieckpil.de/whatis-eclipse-microprofile-fault-tolerance/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-fault-tolerance))\n* [MicroProfile Metrics](https://rieckpil.de/whatis-eclipse-microprofile-metrics/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-metrics))\n* [MicroProfile JWT Auth](https://rieckpil.de/whatis-eclipse-microprofile-jwt-auth/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-jwt-auth))\n* [MicroProfile Rest Client](https://rieckpil.de/whatis-eclipse-microprofile-rest-client/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-rest-client))\n* [MicroProfile OpenAPI](https://rieckpil.de/whatis-eclipse-microprofile-openapi/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-open-api))\n* [MicroProfile OpenTracing](https://rieckpil.de/whatis-eclipse-microprofile-opentracing/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-open-tracing))\n* [MicroProfile Health](https://rieckpil.de/whatis-eclipse-microprofile-health/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/microprofile-health))\n* [Contexts and Dependency Injection (CDI)](https://rieckpil.de/whatis-contexts-and-dependency-injection-cdi/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/cdi))\n* [Jakarta RESTful Web Services (JAX-RS)](https://rieckpil.de/whatis-jakarta-restful-web-services-jax-rs/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/jax-rs))\n* [JSON Binding (JSON-B)](https://rieckpil.de/whatis-json-binding-json-b/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/json-b))\n* [JSON Processing (JSON-P)](https://rieckpil.de/whatis-json-processing-json-p/) ([Sources](https://github.com/rieckpil/getting-started-with-eclipse-microprofile/tree/master/json-p))\n\n## REVIEW Articles\n\n* [What’s new in Spring Boot 2.1](https://rieckpil.de/review-whats-new-in-spring-boot-2-1/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/whats-new-in-spring-boot-2.1))\n* [What's new in Spring Boot 2.2](https://rieckpil.de/review-whats-new-in-spring-boot-2-2/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/whats-new-in-spring-boot-2.2))\n* [What's new in Spring Boot 2.3](https://rieckpil.de/whats-new-in-spring-boot-2-3/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/whats-new-in-spring-boot-2.3))\n* [What's new in MicroProfile 3.1](https://rieckpil.de/review-whats-new-in-microprofile-3-1/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/whats-new-in-microprofile-3.1))\n* [Improved Java/Jakarta EE productivity with Adam Bien’s WAD (Watch and Deploy)](https://rieckpil.de/review-improved-java-jakarta-ee-productivity-with-adam-biens-wad-watch-and-deploy/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/improved-java-ee-productivity-with-wad))\n* [5 Java 9 Features you might not know yet](https://rieckpil.de/review-5-java-9-features-you-might-not-know-yet/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/five-java-9-features))\n* [Top 3 Maven Plugins to ensure Quality and Security for your project](https://rieckpil.de/top-3-maven-plugins-to-ensure-quality-and-security-for-your-project/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/maven-plugins-to-ensure-quality))\n* [Joyful Open Liberty Developer Experience with Liberty Maven Plugin](https://rieckpil.de/joyful-open-liberty-developer-experience-with-liberty-maven-plugin/) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/open-liberty-maven-plugin-review))\n","funding_links":[],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frieckpil%2Fblog-tutorials","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frieckpil%2Fblog-tutorials","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frieckpil%2Fblog-tutorials/lists"}