| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .gitignore | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| publiccode_template.yml | ||
| README.md | ||
| SECURITY.md | ||
| SECURITY.repo-template.md | ||
JME - jEAP Microservice Examples
Welcome to the jEAP Microservice Examples (JME) umbrella repository. JME provides a suite of example microservices designed to demonstrate the development of jEAP-based microservices. Each JME repository focuses on a specific jEAP functionality.
Purpose
The jEAP microservice examples offer developers a collection of ready-to-run microservices that demonstrate best practices for leveraging specific jEAP features. The examples address common challenges and cross-cutting concerns in enterprise application development.
Getting Started
This umbrella repository provides guidance on the individual jEAP microservice examples in the JME suite. Explore each example to see how specific jEAP functionalities can be applied to your projects.
License
This repository is Open Source Software licensed under the Apache License 2.0.
Repository List
Below you will find an overview of all repositories included in the JME umbrella, each with a short description of its focus and functionality:
-
jme-archrepo-example Example project demonstrating how to set up and run the jEAP Architecture Repository service.
-
jme-cdct-consumer-example jEAP microservice example demonstrating consumer-driven contract testing with Pact in a consumer.
-
jme-cdct-consumer-2-example jEAP microservice example demonstrating consumer-driven contract testing with Pact in a consumer using the Pact Java legacy DSL.
-
jme-cdct-provider-example jEAP microservice example demonstrating consumer-driven contract testing with Pact in a provider.
-
jme-cdct-segregated-consumer-example jEAP microservice example demonstrating consumer-driven contract testing with Pacts in a consumer (two API of same provider).
-
jme-cdct-segregated-provider-example jEAP microservice example demonstrating consumer-driven contract testing with Pact in a provider with segregated APIs.
-
jme-crypto-example Example project demonstrating how to use the jEAP Crypto Library.
-
jme-deploymentlog-example Example project demonstrating how to use the jEAP DeploymentLog Service.
-
jme-doc-service-example Example project demonstrating how to set up and run an instance of the jEAP Doc Service, including the OAuth mock server, the object storage and the database it needs, and an integration test uploading documentation.
-
jme-integration-test jEAP microservice example integration test support library, providing a re-usable test harness for JME examples.
-
jme-archive-type-registry Archive type registry containing JME archive types produced or consumed by JME services.
-
jme-index-type-registry Index type registry containing JME OpenSearch index types produced or consumed by JME services.
-
jme-jwe-example Example project demonstrating transparent JWE end-to-end encryption between an Angular frontend and a Spring Boot backend using the jEAP JWE starter.
-
jme-message-contract-service Example project demonstrating how to use the jEAP Message Contract Service.
-
jme-message-exchange-example Example project demonstrating how to use the jEAP Message Exchange Service.
-
jme-message-type-registry Message type registry containing JME message types produced or consumed by JME services.
-
jme-messaging-example Example project demonstrating how to use the jEAP Messaging Library with Kafka.
-
jme-monitor-example Example project demonstrating logging, distributed tracing and Prometheus metrics for jEAP microservices.
-
jme-object-storage-example Example project demonstrating how to use the jEAP Object Storage Library.
-
jme-opensearch-example Example project demonstrating event-driven indexing and authorization-aware OpenSearch queries with jEAP.
-
jme-process-archive-example Example project demonstrating how to use the jEAP Process Archive Service.
-
jme-process-context-example Example project demonstrating how to use the jEAP Process Context Service.
-
jme-reaction-observer-service-example Example project demonstrating how to use the jEAP Reaction Observer Service.
-
jme-security-example Example project demonstrating OAuth 2.0 and OpenID Connect authentication and authorization in jEAP microservices.
-
jme-security-oauth2-example Example project demonstrating plain OAuth 2.0 protected resources and clients using the jEAP security starter.
-
jme-server-sent-events-example Example project demonstrating anonymous and authenticated server-sent events in jEAP microservices.
-
jme-swagger-example Example project demonstrating how to document the REST APIs of a jEAP microservice with the jEAP Swagger starter.
Building a jEAP Microservice Example
jEAP Microservice Examples use Apache Maven for building and may include multiple microservices and additional Maven modules within a single example. To build all microservices and additional modules in an example, navigate to the example's root directory and run the Maven Wrapper script as shown below. This will compile all microservices and additional modules and install them to your local Maven repository:
./mvnw install
Note that jEAP microservice examples may require specific build prerequisites, such as a particular Java version.
Always consult the example repository's README.md or pom.xml for detailed build instructions and requirements.
Running a jEAP Microservice Example
Before running a microservice, you will typically need to start the required services (such as databases and message
brokers) using the Docker Compose file located in the ./docker directory. Navigate to this directory and execute the
following command:
docker-compose up
Each jEAP microservice example provides a README.md with detailed instructions for running its microservices. In most
cases, you can start a microservice by navigating to its directory and running the following command:
./mvnw spring-boot:run
Refer to a specific example's README.md for any additional configuration or setup required to run the microservices.
Reporting Security Vulnerabilities
If you would like to report a potential security issue in a JME repository, please follow the procedure described in SECURITY.md.
External contributions cannot be accepted currently
At this point in time, JME is released as open source software based on the EMBAG law.
We do not currently accept external contributions. Please refrain from providing code changes or pull requests as we are unable to accept them.
Contact
For questions, please contact the maintainers at jeap-community@bit.admin.ch.