{"id":21488069,"url":"https://github.com/dhutchison/microprofile-experiments","last_synced_at":"2025-12-24T22:15:59.448Z","repository":{"id":73581407,"uuid":"190460278","full_name":"dhutchison/microprofile-experiments","owner":"dhutchison","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-07T23:22:20.000Z","size":117,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-18T00:31:27.821Z","etag":null,"topics":["microprofile"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhutchison.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-05T20:02:32.000Z","updated_at":"2024-04-07T23:57:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"008405c2-3924-424b-91c3-5d6f6c931160","html_url":"https://github.com/dhutchison/microprofile-experiments","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhutchison%2Fmicroprofile-experiments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhutchison%2Fmicroprofile-experiments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhutchison%2Fmicroprofile-experiments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhutchison%2Fmicroprofile-experiments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhutchison","download_url":"https://codeload.github.com/dhutchison/microprofile-experiments/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243013898,"owners_count":20221805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["microprofile"],"created_at":"2024-11-23T13:42:14.652Z","updated_at":"2025-12-24T22:15:54.429Z","avatar_url":"https://github.com/dhutchison.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![DepShield Badge](https://depshield.sonatype.org/badges/owner/repository/depshield.svg)](https://depshield.github.io)\n\n# MicroProfile generated Application\n\n## Introduction\n\nMicroProfile Starter has generated this MicroProfile application for you.\n\nThe generation of the executable jar file can be performed by issuing the following command\n\n    mvn clean package\n\nThis will create an executable jar file **experiments-microbundle.jar** within the _target_ maven folder. This can be started by executing the following command\n\n    java -jar target/experiments-microbundle.jar\n\nTo launch the test page, open your browser at the following URL\n\n    http://localhost:8080/index.html\n\n## Introduction 2\n\n(Really should write a decent readme here...)\n\n# My OSS Project\n\nThis project was later updated to include content from the [ModiTect OSS Quickstart](https://github.com/moditect/oss-quickstart) archetype.\n\n\nRun the following command to build this project:\n\n```\nmvn clean verify\n```\n\nPass the `-Dquick` option to skip all non-essential plug-ins and create the output artifact as quickly as possible:\n\n```\nmvn clean verify -Dquick\n```\n\nRun the following command to format the source code and organize the imports as per the project's conventions:\n\n```\nmvn process-sources\n```\n\n## Blog Post Series\n\nThis generated application is being extended as I learn more about MicroProfile. \n\nThe starter to this blog post series is available [here](https://www.devwithimagination.com/2019/08/18/eclipse-microprofile/).\n\n## Specification examples\n\nBy default, there is always the creation of a JAX-RS application class to define the path on which the JAX-RS endpoints are available.\n\nAlso, a simple Hello world endpoint is created, have a look at the class **HelloController**.\n\nMore information on MicroProfile can be found [here](https://microprofile.io/)\n\n\n### Config\n\nConfiguration of your application parameters. Specification [here](https://microprofile.io/project/eclipse/microprofile-config)\n\nThe example class **ConfigTestController** shows you how to inject a configuration parameter and how you can retrieve it programmatically.\n\n\n\n### Fault tolerance\n\nAdd resilient features to your applications like TimeOut, RetryPolicy, Fallback, bulkhead and circuit breaker. Specification [here](https://microprofile.io/project/eclipse/microprofile-fault-tolerance)\n\nThe example class **ResilienceController** has an example of a FallBack mechanism where an fallback result is returned when the execution takes too long.\n\n\n\n### Health\n\nThe health status can be used to determine if the 'computing node' needs to be discarded/restarted or not. Specification [here](https://microprofile.io/project/eclipse/microprofile-health)\n\nThe class **ServiceHealthCheck** contains an example of a custom check which can be integrated to health status checks of the instance.  The index page contains a link to the status data.\n\n\n\n### Metrics\n\nThe Metrics exports _Telemetric_ data in a uniform way of system and custom resources. Specification [here](https://microprofile.io/project/eclipse/microprofile-metrics)\n\nThe example class **MetricController** contains an example how you can measure the execution time of a request.  The index page also contains a link to the metric page (with all metric info)\n\n\n\n### JWT Auth\n\nUsing the OpenId Connect JWT token to pass authentication and authorization information to the JAX-RS endpoint. Specification [here](https://microprofile.io/project/eclipse/microprofile-rest-client)\n\nHave a look at the **JWTClient** class which calls the protected endpoint on the server from a Java Main method.\nThe **ProtectedController** contains the protected endpoint since it contains the _@RolesAllowed_ annotation on the JAX-RS endppoint method.\n\n\n\n\n### Open API\n\nExposes the information about your endpoints in the format of the OpenAPI v3 specification. Specification [here](https://microprofile.io/project/eclipse/microprofile-open-api)\n\nThe index page contains a link to the OpenAPI information of your endpoints.\n\n\n\n\n### Open Tracing\n\nAllow the participation in distributed tracing of your requests through various micro services. Specification [here](https://microprofile.io/project/eclipse/microprofile-opentracing)\n\nExample needs to be created.\n\n\n\n\n### Rest Client\n\nA type safe invocation of HTTP rest endpoints. Specification [here](https://microprofile.io/project/eclipse/microprofile-rest-client)\n\nExample needs to be created.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhutchison%2Fmicroprofile-experiments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhutchison%2Fmicroprofile-experiments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhutchison%2Fmicroprofile-experiments/lists"}