{"id":21923760,"url":"https://github.com/soujava/hotel-reservation-syntax","last_synced_at":"2026-04-13T16:04:05.611Z","repository":{"id":264882913,"uuid":"870827322","full_name":"soujava/hotel-reservation-syntax","owner":"soujava","description":"In this samples we will focus only at the persistence layer and the terminology that we can apply on it.","archived":false,"fork":false,"pushed_at":"2024-11-26T15:47:58.000Z","size":35,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-03-22T11:19:09.406Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soujava.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-10T18:32:41.000Z","updated_at":"2024-11-26T15:48:26.000Z","dependencies_parsed_at":"2024-11-26T16:35:32.526Z","dependency_job_id":"5b2398aa-d67d-424a-ada8-4b1eb713fc4c","html_url":"https://github.com/soujava/hotel-reservation-syntax","commit_stats":null,"previous_names":["soujava/hotel-reservation-syntax"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/soujava/hotel-reservation-syntax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soujava%2Fhotel-reservation-syntax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soujava%2Fhotel-reservation-syntax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soujava%2Fhotel-reservation-syntax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soujava%2Fhotel-reservation-syntax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soujava","download_url":"https://codeload.github.com/soujava/hotel-reservation-syntax/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soujava%2Fhotel-reservation-syntax/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31759570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-28T21:12:44.106Z","updated_at":"2026-04-13T16:04:05.578Z","avatar_url":"https://github.com/soujava.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= hotel-reservation\n\nSample Helidon MP project that includes multiple REST operations.\n\nThe article for further references: https://dzone.com/articles/enhancing-domain-driven-design-with-jakarta-data-a\n== Build and run\n\nWith JDK21\n[source,bash]\n----\nmvn package\njava -jar target/hotel-reservation.jar\n----\n\n== Exercise the application\n\nBasic:\n[source,bash]\n----\ncurl -X GET http://localhost:8080/simple-greet\nHello World!\n----\n\nJSON:\n[source,bash]\n----\ncurl -X GET http://localhost:8080/greet\n{\"message\":\"Hello World!\"}\n\ncurl -X GET http://localhost:8080/greet/Joe\n{\"message\":\"Hello Joe!\"}\n\ncurl -X PUT -H \"Content-Type: application/json\" -d '{\"greeting\" : \"Hola\"}' http://localhost:8080/greet/greeting\n\ncurl -X GET http://localhost:8080/greet/Jose\n{\"message\":\"Hola Jose!\"}\n----\n\n== Try health\n[source,bash]\n----\ncurl -s -X GET http://localhost:8080/health\n{\"outcome\":\"UP\",...\n----\n\n== Building a Native Image\n\nThe generation of native binaries requires an installation of GraalVM 22.1.0+.\n\nYou can build a native binary using Maven as follows:\n[source,bash]\n----\nmvn -Pnative-image install -DskipTests\n----\n\nThe generation of the executable binary may take a few minutes to complete depending on\nyour hardware and operating system. When completed, the executable file will be available\nunder the `target` directory and be named after the artifact ID you have chosen during the\nproject generation phase.\n\n== Try metrics\n\n[source,bash]\n----\n# Prometheus Format\ncurl -s -X GET http://localhost:8080/metrics\n# TYPE base:gc_g1_young_generation_count gauge\n. . .\n\n# JSON Format\ncurl -H 'Accept: application/json' -X GET http://localhost:8080/metrics\n{\"base\":...\n. . .\n----\n\n== Building the Docker Image\n\n[source,bash]\n----\ndocker build -t hotel-reservation .\n----\n\n== Running the Docker Image\n\n[source,bash]\n----\ndocker run --rm -p 8080:8080 hotel-reservation:latest\n----\n\nExercise the application as described above.\n\n== Run the application in Kubernetes\n\nIf you don’t have access to a Kubernetes cluster, you can https://helidon.io/docs/latest/#/about/kubernetes[install one] on your desktop.\n\n=== Verify connectivity to cluster\n\n[source,bash]\n----\nkubectl cluster-info                        # Verify which cluster\nkubectl get pods                            # Verify connectivity to cluster\n----\n\n=== Deploy the application to Kubernetes\n\n[source,bash]\n----\nkubectl create -f app.yaml                              # Deploy application\nkubectl get pods                                        # Wait for quickstart pod to be RUNNING\nkubectl get service  hotel-reservation                     # Get service info\nkubectl port-forward service/hotel-reservation 8081:8080   # Forward service port to 8081\n----\n\nYou can now exercise the application as you did before but use the port number 8081.\n\nAfter you’re done, cleanup.\n\n[source,bash]\n----\nkubectl delete -f app.yaml\n----\n\n== Building a Custom Runtime Image\n\nBuild the custom runtime image using the jlink image profile:\n\n[source,bash]\n----\nmvn package -Pjlink-image\n----\n\nThis uses the helidon-maven-plugin to perform the custom image generation.\nAfter the build completes it will report some statistics about the build including the reduction in image size.\n\nThe `target/hotel-reservation-jri` directory is a self-contained custom image of your application. It contains your application,\nits runtime dependencies and the JDK modules it depends on. You can start your application using the provided start script:\n\n[source,bash]\n----\n./target/hotel-reservation-jri/bin/start\n----\n\n=== Class Data Sharing (CDS) Archive\n\nAlso included in the custom image is a Class Data Sharing (CDS) archive that improves your application’s startup\nperformance and in-memory footprint. You can learn more about Class Data Sharing in the JDK documentation.\n\nThe CDS archive increases your image size to get these performance optimizations. It can be of significant size (tens of MB).\nThe size of the CDS archive is reported at the end of the build output.\n\nIf you’d rather have a smaller image size (with a slightly increased startup time) you can skip the creation of the CDS\narchive by executing your build like this:\n\n[source,bash]\n----\nmvn package -Pjlink-image -Djlink.image.addClassDataSharingArchive=false\n----\n\nFor more information on available configuration options see the helidon-maven-plugin documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoujava%2Fhotel-reservation-syntax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoujava%2Fhotel-reservation-syntax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoujava%2Fhotel-reservation-syntax/lists"}