otto-de / edison-microservice

Collection of independent libraries on top of Spring Boot to provide a faster setup of jvm microservices
Apache License 2.0
123 stars 68 forks source link
edison health java microservice-framework microservices mongodb otto spring-boot togglz

edison-microservice

Collection of independent libraries on top of Spring Boot to provide a faster setup of jvm microservices.

"I never did anything by accident, nor did any of my inventions come by accident; they came by work." - Thomas Edison

Status

OSS Lifecycle Build codecov Known Vulnerabilities OpenSSF Scorecard Maven Central license

Have a look at the release notes for details about updates and changes.

About

This project contains a number of independent libraries on top of Spring Boot to provide a faster setup of jvm microservices. The libraries are used in different projects at OTTO. It's purpose is to provide a common implementation for cross-cutting requirements like:

... plus all the features of Spring Boot.

Releases

Semantic Versioning v2.0.0 is used to specify the version numbers.

This project maintains its roadmap with issues and milestones.

3.3.x: Edison Microservices for Spring Boot 3.3.x ✔ - Compatible with Java 17 and greater

2.7.x (EOL): Edison Microservices for Spring Boot 2.7.x ✔ - Compatible with Java 11 and greater - End of Life, not updated any more

3.2.x (EOL): Edison Microservices for Spring Boot 3.2.x ✔ - Compatible with Java 17 and greater - End of Life, not updated any more

Migration from Edison 2 to Edison 3

In edison-ldap, whitelisted-paths was replaced with allowlisted-paths. Everything else should be ok if you follow the Spring Boot 2 -> 3 migration guide: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide

Migration from Edison 1.x to Edison 2

Edison 2 has several breaking changes that will make a refactoring of your current application necessary. For a list of the actual changes, please take a look at the Changelog.

When migrating, take care of the following adjustments:

Documentation

Edison Modules:

Examples:

Setup

Make sure you have Java 11 or later and gradle 6.x installed on your computer.

Testing

Test and create coverage report

gradle check

Dependency Update

Determine possible dependency updates

gradle dependencyUpdates -Drevision=release

Publishing

Publish new releases to sonatype

./release.sh

Create a release in github

Click on "Releases" -> "Draft a new release". Create a tag and copy&paste the relevant info from the changelog.
Don't publish packages to github. They are published to sonatype.

Examples

There are a few examples that may help you to start your first microservice based on Edison and Spring Boot. Because Spring Boot itself has some complexity, it is recommended to first read its documentation before starting with Edison.

The examples can be started with gradle:

gradle examples:example-status:bootRun
gradle examples:example-jobs:bootRun
gradle examples:example-togglz:bootRun
gradle examples:example-togglz-mongo:bootRun

Open in your browser http://localhost:8080/

Note: Every example is configured to use port 8080, so make sure to run only one example at a time or to reconfigure the ports.

Contributing

Have a look at our contribution guidelines.