├── .broken-link-config.json ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug-or-issue-report.md │ └── general-questions.md └── workflows │ ├── broken-links.yml │ ├── gradle.yml │ ├── maven-parent.yml │ ├── maven.yml │ └── sampleJavaMavenProject.yml ├── .gitignore ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .pre-commit-config.yaml ├── .snippets ├── blogReadme.code-snippets └── blogReadme.idea ├── LICENSE ├── README.md ├── application-server-cheatsheet ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── module.xml ├── pom.xml ├── server.xml ├── src │ ├── main │ │ ├── java │ │ │ └── sample │ │ │ │ ├── JAXRSConfiguration.java │ │ │ │ └── SampleResource.java │ │ ├── resources │ │ │ └── META-INF │ │ │ │ ├── microprofile-config.properties │ │ │ │ └── persistence.xml │ │ └── webapp │ │ │ └── WEB-INF │ │ │ ├── beans.xml │ │ │ └── payara-web.xml │ └── test │ │ └── java │ │ └── sample │ │ └── SampleTest.java └── wad.jar ├── avoid-repeating-attributes-in-jpa-entities ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── blog │ │ │ └── rieckpil │ │ │ ├── Application.java │ │ │ ├── BaseEnterpriseEntity.java │ │ │ ├── Customer.java │ │ │ ├── CustomerRepository.java │ │ │ ├── DatabaseFiller.java │ │ │ ├── Product.java │ │ │ └── ProductRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── blog │ └── rieckpil │ └── ApplicationTests.java ├── aws-cdk-java-introduction ├── .gitignore ├── .java-version ├── README.md ├── aws-cdk-constructs-overview.json ├── aws-cdk-constructs-overview.png ├── cdk.json ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── myorg │ ├── AwsCdkJavaIntroductionApp.java │ ├── L1ConstructsStack.java │ ├── L2ConstructsStack.java │ └── L3ConstructsStack.java ├── azure-blob-storage-azurite-testing ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── README.md ├── lombok.config ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ ├── Application.java │ │ │ ├── configuration │ │ │ ├── AzureConfiguration.java │ │ │ └── AzureConfigurationProperties.java │ │ │ └── service │ │ │ └── StorageService.java │ └── resources │ │ └── application.yaml │ └── test │ └── java │ └── de │ └── rieckpil │ ├── helper │ ├── AzureBlobStorageInitializer.java │ └── InitializeAzureBlobStorage.java │ └── service │ └── StorageServiceIT.java ├── bootstrap-jakarta-ee-8-application ├── .gitignore ├── Dockerfile ├── README.md ├── build.gradle ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── JAXRSConfiguration.java │ │ ├── UserProvider.java │ │ └── UserResource.java │ ├── resources │ └── META-INF │ │ └── persistence.xml │ └── webapp │ └── WEB-INF │ └── beans.xml ├── buildGradleJdk8Projects.sh ├── buildJdk11Projects.sh ├── buildJdk17Projects.sh ├── buildJdk8Projects.sh ├── caching-validation-testcontainers ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── lombok.config ├── mvnw ├── mvnw.cmd ├── openapi.yaml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ ├── Application.java │ │ │ ├── configuration │ │ │ └── RedisConfiguration.java │ │ │ ├── controller │ │ │ └── WizardController.java │ │ │ ├── dto │ │ │ ├── WizardCreationRequestDto.java │ │ │ └── WizardDto.java │ │ │ ├── entity │ │ │ ├── HogwartsHouse.java │ │ │ └── Wizard.java │ │ │ ├── repository │ │ │ ├── HogwartsHouseRepository.java │ │ │ └── WizardRepository.java │ │ │ ├── service │ │ │ └── WizardService.java │ │ │ └── utility │ │ │ └── SortingHatUtility.java │ └── resources │ │ ├── application.yaml │ │ └── db │ │ └── migration │ │ ├── V001__creating_database_tables.sql │ │ ├── V002__adding_hogwarts_houses.sql │ │ └── V003__adding_wizards.sql │ └── test │ └── java │ └── de │ └── rieckpil │ ├── helper │ ├── InitializeMysqlContainer.java │ ├── InitializeRedisContainer.java │ ├── MySQLDataSourceInitializer.java │ └── RedisCacheInitializer.java │ ├── service │ └── WizardServiceIT.java │ └── utility │ └── SortingHatUtilityIT.java ├── charts-in-pdf-java-ee ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml ├── server.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── JAXRSConfiguration.java │ │ ├── PdfGenerator.java │ │ └── ReportResource.java │ ├── resources │ └── META-INF │ │ ├── microprofile-config.properties │ │ └── persistence.xml │ └── webapp │ └── WEB-INF │ ├── beans.xml │ ├── ibm-web-ext.xml │ └── payara-web.xml ├── consumer-driven-contracts-with-spring-cloud-contract ├── README.md ├── book-store-client │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── MavenWrapperDownloader.java │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── de │ │ │ │ └── rieckpil │ │ │ │ └── blog │ │ │ │ ├── BookClient.java │ │ │ │ └── BookStoreClientApplication.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── BookClientTest.java │ │ └── BookStoreClientApplicationTests.java └── book-store-server │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Book.java │ │ │ ├── BookController.java │ │ │ ├── BookService.java │ │ │ └── BookStoreServerApplication.java │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── BaseTest.java │ │ └── BookStoreServerApplicationTests.java │ └── resources │ └── contracts │ └── shouldReturnBooks.groovy ├── custom-maven-archetype ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ └── main │ └── resources │ ├── META-INF │ ├── archetype-post-generate.groovy │ └── maven │ │ └── archetype-metadata.xml │ └── archetype-resources │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── myScript.sh │ ├── pom.xml │ ├── server.xml │ └── src │ ├── main │ ├── java │ │ ├── JAXRSConfiguration.java │ │ └── SampleResource.java │ ├── resources │ │ └── META-INF │ │ │ └── persistence.xml │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── ibm-web-ext.xml │ └── test │ └── java │ └── SampleTest.java ├── demo-crud-application ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Book.java │ │ │ ├── BookController.java │ │ │ ├── BookInitializer.java │ │ │ ├── BookNotFoundException.java │ │ │ ├── BookRepository.java │ │ │ ├── BookRequest.java │ │ │ ├── BookService.java │ │ │ └── DemoCrudApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── BookControllerIT.java │ ├── BookControllerTest.java │ └── DemoCrudApplicationTests.java ├── dependency-version-update-plugin ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ └── Application.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTests.java ├── deploy-spring-boot-to-gke ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── deployment.yaml ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── DeploySpringBootToGkeApplication.java │ │ │ └── HelloWorldController.java │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── DeploySpringBootToGkeApplicationTests.java │ └── resources │ └── application.properties ├── deploy-spring-boot-to-local-k8s ├── .gitignore ├── .java-version ├── Dockerfile ├── README.md ├── deployment.yml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── DeploySpringBootToLocalK8sApplication.java │ │ │ └── MessageController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── DeploySpringBootToLocalK8sApplicationTests.java ├── difference-between-mock-and-mockbean ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── docs │ ├── spring-test-context-mockbean-example.drawio │ └── spring-test-context-mockbean-example.png ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── ExpensiveRealtimeStockApiClient.java │ │ │ ├── StockApiClient.java │ │ │ ├── StockController.java │ │ │ └── StockService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTest.java │ ├── StockControllerTest.java │ └── StockServiceTest.java ├── dynamic-sql-querying-with-pagination ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── tutorials │ │ │ ├── DynamicSqlQueryingWithPaginationApplication.java │ │ │ ├── Person.java │ │ │ ├── PersonController.java │ │ │ ├── PersonLoader.java │ │ │ └── PersonRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── tutorials │ └── DynamicSqlQueryingWithPaginationApplicationTests.java ├── embedded-messaging-engine-open-liberty ├── .gitignore ├── Dockerfile ├── README.md ├── derby.jar ├── pom.xml ├── server.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── CustomMessage.java │ │ ├── JmsMessageReader.java │ │ ├── JmsMessageSender.java │ │ └── SimpleTimer.java │ ├── resources │ └── META-INF │ │ └── persistence.xml │ └── webapp │ └── WEB-INF │ └── beans.xml ├── expose-git-information-actuator ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ └── Application.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTests.java ├── five-java-9-features ├── .gitignore ├── README.md ├── pom.xml └── src │ └── main │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── CollectionFactoryMethods.java │ ├── ObjectsRequireNonNullUpdate.java │ ├── ProcessHandleExample.java │ └── StreamsUpdate.java ├── five-unknown-junit-5-features ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ConditionalDisabledTest.java │ │ ├── DisabledOnMidnightCondition.java │ │ ├── NestedTest.java │ │ ├── OrderedExecutionTest.java │ │ ├── ParallelTest.java │ │ ├── ParameterInjectionTest.java │ │ └── RandomUUIDParameterResolver.java │ └── resources │ └── junit-platform.properties ├── generate-documents-from-word-templates-with-docx4j-on-wildfly14 ├── .gitignore ├── .java-version ├── Dockerfile ├── README.md ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── DocxGenerator.java │ │ ├── JAXRSConfiguration.java │ │ ├── MessagesResource.java │ │ └── UserInformation.java │ ├── resources │ ├── docx4j.properties │ └── template.docx │ └── webapp │ └── WEB-INF │ ├── beans.xml │ └── jboss-deployment-structure.xml ├── generating-test-data-with-instancio ├── .gitignore ├── .mvn │ └── wrapper │ │ └── maven-wrapper.properties ├── README.md ├── lombok.config ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ └── de │ │ └── rieckpil │ │ ├── Application.java │ │ └── controller │ │ └── UserController.java │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ ├── BeanValidationTest.java │ │ ├── ClassSettingOverrideTest.java │ │ ├── CustomizeFieldsTest.java │ │ ├── FieldsIgnoreTest.java │ │ ├── GlobalSettingOverrideTest.java │ │ ├── InstructorCoursesTest.java │ │ ├── ObjectSettingOverrideTest.java │ │ ├── ParameterizedSupportTest.java │ │ ├── ReusableModelTest.java │ │ ├── UserControllerTest.java │ │ └── utility │ │ └── JsonUtil.java │ └── resources │ └── instancio.properties ├── getting-started-jakarta-ee-microprofile ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── learning │ │ ├── JAXRSConfiguration.java │ │ ├── QuotesClient.java │ │ └── QuotesResource.java │ ├── liberty │ └── config │ │ └── server.xml │ ├── resources │ └── META-INF │ │ └── microprofile-config.properties │ └── webapp │ └── WEB-INF │ ├── beans.xml │ └── ibm-web-ext.xml ├── github-actions-java-maven ├── .editorconfig ├── .gitignore ├── Dockerfile ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── ApplicationUser.java │ │ │ ├── ApplicationUserController.java │ │ │ ├── ApplicationUserInitializer.java │ │ │ ├── ApplicationUserRepository.java │ │ │ └── GithubActionsJavaMavenApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── GithubActionsJavaMavenApplicationIT.java ├── graalvm-intro ├── .gitignore ├── .java-version ├── Dockerfile ├── README.md ├── pom.xml ├── prettyMe.json └── src │ └── main │ └── java │ ├── HelloWorld.java │ └── PrettyPrintJSON.java ├── guide-to-jakarta-ee-with-react-and-postgresql ├── .dockerignore ├── .gitignore ├── Dockerfile ├── README.md ├── docker-compose.yml ├── frontend │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ ├── robots.txt │ │ └── short-paragraph.png │ ├── src │ │ ├── App.css │ │ ├── App.test.tsx │ │ ├── App.tsx │ │ ├── BookTable.tsx │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ └── serviceWorker.ts │ └── tsconfig.json ├── package-lock.json ├── pom.xml ├── postgresql-42.2.5.jar ├── server.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── Book.java │ │ ├── BookResource.java │ │ ├── CorsFilter.java │ │ ├── FlywayUpdater.java │ │ └── JAXRSConfiguration.java │ ├── resources │ ├── META-INF │ │ ├── microprofile-config.properties │ │ └── persistence.xml │ └── db │ │ └── migration │ │ ├── V01__CREATE_BOOK_TABLE.sql │ │ ├── V02__POPULATE_BOOKS.sql │ │ └── flyway.location │ └── webapp │ └── WEB-INF │ ├── beans.xml │ └── ibm-web-ext.xml ├── hello-world-jsf-2.3 ├── .gitignore ├── Dockerfile ├── README.md ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── HelloWorldBacking.java │ └── webapp │ ├── WEB-INF │ └── web.xml │ └── index.xhtml ├── improved-java-ee-productivity-with-wad ├── .gitignore ├── .wadrc ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── sample │ │ │ │ ├── JAXRSConfiguration.java │ │ │ │ └── SampleResource.java │ │ ├── resources │ │ │ └── META-INF │ │ │ │ ├── microprofile-config.properties │ │ │ │ └── persistence.xml │ │ └── webapp │ │ │ └── WEB-INF │ │ │ ├── beans.xml │ │ │ └── payara-web.xml │ └── test │ │ └── java │ │ └── sample │ │ └── SampleTest.java └── wad.jar ├── intercept-methods-with-cdi-interceptors ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml ├── src │ └── main │ │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── JAXRSConfiguration.java │ │ │ ├── ManipulatedPayment.java │ │ │ ├── PaymentManipulationInterceptor.java │ │ │ ├── PaymentManipulator.java │ │ │ ├── PaymentProvider.java │ │ │ ├── PaymentResource.java │ │ │ ├── SecurePayment.java │ │ │ └── SecurePaymentInterceptor.java │ │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── payara-web.xml └── wad.jar ├── jakarta-ee-react-file-handling ├── .dockerignore ├── .editorconfig ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ └── main │ ├── frontend │ ├── .gitignore │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── index.html │ │ ├── jakartaEELogo.png │ │ └── robots.txt │ ├── src │ │ ├── ApiClient.ts │ │ ├── App.test.tsx │ │ ├── App.tsx │ │ ├── FileDownloadComponent.tsx │ │ ├── FileUploadComponent.tsx │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ ├── serviceWorker.ts │ │ └── setupTests.ts │ └── tsconfig.json │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── FileContent.java │ │ ├── FileResource.java │ │ └── JAXRSConfiguration.java │ ├── resources │ └── META-INF │ │ └── microprofile-config.properties │ └── webapp │ └── WEB-INF │ ├── beans.xml │ └── payara-web.xml ├── java-benchmarking-with-jmh ├── .gitignore ├── README.md ├── pom.xml └── src │ └── main │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── Address.java │ ├── Hobby.java │ ├── SerializationBenchmark.java │ └── User.java ├── java-ee-kubernetes-deployment ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── deployment.yml ├── deployment_gke.yml ├── pom.xml └── src │ └── main │ ├── java │ └── sample │ │ ├── HealthResource.java │ │ ├── JAXRSConfiguration.java │ │ └── SampleResource.java │ ├── resources │ └── META-INF │ │ ├── microprofile-config.properties │ │ └── persistence.xml │ └── webapp │ └── WEB-INF │ ├── beans.xml │ └── payara-web.xml ├── java-ee-sending-mails ├── .gitignore ├── Dockerfile ├── README.md ├── create-mail-session.asadmin ├── docker-compose.yml ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── JAXRSConfiguration.java │ │ ├── MailingResource.java │ │ └── MailingService.java │ ├── resources │ └── META-INF │ │ └── microprofile-config.properties │ └── webapp │ └── WEB-INF │ ├── beans.xml │ └── payara-web.xml ├── java-ee-uploading-and-downloading-files-with-web-components ├── README.md ├── backend │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── buildAndRun.bat │ ├── buildAndRun.sh │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── de │ │ │ │ └── rieckpil │ │ │ │ └── blog │ │ │ │ ├── CorsFilter.java │ │ │ │ ├── FileUpload.java │ │ │ │ ├── FileUploadResource.java │ │ │ │ └── JAXRSConfiguration.java │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ └── persistence.xml │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ ├── beans.xml │ │ │ └── payara-web.xml │ └── wad.jar ├── docker-compose.yml └── frontend │ ├── Dockerfile │ └── src │ ├── DownloadComponent.js │ ├── UploadComponent.js │ ├── app.js │ └── index.html ├── java-ee-websockets-with-jsf ├── .gitignore ├── Dockerfile ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml ├── src │ └── main │ │ ├── java │ │ └── sample │ │ │ ├── StockMonitorBean.java │ │ │ └── StocksEndpoint.java │ │ ├── resources │ │ └── META-INF │ │ │ ├── microprofile-config.properties │ │ │ └── persistence.xml │ │ └── webapp │ │ ├── WEB-INF │ │ ├── beans.xml │ │ ├── payara-web.xml │ │ └── web.xml │ │ └── index.xhtml └── wad.jar ├── java-ee-with-kotlin ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── derby.jar ├── pom.xml ├── server.xml └── src │ └── main │ ├── kotlin │ └── de.rieckpil.blog │ │ ├── Book.kt │ │ ├── BookResource.kt │ │ ├── BookService.kt │ │ └── JAXRSConfiguration.kt │ ├── resources │ └── META-INF │ │ ├── microprofile-config.properties │ │ └── persistence.xml │ └── webapp │ └── WEB-INF │ ├── beans.xml │ └── ibm-web-ext.xml ├── java-magazin-jsf-primefaces ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── boundary │ │ └── CustomerListBean.java │ │ ├── control │ │ └── CustomerService.java │ │ └── entity │ │ └── Customer.java │ └── webapp │ ├── WEB-INF │ ├── beans.xml │ ├── payara-web.xml │ └── web.xml │ └── index.xhtml ├── jax-rs-api-rate-limiting-with-jsr-375 ├── .gitignore ├── Dockerfile ├── README.md ├── pom.xml ├── reachApi.sh └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ApiBudgetRefresher.java │ │ ├── ApplicationSecurityConfig.java │ │ ├── DatabaseSetup.java │ │ ├── JAXRSApplication.java │ │ ├── RateLimitingFilter.java │ │ ├── StockResource.java │ │ └── entity │ │ ├── User.java │ │ └── UserRoles.java │ ├── resources │ └── META-INF │ │ └── persistence.xml │ └── webapp │ └── WEB-INF │ └── beans.xml ├── jpa-integration-tests-java-ee ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── jpa-integration-tests-java-ee.iml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── sample │ │ │ └── Customer.java │ ├── resources │ │ └── META-INF │ │ │ └── persistence.xml │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── payara-web.xml │ └── test │ ├── java │ └── sample │ │ ├── CustomerIntegrationTest.java │ │ └── EntityManagerProvider.java │ └── resources │ └── META-INF │ └── persistence.xml ├── jsf-simple-login-with-java-ee-security-api ├── .gitignore ├── .java-version ├── Dockerfile ├── README.md ├── WildFlyDockerfile ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── LoginBacking.java │ │ ├── LogoutBacking.java │ │ └── security │ │ ├── ApplicationConfig.java │ │ └── CustomInMemoryIdentityStore.java │ └── webapp │ ├── WEB-INF │ ├── beans.xml │ ├── jboss-web.xml │ └── web.xml │ ├── app │ └── index.xhtml │ └── login.xhtml ├── kotlin-javascript-transpiling-gradle ├── .editorconfig ├── .gitignore ├── .java-version ├── README.md ├── build.gradle.kts ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts └── src │ └── main │ ├── kotlin │ └── main.kt │ └── resources │ └── index.html ├── launchdarkly-java-development-testing-hints ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── complex-in-memory-flags.json ├── mvnw ├── mvnw.cmd ├── pom.xml ├── simple-in-memory-flags.json └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── FeatureFlagClient.java │ │ │ ├── FeatureFlagClientFactory.java │ │ │ ├── FeatureFlagValueChangeHandler.java │ │ │ ├── LaunchDarklyFeatureFlagClient.java │ │ │ ├── OrderService.java │ │ │ └── RootLogLevelUpdater.java │ └── resources │ │ └── log4j2.xml │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── InMemoryFeatureFlagStoreTest.java │ │ ├── OrderServiceTest.java │ │ ├── RootLogLevelUpdaterTest.java │ │ ├── TestDataFeatureFlagClient.java │ │ └── TestDataFeatureFlagStoreTest.java │ └── resources │ └── log4j2.xml ├── lazy-loading-of-jpa-attributes-with-hibernate ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── FileUpload.java │ │ │ ├── FileUploadRepository.java │ │ │ ├── ReadFileOnStartup.java │ │ │ └── StoreFileOnStartup.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTests.java ├── load-testing-your-application ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── LoadTestingYourApplication.java │ │ │ ├── Person.java │ │ │ ├── PersonController.java │ │ │ └── PersonRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── LoadTestingYourApplicationTests.java ├── maven-junit-paralellize-tests ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── StringFormatter.java │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── StringFormatterIT.java │ └── StringFormatterTest.java ├── maven-plugins-to-ensure-quality ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── owasp-suppressions.xml ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ └── BadPracticeFileReader.java │ └── resources │ │ ├── application.properties │ │ └── message.txt │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTests.java ├── messaging-with-jms-using-payara ├── .gitignore ├── Dockerfile ├── README.md ├── create-jms-queue.asadmin ├── pom.xml ├── src │ └── main │ │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── StockHistory.java │ │ │ ├── StockListener.java │ │ │ └── StockPublisher.java │ │ ├── resources │ │ └── META-INF │ │ │ └── persistence.xml │ │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── payara-web.xml └── wad.jar ├── microprofile-jwt-keycloak-auth ├── README.md ├── backend │ ├── .gitignore │ ├── Dockerfile │ ├── buildAndRun.bat │ ├── buildAndRun.sh │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── CorsFilter.java │ │ │ ├── JAXRSConfiguration.java │ │ │ └── VerySecureResource.java │ │ ├── resources │ │ └── META-INF │ │ │ ├── microprofile-config.properties │ │ │ ├── orange.pem │ │ │ └── persistence.xml │ │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── payara-web.xml ├── frontend │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── keycloak.json │ │ └── manifest.json │ ├── src │ │ ├── App.js │ │ ├── index.js │ │ └── serviceWorker.js │ └── target │ │ └── npmlist.json └── keycloak │ ├── Dockerfile │ └── import-realm.json ├── microprofile-rest-client-for-restful-communication ├── README.md ├── docker-compose.yml ├── order-application │ ├── .gitignore │ ├── Dockerfile │ ├── pom.xml │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── de │ │ │ │ └── rieckpil │ │ │ │ └── blog │ │ │ │ ├── JAXRSConfiguration.java │ │ │ │ └── order │ │ │ │ ├── boundary │ │ │ │ └── OrderResource.java │ │ │ │ ├── control │ │ │ │ ├── OrderService.java │ │ │ │ └── UserManagementApplicationClient.java │ │ │ │ └── entity │ │ │ │ └── Order.java │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ └── microprofile-config.properties │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ ├── beans.xml │ │ │ ├── ibm-web-ext.xml │ │ │ └── payara-web.xml │ └── wad.jar └── user-management-application │ ├── .gitignore │ ├── Dockerfile │ ├── pom.xml │ ├── src │ └── main │ │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── AppSecurityConfig.java │ │ │ ├── InMemoryIdentityStore.java │ │ │ ├── JAXRSConfiguration.java │ │ │ └── user │ │ │ └── UserResource.java │ │ ├── resources │ │ └── META-INF │ │ │ └── microprofile-config.properties │ │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ ├── ibm-web-ext.xml │ │ └── payara-web.xml │ └── wad.jar ├── mockito-tips-and-tricks ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── constructor │ │ │ ├── deepstubs │ │ │ └── InspirationalQuotesClient.java │ │ │ ├── staticsmocks │ │ │ ├── MyUtils.java │ │ │ ├── Order.java │ │ │ ├── OrderIdGenerator.java │ │ │ ├── OrderService.java │ │ │ └── OrderServiceRefactored.java │ │ │ └── then │ │ │ ├── User.java │ │ │ ├── UserRepository.java │ │ │ └── UserService.java │ └── kotlin │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── kt │ │ └── OrderService.kt │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── constructor │ │ ├── deepstubs │ │ ├── DeepStubClientTest.java │ │ ├── DontHurtFairyTest.java │ │ └── InspirationalQuotesClientTest.java │ │ ├── kt │ │ └── OrderServiceTest.kt │ │ ├── staticmocks │ │ ├── MyUtilsTest.java │ │ ├── OrderServiceRefactoredTest.java │ │ └── OrderServiceTest.java │ │ └── then │ │ ├── UserServiceTest.java │ │ └── UserServiceWithMockitoExtensionTest.java │ ├── kotlin │ └── de.rieckpil.blog.kt │ │ └── OrderServiceTest.kt │ └── resources │ └── mockito-extensions │ └── org.mockito.plugins.MockMaker ├── mvnw ├── mvnw.cmd ├── nice-looking-jsf-apps-with-prime-faces-7 ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── boundary │ │ ├── CustomerListBean.java │ │ ├── IndexBean.java │ │ └── OrderCreationBean.java │ │ ├── control │ │ ├── CustomerConverter.java │ │ ├── CustomerService.java │ │ └── OrderService.java │ │ └── entity │ │ ├── Customer.java │ │ └── Order.java │ └── webapp │ ├── WEB-INF │ ├── beans.xml │ ├── common │ │ ├── footer.xhtml │ │ └── header.xhtml │ ├── payara-web.xml │ └── web.xml │ ├── createOrder.xhtml │ ├── customers.xhtml │ └── index.xhtml ├── open-liberty-maven-plugin-review ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── DatabaseLivenessCheck.java │ │ │ ├── JAXRSConfiguration.java │ │ │ ├── JSONPlaceHolderApiClient.java │ │ │ ├── SampleResource.java │ │ │ └── SampleService.java │ ├── liberty │ │ └── config │ │ │ ├── h2.jar │ │ │ └── server.xml │ ├── resources │ │ └── META-INF │ │ │ └── persistence.xml │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── ibm-web-ext.xml │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── SampleServiceTest.java ├── open-rewrite-example ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── PricingService.java │ │ ├── ProductReporter.java │ │ └── ProductVerifier.java │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── mockito1 │ └── PricingServiceTest.java ├── pdf-preview-react ├── .gitignore ├── README.md ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ └── manifest.json ├── sampleDocument.pdf └── src │ ├── App.js │ ├── index.js │ └── serviceWorker.js ├── pom.xml ├── postgres-11-stored-procedures-hibernate ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── INIT.sql ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Employee.java │ │ │ └── Postgres11StoredProceduresHibernateApplication.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── Postgres11StoredProceduresHibernateApplicationTests.java ├── random-data-in-java-using-java-faker ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ └── RandomDataEndpoint.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTest.java ├── react-app-kubernetes ├── .dockerignore ├── .gitignore ├── Dockerfile ├── README.md ├── deployment.yaml ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ └── manifest.json └── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── index.css │ ├── index.js │ ├── logo.svg │ └── serviceWorker.js ├── reducing-testcontainers-execution-time ├── .gitignore ├── .mvn │ └── wrapper │ │ └── maven-wrapper.properties ├── README.md ├── lombok.config ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ ├── Application.java │ │ │ ├── configuration │ │ │ ├── JwtConfigurationProperties.java │ │ │ └── RedisConfiguration.java │ │ │ ├── entity │ │ │ ├── Article.java │ │ │ └── User.java │ │ │ ├── repository │ │ │ ├── ArticleRepository.java │ │ │ └── UserRepository.java │ │ │ └── utility │ │ │ └── CacheUtility.java │ └── resources │ │ └── application.yaml │ └── test │ └── java │ └── de │ └── rieckpil │ ├── ArticleRepositoryIT.java │ ├── AuthServiceIT.java │ ├── InitializeMysqlContainer.java │ ├── InitializeRedisContainer.java │ ├── InitializeSecretKey.java │ ├── MySQLConfiguration.java │ ├── MySQLDatabaseInitializer.java │ ├── ProblematicIT.java │ ├── RedisCacheInitializer.java │ ├── SecretKeyInitializer.java │ ├── UserRepositoryIT.java │ └── UserServiceIT.java ├── remote-debugging-spring-boot-application ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Book.java │ │ │ ├── BookController.java │ │ │ ├── BookInitializer.java │ │ │ ├── BookNotFoundException.java │ │ │ ├── BookRepository.java │ │ │ └── RemoteDebuggingSpringBootApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── RemoteDebuggingSpringBootApplicationTests.java ├── renovate.json ├── rest-easy-file-uploading-and-downloading ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── CorsFilter.java │ │ ├── FileUpload.java │ │ ├── FileUploadResource.java │ │ └── JAXRSConfiguration.java │ ├── resources │ └── META-INF │ │ └── persistence.xml │ └── webapp │ ├── WEB-INF │ └── beans.xml │ └── index.html ├── review-hypersistence-optimizer ├── .editorconfig ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── HypersistenceAnalyzer.java │ │ │ ├── ReviewHypersistenceOptimizerApplication.java │ │ │ ├── Tag.java │ │ │ └── User.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── HypersistenceAnalyzerTest.java │ └── ReviewHypersistenceOptimizerApplicationTests.java ├── review-microshed-testing ├── .dockerignore ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── CustomReadinessProbe.java │ │ │ ├── JAXRSConfiguration.java │ │ │ ├── Person.java │ │ │ ├── PersonResource.java │ │ │ ├── QuoteRestClient.java │ │ │ └── SampleResource.java │ ├── liberty │ │ └── config │ │ │ ├── postgres │ │ │ └── postgresql-42.2.8.jar │ │ │ └── server.xml │ ├── resources │ │ └── META-INF │ │ │ ├── microprofile-config.properties │ │ │ └── persistence.xml │ └── webapp │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── ibm-web-ext.xml │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── PersonResourceIT.java │ │ ├── SampleApplicationConfig.java │ │ └── SampleResourceIT.java │ └── resources │ └── log4j.properties ├── running-java-within-postgres ├── CREATE_FUNCTION.sql ├── Dockerfile ├── INIT_JAVA_EXTENSION.sql ├── INIT_SAMPLE_DATA.sql ├── README.md └── simple-java-function │ ├── .gitignore │ ├── pom.xml │ └── src │ └── main │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── Functions.java │ └── Person.java ├── send-emails-with-sendgrid-and-spring-boot ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ └── sendemailswithsendgridandspringboot │ │ │ ├── MailController.java │ │ │ └── SendEmailsWithSendgridAndSpringBootApplication.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── sendemailswithsendgridandspringboot │ └── SendEmailsWithSendgridAndSpringBootApplicationTests.java ├── serverless-java-aws-examples ├── .gitignore ├── java-aws-lambda-custom-image │ ├── .gitignore │ ├── .java-version │ ├── Dockerfile │ ├── README.md │ ├── pom.xml │ ├── serverless.yml │ └── src │ │ ├── main │ │ └── java │ │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ └── Java15Lambda.java │ │ └── test │ │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── Java15LambdaTest.java ├── java-chromedriver-aws-lambda │ ├── .gitignore │ ├── .java-version │ ├── Dockerfile │ ├── Dockerfile_Chrome │ ├── Dockerfile_Custom │ ├── Dockerfile_Firefox │ ├── Dockerfile_Java8 │ ├── README.md │ ├── pom.xml │ ├── serverless.yml │ └── src │ │ └── main │ │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── InvokeWebDriver.java ├── simple-aws-lambda │ ├── .gitignore │ ├── .java-version │ ├── README.md │ ├── pom.xml │ ├── serverless.yml │ └── src │ │ └── main │ │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── FullControlLambda.java │ │ ├── Person.java │ │ ├── SimpleEventHandler.java │ │ ├── SimpleHttpHandler.java │ │ ├── SimpleLambda.java │ │ └── SimpleScheduledHandler.java ├── spring-cloud-function-aws │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ ├── serverless.yml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── de │ │ │ │ └── rieckpil │ │ │ │ └── blog │ │ │ │ ├── Application.java │ │ │ │ ├── EmptyInputHandler.java │ │ │ │ ├── FunctionConfiguration.java │ │ │ │ ├── Order.java │ │ │ │ ├── Person.java │ │ │ │ └── S3EventHandler.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── ApplicationTests.java ├── spring-cloud-function-kotlin-aws │ ├── .gitignore │ ├── .mvn │ │ └── wrapper │ │ │ ├── MavenWrapperDownloader.java │ │ │ ├── maven-wrapper.jar │ │ │ └── maven-wrapper.properties │ ├── README.md │ ├── mvnw │ ├── mvnw.cmd │ ├── package-lock.json │ ├── package.json │ ├── pom.xml │ ├── serverless.yml │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── de │ │ │ │ └── rieckpil │ │ │ │ └── blog │ │ │ │ ├── Application.kt │ │ │ │ ├── FunctionConfiguration.kt │ │ │ │ └── WebClientConfig.kt │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ ├── kotlin │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── ApplicationTest.kt │ │ │ ├── FunctionConfigurationTest.kt │ │ │ └── TestLambdaContext.kt │ │ └── resources │ │ └── stubs │ │ └── successful-quote-response.json └── thumbnail-generator │ ├── .gitignore │ ├── .mvn │ └── wrapper │ │ └── maven-wrapper.properties │ ├── README.md │ ├── aws-lambda-thumbnail-architecture-background.png │ ├── aws-lambda-thumbnail-architecture.excalidraw │ ├── aws-lambda-thumbnail-architecture.png │ ├── mvnw │ ├── mvnw.cmd │ ├── myPicture.png │ ├── pom.xml │ ├── serverless.yml │ └── src │ └── main │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ThumbnailHandler.java ├── simple-crud-table-with-jsf-and-primefaces ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── customers │ │ ├── boundary │ │ └── CustomersBacking.java │ │ ├── control │ │ ├── CustomerManager.java │ │ └── InitialCustomerFiller.java │ │ └── entity │ │ └── Customer.java │ ├── resources │ └── META-INF │ │ └── persistence.xml │ └── webapp │ ├── WEB-INF │ ├── beans.xml │ ├── faces-config.xml │ ├── payara-web.xml │ └── web.xml │ └── customers.xhtml ├── simple-database-documentation-with-schema-spy ├── .gitignore ├── Dockerfile ├── README.md ├── postgresql-42.2.5.jar ├── schema.sql ├── schemaspy-6.0.0.jar └── schemaspy.properties ├── spotless.importorder ├── spring-boot-aws-integration-tests ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── MessagingConfig.java │ │ │ ├── OrderEvent.java │ │ │ └── SimpleMessageListener.java │ └── resources │ │ └── application.yml │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── SimpleMessageListenerIT.java │ └── SimpleMessageListenerPre23IT.java ├── spring-boot-aws-ssm-parameter-resolving ├── .gitignore ├── README.md ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ParameterResolveDemo.java │ │ └── SpringBootAwsSsmParameterResolvingApplication.java │ └── resources │ ├── application.yml │ └── bootstrap.yml ├── spring-boot-datajpatest ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── Order.java │ │ │ ├── OrderController.java │ │ │ └── OrderRepository.java │ └── resources │ │ ├── application.yml │ │ └── db │ │ └── migration │ │ └── V001__CREATE_TABLES.sql │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── OrderRepositoryInitTest.java │ │ ├── OrderRepositoryShortTest.java │ │ └── OrderRepositoryTest.java │ └── resources │ └── scripts │ └── INIT_THREE_ORDERS.sql ├── spring-boot-feature-toggles-with-togglz ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── BookController.java │ │ │ └── BookstoreFeatures.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTest.java ├── spring-boot-hibernate-flyway-best-practices ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ ├── db │ │ │ └── migration │ │ │ │ └── V004__UPDATE_REVIEWS.java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── BestReviewedBooks.java │ │ │ ├── BestReviewedBooksRepository.java │ │ │ ├── Book.java │ │ │ ├── Review.java │ │ │ └── SpringBootHibernateFlywayBestPracticesApplication.java │ └── resources │ │ ├── application.yml │ │ ├── db │ │ └── migration │ │ │ ├── R__BEST_REVIEWED_BOOKS_VIEW.sql │ │ │ ├── V001__CREATE_BOOKS.sql │ │ │ ├── V002__CREATE_REVIEWS.sql │ │ │ ├── V003__ADD_DUMMY_DATA.sql │ │ │ └── V005__CREATE_TAGS.sql │ │ └── ddl_jpa_creation.sql │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── SpringBootHibernateFlywayBestPracticesApplicationTests.java ├── spring-boot-integration-tests-testcontainers ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── NoPersonFoundException.java │ │ │ ├── Person.java │ │ │ ├── PersonRepository.java │ │ │ └── PersonsController.java │ └── resources │ │ ├── application.properties │ │ └── db │ │ └── migration │ │ └── V001__CREATE_PERSON_TABLE.sql │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── AlternativeJUnit5ApplicationTest.java │ │ ├── ApplicationIT.java │ │ ├── BasicContainerTest.java │ │ ├── CreatePersonIT.java │ │ ├── DeletePersonIT.java │ │ ├── GetAllPersonsIT.java │ │ ├── GetPersonByIdIT.java │ │ ├── JUnit4ApplicationTest.java │ │ ├── JUnit5ApplicationTest.java │ │ └── ModuleContainerTest.java │ └── resources │ ├── config │ ├── INIT.sql │ └── test.txt │ └── testdata │ └── FILL_FOUR_PERSONS.sql ├── spring-boot-integration-tests-wiremock ├── .gitignore ├── README.md ├── diagram.excalidraw ├── diagram.png ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── TodoController.java │ │ │ └── WebClientConfig.java │ └── resources │ │ └── application.yml │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ManualSetupIT.java │ │ ├── TodoControllerIT.java │ │ ├── TodoControllerJUnit4IT.java │ │ ├── TodoControllerJUnit5ExtensionIT.java │ │ ├── TodoControllerJUnit5IT.java │ │ ├── TodoControllerSpringInitializerIT.java │ │ └── WireMockInitializer.java │ └── resources │ └── __files │ └── todo-api │ ├── big-response-200.json │ └── response-200.json ├── spring-boot-kotlin-testcontainers ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── kotlin │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.kt │ │ │ ├── Book.kt │ │ │ ├── BookController.kt │ │ │ └── BookRepository.kt │ └── resources │ │ ├── application.properties │ │ └── db │ │ └── migration │ │ └── V001__INIT.sql │ └── test │ └── kotlin │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTest.kt │ └── SecondApplicationTest.kt ├── spring-boot-override-test-properties ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── BadOrderService.java │ │ │ ├── OrderService.java │ │ │ └── RootController.java │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ApplicationInitializerTest.java │ │ ├── ApplicationPropertySourceTest.java │ │ ├── ApplicationTest.java │ │ ├── BadOrderServiceTest.java │ │ ├── OrderServiceTest.java │ │ ├── RootControllerInlineTest.java │ │ ├── RootControllerProfileTest.java │ │ ├── RootControllerTest.java │ │ ├── RootControllerTestPropertyTest.java │ │ └── initializer │ │ └── WireMockInitializer.java │ └── resources │ ├── application-test.properties │ ├── application.properties │ └── custom.properties ├── spring-boot-rest-assured ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── Book.java │ │ │ ├── BookController.java │ │ │ ├── BookNotFoundException.java │ │ │ ├── BookRequest.java │ │ │ ├── BookService.java │ │ │ └── WebSecurityConfig.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTest.java │ └── BookControllerTest.java ├── spring-boot-selenium-integration-tests ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ └── IndexController.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ └── index.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTest.java │ ├── IndexControllerIT.java │ └── ScreenshotOnFailureExtension.java ├── spring-boot-shedlock ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── RevenueReporter.java │ │ │ └── ShedLockConfig.java │ └── resources │ │ ├── application.properties │ │ └── db │ │ └── migration │ │ └── V001__INIT_SHEDLOCK_TABLE.sql │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTest.java ├── spring-boot-supabase └── spring-boot-supabase │ └── .mvn │ └── wrapper │ └── maven-wrapper.jar ├── spring-boot-test-mail-sending ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── NotificationController.java │ │ │ ├── NotificationRequest.java │ │ │ └── NotificationService.java │ └── resources │ │ └── application.yml │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── JavaMailSenderIT.java │ │ ├── JavaMailSenderPerMethodIT.java │ │ ├── NotificationControllerIT.java │ │ └── NotificationControllerSecondIT.java │ └── resources │ └── application.yml ├── spring-boot-test-mockmvc-webtestclient-testresttemplate ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mockmvc-webtestclient-testrestremplate-comparison.excalidraw ├── mockmvc-webtestclient-testrestremplate-comparison.png ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ ├── AdminController.java │ │ │ ├── Application.java │ │ │ ├── Customer.java │ │ │ └── CustomerController.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ └── admin.html │ └── test │ └── java │ └── de │ └── rieckpil │ ├── AdminControllerMockMvcTest.java │ ├── CustomerControllerMockMvcTest.java │ ├── CustomerControllerTestRestTemplateTest.java │ └── CustomerControllerWebTestClientTest.java ├── spring-boot-test-slice-annotations ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── Book.java │ │ │ ├── BookRepository.java │ │ │ ├── Item.java │ │ │ ├── PaymentResponse.java │ │ │ ├── RandomQuoteClient.java │ │ │ ├── ShoppingCart.java │ │ │ ├── ShoppingCartController.java │ │ │ ├── ShoppingCartItem.java │ │ │ ├── ShoppingCartRepository.java │ │ │ └── StartupComponent.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTests.java │ ├── BookRepositoryTest.java │ ├── JdbcAccessTest.java │ ├── PaymentResponseTest.java │ ├── RandomQuoteClientTest.java │ ├── ShoppingCartControllerTest.java │ └── ShoppingCartRepositoryTest.java ├── spring-boot-test-spring-events ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── ReportingListener.java │ │ │ ├── UserController.java │ │ │ ├── UserCreationEvent.java │ │ │ └── UserService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationIT.java │ ├── UserServiceFullContextTest.java │ ├── UserServicePerClassTest.java │ ├── UserServiceTest.java │ └── UserServiceUnitTest.java ├── spring-boot-testing-masterclass ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── SpringBootTestingMasterclassApplication.java │ │ │ └── pricing │ │ │ ├── PricingService.java │ │ │ ├── ProductReporter.java │ │ │ └── ProductVerifier.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── SpringBootTestingMasterclassApplicationTests.java │ └── pricing │ └── PricingServiceTest.java ├── spring-boot-testing-primer └── README.md ├── spring-boot-testing-tips-and-tricks ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── Customer.java │ │ │ ├── CustomerController.java │ │ │ ├── CustomerRepository.java │ │ │ ├── CustomerService.java │ │ │ ├── PricingService.java │ │ │ ├── ProductReporter.java │ │ │ ├── ProductVerifier.java │ │ │ └── VerboseLoggingService.java │ └── resources │ │ └── application.yml │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ApplicationConfigurationIT.java │ │ ├── ApplicationDefinedPortIT.java │ │ ├── ApplicationIT.java │ │ ├── ApplicationTest.java │ │ ├── CustomerControllerTest.java │ │ ├── CustomerServiceTest.java │ │ ├── DefinedPortApplicationTest.java │ │ ├── FirstTest.java │ │ ├── JsonTest.java │ │ ├── PricingServiceTest.java │ │ ├── SecondDefinedPortApplicationTest.java │ │ ├── VerboseLoggingServiceTest.java │ │ └── extension │ │ ├── ApplicationIT.java │ │ └── RedundantApplicationIT.java │ └── resources │ ├── application-integration-test.yml │ └── application.yml ├── spring-boot-thymeleaf-testing ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ ├── AdminController.java │ │ │ ├── Application.java │ │ │ ├── CustomerController.java │ │ │ ├── CustomerFormObject.java │ │ │ └── SecurityConfig.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ ├── admin.html │ │ └── customers.html │ └── test │ └── java │ └── de │ └── rieckpil │ ├── AdminControllerTest.java │ ├── ApplicationTest.java │ ├── CustomerControllerHtmlUnitTest.java │ └── CustomerControllerTest.java ├── spring-boot-uploading-and-downloading-files-with-react ├── .gitignore ├── README.md ├── frontend │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ └── manifest.json │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── index.js │ │ ├── logo.svg │ │ ├── registerServiceWorker.js │ │ └── spring-boot-logo.png ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── DemoApplication.java │ │ │ ├── FileBoundary.java │ │ │ ├── FileEntity.java │ │ │ └── FileEntityRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── DemoApplicationTests.java ├── spring-boot-web-mvc-testing ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── LoggingContextFilter.java │ │ │ ├── WebMvcConfig.java │ │ │ ├── WebSecurityConfig.java │ │ │ ├── WebhookAuthorizationHandlerInterceptor.java │ │ │ └── WebhookController.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTest.java │ ├── WebhookAuthorizationHandlerInterceptorTest.java │ └── WebhookControllerTest.java ├── spring-boot-with-kotlin ├── .editorconfig ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── kotlin │ │ └── de.rieckpil.blog │ │ │ ├── ApiController.kt │ │ │ ├── Application.kt │ │ │ ├── Person.kt │ │ │ ├── PersonRepository.kt │ │ │ └── WebClientConfig.kt │ └── resources │ │ └── application.properties │ └── test │ └── kotlin │ └── de │ └── rieckpil │ └── blog │ ├── ApiControllerIntegrationTest.kt │ └── SpringBootWithKotlinApplicationTest.kt ├── spring-boot-with-open-liberty ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── Dockerfile ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml ├── server.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ └── springbootwithopenliberty │ │ │ ├── ChatMessage.java │ │ │ ├── Message.java │ │ │ ├── MessageRepository.java │ │ │ ├── MessageRestController.java │ │ │ ├── MessageWebSocketController.java │ │ │ ├── SpringBootWithOpenLibertyApplication.java │ │ │ └── WebSocketConfig.java │ └── resources │ │ ├── application.properties │ │ └── static │ │ ├── app.js │ │ └── index.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── springbootwithopenliberty │ └── SpringBootWithOpenLibertyApplicationTests.java ├── spring-cloud-aws-sqs-testing ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ ├── Application.java │ │ │ ├── OrderListener.java │ │ │ ├── PurchaseOrder.java │ │ │ ├── PurchaseOrderPayload.java │ │ │ └── PurchaseOrderRepository.java │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── OrderListenerTest.java │ └── resources │ ├── localstack │ └── init.sh │ └── logback-test.xml ├── spring-cloud-function-aws-kotlin ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml ├── serverless.yml └── src │ ├── main │ ├── kotlin │ │ └── de │ │ │ └── rieckpil │ │ │ ├── Application.kt │ │ │ └── CustomFunctionConfig.kt │ └── resources │ │ ├── application.properties │ │ └── logback.xml │ └── test │ └── kotlin │ └── de │ └── rieckpil │ └── SpringCloudFunctionAwsKotlinApplicationTests.kt ├── spring-data-mongo-test-testcontainers ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── Customer.java │ │ │ ├── CustomerRepository.java │ │ │ └── CustomerService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── CustomerRepositoryTest.java │ └── CustomerServiceTest.java ├── spring-data-postgres-fulltext-search ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── META-INF │ │ │ └── MANIFEST.MF │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Comment.java │ │ │ ├── CommentController.java │ │ │ ├── CommentRepository.java │ │ │ ├── ExtendedPostgreSQLDialect.java │ │ │ ├── ImmutableType.java │ │ │ ├── PostgreSQLFTSFunction.java │ │ │ ├── PostgreSQLTSVectorType.java │ │ │ ├── ReflectionUtils.java │ │ │ └── SpringDataPostgresFulltextSearchApplication.java │ └── resources │ │ ├── application.yml │ │ ├── data.sql │ │ └── schema.sql │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── SpringDataPostgresFulltextSearchApplicationTests.java ├── spring-mockmvc-with-webtestclient ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── DashboardController.java │ │ │ ├── User.java │ │ │ ├── UserAlreadyExistsException.java │ │ │ ├── UserController.java │ │ │ ├── UserNotFoundException.java │ │ │ ├── UserService.java │ │ │ └── WebSecurityConfig.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ └── dashboard.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTests.java │ ├── DashboardControllerTest.java │ ├── UserControllerMockMvcTest.java │ └── UserControllerTest.java ├── spring-security-aws-cognito-thymeleaf ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── cloudformation │ ├── cognito.yml │ ├── create-cognito-stack.sh │ └── delete-cognito-stack.sh ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── CognitoOidcLogoutSuccessHandler.java │ │ │ ├── IndexController.java │ │ │ └── WebSecurityConfig.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ └── index.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── IndexControllerTest.java ├── spring-test-context-caching-introduction ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── CustomInitializer.java │ │ │ ├── PersonController.java │ │ │ └── PersonService.java │ └── resources │ │ └── application.properties │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── AbstractIntegrationTest.java │ │ ├── ApplicationTests.java │ │ ├── SecondApplicationTest.java │ │ └── ThirdApplicationContext.java │ └── resources │ └── application.properties ├── spring-web-client-customizing ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── RandomDataController.java │ │ │ ├── ResponseLoggingCustomizer.java │ │ │ ├── UserAgentCustomizer.java │ │ │ └── WebClientConfig.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTests.java ├── spring-web-client-demo ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── CustomerController.java │ │ │ ├── SimpleApiClient.java │ │ │ └── SimpleWebClientConfiguration.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTests.java │ ├── CustomerControllerIT.java │ └── SimpleApiClientTest.java ├── spring-web-client-exchange-retrieve ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── ExchangeWebClient.java │ │ │ ├── RetrieveWebClient.java │ │ │ └── WebClientConfig.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTests.java │ └── WireMockInitializer.java ├── spring-web-client-expose-metrics ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── Application.java │ │ ├── RandomQuoteClient.java │ │ ├── RandomUserClient.java │ │ └── WebClientConfiguration.java │ └── resources │ └── application.properties ├── spring-web-client-oauth2-reactive-stack ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── GitHubController.java │ │ │ ├── SecurityConfiguration.java │ │ │ ├── SpringWebClientOauth2Application.java │ │ │ └── WebClientConfig.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ └── index.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── SpringWebClientOauth2ApplicationTests.java ├── spring-web-client-oauth2-servlet-stack ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── GitHubController.java │ │ │ ├── SecurityConfiguration.java │ │ │ ├── SpringWebClientOauth2Application.java │ │ │ └── WebClientConfig.java │ └── resources │ │ ├── application.yml │ │ └── templates │ │ └── index.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── SpringWebClientOauth2ApplicationTests.java ├── spring-web-client-testing-with-mockwebserver ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── RetryClient.java │ │ │ └── UsersClient.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── RetryClientTest.java │ └── UsersClientTest.java ├── spring-web-mvc-cheat-sheet ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── FileHandlingController.java │ │ │ ├── JsonPayloadController.java │ │ │ ├── MixMediaTypeController.java │ │ │ ├── Order.java │ │ │ ├── Payload.java │ │ │ ├── ValidationController.java │ │ │ ├── ViewController.java │ │ │ └── XmlPayloadController.java │ └── resources │ │ ├── application.properties │ │ ├── document.pdf │ │ └── templates │ │ └── welcome.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── ApplicationTest.java ├── spring-web-test-client ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── User.java │ │ │ ├── UserAlreadyExistsException.java │ │ │ ├── UserController.java │ │ │ ├── UserNotFoundException.java │ │ │ └── UserService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationIT.java │ └── UserControllerIT.java ├── spring-websocket-integration-tests ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── GreetingController.java │ │ │ ├── Message.java │ │ │ └── WebSocketConfig.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── GreetingControllerTest.java ├── telegram-bot-notifications-with-java ├── .gitignore ├── README.md ├── pom.xml └── src │ └── main │ └── java │ └── de │ └── rieckpil │ └── blog │ └── TelegramNotifier.java ├── test-java-http-clients ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ApacheHttpClient.java │ │ ├── JavaHttpClient.java │ │ ├── OkHttpClientExample.java │ │ ├── RandomQuote.java │ │ ├── RandomQuoteContent.java │ │ └── RandomQuoteResponse.java │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ApacheHttpClientTest.java │ │ ├── JavaHttpClientTest.java │ │ ├── OkHttpClientExampleTest.java │ │ └── RealUsageTest.java │ └── resources │ └── stubs │ └── random-quote-success.json ├── testcontainers-introduction ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── Application.java │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── CommandExecutingExampleTest.java │ │ ├── DatabaseExampleTest.java │ │ ├── FileMountingExampleTest.java │ │ ├── GenericContainerExampleTest.java │ │ ├── GenericContainerInitializedExampleTest.java │ │ ├── ManualLifecycleExampleTest.java │ │ ├── MockServerExampleTest.java │ │ ├── PubSubExampleTest.java │ │ └── SeleniumExampleTest.java │ └── resources │ ├── database-init │ └── ORDERS_TABLE.sql │ └── logback-test.xml ├── testcontainers-reuse-existing-containers ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── Todo.java │ │ │ ├── TodoController.java │ │ │ └── TodoRepository.java │ └── resources │ │ ├── application.properties │ │ └── db │ │ └── migration │ │ └── V001__INIT_DATABASE.sql │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationIT.java │ ├── BaseIT.java │ ├── SecondApplicationIT.java │ └── ThirdApplicationIT.java ├── testcontainers-youtube-series ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── docs │ ├── architecture.png │ ├── architecture.py │ ├── testing_architecture.png │ └── testing_architecture.py ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── Book.java │ │ │ └── BookRepository.java │ └── resources │ │ ├── application.properties │ │ └── db │ │ └── migration │ │ └── V001__INIT.sql │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── ApplicationJUnit4Test.java │ │ ├── ApplicationTests.java │ │ ├── InitScriptExampleTest.java │ │ ├── KeycloakExampleTest.java │ │ ├── LocalStackExampleTest.java │ │ ├── LocalStackMountTest.java │ │ └── ReuseContainerTests.java │ └── resources │ ├── database │ └── INIT.sql │ ├── keycloak │ └── dump.json │ └── localstack │ └── init.sh ├── testing-java-applications-with-maven ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml ├── src │ ├── main │ │ └── java │ │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ └── Main.java │ └── test │ │ └── java │ │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── MainIT.java │ │ └── MainTest.java └── target │ ├── classes │ └── de │ │ └── rieckpil │ │ └── blog │ │ └── Main.class │ └── test-classes │ └── de │ └── rieckpil │ └── blog │ ├── MainIT.class │ └── MainTest.class ├── testing-json-serialization-spring ├── .gitignore ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── CarDetails.java │ │ │ ├── CarDetailsJsonSerializer.java │ │ │ ├── TestingJsonSerializationSpringApplication.java │ │ │ └── UserDetails.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── CarDetailsJsonTest.java │ └── UserDetailsJsonTest.java ├── testing-libraries-overview ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── docker-compose.yml ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── client │ │ │ ├── JavaHttpClient.java │ │ │ ├── RandomQuote.java │ │ │ ├── RandomQuoteContent.java │ │ │ └── RandomQuoteResponse.java │ │ │ ├── customer │ │ │ ├── Address.java │ │ │ ├── Customer.java │ │ │ ├── CustomerController.java │ │ │ ├── CustomerCreationRequest.java │ │ │ ├── Order.java │ │ │ └── Product.java │ │ │ ├── dashboard │ │ │ └── DashboardController.java │ │ │ ├── mailing │ │ │ └── MailService.java │ │ │ ├── registration │ │ │ ├── User.java │ │ │ ├── UserRegistrationService.java │ │ │ └── UserRepository.java │ │ │ └── review │ │ │ └── ReviewValidation.java │ └── resources │ │ └── templates │ │ └── dashboard.html │ └── test │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── MyFirstTest.java │ │ ├── assertj │ │ ├── AssertJTest.java │ │ └── CustomerAssert.java │ │ ├── citrus │ │ └── CitrusDemoTest.java │ │ ├── greenmail │ │ └── MailServiceTest.java │ │ ├── hamcrest │ │ ├── HamcrestTest.java │ │ ├── HasOrderVolumeGreaterThan.java │ │ └── IsVIP.java │ │ ├── jsonassert │ │ └── JSONAssertTest.java │ │ ├── jsonpath │ │ └── JsonPayloadTest.java │ │ ├── junit4 │ │ ├── DatabaseTestSuite.java │ │ ├── DatabaseTests.java │ │ ├── JUnit4ExampleTest.java │ │ ├── RegistrationWebTest.java │ │ ├── RuleExampleTest.java │ │ └── SmokeTests.java │ │ ├── junit5 │ │ ├── ExtensionExampleTest.java │ │ ├── JUnit5ExampleTest.java │ │ ├── RandomUUIDParameterResolver.java │ │ └── RegistrationWebTest.java │ │ ├── mockwebserver │ │ └── MockWebServerTest.java │ │ ├── registration │ │ └── UserRegistrationServiceTest.java │ │ ├── restassured │ │ └── CustomerControllerTest.java │ │ ├── selenide │ │ └── DashboardControllerTest.java │ │ ├── testcontainers │ │ ├── BasicContainerTest.java │ │ ├── DockerComposeTest.java │ │ └── ModuleContainerTest.java │ │ ├── testng │ │ ├── ReviewValidationTest.java │ │ └── TestNGExampleTest.java │ │ ├── wiremock │ │ ├── JavaHttpClientTest.java │ │ └── WireMockSetupTest.java │ │ └── xmlunit │ │ └── XMLUnitTest.java │ └── resources │ ├── config │ ├── INIT.sql │ └── test.txt │ ├── json │ └── customers.json │ ├── stubs │ └── random-quote-success.json │ └── xml │ ├── customers.xml │ └── customers.xsd ├── testing-spring-boot-applications-with-mockmvc ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── SecurityConfig.java │ │ │ ├── dashboard │ │ │ ├── DashboardController.java │ │ │ ├── DashboardService.java │ │ │ └── QuickNote.java │ │ │ ├── task │ │ │ ├── TaskController.java │ │ │ └── TaskService.java │ │ │ └── user │ │ │ ├── User.java │ │ │ ├── UserController.java │ │ │ ├── UserNotFoundException.java │ │ │ └── UserService.java │ └── resources │ │ ├── application.properties │ │ └── templates │ │ └── dashboard.html │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTest.java │ ├── dashboard │ └── DashboardControllerTest.java │ ├── task │ ├── TaskControllerSecondTest.java │ └── TaskControllerTest.java │ └── user │ └── UserControllerTest.java ├── testing-spring-rest-template ├── .gitignore ├── .java-version ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── ResourceClient.java │ │ │ ├── RestTemplateConfig.java │ │ │ ├── TestingSpringRestTemplateApplication.java │ │ │ ├── User.java │ │ │ ├── UserClient.java │ │ │ └── UserData.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ResourceClientTest.java │ ├── TestingSpringRestTemplateApplicationTests.java │ └── UserClientTest.java ├── wad.jar ├── websockets-with-jakarta-ee ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml ├── server.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── JSONTextDecoder.java │ │ ├── JSONTextEncoder.java │ │ ├── StockExchangeClient.java │ │ ├── StockExchangeEndpoint.java │ │ └── StockExchangeNotifier.java │ ├── resources │ └── META-INF │ │ └── persistence.xml │ └── webapp │ ├── WEB-INF │ ├── beans.xml │ └── ibm-web-ext.xml │ └── index.html ├── whats-new-in-microprofile-3.1 ├── .gitignore ├── Dockerfile ├── README.md ├── buildAndRun.bat ├── buildAndRun.sh ├── pom.xml ├── server.xml └── src │ └── main │ ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── HealthUpdates.java │ │ └── MetricsUpdates.java │ ├── resources │ └── META-INF │ │ └── microprofile-config.properties │ └── webapp │ └── WEB-INF │ ├── beans.xml │ ├── ibm-web-ext.xml │ └── payara-web.xml ├── whats-new-in-spring-boot-2.1 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── learning │ │ │ ├── Application.java │ │ │ ├── User.java │ │ │ ├── UserPopulator.java │ │ │ └── UserRepository.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── learning │ └── ApplicationTests.java ├── whats-new-in-spring-boot-2.2 ├── .gitignore ├── .mvn │ └── wrapper │ │ ├── MavenWrapperDownloader.java │ │ ├── maven-wrapper.jar │ │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── Application.java │ │ │ ├── CustomLivenessCheck.java │ │ │ ├── KubernetesDetector.java │ │ │ ├── SampleEndpoint.java │ │ │ └── SampleService.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ ├── ApplicationTests.java │ └── JUnit5Test.java ├── whats-new-in-spring-boot-2.3 ├── .gitignore ├── BOOT-INF │ └── layers.idx ├── Dockerfile ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── de │ │ │ └── rieckpil │ │ │ └── blog │ │ │ ├── SampleController.java │ │ │ ├── User.java │ │ │ └── WhatsNewInSpringBoot23Application.java │ └── resources │ │ └── application.properties │ └── test │ └── java │ └── de │ └── rieckpil │ └── blog │ └── WhatsNewInSpringBoot23ApplicationTests.java └── write-concise-web-tests-with-selenide ├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── de │ │ └── rieckpil │ │ └── blog │ │ ├── Application.java │ │ ├── Book.java │ │ ├── BookController.java │ │ └── BookStoreController.java └── resources │ ├── application.properties │ └── templates │ └── index.html └── test └── java └── de └── rieckpil └── blog ├── BookStoreTestcontainersWT.java ├── BookStoreWT.java └── BookStoreYouTubeWT.java /.broken-link-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignorePatterns": [ 3 | { 4 | "pattern": "localhost:" 5 | }, 6 | { 7 | "pattern": "https://developer.github.com/apps/*" 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | *.iml 4 | *.bak 5 | target 6 | spotless-index 7 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.snippets/blogReadme.idea: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [$TITLE$]($URL$) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `$FOLDER$` 7 | 3. 8 | 9 | * [$TITLE$]($URL$) ([Sources](https://github.com/rieckpil/blog-tutorials/tree/master/$FOLDER$)) 10 | -------------------------------------------------------------------------------- /application-server-cheatsheet/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:latest 2 | COPY target/application-server-cheatsheet.war $DEPLOY_DIR -------------------------------------------------------------------------------- /application-server-cheatsheet/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/application-server-cheatsheet . 4 | call docker rm -f application-server-cheatsheet 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name application-server-cheatsheet de.rieckpil.blog/application-server-cheatsheet -------------------------------------------------------------------------------- /application-server-cheatsheet/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/application-server-cheatsheet . 3 | docker rm -f application-server-cheatsheet || true && docker run -d -p 8080:8080 -p 4848:4848 --name application-server-cheatsheet de.rieckpil.blog/application-server-cheatsheet -------------------------------------------------------------------------------- /application-server-cheatsheet/module.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /application-server-cheatsheet/src/main/java/sample/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /application-server-cheatsheet/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World Java EE 8 -------------------------------------------------------------------------------- /application-server-cheatsheet/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /application-server-cheatsheet/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/application-server-cheatsheet/wad.jar -------------------------------------------------------------------------------- /avoid-repeating-attributes-in-jpa-entities/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/avoid-repeating-attributes-in-jpa-entities/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /avoid-repeating-attributes-in-jpa-entities/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /avoid-repeating-attributes-in-jpa-entities/src/main/java/de/blog/rieckpil/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | package de.blog.rieckpil; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface CustomerRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /avoid-repeating-attributes-in-jpa-entities/src/main/java/de/blog/rieckpil/ProductRepository.java: -------------------------------------------------------------------------------- 1 | package de.blog.rieckpil; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ProductRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /avoid-repeating-attributes-in-jpa-entities/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.h2.console.enabled=true -------------------------------------------------------------------------------- /avoid-repeating-attributes-in-jpa-entities/src/test/java/de/blog/rieckpil/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.blog.rieckpil; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | public class ApplicationTests { 8 | 9 | @Test 10 | public void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /aws-cdk-java-introduction/.gitignore: -------------------------------------------------------------------------------- 1 | .classpath.txt 2 | target 3 | .classpath 4 | .project 5 | .idea 6 | .settings 7 | .vscode 8 | *.iml 9 | 10 | # CDK asset staging directory 11 | .cdk.staging 12 | cdk.out 13 | 14 | -------------------------------------------------------------------------------- /aws-cdk-java-introduction/.java-version: -------------------------------------------------------------------------------- 1 | 11.0 2 | -------------------------------------------------------------------------------- /aws-cdk-java-introduction/aws-cdk-constructs-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/aws-cdk-java-introduction/aws-cdk-constructs-overview.png -------------------------------------------------------------------------------- /azure-blob-storage-azurite-testing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/azure-blob-storage-azurite-testing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /azure-blob-storage-azurite-testing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar 3 | -------------------------------------------------------------------------------- /azure-blob-storage-azurite-testing/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.nonNull.exceptionType=IllegalArgumentException -------------------------------------------------------------------------------- /azure-blob-storage-azurite-testing/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | de: 2 | rieckpil: 3 | azure: 4 | blob-storage: 5 | container-name: ${BLOB_STORAGE_CONTAINER_NAME} 6 | connection-string: ${BLOB_STORAGE_CONNECTION_STRING} -------------------------------------------------------------------------------- /bootstrap-jakarta-ee-8-application/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jboss/wildfly:17.0.1.Final 2 | 3 | # Gradle 4 | # COPY build/libs/bootstrap-jakarta-ee-8-application.war /opt/jboss/wildfly/standalone/deployments/ROOT.war 5 | 6 | # Maven 7 | COPY target/bootstrap-jakarta-ee-8-application.war /opt/jboss/wildfly/standalone/deployments/ROOT.war -------------------------------------------------------------------------------- /bootstrap-jakarta-ee-8-application/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/bootstrap-jakarta-ee-8-application . 4 | call docker rm -f bootstrap-jakarta-ee-8-application 5 | call docker run -d -p 8080:8080 -p 9990:9990 --name bootstrap-jakarta-ee-8-application de.rieckpil.blog/bootstrap-jakarta-ee-8-application -------------------------------------------------------------------------------- /bootstrap-jakarta-ee-8-application/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/bootstrap-jakarta-ee-8-application . 3 | docker rm -f bootstrap-jakarta-ee-8-application || true && docker run -d -p 8080:8080 -p 9990:9990 --name bootstrap-jakarta-ee-8-application de.rieckpil.blog/bootstrap-jakarta-ee-8-application -------------------------------------------------------------------------------- /bootstrap-jakarta-ee-8-application/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | } 9 | -------------------------------------------------------------------------------- /buildGradleJdk8Projects.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | set -o pipefail 5 | 6 | declare -a arr=("") 7 | 8 | for project in "${arr[@]}" 9 | do 10 | cd $project 11 | 12 | cd .. 13 | done -------------------------------------------------------------------------------- /caching-validation-testcontainers/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/caching-validation-testcontainers/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /caching-validation-testcontainers/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar 3 | -------------------------------------------------------------------------------- /caching-validation-testcontainers/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.nonNull.exceptionType=IllegalArgumentException -------------------------------------------------------------------------------- /caching-validation-testcontainers/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | url: ${MYSQL_URL} 4 | username: ${MYSQL_USERNAME} 5 | password: ${MYSQL_PASSWORD} 6 | driver-class-name: com.mysql.cj.jdbc.Driver 7 | data: 8 | redis: 9 | host: ${REDIS_HOSTNAME} 10 | port: ${REDIS_PORT} 11 | password: ${REDIS_PASSWORD} -------------------------------------------------------------------------------- /caching-validation-testcontainers/src/main/resources/db/migration/V002__adding_hogwarts_houses.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO hogwarts_houses (name) 2 | VALUES 3 | ('Gryffindor'), 4 | ('Hufflepuff'), 5 | ('Slytherin'), 6 | ('RavenClaw'); -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openliberty/open-liberty:20.0.0.6-kernel-java11-openj9-ubi 2 | 3 | COPY --chown=1001:0 target/charts-in-pdf-java-ee.war /config/dropins/ 4 | COPY --chown=1001:0 server.xml /config/ 5 | 6 | RUN configure.sh 7 | -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/charts-in-pdf-java-ee . 4 | call docker rm -f charts-in-pdf-java-ee 5 | call docker run -d -p 9080:9080 --name charts-in-pdf-java-ee de.rieckpil.blog/charts-in-pdf-java-ee -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mvn clean package && docker build -t de.rieckpil.blog/charts-in-pdf-java-ee . 4 | docker rm -f charts-in-pdf-java-ee || true && docker run -d -p 9080:9080 --name charts-in-pdf-java-ee de.rieckpil.blog/charts-in-pdf-java-ee 5 | -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Charts -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /charts-in-pdf-java-ee/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | / 5 | 6 | -------------------------------------------------------------------------------- /consumer-driven-contracts-with-spring-cloud-contract/book-store-client/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/consumer-driven-contracts-with-spring-cloud-contract/book-store-client/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /consumer-driven-contracts-with-spring-cloud-contract/book-store-client/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /consumer-driven-contracts-with-spring-cloud-contract/book-store-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8888 2 | -------------------------------------------------------------------------------- /consumer-driven-contracts-with-spring-cloud-contract/book-store-server/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/consumer-driven-contracts-with-spring-cloud-contract/book-store-server/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /consumer-driven-contracts-with-spring-cloud-contract/book-store-server/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /consumer-driven-contracts-with-spring-cloud-contract/book-store-server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /custom-maven-archetype/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/custom-maven-archetype/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /custom-maven-archetype/src/main/resources/META-INF/archetype-post-generate.groovy: -------------------------------------------------------------------------------- 1 | def file = new File(request.getOutputDirectory(), request.getArtifactId() + "/myScript.sh") 2 | file.setExecutable(true, false) 3 | -------------------------------------------------------------------------------- /custom-maven-archetype/src/main/resources/archetype-resources/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:kernel-java11 2 | COPY --chown=1001:0 target/${artifactId}.war /config/dropins/ 3 | COPY --chown=1001:0 server.xml /config -------------------------------------------------------------------------------- /custom-maven-archetype/src/main/resources/archetype-resources/README.md: -------------------------------------------------------------------------------- 1 | # Project ${groupId}/${artifactId} 2 | 3 | Default documentation. 4 | -------------------------------------------------------------------------------- /custom-maven-archetype/src/main/resources/archetype-resources/myScript.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn package && docker build -t ${groupId}/${artifactId} . 3 | docker rm -f ${artifactId} || true && docker run -d -p 9080:9080 -p 9443:9443 --name ${artifactId} ${groupId}/${artifactId} 4 | -------------------------------------------------------------------------------- /custom-maven-archetype/src/main/resources/archetype-resources/src/main/java/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /demo-crud-application/.java-version: -------------------------------------------------------------------------------- 1 | 11.0 2 | -------------------------------------------------------------------------------- /demo-crud-application/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/demo-crud-application/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /demo-crud-application/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /demo-crud-application/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post CRUD Applications with Spring Boot 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `demo-crud-application` 7 | 3. Run the application with `mvn spring-boot:run` 8 | 4. You can now access the HTTP endpoints as demonstrated in the course at http://localhost:8080 9 | -------------------------------------------------------------------------------- /demo-crud-application/src/main/java/de/rieckpil/blog/BookRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface BookRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /demo-crud-application/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=create-drop 2 | spring.h2.console.enabled=true 3 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /demo-crud-application/src/test/java/de/rieckpil/blog/DemoCrudApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoCrudApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /dependency-version-update-plugin/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/dependency-version-update-plugin/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /dependency-version-update-plugin/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /dependency-version-update-plugin/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dependency-version-update-plugin/src/test/java/de/rieckpil/blog/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /deploy-spring-boot-to-gke/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/deploy-spring-boot-to-gke/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /deploy-spring-boot-to-gke/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /deploy-spring-boot-to-gke/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:11.0.16-jdk 2 | VOLUME /tmp 3 | COPY target/deploy-spring-boot-to-gke.jar app.jar 4 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] -------------------------------------------------------------------------------- /deploy-spring-boot-to-gke/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.enabled-by-default=false 2 | management.endpoint.health.enabled=true -------------------------------------------------------------------------------- /deploy-spring-boot-to-gke/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | message=Testing -------------------------------------------------------------------------------- /deploy-spring-boot-to-local-k8s/.java-version: -------------------------------------------------------------------------------- 1 | 11.0 2 | -------------------------------------------------------------------------------- /deploy-spring-boot-to-local-k8s/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:11.0.16-jdk 2 | VOLUME /tmp 3 | COPY target/deploy-spring-boot-to-local-k8s.jar app.jar 4 | CMD [ "sh", "-c", "java -jar /app.jar" ] 5 | -------------------------------------------------------------------------------- /deploy-spring-boot-to-local-k8s/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /difference-between-mock-and-mockbean/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/difference-between-mock-and-mockbean/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /difference-between-mock-and-mockbean/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /difference-between-mock-and-mockbean/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/difference-between-mock-and-mockbean/README.md -------------------------------------------------------------------------------- /difference-between-mock-and-mockbean/docs/spring-test-context-mockbean-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/difference-between-mock-and-mockbean/docs/spring-test-context-mockbean-example.png -------------------------------------------------------------------------------- /difference-between-mock-and-mockbean/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dynamic-sql-querying-with-pagination/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/dynamic-sql-querying-with-pagination/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /dynamic-sql-querying-with-pagination/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip 2 | -------------------------------------------------------------------------------- /dynamic-sql-querying-with-pagination/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/dynamic-sql-querying-with-pagination/src/main/resources/application.properties -------------------------------------------------------------------------------- /embedded-messaging-engine-open-liberty/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:javaee8 2 | COPY server.xml /config/ 3 | COPY derby.jar /config/ 4 | ADD target/*.war /config/dropins/ -------------------------------------------------------------------------------- /embedded-messaging-engine-open-liberty/derby.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/embedded-messaging-engine-open-liberty/derby.jar -------------------------------------------------------------------------------- /expose-git-information-actuator/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/expose-git-information-actuator/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /expose-git-information-actuator/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /expose-git-information-actuator/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=health,info 2 | -------------------------------------------------------------------------------- /five-unknown-junit-5-features/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/five-unknown-junit-5-features/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /five-unknown-junit-5-features/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /five-unknown-junit-5-features/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [Five JUnit 5 features you might not know yet](https://rieckpil.de/five-junit-5-features-you-might-not-know-yet/) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `five-unkown-junit-5-features` 7 | 3. Execute the tests with `mvn test` 8 | -------------------------------------------------------------------------------- /five-unknown-junit-5-features/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /five-unknown-junit-5-features/src/test/resources/junit-platform.properties: -------------------------------------------------------------------------------- 1 | # Optional way to configure JUnit 5 2 | #junit.jupiter.execution.parallel.enabled = true 3 | #junit.jupiter.execution.parallel.mode.default = concurrent 4 | -------------------------------------------------------------------------------- /generate-documents-from-word-templates-with-docx4j-on-wildfly14/.java-version: -------------------------------------------------------------------------------- 1 | 1.8 2 | -------------------------------------------------------------------------------- /generate-documents-from-word-templates-with-docx4j-on-wildfly14/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jboss/wildfly:20.0.0.Final 2 | 3 | ENV JAVA_OPTS="-Xms64m -Xmx1024m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true" 4 | 5 | ADD target/word-generation.war /opt/jboss/wildfly/standalone/deployments/ROOT.war 6 | -------------------------------------------------------------------------------- /generate-documents-from-word-templates-with-docx4j-on-wildfly14/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | } 9 | -------------------------------------------------------------------------------- /generate-documents-from-word-templates-with-docx4j-on-wildfly14/src/main/resources/docx4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/generate-documents-from-word-templates-with-docx4j-on-wildfly14/src/main/resources/docx4j.properties -------------------------------------------------------------------------------- /generate-documents-from-word-templates-with-docx4j-on-wildfly14/src/main/resources/template.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/generate-documents-from-word-templates-with-docx4j-on-wildfly14/src/main/resources/template.docx -------------------------------------------------------------------------------- /generate-documents-from-word-templates-with-docx4j-on-wildfly14/src/main/webapp/WEB-INF/jboss-deployment-structure.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /generating-test-data-with-instancio/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.nonNull.exceptionType=IllegalArgumentException -------------------------------------------------------------------------------- /generating-test-data-with-instancio/src/test/resources/instancio.properties: -------------------------------------------------------------------------------- 1 | string.type=ALPHANUMERIC 2 | string.max.length=200 3 | collection.max.size=50 -------------------------------------------------------------------------------- /getting-started-jakarta-ee-microprofile/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /getting-started-jakarta-ee-microprofile/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openliberty/open-liberty:kernel-java11-openj9-ubi 2 | 3 | COPY --chown=1001:0 target/jakarta-ee-microprofile.war /config/dropins/ 4 | COPY --chown=1001:0 src/main/liberty/config/server.xml /config 5 | 6 | RUN configure.sh 7 | -------------------------------------------------------------------------------- /getting-started-jakarta-ee-microprofile/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.learning/jakarta-ee-microprofile . 4 | call docker rm -f jakarta-ee-microprofile 5 | call docker run -d -p 9080:9080 -p 9443:9443 --name demo de.rieckpil.learning/jakarta-ee-microprofile 6 | -------------------------------------------------------------------------------- /getting-started-jakarta-ee-microprofile/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.learning/jakarta-ee-microprofile . 3 | docker rm -f jakarta-ee-microprofile || true && docker run -d -p 9080:9080 -p 9443:9443 --name jakarta-ee-microprofile de.rieckpil.learning/jakarta-ee-microprofile 4 | -------------------------------------------------------------------------------- /getting-started-jakarta-ee-microprofile/src/main/java/de/rieckpil/learning/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.learning; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } -------------------------------------------------------------------------------- /getting-started-jakarta-ee-microprofile/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World Jakarta EE 8 -------------------------------------------------------------------------------- /github-actions-java-maven/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /github-actions-java-maven/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:11.0.16-jdk 2 | VOLUME /tmp 3 | COPY target/*.jar app.jar 4 | ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 5 | -------------------------------------------------------------------------------- /github-actions-java-maven/src/main/java/de/rieckpil/blog/ApplicationUserRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface ApplicationUserRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /github-actions-java-maven/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.driver-class-name=org.postgresql.Driver 2 | spring.jpa.hibernate.ddl-auto=create-drop 3 | -------------------------------------------------------------------------------- /graalvm-intro/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /graalvm-intro/.java-version: -------------------------------------------------------------------------------- 1 | 11.0 2 | -------------------------------------------------------------------------------- /graalvm-intro/prettyMe.json: -------------------------------------------------------------------------------- 1 | {"GraalVM":{"description":"Language Abstraction Platform","supports":["combining languages","embedding languages","creating native images"],"languages": ["Java","JavaScript","Node.js", "Python", "Ruby","R","LLVM"]}} -------------------------------------------------------------------------------- /graalvm-intro/src/main/java/HelloWorld.java: -------------------------------------------------------------------------------- 1 | public class HelloWorld { 2 | 3 | public static void main(String[] args) { 4 | System.out.println("Hello World!"); 5 | } 6 | 7 | } 8 | -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/.dockerignore: -------------------------------------------------------------------------------- 1 | frontend/ 2 | src/ -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:kernel-java11 2 | COPY --chown=1001:0 postgresql-*.jar /opt/ol/wlp/lib/ 3 | COPY --chown=1001:0 target/guide-to-jakarta-ee-with-react-and-postgresql.war /config/dropins/ 4 | COPY --chown=1001:0 server.xml /config -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | node/ 3 | src/ 4 | public/ -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.17.4 2 | COPY build /usr/share/nginx/html -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/favicon.ico -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/logo192.png -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/logo512.png -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/short-paragraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/guide-to-jakarta-ee-with-react-and-postgresql/frontend/public/short-paragraph.png -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | 8 | ReactDOM.render(, div); 9 | ReactDOM.unmountComponentAtNode(div); 10 | }); 11 | -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/frontend/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "guide-to-jakarta-ee-with-react-and-postgresql", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": {} 6 | } 7 | -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/postgresql-42.2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/guide-to-jakarta-ee-with-react-and-postgresql/postgresql-42.2.5.jar -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | } 9 | -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | book_list_size=3 -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/src/main/resources/db/migration/V01__CREATE_BOOK_TABLE.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE book ( 2 | id BIGINT PRIMARY KEY, 3 | title VARCHAR(255) NOT NULL, 4 | excerpt TEXT, 5 | author VARCHAR(255) NOT NULL, 6 | isbn VARCHAR (20) NOT NULL, 7 | genre VARCHAR(255), 8 | published TIMESTAMP 9 | ); -------------------------------------------------------------------------------- /guide-to-jakarta-ee-with-react-and-postgresql/src/main/resources/db/migration/flyway.location: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/guide-to-jakarta-ee-with-react-and-postgresql/src/main/resources/db/migration/flyway.location -------------------------------------------------------------------------------- /hello-world-jsf-2.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full 2 | COPY target/hello-world-jsf.war $DEPLOY_DIR 3 | -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/.wadrc: -------------------------------------------------------------------------------- 1 | C:\Development\Server\Payara\payara-5.183\glassfish\domains\domain1\autodeploy 2 | C:\Development\Server\OpenLiberty\openliberty-19.0.0.1\usr\servers\defaultServer\dropins 3 | C:\Development\Server\Wildfly\wildfly-16.0.0\standalone\deployments 4 | C:\Development\Server\TomEE\apache-tomee-plume-8.0.0-M2\webapps -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:latest 2 | COPY target/improved-java-ee-productivity-with-wad.war $DEPLOY_DIR -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/improved-java-ee-productivity-with-wad . 4 | call docker rm -f improved-java-ee-productivity-with-wad 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name improved-java-ee-productivity-with-wad de.rieckpil.blog/improved-java-ee-productivity-with-wad -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/improved-java-ee-productivity-with-wad . 3 | docker rm -f improved-java-ee-productivity-with-wad || true && docker run -d -p 8080:8080 -p 4848:4848 --name improved-java-ee-productivity-with-wad de.rieckpil.blog/improved-java-ee-productivity-with-wad -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/src/main/java/sample/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World Java EE 8 -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /improved-java-ee-productivity-with-wad/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/improved-java-ee-productivity-with-wad/wad.jar -------------------------------------------------------------------------------- /intercept-methods-with-cdi-interceptors/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /intercept-methods-with-cdi-interceptors/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.192 2 | COPY target/intercept-methods-with-cdi-interceptors.war $DEPLOY_DIR -------------------------------------------------------------------------------- /intercept-methods-with-cdi-interceptors/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/intercept-methods-with-cdi-interceptors . 3 | docker rm -f intercept-methods-with-cdi-interceptors || true && docker run -d -p 8080:8080 -p 4848:4848 --name intercept-methods-with-cdi-interceptors de.rieckpil.blog/intercept-methods-with-cdi-interceptors -------------------------------------------------------------------------------- /intercept-methods-with-cdi-interceptors/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /intercept-methods-with-cdi-interceptors/src/main/java/de/rieckpil/blog/PaymentManipulator.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.enterprise.context.RequestScoped; 4 | 5 | @RequestScoped 6 | public class PaymentManipulator { 7 | 8 | public void manipulatePayment() { 9 | System.out.println("Manipulating payment..."); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /intercept-methods-with-cdi-interceptors/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /intercept-methods-with-cdi-interceptors/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/intercept-methods-with-cdi-interceptors/wad.jar -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/.dockerignore: -------------------------------------------------------------------------------- 1 | src/main/frontend 2 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.194 2 | COPY target/jakarta-ee-react-file-handling.war $DEPLOY_DIR 3 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/jakarta-ee-react-file-handling . 4 | call docker rm -f jakarta-ee-react-file-handling 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name jakarta-ee-react-file-handling de.rieckpil.blog/jakarta-ee-react-file-handling 6 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/jakarta-ee-react-file-handling . 3 | docker rm -f jakarta-ee-react-file-handling || true && docker run -d -p 8080:8080 -p 4848:4848 --name jakarta-ee-react-file-handling de.rieckpil.blog/jakarta-ee-react-file-handling 4 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/frontend/public/jakartaEELogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/jakarta-ee-react-file-handling/src/main/frontend/public/jakartaEELogo.png -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/frontend/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {render} from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders the app', () => { 6 | render(); 7 | }); 8 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/frontend/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/frontend/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom/extend-expect'; 6 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World Jakarta EE 8 -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /jakarta-ee-react-file-handling/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | 5 | -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.192 2 | COPY target/java-ee-kubernetes-deployment.war $DEPLOY_DIR -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/java-ee-kubernetes-deployment . 4 | call docker rm -f java-ee-kubernetes-deployment 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name java-ee-kubernetes-deployment de.rieckpil.blog/java-ee-kubernetes-deployment -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/java-ee-kubernetes-deployment . 3 | docker rm -f java-ee-kubernetes-deployment || true && docker run -d -p 8080:8080 -p 4848:4848 --name java-ee-kubernetes-deployment de.rieckpil.blog/java-ee-kubernetes-deployment -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/src/main/java/sample/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package sample; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World Java EE 8 -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /java-ee-kubernetes-deployment/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /java-ee-sending-mails/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | wad.jar 17 | 18 | /nbproject/private/ 19 | /build/ 20 | /nbbuild/ 21 | /dist/ 22 | /nbdist/ 23 | /.nb-gradle/ 24 | -------------------------------------------------------------------------------- /java-ee-sending-mails/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.201 2 | COPY create-mail-session.asadmin $CONFIG_DIR 3 | COPY target/java-ee-sending-mails.war $DEPLOY_DIR 4 | ENV POSTBOOT_COMMANDS $CONFIG_DIR/create-mail-session.asadmin 5 | -------------------------------------------------------------------------------- /java-ee-sending-mails/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | app: 4 | build: ./ 5 | ports: 6 | - "8080:8080" 7 | - "4848:4848" 8 | links: 9 | - smtp 10 | smtp: 11 | image: namshi/smtp 12 | ports: 13 | - "25:25" 14 | 15 | -------------------------------------------------------------------------------- /java-ee-sending-mails/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /java-ee-sending-mails/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | email=duke@java.ee -------------------------------------------------------------------------------- /java-ee-sending-mails/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /java-ee-sending-mails/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/backend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.191 2 | COPY target/backend.war $DEPLOY_DIR -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/backend/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/java-ee-uploading-and-downloading-files-with-web-components/backend/README.md -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/backend/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/backend . 4 | call docker rm -f backend 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name backend de.rieckpil.blog/backend -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/backend/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/backend . 3 | docker rm -f backend || true && docker run -d -p 8080:8080 -p 4848:4848 --name backend de.rieckpil.blog/backend -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/backend/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/backend/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/java-ee-uploading-and-downloading-files-with-web-components/backend/wad.jar -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | frontend: 4 | build: frontend 5 | ports: 6 | - "80:80" 7 | links: 8 | - backend 9 | backend: 10 | build: backend 11 | ports: 12 | - "8080:8080" 13 | -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/frontend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:latest 2 | COPY src /usr/share/nginx/html -------------------------------------------------------------------------------- /java-ee-uploading-and-downloading-files-with-web-components/frontend/src/app.js: -------------------------------------------------------------------------------- 1 | import DownloadComponent from './DownloadComponent.js'; 2 | import UploadComponent from './UploadComponent.js'; -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:latest 2 | COPY target/java-ee-websockets-with-jsf.war $DEPLOY_DIR -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/java-ee-websockets-with-jsf . 4 | call docker rm -f java-ee-websockets-with-jsf 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name java-ee-websockets-with-jsf de.rieckpil.blog/java-ee-websockets-with-jsf -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/java-ee-websockets-with-jsf . 3 | docker rm -f java-ee-websockets-with-jsf || true && docker run -d -p 8080:8080 -p 4848:4848 --name java-ee-websockets-with-jsf de.rieckpil.blog/java-ee-websockets-with-jsf -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World JSF with Java EE 8 -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /java-ee-websockets-with-jsf/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/java-ee-websockets-with-jsf/wad.jar -------------------------------------------------------------------------------- /java-ee-with-kotlin/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /java-ee-with-kotlin/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:kernel-java11 2 | COPY --chown=1001:0 target/java-ee-with-kotlin.war /config/dropins/ 3 | COPY --chown=1001:0 server.xml /config/ 4 | COPY --chown=1001:0 derby.jar /config/ -------------------------------------------------------------------------------- /java-ee-with-kotlin/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/java-ee-with-kotlin . 4 | call docker rm -f java-ee-with-kotlin 5 | call docker run -d -p 9080:9080 --name java-ee-with-kotlin de.rieckpil.blog/java-ee-with-kotlin -------------------------------------------------------------------------------- /java-ee-with-kotlin/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/java-ee-with-kotlin . 3 | docker rm -f java-ee-with-kotlin || true && docker run -d -p 9080:9080 --name java-ee-with-kotlin de.rieckpil.blog/java-ee-with-kotlin -------------------------------------------------------------------------------- /java-ee-with-kotlin/derby.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/java-ee-with-kotlin/derby.jar -------------------------------------------------------------------------------- /java-ee-with-kotlin/src/main/kotlin/de.rieckpil.blog/JAXRSConfiguration.kt: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | class JAXRSConfiguration : Application() { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /java-ee-with-kotlin/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World Java EE 8 -------------------------------------------------------------------------------- /java-ee-with-kotlin/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /java-magazin-jsf-primefaces/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /java-magazin-jsf-primefaces/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.191 2 | COPY target/java-magazin-jsf-primefaces.war $DEPLOY_DIR -------------------------------------------------------------------------------- /java-magazin-jsf-primefaces/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/java-magazin-jsf-primefaces . 4 | call docker rm -f java-magazin-jsf-primefaces 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name java-magazin-jsf-primefaces de.rieckpil.blog/java-magazin-jsf-primefaces -------------------------------------------------------------------------------- /java-magazin-jsf-primefaces/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/java-magazin-jsf-primefaces . 3 | docker rm -f java-magazin-jsf-primefaces || true && docker run -d -p 8080:8080 -p 4848:4848 --name java-magazin-jsf-primefaces de.rieckpil.blog/java-magazin-jsf-primefaces -------------------------------------------------------------------------------- /java-magazin-jsf-primefaces/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /java-magazin-jsf-primefaces/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /jax-rs-api-rate-limiting-with-jsr-375/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.201 2 | COPY target/*.war $DEPLOY_DIR 3 | -------------------------------------------------------------------------------- /jax-rs-api-rate-limiting-with-jsr-375/reachApi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for i in {1..10}; do 4 | echo -e "Access API with user 'rieckpil' API $i times" 5 | curl -H 'Authorization: Basic cmllY2twaWw6SGVsbG9Xb3JsZA==' http://localhost:8080/api-rate-limiting/resources/stocks 6 | echo -e "\n" 7 | done 8 | -------------------------------------------------------------------------------- /jax-rs-api-rate-limiting-with-jsr-375/src/main/java/de/rieckpil/blog/JAXRSApplication.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("/resources") 7 | public class JAXRSApplication extends Application { 8 | } 9 | -------------------------------------------------------------------------------- /jpa-integration-tests-java-ee/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.183 2 | COPY target/jpa-integration-tests-java-ee.war $DEPLOY_DIR -------------------------------------------------------------------------------- /jpa-integration-tests-java-ee/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/jpa-integration-tests-java-ee . 4 | call docker rm -f jpa-integration-tests-java-ee 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name jpa-integration-tests-java-ee de.rieckpil.blog/jpa-integration-tests-java-ee -------------------------------------------------------------------------------- /jpa-integration-tests-java-ee/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/jpa-integration-tests-java-ee . 3 | docker rm -f jpa-integration-tests-java-ee || true && docker run -d -p 8080:8080 -p 4848:4848 --name jpa-integration-tests-java-ee de.rieckpil.blog/jpa-integration-tests-java-ee -------------------------------------------------------------------------------- /jpa-integration-tests-java-ee/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /jpa-integration-tests-java-ee/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /jsf-simple-login-with-java-ee-security-api/.java-version: -------------------------------------------------------------------------------- 1 | 1.8 2 | -------------------------------------------------------------------------------- /jsf-simple-login-with-java-ee-security-api/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full 2 | COPY target/*.war $DEPLOY_DIR 3 | 4 | 5 | -------------------------------------------------------------------------------- /jsf-simple-login-with-java-ee-security-api/WildFlyDockerfile: -------------------------------------------------------------------------------- 1 | FROM jboss/wildfly:18.0.1.Final 2 | COPY target/*.war /opt/jboss/wildfly/standalone/deployments/ 3 | -------------------------------------------------------------------------------- /kotlin-javascript-transpiling-gradle/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /kotlin-javascript-transpiling-gradle/.java-version: -------------------------------------------------------------------------------- 1 | 1.8 2 | -------------------------------------------------------------------------------- /kotlin-javascript-transpiling-gradle/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /kotlin-javascript-transpiling-gradle/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/kotlin-javascript-transpiling-gradle/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-javascript-transpiling-gradle/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-javascript-transpiling-gradle/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "kotlin-javascript-transpiling-gradle" 2 | -------------------------------------------------------------------------------- /launchdarkly-java-development-testing-hints/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /launchdarkly-java-development-testing-hints/.java-version: -------------------------------------------------------------------------------- 1 | 17 2 | -------------------------------------------------------------------------------- /launchdarkly-java-development-testing-hints/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/launchdarkly-java-development-testing-hints/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /launchdarkly-java-development-testing-hints/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /launchdarkly-java-development-testing-hints/simple-in-memory-flags.json: -------------------------------------------------------------------------------- 1 | { 2 | "flagValues": { 3 | "root-log-level": "DEBUG", 4 | "vat-amount": 19.5, 5 | "max-parallel-sessions": 32, 6 | "enable-event-publishing": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /launchdarkly-java-development-testing-hints/src/main/java/de/rieckpil/blog/FeatureFlagClient.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public interface FeatureFlagClient { 4 | String getCurrentValue(String featureFlagKey, String username); 5 | 6 | void registerChangeListener(String featureFlagKey, String username, FeatureFlagValueChangeHandler changeHandler); 7 | } 8 | -------------------------------------------------------------------------------- /launchdarkly-java-development-testing-hints/src/main/java/de/rieckpil/blog/FeatureFlagValueChangeHandler.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | @FunctionalInterface 4 | public interface FeatureFlagValueChangeHandler { 5 | 6 | void handle(String oldValue, String newValue); 7 | } 8 | -------------------------------------------------------------------------------- /lazy-loading-of-jpa-attributes-with-hibernate/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/lazy-loading-of-jpa-attributes-with-hibernate/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /lazy-loading-of-jpa-attributes-with-hibernate/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /lazy-loading-of-jpa-attributes-with-hibernate/src/main/java/de/rieckpil/blog/FileUploadRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface FileUploadRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /lazy-loading-of-jpa-attributes-with-hibernate/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.h2.console.enabled=true 2 | spring.jpa.show-sql=true -------------------------------------------------------------------------------- /lazy-loading-of-jpa-attributes-with-hibernate/src/test/java/de/rieckpil/blog/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /load-testing-your-application/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/load-testing-your-application/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /load-testing-your-application/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /load-testing-your-application/src/main/java/de/rieckpil/blog/PersonRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface PersonRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /load-testing-your-application/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /load-testing-your-application/src/test/java/de/rieckpil/blog/LoadTestingYourApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class LoadTestingYourApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /maven-junit-paralellize-tests/.gitignore: -------------------------------------------------------------------------------- 1 | .classpath.txt 2 | target 3 | .classpath 4 | .project 5 | .idea 6 | .settings 7 | .vscode 8 | *.iml 9 | -------------------------------------------------------------------------------- /maven-junit-paralellize-tests/.java-version: -------------------------------------------------------------------------------- 1 | 17 2 | -------------------------------------------------------------------------------- /maven-junit-paralellize-tests/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/maven-junit-paralellize-tests/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /maven-junit-paralellize-tests/src/main/java/de/rieckpil/blog/StringFormatter.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class StringFormatter { 4 | 5 | public String format(String input) { 6 | return input.toUpperCase(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /maven-plugins-to-ensure-quality/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/maven-plugins-to-ensure-quality/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /maven-plugins-to-ensure-quality/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /maven-plugins-to-ensure-quality/src/main/resources/message.txt: -------------------------------------------------------------------------------- 1 | Hello World! 2 | -------------------------------------------------------------------------------- /maven-plugins-to-ensure-quality/src/test/java/de/rieckpil/blog/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /messaging-with-jms-using-payara/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /messaging-with-jms-using-payara/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.191 2 | COPY target/*.war $DEPLOY_DIR 3 | COPY create-jms-queue.asadmin $CONFIG_DIR 4 | ENV POSTBOOT_COMMANDS $CONFIG_DIR/create-jms-queue.asadmin 5 | -------------------------------------------------------------------------------- /messaging-with-jms-using-payara/create-jms-queue.asadmin: -------------------------------------------------------------------------------- 1 | create-jms-resource --restype javax.jms.Queue --property Name=STOCKS jms/stocks 2 | deploy /opt/payara/deployments/messaging-with-jms-using-payara.war -------------------------------------------------------------------------------- /messaging-with-jms-using-payara/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /messaging-with-jms-using-payara/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/messaging-with-jms-using-payara/wad.jar -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/backend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.184 2 | COPY target/microprofile-jwt-keycloak-auth.war $DEPLOY_DIR -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/backend/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.learning/microprofile-jwt-keycloak-auth . 4 | call docker rm -f microprofile-jwt-keycloak-auth 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name microprofile-jwt-keycloak-auth de.rieckpil.learning/microprofile-jwt-keycloak-auth -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/backend/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.learning/microprofile-jwt-keycloak-auth . 3 | docker rm -f microprofile-jwt-keycloak-auth || true && docker run -d -p 8080:8080 -p 4848:4848 --name microprofile-jwt-keycloak-auth de.rieckpil.learning/microprofile-jwt-keycloak-auth -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/backend/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Very Secure 42! 2 | mp.jwt.verify.publickey.location=/META-INF/orange.pem 3 | mp.jwt.verify.issuer=http://localhost:8282/auth/realms/MicroProfile 4 | -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/backend/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/frontend/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/frontend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.14-alpine 2 | COPY build /usr/share/nginx/html 3 | EXPOSE 80 -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/microprofile-jwt-keycloak-auth/frontend/public/favicon.ico -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/frontend/public/keycloak.json: -------------------------------------------------------------------------------- 1 | { 2 | "realm": "MicroProfile", 3 | "auth-server-url": "http://localhost:8282/auth", 4 | "ssl-required": "external", 5 | "resource": "react-webapp", 6 | "public-client": true, 7 | "confidential-port": 0 8 | } -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/frontend/target/npmlist.json: -------------------------------------------------------------------------------- 1 | {"version":"0.1.0","name":"frontend","dependencies":{"axios":{"version":"0.25.0"},"keycloak-js":{"version":"16.1.1"},"react-dom":{"version":"17.0.2"},"react-scripts":{"version":"4.0.3"},"react":{"version":"17.0.2"},"semantic-ui-css":{"version":"2.4.1"},"semantic-ui-react":{"version":"2.1.1"}}} -------------------------------------------------------------------------------- /microprofile-jwt-keycloak-auth/keycloak/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jboss/keycloak:4.8.2.Final 2 | 3 | COPY import-realm.json /opt/jboss/keycloak/ 4 | 5 | ENTRYPOINT [ "/opt/jboss/tools/docker-entrypoint.sh" ] 6 | 7 | CMD ["-b", "0.0.0.0", "-Dkeycloak.import=/opt/jboss/keycloak/import-realm.json"] -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | order-application: 4 | build: order-application 5 | ports: 6 | - "8080:8080" 7 | links: 8 | - user-management-application 9 | user-management-application: 10 | build: user-management-application -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/order-application/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.201 2 | COPY target/order-application.war $DEPLOY_DIR 3 | -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/order-application/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/order-application/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/order-application/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/microprofile-rest-client-for-restful-communication/order-application/wad.jar -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/user-management-application/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.201 2 | COPY target/user-management-application.war $DEPLOY_DIR 3 | -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/user-management-application/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/user-management-application/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/microprofile-rest-client-for-restful-communication/user-management-application/src/main/resources/META-INF/microprofile-config.properties -------------------------------------------------------------------------------- /microprofile-rest-client-for-restful-communication/user-management-application/wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/microprofile-rest-client-for-restful-communication/user-management-application/wad.jar -------------------------------------------------------------------------------- /mockito-tips-and-tricks/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/mockito-tips-and-tricks/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /mockito-tips-and-tricks/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /mockito-tips-and-tricks/src/main/java/de/rieckpil/blog/staticsmocks/OrderIdGenerator.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.staticsmocks; 2 | 3 | import java.util.UUID; 4 | 5 | public class OrderIdGenerator { 6 | public String generateOrderId() { 7 | return UUID.randomUUID().toString(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /mockito-tips-and-tricks/src/main/java/de/rieckpil/blog/then/UserRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.then; 2 | 3 | public interface UserRepository { 4 | User save(User user); 5 | } 6 | -------------------------------------------------------------------------------- /mockito-tips-and-tricks/src/test/java/de/rieckpil/blog/kt/OrderServiceTest.kt: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.kt 2 | 3 | internal class OrderServiceTest 4 | -------------------------------------------------------------------------------- /mockito-tips-and-tricks/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | -------------------------------------------------------------------------------- /nice-looking-jsf-apps-with-prime-faces-7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.201 2 | 3 | ENV JVM_ARGS="-Xmx1024m -Xms256m" 4 | 5 | COPY target/nice-looking-jsf-apps-with-prime-faces-7.war $DEPLOY_DIR 6 | -------------------------------------------------------------------------------- /nice-looking-jsf-apps-with-prime-faces-7/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mvn clean package && docker build -t de.rieckpil.blog/nice-looking-jsf-apps-with-prime-faces-7 . 3 | docker rm -f nice-looking-jsf-apps-with-prime-faces-7 || true && docker run -d -p 8080:8080 -p 4848:4848 --name nice-looking-jsf-apps-with-prime-faces-7 de.rieckpil.blog/nice-looking-jsf-apps-with-prime-faces-7 4 | -------------------------------------------------------------------------------- /nice-looking-jsf-apps-with-prime-faces-7/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /nice-looking-jsf-apps-with-prime-faces-7/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /open-liberty-maven-plugin-review/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /open-liberty-maven-plugin-review/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:kernel-java11 2 | COPY --chown=1001:0 target/open-maven-plugin-review.war /config/dropins/ 3 | COPY --chown=1001:0 src/main/liberty/config/server.xml /config 4 | COPY --chown=1001:0 src/main/liberty/config/h2.jar /config 5 | -------------------------------------------------------------------------------- /open-liberty-maven-plugin-review/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/open-maven-plugin-review . 4 | call docker rm -f open-maven-plugin-review 5 | call docker run -d -p 9080:9080 -p 9443:9443 --name open-maven-plugin-review de.rieckpil.blog/open-maven-plugin-review -------------------------------------------------------------------------------- /open-liberty-maven-plugin-review/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/open-maven-plugin-review . 3 | docker rm -f open-maven-plugin-review || true && docker run -d -p 9080:9080 -p 9443:9443 --name open-maven-plugin-review de.rieckpil.blog/open-maven-plugin-review -------------------------------------------------------------------------------- /open-liberty-maven-plugin-review/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } -------------------------------------------------------------------------------- /open-liberty-maven-plugin-review/src/main/java/de/rieckpil/blog/SampleService.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class SampleService { 4 | public String modifyString(String input) { 5 | return input + " - modified by " + SampleService.class.getSimpleName(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /open-liberty-maven-plugin-review/src/main/liberty/config/h2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/open-liberty-maven-plugin-review/src/main/liberty/config/h2.jar -------------------------------------------------------------------------------- /open-rewrite-example/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /open-rewrite-example/.java-version: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /open-rewrite-example/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/open-rewrite-example/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /open-rewrite-example/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /open-rewrite-example/src/main/java/de/rieckpil/blog/ProductReporter.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class ProductReporter { 4 | public void notify(String productName) { 5 | System.out.println(productName + " is currently in stock of the competitor"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /open-rewrite-example/src/main/java/de/rieckpil/blog/ProductVerifier.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class ProductVerifier { 4 | public boolean isCurrentlyInStockOfCompetitor(String productName) { 5 | return false; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pdf-preview-react/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/pdf-preview-react/public/favicon.ico -------------------------------------------------------------------------------- /pdf-preview-react/sampleDocument.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/pdf-preview-react/sampleDocument.pdf -------------------------------------------------------------------------------- /postgres-11-stored-procedures-hibernate/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/postgres-11-stored-procedures-hibernate/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /postgres-11-stored-procedures-hibernate/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /postgres-11-stored-procedures-hibernate/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:11 2 | 3 | COPY INIT.sql /docker-entrypoint-initdb.d -------------------------------------------------------------------------------- /random-data-in-java-using-java-faker/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/random-data-in-java-using-java-faker/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /random-data-in-java-using-java-faker/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /react-app-kubernetes/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /react-app-kubernetes/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.17 2 | COPY build/ /usr/share/nginx/html -------------------------------------------------------------------------------- /react-app-kubernetes/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/react-app-kubernetes/public/favicon.ico -------------------------------------------------------------------------------- /react-app-kubernetes/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /reducing-testcontainers-execution-time/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.nonNull.exceptionType=IllegalArgumentException 2 | -------------------------------------------------------------------------------- /reducing-testcontainers-execution-time/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | jpa: 3 | hibernate: 4 | ddl-auto: update -------------------------------------------------------------------------------- /remote-debugging-spring-boot-application/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/remote-debugging-spring-boot-application/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /remote-debugging-spring-boot-application/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /remote-debugging-spring-boot-application/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:11.0.16-jdk-slim 2 | VOLUME /tmp 3 | COPY target/remote-debugging-spring-boot-application.jar app.jar 4 | ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000","-jar","/app.jar"] -------------------------------------------------------------------------------- /remote-debugging-spring-boot-application/src/main/java/de/rieckpil/blog/BookRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface BookRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /remote-debugging-spring-boot-application/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["config:base"], 3 | "enabledManagers": ["gradle", "maven", "dockerfile"], 4 | "packageRules": [ 5 | { 6 | "managers": ["npm"], 7 | "enabled": false 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /rest-easy-file-uploading-and-downloading/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /rest-easy-file-uploading-and-downloading/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jboss/wildfly:16.0.0.Final 2 | COPY target/rest-easy-file-uploading-and-downloading.war /opt/jboss/wildfly/standalone/deployments/ROOT.war -------------------------------------------------------------------------------- /rest-easy-file-uploading-and-downloading/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/rest-easy-file-uploading-and-downloading . 3 | docker rm -f rest-easy-file-uploading-and-downloading || true && docker run -d -p 8080:8080 -p 9990:9990 --name rest-easy-file-uploading-and-downloading de.rieckpil.blog/rest-easy-file-uploading-and-downloading -------------------------------------------------------------------------------- /rest-easy-file-uploading-and-downloading/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /rest-easy-file-uploading-and-downloading/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /review-hypersistence-optimizer/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /review-hypersistence-optimizer/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.open-in-view=true 2 | spring.h2.console.enabled=true 3 | spring.h2.console.path=/h2-console 4 | -------------------------------------------------------------------------------- /review-microshed-testing/.dockerignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !target/review-microshed-testing.war 3 | -------------------------------------------------------------------------------- /review-microshed-testing/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /review-microshed-testing/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openliberty/open-liberty:20.0.0.5-kernel-java11-openj9-ubi 2 | 3 | COPY --chown=1001:0 src/main/liberty/config/postgres /config/postgres 4 | COPY --chown=1001:0 src/main/liberty/config/server.xml /config 5 | COPY --chown=1001:0 target/review-microshed-testing.war /config/dropins/ 6 | 7 | RUN configure.sh 8 | -------------------------------------------------------------------------------- /review-microshed-testing/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/review-microshed-testing . 4 | call docker rm -f review-microshed-testing 5 | call docker run -d -p 9080:9080 -p 9443:9443 --name review-microshed-testing de.rieckpil.blog/review-microshed-testing -------------------------------------------------------------------------------- /review-microshed-testing/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/review-microshed-testing . 3 | docker rm -f review-microshed-testing || true && docker run -d -p 9080:9080 -p 9443:9443 --name review-microshed-testing de.rieckpil.blog/review-microshed-testing -------------------------------------------------------------------------------- /review-microshed-testing/src/main/java/de/rieckpil/blog/JAXRSConfiguration.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import javax.ws.rs.ApplicationPath; 4 | import javax.ws.rs.core.Application; 5 | 6 | @ApplicationPath("resources") 7 | public class JAXRSConfiguration extends Application { 8 | } -------------------------------------------------------------------------------- /review-microshed-testing/src/main/liberty/config/postgres/postgresql-42.2.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/review-microshed-testing/src/main/liberty/config/postgres/postgresql-42.2.8.jar -------------------------------------------------------------------------------- /review-microshed-testing/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | message=Hello World Jakarta EE 8 -------------------------------------------------------------------------------- /review-microshed-testing/src/main/webapp/WEB-INF/beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /running-java-within-postgres/CREATE_FUNCTION.sql: -------------------------------------------------------------------------------- 1 | SELECT greet('Philip'); 2 | SELECT split_string_by_delimiter('holidays - 2018 - sicily - tom > 1', '-' ); 3 | SELECT get_oldest_person(); 4 | \df 5 | -------------------------------------------------------------------------------- /send-emails-with-sendgrid-and-spring-boot/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/send-emails-with-sendgrid-and-spring-boot/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /send-emails-with-sendgrid-and-spring-boot/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /send-emails-with-sendgrid-and-spring-boot/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.sendgrid.api-key=PLEACE_REPLACE_ME 2 | templateId=c7db2bea-95ed-4cbb-90f9-646132784d92 -------------------------------------------------------------------------------- /serverless-java-aws-examples/.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | target 3 | /bin/ 4 | /.settings/ 5 | .project 6 | .classpath 7 | 8 | # Package Files 9 | *.jar 10 | *.war 11 | *.ear 12 | 13 | # Serverless directories 14 | .serverless -------------------------------------------------------------------------------- /serverless-java-aws-examples/java-aws-lambda-custom-image/.java-version: -------------------------------------------------------------------------------- 1 | 15.0 2 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/java-chromedriver-aws-lambda/.java-version: -------------------------------------------------------------------------------- 1 | 11.0 2 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/simple-aws-lambda/.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | target 3 | /bin/ 4 | /.settings/ 5 | .project 6 | .classpath 7 | 8 | # Package Files 9 | *.jar 10 | *.war 11 | *.ear 12 | 13 | # Serverless directories 14 | .serverless -------------------------------------------------------------------------------- /serverless-java-aws-examples/simple-aws-lambda/.java-version: -------------------------------------------------------------------------------- 1 | 11.0 2 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-aws/src/main/java/de/rieckpil/blog/EmptyInputHandler.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.cloud.function.adapter.aws.SpringBootRequestHandler; 4 | 5 | public class EmptyInputHandler extends SpringBootRequestHandler { 6 | } 7 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-aws/src/main/java/de/rieckpil/blog/S3EventHandler.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import com.amazonaws.services.lambda.runtime.events.S3Event; 4 | import org.springframework.cloud.function.adapter.aws.SpringBootRequestHandler; 5 | 6 | public class S3EventHandler extends SpringBootRequestHandler { 7 | } 8 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-aws/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.main.banner-mode=off 2 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-aws/src/test/java/de/rieckpil/blog/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | public void test() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-kotlin-aws/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/serverless-java-aws-examples/spring-cloud-function-kotlin-aws/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-kotlin-aws/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.2/apache-maven-3.8.2-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-kotlin-aws/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "serverless-plugin-aws-alerts": "^1.7.3" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-kotlin-aws/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/spring-cloud-function-kotlin-aws/src/test/kotlin/de/rieckpil/blog/ApplicationTest.kt: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog 2 | 3 | import org.junit.jupiter.api.Test 4 | import org.springframework.boot.test.context.SpringBootTest 5 | 6 | @SpringBootTest 7 | class ApplicationTest { 8 | 9 | @Test 10 | fun contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /serverless-java-aws-examples/thumbnail-generator/.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | target 3 | /bin/ 4 | /.settings/ 5 | .project 6 | .classpath 7 | 8 | # Package Files 9 | *.jar 10 | *.war 11 | *.ear 12 | 13 | # Serverless directories 14 | .serverless -------------------------------------------------------------------------------- /serverless-java-aws-examples/thumbnail-generator/aws-lambda-thumbnail-architecture-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/serverless-java-aws-examples/thumbnail-generator/aws-lambda-thumbnail-architecture-background.png -------------------------------------------------------------------------------- /serverless-java-aws-examples/thumbnail-generator/aws-lambda-thumbnail-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/serverless-java-aws-examples/thumbnail-generator/aws-lambda-thumbnail-architecture.png -------------------------------------------------------------------------------- /serverless-java-aws-examples/thumbnail-generator/myPicture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/serverless-java-aws-examples/thumbnail-generator/myPicture.png -------------------------------------------------------------------------------- /simple-crud-table-with-jsf-and-primefaces/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM payara/server-full:5.201 2 | COPY target/crud-table-jsf-primefaces.war $DEPLOY_DIR 3 | -------------------------------------------------------------------------------- /simple-crud-table-with-jsf-and-primefaces/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/crud-table-jsf-primefaces . 4 | call docker rm -f crud-table-jsf-primefaces 5 | call docker run -d -p 8080:8080 -p 4848:4848 --name crud-table-jsf-primefaces de.rieckpil.blog/crud-table-jsf-primefaces -------------------------------------------------------------------------------- /simple-crud-table-with-jsf-and-primefaces/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/crud-table-jsf-primefaces . 3 | docker rm -f crud-table-jsf-primefaces || true && docker run -d -p 8080:8080 -p 4848:4848 --name crud-table-jsf-primefaces de.rieckpil.blog/crud-table-jsf-primefaces -------------------------------------------------------------------------------- /simple-crud-table-with-jsf-and-primefaces/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /simple-database-documentation-with-schema-spy/.gitignore: -------------------------------------------------------------------------------- 1 | output/ -------------------------------------------------------------------------------- /simple-database-documentation-with-schema-spy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:11 2 | 3 | ENV POSTGRES_PASSWORD postgres 4 | 5 | ADD schema.sql /docker-entrypoint-initdb.d -------------------------------------------------------------------------------- /simple-database-documentation-with-schema-spy/postgresql-42.2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/simple-database-documentation-with-schema-spy/postgresql-42.2.5.jar -------------------------------------------------------------------------------- /simple-database-documentation-with-schema-spy/schemaspy-6.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/simple-database-documentation-with-schema-spy/schemaspy-6.0.0.jar -------------------------------------------------------------------------------- /spotless.importorder: -------------------------------------------------------------------------------- 1 | # Organize Import Order 2 | # See https://github.com/diffplug/spotless/issues/522#issuecomment-661921466 3 | # Last refers to static imports 4 | 0=java 5 | 1=javax 6 | 2= 7 | 3=\# 8 | -------------------------------------------------------------------------------- /spring-boot-aws-integration-tests/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | event-processing: 2 | order-event-queue: order-event-queue 3 | order-event-bucket: order-event-bucket 4 | 5 | spring: 6 | cloud: 7 | aws: 8 | region: 9 | static: eu-central-1 10 | -------------------------------------------------------------------------------- /spring-boot-aws-ssm-parameter-resolving/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: demo 4 | 5 | cloud: 6 | aws: 7 | region: 8 | static: eu-central-1 9 | stack: 10 | auto: false 11 | -------------------------------------------------------------------------------- /spring-boot-aws-ssm-parameter-resolving/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | #aws: 2 | # paramstore: 3 | # enabled: true 4 | # name: other-app-name 5 | # prefix: /myPrefix 6 | # profile-separator: '-' 7 | -------------------------------------------------------------------------------- /spring-boot-datajpatest/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-datajpatest/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-datajpatest/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-datajpatest/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | jpa: 3 | hibernate: 4 | ddl-auto: validate 5 | datasource: 6 | password: springboot 7 | username: springboot 8 | url: jdbc:postgresql://localhost:5432/springboot 9 | 10 | -------------------------------------------------------------------------------- /spring-boot-datajpatest/src/main/resources/db/migration/V001__CREATE_TABLES.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE orders ( 2 | ID BIGSERIAL PRIMARY KEY, 3 | TRACKING_NUMBER VARCHAR(255) UNIQUE NOT NULL, 4 | ITEMS JSONB 5 | ); 6 | -------------------------------------------------------------------------------- /spring-boot-feature-toggles-with-togglz/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-feature-toggles-with-togglz/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-feature-toggles-with-togglz/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | togglz.features.BOOK_WISHLIST.enabled=true 2 | togglz.feature-enums=de.rieckpil.blog.BookstoreFeatures 3 | togglz.console.enabled=true 4 | togglz.console.path=/togglz-console 5 | togglz.console.secured=false 6 | togglz.console.use-management-port=true 7 | management.server.port=8082 8 | -------------------------------------------------------------------------------- /spring-boot-feature-toggles-with-togglz/src/test/java/de/rieckpil/blog/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTest { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-hibernate-flyway-best-practices/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-hibernate-flyway-best-practices/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-hibernate-flyway-best-practices/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /spring-boot-hibernate-flyway-best-practices/src/main/java/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /spring-boot-hibernate-flyway-best-practices/src/main/java/de/rieckpil/blog/BestReviewedBooksRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface BestReviewedBooksRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /spring-boot-hibernate-flyway-best-practices/src/main/resources/db/migration/V001__CREATE_BOOKS.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE book ( 2 | id BIGSERIAL PRIMARY KEY, 3 | name VARCHAR(255) NOT NULL, 4 | publisher VARCHAR(255) NOT NULL, 5 | pages INT4 NOT NULL, 6 | published_at TIMESTAMP NOT NULL 7 | ); -------------------------------------------------------------------------------- /spring-boot-hibernate-flyway-best-practices/src/main/resources/db/migration/V005__CREATE_TAGS.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE tags ( 2 | id BIGSERIAL PRIMARY KEY, 3 | name VARCHAR(55) NOT NULL 4 | ); -------------------------------------------------------------------------------- /spring-boot-integration-tests-testcontainers/src/main/java/de/rieckpil/blog/PersonRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface PersonRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /spring-boot-integration-tests-testcontainers/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.url=jdbc:postgresql://localhost:5432/test 2 | spring.datasource.password=postgres 3 | spring.datasource.username=postgres 4 | spring.jpa.hibernate.ddl-auto=validate 5 | spring.flyway.enabled=true -------------------------------------------------------------------------------- /spring-boot-integration-tests-testcontainers/src/main/resources/db/migration/V001__CREATE_PERSON_TABLE.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE person ( 2 | id BIGSERIAL PRIMARY KEY, 3 | name VARCHAR(255) 4 | ); -------------------------------------------------------------------------------- /spring-boot-integration-tests-testcontainers/src/test/resources/config/INIT.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE test (content VARCHAR(255)); 2 | -------------------------------------------------------------------------------- /spring-boot-integration-tests-testcontainers/src/test/resources/config/test.txt: -------------------------------------------------------------------------------- 1 | Hello World! 2 | -------------------------------------------------------------------------------- /spring-boot-integration-tests-testcontainers/src/test/resources/testdata/FILL_FOUR_PERSONS.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO person VALUES (1, 'Phil'); 2 | INSERT INTO person VALUES (2, 'Mike'); 3 | INSERT INTO person VALUES (3, 'Duke'); 4 | INSERT INTO person VALUES (4, 'Tom'); -------------------------------------------------------------------------------- /spring-boot-integration-tests-wiremock/diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-integration-tests-wiremock/diagram.png -------------------------------------------------------------------------------- /spring-boot-integration-tests-wiremock/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | todo_base_url: https://jsonplaceholder.typicode.com 2 | -------------------------------------------------------------------------------- /spring-boot-kotlin-testcontainers/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-kotlin-testcontainers/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-kotlin-testcontainers/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-kotlin-testcontainers/src/main/kotlin/de/rieckpil/blog/BookRepository.kt: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository 4 | 5 | interface BookRepository : JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-boot-kotlin-testcontainers/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-kotlin-testcontainers/src/main/resources/db/migration/V001__INIT.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE books ( 2 | id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, 3 | title VARCHAR(255) NOT NULL, 4 | isbn VARCHAR(13) NOT NULL UNIQUE 5 | ); 6 | -------------------------------------------------------------------------------- /spring-boot-override-test-properties/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-override-test-properties/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-override-test-properties/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-override-test-properties/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | welcome.message=Hello World! 2 | -------------------------------------------------------------------------------- /spring-boot-override-test-properties/src/test/resources/application-test.properties: -------------------------------------------------------------------------------- 1 | welcome.message=Test Profile Hello World! 2 | -------------------------------------------------------------------------------- /spring-boot-override-test-properties/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | welcome.message=Test Default Profile Hello World! 2 | -------------------------------------------------------------------------------- /spring-boot-override-test-properties/src/test/resources/custom.properties: -------------------------------------------------------------------------------- 1 | welcome.message=Custom Property Source Hello World! 2 | -------------------------------------------------------------------------------- /spring-boot-rest-assured/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-rest-assured/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-rest-assured/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [Testing Spring Boot Applications With REST Assured](https://rieckpil.de/testing-spring-boot-applications-with-rest-assured/) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `spring-boot-rest-assured` 7 | 3. Run all tests with `./mvnw test` 8 | -------------------------------------------------------------------------------- /spring-boot-rest-assured/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-selenium-integration-tests/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-selenium-integration-tests/src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Spring Boot Application 5 | 6 | 7 |

