Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/woq-blended/blended

An OSGI container framework in Scala with focus on testing and integration testing.
https://github.com/woq-blended/blended

akka akka-stream deployment osgi scala scalajs test-automation

Last synced: about 2 months ago
JSON representation

An OSGI container framework in Scala with focus on testing and integration testing.

Awesome Lists containing this project

README

        

= Blended - a Scala based Integration framework
:toc:
:toc-placement: preamble
:scala2_13: 2.13.2

ifdef::env-github[]
image:https://github.com/woq-blended/blended/workflows/.github/workflows/build.yml/badge.svg[Scala, link="https://github.com/woq-blended/blended/actions?query=workflow%3A.github%2Fworkflows%2Fbuild.yml"]
image:https://badges.gitter.im/Join%20Chat.svg[Join the chat at, link="https://gitter.im/woq-blended/blended?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
image:https://api.codacy.com/project/badge/Grade/1c5e4c400adc4548b821583207b97694["Code quality report on Codacy.com", link="https://www.codacy.com/app/blended/blended?utm_source=github.com&utm_medium=referral&utm_content=woq-blended/blended&utm_campaign=Badge_Grade"]
image:https://codecov.io/gh/woq-blended/blended/branch/main/graph/badge.svg["Test coverage report on Codecov.io", link="https://codecov.io/gh/woq-blended/blended"]
endif::[]

== Project Mission

_Blended_ provides a Scala based integration framework to easily develop component based applications on top of Akka, AkkaHttp, JMS and other communication libraries.

The _Blended runtime components_ provide a well defined environment for the user defined components and provides common services for component configuration, security services standard integrations to an enterprise level infrastructure, such as messaging services or authentication and authorization servers.

The _Blended management framework_ allows to monitor and manage a large number of distributed framework containers without sacrificing the stability of the environment when the management infrastructure is unavailable.

The _Blended test framework_ allows to execute functional cross-component tests mimicking the final container environment with minimal effort.

The _Blended integration test framework_ uses docker to create and deploy docker images from within the build process and supports the developer in creating integration tests for the final container.

====
_Blended_ is the backend for a distributed retail communication software.
All components and services not directly related to the actual business components are licensed under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].

Currently blended is in it's 3rd generation and in production since ~2014.
====

== Related projects

https://github.com/woq-blended/blended.mgmt.ui[Blended Management UI]::
A web front end the _Blended Management Framework_ built with Scala.Js.

https://github.com/woq-blended/blended.container[Blended example container and integration tests]::
Some packaging examples and simple integration flows complete with packaging and integration tests.

== Build from source

We use https://github.com/lihaoyi/mill[Mill build tool] to build blended.

As we have some shared modules between Scala and Scala.Js, `node` and `yarn` is also required on the developer machine.

After cloning the repository, simply navigate to the checkout directory and use the bundled mill script `./mill`, which is a copy of https://github.com/lefou/millw[lefou/millw].

We currently target Java 8 and Java 11 with _Scala 2.13 and Scala.js 1_.

=== Selected build targets / commands

|===
| mill command | Description

| `mill __.publishLocal`
| Build and publish all publishable artifacts into a local ivy2 repository.

| `mill __.publishM2Local`
| Build and publish all publishable artifacts into a local Maven2 repository.

| `mill blended[{scala2_13}].__.osgiBundle`
| Build all OSGi bundles for Scala {scala2_13}

| `mill blended[{scala2_13}].__.testCached`
| Run all tests for Scala {scala2_13}

| `mill -j 0 -k __.testCached`
| Run all unit test in parallel and keep mill going even a test failure occured

| `mill scoverage.htmlReportAll`
| Generate a HTML Coverage report based on previously ran tests
|===

=== IDE support

We use https://www.jetbrains.com/idea/[IntelliJ] in our project.
You can generate IntelliJ IDEA project files with mill with the following commandline:

----
mill mill.scalalib.GenIdea/idea
----

== Download artifacts from Maven Central

You can download released artifacts including binary and source JARs from http://search.maven.org/#search|ga|1|g%3A%22de.wayofquality.blended%22[Maven Central].

== License

Blended ist published under the http://www.apache.org/licenses/LICENSE-2.0[Apache License, Version 2.0]

== Contribute

Why not just clone our repo, dig around and send us some pull requests ....

== Supporters

https://www.jetbrains.com[JetBrains] is kindly supporting our project with full developer licenses of their product stack.

== Feedback

We are keen to know what you think about Blended. What are your use cases, your wishes?

If you spot something that makes you want to pull your hair, https://github.com/woq-blended/blended/issues[let us know] ;)