8 | 9 | 10 | -------------------------------------------------------------------------------- /spring-boot-selenium-integration-tests/src/test/java/de/rieckpil/blog/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTest { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-shedlock/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-shedlock/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-shedlock/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-shedlock/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [Lock @Scheduled Tasks With ShedLock And Spring Boot](https://rieckpil.de/lock-scheduled-tasks-with-shedlock-and-spring-boot/) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `spring-boot-shedlock` 7 | 3. Build the project with `mvn package` 8 | -------------------------------------------------------------------------------- /spring-boot-shedlock/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.password=spring 2 | spring.datasource.username=spring 3 | spring.datasource.url=jdbc:postgresql://localhost:5432/spring 4 | -------------------------------------------------------------------------------- /spring-boot-shedlock/src/main/resources/db/migration/V001__INIT_SHEDLOCK_TABLE.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE shedlock( 2 | name VARCHAR(64) NOT NULL, 3 | lock_until TIMESTAMP NOT NULL, 4 | locked_at TIMESTAMP NOT NULL, 5 | locked_by VARCHAR(255) NOT NULL, 6 | PRIMARY KEY (name) 7 | ); 8 | -------------------------------------------------------------------------------- /spring-boot-supabase/spring-boot-supabase/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-supabase/spring-boot-supabase/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-test-mail-sending/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-test-mail-sending/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-test-mail-sending/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-test-mail-sending/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | mail: 3 | password: t0pS3cReT 4 | username: yourmail@gmail.com 5 | host: smtp.gmail.com 6 | port: 587 7 | protocol: smtp 8 | properties: 9 | mail: 10 | smtp: 11 | auth: true 12 | starttls: 13 | enable: true 14 | -------------------------------------------------------------------------------- /spring-boot-test-mail-sending/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | mail: 3 | password: springboot 4 | username: duke 5 | host: 127.0.0.1 6 | port: 3025 # default protocol port + 3000 as offset 7 | protocol: smtp 8 | test-connection: false # avoid setting this to true when using a per-test-method GreenMail server 9 | -------------------------------------------------------------------------------- /spring-boot-test-mockmvc-webtestclient-testresttemplate/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-test-mockmvc-webtestclient-testresttemplate/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-test-mockmvc-webtestclient-testresttemplate/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /spring-boot-test-mockmvc-webtestclient-testresttemplate/mockmvc-webtestclient-testrestremplate-comparison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-test-mockmvc-webtestclient-testresttemplate/mockmvc-webtestclient-testrestremplate-comparison.png -------------------------------------------------------------------------------- /spring-boot-test-mockmvc-webtestclient-testresttemplate/src/main/java/de/rieckpil/Customer.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil; 2 | 3 | public record Customer(String firstName, String lastName, Long id) {} 4 | -------------------------------------------------------------------------------- /spring-boot-test-mockmvc-webtestclient-testresttemplate/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-test-slice-annotations/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-test-slice-annotations/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-test-slice-annotations/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-test-slice-annotations/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [Spring Boot Test Slices Overview and Usage](https://rieckpil.de/spring-boot-test-slices-overview-and-usage/) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `spring-boot-test-slice-annotations` 7 | 3. Run all tests with `mvn test` 8 | -------------------------------------------------------------------------------- /spring-boot-test-slice-annotations/src/main/java/de/rieckpil/blog/BookRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface BookRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /spring-boot-test-slice-annotations/src/main/java/de/rieckpil/blog/ShoppingCartRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.repository.CrudRepository; 4 | 5 | public interface ShoppingCartRepository extends CrudRepository {} 6 | -------------------------------------------------------------------------------- /spring-boot-test-slice-annotations/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | de.flapdoodle.mongodb.embedded.version=4.0.2 2 | -------------------------------------------------------------------------------- /spring-boot-test-spring-events/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-test-spring-events/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-test-spring-events/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-test-spring-events/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-testing-masterclass/src/main/java/de/rieckpil/blog/pricing/ProductVerifier.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.pricing; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class ProductVerifier { 7 | 8 | public boolean isCurrentlyInStockOfCompetitor(String productName) { 9 | return false; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-testing-masterclass/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-testing-primer/README.md: -------------------------------------------------------------------------------- 1 | # Testing Spring Boot Applications Primer 2 | 3 | The source code for this course moved to a dedicated [GitHub repository](https://github.com/rieckpil/testing-spring-boot-applications-primer). -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-testing-tips-and-tricks/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/src/main/java/de/rieckpil/blog/CustomerRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.stereotype.Repository; 4 | 5 | @Repository 6 | public class CustomerRepository { 7 | 8 | public Customer findByCustomerId(String customerId) { 9 | return null; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/src/main/java/de/rieckpil/blog/ProductReporter.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class ProductReporter { 4 | public void notify(String productName) { 5 | System.out.println(productName + " is currently in stock of the competitor"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/src/main/java/de/rieckpil/blog/ProductVerifier.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class ProductVerifier { 4 | public boolean isCurrentlyInStockOfCompetitor(String productName) { 5 | return false; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | management: 4 | server: 5 | port: 9090 6 | spring: 7 | main: 8 | banner-mode: 9 | -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/src/test/resources/application-integration-test.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: integration-test 4 | jpa: 5 | hibernate: 6 | ddl-auto: validate 7 | -------------------------------------------------------------------------------- /spring-boot-testing-tips-and-tricks/src/test/resources/application.yml: -------------------------------------------------------------------------------- 1 | logging: 2 | level: 3 | org: 4 | springframework: 5 | test: DEBUG 6 | -------------------------------------------------------------------------------- /spring-boot-thymeleaf-testing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-thymeleaf-testing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-thymeleaf-testing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /spring-boot-thymeleaf-testing/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-thymeleaf-testing/src/test/java/de/rieckpil/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTest { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-uploading-and-downloading-files-with-react/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-uploading-and-downloading-files-with-react/frontend/public/favicon.ico -------------------------------------------------------------------------------- /spring-boot-uploading-and-downloading-files-with-react/frontend/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import registerServiceWorker from './registerServiceWorker'; 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | registerServiceWorker(); 8 | -------------------------------------------------------------------------------- /spring-boot-uploading-and-downloading-files-with-react/frontend/src/spring-boot-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-uploading-and-downloading-files-with-react/frontend/src/spring-boot-logo.png -------------------------------------------------------------------------------- /spring-boot-uploading-and-downloading-files-with-react/src/main/java/de/rieckpil/blog/FileEntityRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface FileEntityRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /spring-boot-uploading-and-downloading-files-with-react/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.h2.console.enabled=true 2 | spring.servlet.multipart.max-file-size=2MB 3 | spring.servlet.multipart.max-request-size=10MB -------------------------------------------------------------------------------- /spring-boot-uploading-and-downloading-files-with-react/src/test/java/de/rieckpil/blog/DemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class DemoApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-web-mvc-testing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-web-mvc-testing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-web-mvc-testing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /spring-boot-web-mvc-testing/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [Spring Boot Test Spring Web MVC HandlerInterceptor](https://rieckpil.de/spring-boot-test-spring-web-mvc-handlerinterceptor/) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `spring-boot-web-mvc-testing` 7 | 3. Run all tests with `./mvnw verify` 8 | 9 | -------------------------------------------------------------------------------- /spring-boot-web-mvc-testing/src/main/java/de/rieckpil/blog/LoggingContextFilter.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class LoggingContextFilter {} 4 | -------------------------------------------------------------------------------- /spring-boot-web-mvc-testing/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | valid-api-key=XZShsk4wh6lw 2 | -------------------------------------------------------------------------------- /spring-boot-web-mvc-testing/src/test/java/de/rieckpil/blog/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTest { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-with-kotlin/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | tab_width = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true -------------------------------------------------------------------------------- /spring-boot-with-kotlin/src/main/kotlin/de.rieckpil.blog/PersonRepository.kt: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository 4 | 5 | interface PersonRepository : JpaRepository 6 | -------------------------------------------------------------------------------- /spring-boot-with-kotlin/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-boot-with-kotlin/src/test/kotlin/de/rieckpil/blog/SpringBootWithKotlinApplicationTest.kt: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog 2 | 3 | import org.junit.jupiter.api.Test 4 | import org.springframework.boot.test.context.SpringBootTest 5 | 6 | @SpringBootTest 7 | class SpringBootWithKotlinApplicationTest { 8 | @Test 9 | fun `Spring context should load`() { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-boot-with-open-liberty/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-with-open-liberty/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-boot-with-open-liberty/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip 2 | -------------------------------------------------------------------------------- /spring-boot-with-open-liberty/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:kernel 2 | COPY server.xml /config/ 3 | COPY target/spring-boot-with-open-liberty.jar /config/apps/ -------------------------------------------------------------------------------- /spring-boot-with-open-liberty/src/main/java/de/rieckpil/blog/springbootwithopenliberty/MessageRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.springbootwithopenliberty; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface MessageRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /spring-boot-with-open-liberty/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-boot-with-open-liberty/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-cloud-aws-sqs-testing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-cloud-aws-sqs-testing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-cloud-aws-sqs-testing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar 3 | -------------------------------------------------------------------------------- /spring-cloud-aws-sqs-testing/src/main/java/de/rieckpil/PurchaseOrderRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface PurchaseOrderRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /spring-cloud-aws-sqs-testing/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-cloud-aws-sqs-testing/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-cloud-aws-sqs-testing/src/test/resources/localstack/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | awslocal sqs create-queue --queue-name test-order-queue 4 | 5 | echo "Initialized." 6 | -------------------------------------------------------------------------------- /spring-cloud-function-aws-kotlin/.java-version: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /spring-cloud-function-aws-kotlin/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-cloud-function-aws-kotlin/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-cloud-function-aws-kotlin/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.2/apache-maven-3.8.2-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-cloud-function-aws-kotlin/src/main/kotlin/de/rieckpil/Application.kt: -------------------------------------------------------------------------------- 1 | package de.rieckpil 2 | 3 | import org.springframework.boot.autoconfigure.SpringBootApplication 4 | import org.springframework.boot.runApplication 5 | 6 | @SpringBootApplication 7 | class Application 8 | 9 | fun main(args: Array) { 10 | runApplication(*args) 11 | } 12 | -------------------------------------------------------------------------------- /spring-cloud-function-aws-kotlin/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-data-mongo-test-testcontainers/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-data-mongo-test-testcontainers/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-data-mongo-test-testcontainers/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-data-mongo-test-testcontainers/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-data-postgres-fulltext-search/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-data-postgres-fulltext-search/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-data-postgres-fulltext-search/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /spring-data-postgres-fulltext-search/src/main/java/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /spring-data-postgres-fulltext-search/src/main/java/de/rieckpil/blog/CommentRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface CommentRepository extends JpaRepository { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /spring-data-postgres-fulltext-search/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | datasource: 3 | username: postgres 4 | password: postgres 5 | url: jdbc:postgresql://localhost:5432/postgres jpa: hibernate: ddl-auto: validate 6 | properties: hibernate: 7 | dialect: de.rieckpil.blog.ExtendedPostgreSQLDialect show-sql: true -------------------------------------------------------------------------------- /spring-data-postgres-fulltext-search/src/main/resources/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE comment ( 2 | id BIGSERIAL PRIMARY KEY, 3 | comment_text TSVECTOR, 4 | created_at TIMESTAMP 5 | ); 6 | -------------------------------------------------------------------------------- /spring-mockmvc-with-webtestclient/.java-version: -------------------------------------------------------------------------------- 1 | 21.0 2 | -------------------------------------------------------------------------------- /spring-mockmvc-with-webtestclient/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-mockmvc-with-webtestclient/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-mockmvc-with-webtestclient/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-mockmvc-with-webtestclient/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-security-aws-cognito-thymeleaf/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-security-aws-cognito-thymeleaf/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-security-aws-cognito-thymeleaf/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-security-aws-cognito-thymeleaf/cloudformation/delete-cognito-stack.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | export AWS_PAGER="" 4 | 5 | aws cloudformation delete-stack --stack-name cognito-test 6 | 7 | aws cloudformation wait stack-delete-complete --stack-name cognito-test 8 | -------------------------------------------------------------------------------- /spring-test-context-caching-introduction/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-test-context-caching-introduction/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-test-context-caching-introduction/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-test-context-caching-introduction/src/main/java/de/rieckpil/blog/PersonService.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class PersonService { 7 | 8 | public String getPerson() { 9 | return "Duke"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /spring-test-context-caching-introduction/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-test-context-caching-introduction/src/test/java/de/rieckpil/blog/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-test-context-caching-introduction/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.test.context.cache.maxSize=42 2 | logging.level.org.springframework.test.context.cache=DEBUG 3 | -------------------------------------------------------------------------------- /spring-web-client-customizing/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-web-client-customizing/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-web-client-customizing/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-web-client-customizing/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-web-client-customizing/src/test/java/de/rieckpil/blog/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-web-client-demo/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-web-client-demo/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-web-client-demo/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /spring-web-client-demo/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-web-client-demo/src/test/java/de/rieckpil/blog/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-web-client-exchange-retrieve/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-web-client-exchange-retrieve/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-web-client-exchange-retrieve/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-web-client-exchange-retrieve/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | todo_url=https://jsonplaceholder.typicode.com/ 2 | 3 | -------------------------------------------------------------------------------- /spring-web-client-expose-metrics/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-web-client-expose-metrics/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-web-client-expose-metrics/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-web-client-expose-metrics/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | management.endpoints.web.exposure.include=health, info, metrics -------------------------------------------------------------------------------- /spring-web-client-oauth2-reactive-stack/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | security: 3 | oauth2: 4 | client: 5 | registration: 6 | github: 7 | client-id: replaceme 8 | client-secret: replaceme 9 | scope: read:user,public_repo 10 | -------------------------------------------------------------------------------- /spring-web-client-oauth2-servlet-stack/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | security: 3 | oauth2: 4 | client: 5 | registration: 6 | github: 7 | client-id: replaceme 8 | client-secret: replaceme 9 | scope: read:user,public_repo 10 | -------------------------------------------------------------------------------- /spring-web-client-testing-with-mockwebserver/.java-version: -------------------------------------------------------------------------------- 1 | 11.0 2 | -------------------------------------------------------------------------------- /spring-web-client-testing-with-mockwebserver/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-web-client-testing-with-mockwebserver/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-web-client-testing-with-mockwebserver/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /spring-web-client-testing-with-mockwebserver/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | clients.users.url=https://jsonplaceholder.typicode.com/ 2 | -------------------------------------------------------------------------------- /spring-web-mvc-cheat-sheet/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [Spring Web MVC Cheat Sheet](https://rieckpil.de/spring-web-mvc-cheat-sheet/) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `spring-web-mvc-cheat-sheet` 7 | 3. Start the application with `mvn spring-boot:run` -------------------------------------------------------------------------------- /spring-web-mvc-cheat-sheet/src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-web-mvc-cheat-sheet/src/main/resources/application.properties -------------------------------------------------------------------------------- /spring-web-mvc-cheat-sheet/src/main/resources/document.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-web-mvc-cheat-sheet/src/main/resources/document.pdf -------------------------------------------------------------------------------- /spring-web-mvc-cheat-sheet/src/main/resources/templates/welcome.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Welcome 6 | 7 | 8 |
9 | 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /spring-web-mvc-cheat-sheet/src/test/java/de/rieckpil/blog/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTest { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-web-test-client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /spring-web-test-client/src/test/java/de/rieckpil/blog/ApplicationIT.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationIT { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /spring-websocket-integration-tests/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/spring-websocket-integration-tests/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /spring-websocket-integration-tests/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /telegram-bot-notifications-with-java/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/telegram-bot-notifications-with-java/README.md -------------------------------------------------------------------------------- /test-java-http-clients/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/test-java-http-clients/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /test-java-http-clients/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /test-java-http-clients/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [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/) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `test-java-http-clients` 7 | 3. Run all tests with `mvn test` 8 | -------------------------------------------------------------------------------- /testcontainers-introduction/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testcontainers-introduction/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /testcontainers-introduction/README.md: -------------------------------------------------------------------------------- 1 | # Testcontainers Introduction 2 | -------------------------------------------------------------------------------- /testcontainers-introduction/src/test/resources/database-init/ORDERS_TABLE.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE orders ( 2 | ID BIGSERIAL PRIMARY KEY, 3 | CUSTOMER_ID VARCHAR(255) NOT NULL 4 | ); 5 | 6 | INSERT INTO orders (CUSTOMER_ID) VALUES ('XYZ123'); 7 | 8 | -------------------------------------------------------------------------------- /testcontainers-reuse-existing-containers/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testcontainers-reuse-existing-containers/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /testcontainers-reuse-existing-containers/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /testcontainers-reuse-existing-containers/src/main/java/de/rieckpil/blog/TodoRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface TodoRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /testcontainers-reuse-existing-containers/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jpa.hibernate.ddl-auto=validate 2 | -------------------------------------------------------------------------------- /testcontainers-reuse-existing-containers/src/main/resources/db/migration/V001__INIT_DATABASE.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE todos ( 2 | id BIGSERIAL PRIMARY KEY, 3 | title VARCHAR(255) NOT NULL, 4 | due_date TIMESTAMP NOT NULL 5 | ) 6 | -------------------------------------------------------------------------------- /testcontainers-youtube-series/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testcontainers-youtube-series/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /testcontainers-youtube-series/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /testcontainers-youtube-series/docs/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testcontainers-youtube-series/docs/architecture.png -------------------------------------------------------------------------------- /testcontainers-youtube-series/docs/testing_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testcontainers-youtube-series/docs/testing_architecture.png -------------------------------------------------------------------------------- /testcontainers-youtube-series/src/main/java/de/rieckpil/blog/BookRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface BookRepository extends JpaRepository { 6 | } 7 | -------------------------------------------------------------------------------- /testcontainers-youtube-series/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /testcontainers-youtube-series/src/main/resources/db/migration/V001__INIT.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE books ( 2 | id BIGSERIAL PRIMARY KEY, 3 | name varchar(255) not null 4 | ); 5 | -------------------------------------------------------------------------------- /testcontainers-youtube-series/src/test/resources/database/INIT.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE messages 2 | ( 3 | ID BIGSERIAL PRIMARY KEY, 4 | CONTENT VARCHAR(255) NOT NULL 5 | ); 6 | 7 | INSERT INTO messages (content) VALUES ('Hello World From Init Script!'); 8 | -------------------------------------------------------------------------------- /testcontainers-youtube-series/src/test/resources/localstack/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | awslocal sqs create-queue --queue-name testcontainers 4 | awslocal s3api create-bucket --bucket testcontainers 5 | 6 | echo "Initialized." 7 | -------------------------------------------------------------------------------- /testing-java-applications-with-maven/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-java-applications-with-maven/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /testing-java-applications-with-maven/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /testing-java-applications-with-maven/src/main/java/de/rieckpil/blog/Main.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | public class Main { 4 | 5 | public String format(String input) { 6 | return input.toUpperCase(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /testing-java-applications-with-maven/target/classes/de/rieckpil/blog/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-java-applications-with-maven/target/classes/de/rieckpil/blog/Main.class -------------------------------------------------------------------------------- /testing-java-applications-with-maven/target/test-classes/de/rieckpil/blog/MainIT.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-java-applications-with-maven/target/test-classes/de/rieckpil/blog/MainIT.class -------------------------------------------------------------------------------- /testing-java-applications-with-maven/target/test-classes/de/rieckpil/blog/MainTest.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-java-applications-with-maven/target/test-classes/de/rieckpil/blog/MainTest.class -------------------------------------------------------------------------------- /testing-json-serialization-spring/README.md: -------------------------------------------------------------------------------- 1 | # Codebase for the blog post [Testing your JSON serialization with @JsonTest](https://rieckpil.de/testing-your-json-serialization-with-jsontest) 2 | 3 | Steps to run this project: 4 | 5 | 1. Clone this Git repository 6 | 2. Navigate to the folder `testing-json-serialization-spring` 7 | 3. Run all tests with `mvn test` -------------------------------------------------------------------------------- /testing-json-serialization-spring/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /testing-libraries-overview/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-libraries-overview/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /testing-libraries-overview/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /testing-libraries-overview/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-libraries-overview/README.md -------------------------------------------------------------------------------- /testing-libraries-overview/src/main/java/de/rieckpil/blog/registration/UserRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.registration; 2 | 3 | public interface UserRepository { 4 | User findByUsername(String username); 5 | 6 | User save(User user); 7 | } 8 | -------------------------------------------------------------------------------- /testing-libraries-overview/src/test/java/de/rieckpil/blog/MyFirstTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import static org.junit.jupiter.api.Assertions.assertNotNull; 4 | 5 | import org.junit.jupiter.api.Test; 6 | 7 | class MyFirstTest { 8 | 9 | @Test 10 | void helloWorldTest() { 11 | assertNotNull("Hello World!"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /testing-libraries-overview/src/test/java/de/rieckpil/blog/junit4/DatabaseTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.junit4; 2 | 3 | public interface DatabaseTests {} 4 | -------------------------------------------------------------------------------- /testing-libraries-overview/src/test/java/de/rieckpil/blog/junit4/RegistrationWebTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.junit4; 2 | 3 | import org.junit.Test; 4 | import org.junit.experimental.categories.Category; 5 | 6 | @Category(SmokeTests.class) 7 | public class RegistrationWebTest { 8 | 9 | @Test 10 | public void shouldRegisterANewUser() {} 11 | } 12 | -------------------------------------------------------------------------------- /testing-libraries-overview/src/test/java/de/rieckpil/blog/junit4/SmokeTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.junit4; 2 | 3 | public interface SmokeTests {} 4 | -------------------------------------------------------------------------------- /testing-libraries-overview/src/test/java/de/rieckpil/blog/junit5/RegistrationWebTest.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.junit5; 2 | 3 | import org.junit.jupiter.api.Tag; 4 | import org.junit.jupiter.api.Test; 5 | 6 | @Tag("web-tests") 7 | class RegistrationWebTest { 8 | 9 | @Test 10 | void shouldRegisterANewUser() {} 11 | } 12 | -------------------------------------------------------------------------------- /testing-libraries-overview/src/test/resources/config/INIT.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE duke ( 2 | ID BIGSERIAL PRIMARY KEY, 3 | MESSAGE VARCHAR(255) NOT NULL 4 | ); 5 | -------------------------------------------------------------------------------- /testing-libraries-overview/src/test/resources/config/test.txt: -------------------------------------------------------------------------------- 1 | Hello World Keycloak! 2 | -------------------------------------------------------------------------------- /testing-spring-boot-applications-with-mockmvc/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-spring-boot-applications-with-mockmvc/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /testing-spring-boot-applications-with-mockmvc/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /testing-spring-boot-applications-with-mockmvc/src/main/java/de/rieckpil/blog/dashboard/DashboardService.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog.dashboard; 2 | 3 | import org.springframework.stereotype.Service; 4 | 5 | @Service 6 | public class DashboardService { 7 | public Integer[] getAnalyticsGraphData() { 8 | return new Integer[] {1, 2, 3, 4, 5, 6}; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /testing-spring-boot-applications-with-mockmvc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /testing-spring-rest-template/.java-version: -------------------------------------------------------------------------------- 1 | 16.0 2 | -------------------------------------------------------------------------------- /testing-spring-rest-template/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/testing-spring-rest-template/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /testing-spring-rest-template/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /testing-spring-rest-template/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /wad.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/wad.jar -------------------------------------------------------------------------------- /websockets-with-jakarta-ee/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /websockets-with-jakarta-ee/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:kernel-java11 2 | COPY --chown=1001:0 target/websockets-with-jakarta-ee.war /config/dropins/ 3 | COPY --chown=1001:0 server.xml /config -------------------------------------------------------------------------------- /websockets-with-jakarta-ee/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/websockets-with-jakarta-ee . 4 | call docker rm -f websockets-with-jakarta-ee 5 | call docker run -d -p 9080:9080 -p 9443:9443 --name websockets-with-jakarta-ee de.rieckpil.blog/websockets-with-jakarta-ee -------------------------------------------------------------------------------- /websockets-with-jakarta-ee/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/websockets-with-jakarta-ee . 3 | docker rm -f websockets-with-jakarta-ee || true && docker run -d -p 9080:9080 -p 9443:9443 --name websockets-with-jakarta-ee de.rieckpil.blog/websockets-with-jakarta-ee -------------------------------------------------------------------------------- /whats-new-in-microprofile-3.1/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | .apt_generated 5 | .classpath 6 | .factorypath 7 | .project 8 | .settings 9 | .springBeans 10 | .sts4-cache 11 | 12 | .idea 13 | *.iws 14 | *.iml 15 | *.ipr 16 | 17 | /nbproject/private/ 18 | /build/ 19 | /nbbuild/ 20 | /dist/ 21 | /nbdist/ 22 | /.nb-gradle/ 23 | -------------------------------------------------------------------------------- /whats-new-in-microprofile-3.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM open-liberty:kernel-java11 2 | COPY --chown=1001:0 target/whats-new-in-microprofile-3.1.war /config/dropins/ 3 | COPY --chown=1001:0 server.xml /config 4 | -------------------------------------------------------------------------------- /whats-new-in-microprofile-3.1/buildAndRun.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | call mvn clean package 3 | call docker build -t de.rieckpil.blog/whats-new-in-microprofile-3.1 . 4 | call docker rm -f whats-new-in-microprofile-3.1 5 | call docker run -d -p 9080:9080 -p 9443:9443 --name whats-new-in-microprofile-3.1 de.rieckpil.blog/whats-new-in-microprofile-3.1 6 | -------------------------------------------------------------------------------- /whats-new-in-microprofile-3.1/buildAndRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mvn clean package && docker build -t de.rieckpil.blog/whats-new-in-microprofile-3.1 . 3 | docker rm -f whats-new-in-microprofile-3.1 || true && docker run -d -p 9080:9080 -p 9443:9443 --name whats-new-in-microprofile-3.1 de.rieckpil.blog/whats-new-in-microprofile-3.1 4 | -------------------------------------------------------------------------------- /whats-new-in-microprofile-3.1/server.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | mpHealth-2.1 6 | mpMetrics-2.1 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /whats-new-in-microprofile-3.1/src/main/resources/META-INF/microprofile-config.properties: -------------------------------------------------------------------------------- 1 | mp.health.disable-default-procedures=true 2 | -------------------------------------------------------------------------------- /whats-new-in-microprofile-3.1/src/main/webapp/WEB-INF/payara-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | / 4 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.1/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/whats-new-in-spring-boot-2.1/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.1/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip 2 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.1/src/main/java/de/rieckpil/learning/UserRepository.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.learning; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | 5 | public interface UserRepository extends JpaRepository {} 6 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.1/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.h2.console.enabled=true 2 | spring.data.jpa.repositories.bootstrap-mode=lazy 3 | logging.level.sql=DEBUG 4 | logging.level.web=DEBUG -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.2/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/whats-new-in-spring-boot-2.2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.2/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.jmx.enabled=true 2 | spring.main.lazy-initialization=true 3 | 4 | management.endpoint.health.show-components=always 5 | management.endpoint.health.show-details=when_authorized 6 | 7 | management.endpoint.health.group.liveness.include=db,custom-liveness -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.3/BOOT-INF/layers.idx: -------------------------------------------------------------------------------- 1 | - "dependencies": 2 | - "BOOT-INF/lib/" 3 | - "spring-boot-loader": 4 | - "org/" 5 | - "snapshot-dependencies": 6 | - "application": 7 | - "BOOT-INF/classes/" 8 | - "BOOT-INF/classpath.idx" 9 | - "BOOT-INF/layers.idx" 10 | - "META-INF/" 11 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.3/Dockerfile: -------------------------------------------------------------------------------- 1 | # traditional way of building Docker images for Spring Boot apllications 2 | FROM openjdk:14-jdk-alpine 3 | EXPOSE 8080 4 | ADD target/*.jar app.jar 5 | ENTRYPOINT ["java","-jar","--enable-preview","/app.jar"] 6 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.3/src/main/java/de/rieckpil/blog/User.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import com.fasterxml.jackson.annotation.JsonAutoDetect; 4 | import java.time.LocalDate; 5 | 6 | @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY) 7 | public record User(String name, LocalDate dateOfBirth, boolean isRegistered) {} 8 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.3/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.tomcat.max-threads=42 2 | server.tomcat.min-spare-threads=10 3 | 4 | #server.error.include-message=always 5 | #server.error.include-binding-errors=always 6 | -------------------------------------------------------------------------------- /whats-new-in-spring-boot-2.3/src/test/java/de/rieckpil/blog/WhatsNewInSpringBoot23ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package de.rieckpil.blog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class WhatsNewInSpringBoot23ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() {} 11 | } 12 | -------------------------------------------------------------------------------- /write-concise-web-tests-with-selenide/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rieckpil/blog-tutorials/cc20cab53eeb73c404b9bcc4a22b169571f4b403/write-concise-web-tests-with-selenide/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /write-concise-web-tests-with-selenide/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /write-concise-web-tests-with-selenide/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------