All Projects → cschneider → osgi-chat

cschneider / osgi-chat

Licence: Apache-2.0 license
No description or website provided.

Programming Languages

java
68154 projects - #9 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to osgi-chat

Felix Search Webconsole Plugin
Search Web Console Plugin for Apache Felix
Stars: ✭ 79 (+315.79%)
Mutual labels:  osgi
Design
OSGi design repository
Stars: ✭ 150 (+689.47%)
Mutual labels:  osgi
osgi-testsuite
The OSGi Test Suite runs all JUnit tests in a given list of bundles
Stars: ✭ 15 (-21.05%)
Mutual labels:  osgi
Com.zsmartsystems.zigbee
ZigBee Cluster Library Java framework supporting multiple dongles
Stars: ✭ 93 (+389.47%)
Mutual labels:  osgi
Idempiere
iDempiere. Community Powered Enterprise. Full Open Source Business Suite ERP/CRM/MFG/SCM/POS
Stars: ✭ 137 (+621.05%)
Mutual labels:  osgi
Acs Aem Samples
AEM Code Samples repository
Stars: ✭ 170 (+794.74%)
Mutual labels:  osgi
Karaf Cellar
Mirror of Apache Karaf Cellar
Stars: ✭ 38 (+100%)
Mutual labels:  osgi
felix-atomos
Apache Felix Atomos
Stars: ✭ 32 (+68.42%)
Mutual labels:  osgi
Aem Groovy Console
The AEM Groovy Console provides an interface for running Groovy scripts in the AEM container. Scripts can be created to manipulate content in the JCR, call OSGi services, or execute arbitrary code using the CQ, Sling, or JCR APIs.
Stars: ✭ 144 (+657.89%)
Mutual labels:  osgi
camunda-bpm-platform-osgi
OSGi integration for Camunda Platform 7
Stars: ✭ 20 (+5.26%)
Mutual labels:  osgi
Ddf
DDF Distributed Data Framework - an open source, modular integration framework.
Stars: ✭ 112 (+489.47%)
Mutual labels:  osgi
Servicemix
Apache ServiceMix
Stars: ✭ 131 (+589.47%)
Mutual labels:  osgi
Bndtools
ARCHIVED: The contents of this repo have been merged into the `bnd` repo.
Stars: ✭ 197 (+936.84%)
Mutual labels:  osgi
System Runtime
A JavaScript library that runs systems
Stars: ✭ 83 (+336.84%)
Mutual labels:  osgi
bacnet
OpenMUC BACnet/IP communication driver based on bacnet4J
Stars: ✭ 19 (+0%)
Mutual labels:  osgi
Drombler Fx
Drombler FX - the modular application framework for JavaFX.
Stars: ✭ 52 (+173.68%)
Mutual labels:  osgi
Bouncy Gpg
Make using Bouncy Castle with OpenPGP fun again!
Stars: ✭ 164 (+763.16%)
Mutual labels:  osgi
island-viz
IslandViz: A Tool for Visualizing Modular Software Systems in Virtual Reality
Stars: ✭ 17 (-10.53%)
Mutual labels:  osgi
aspecio
Aspecio, AOP Proxies for OSGi services
Stars: ✭ 14 (-26.32%)
Mutual labels:  osgi
atomos
Atomos - A Java Module Framework using OSGi Connect
Stars: ✭ 12 (-36.84%)
Mutual labels:  osgi

Lean Microservices

The lean microservices talk shows the limitations of the popular spring boot model to decvelop microservices. It then shows OSGi with some extensions for packaging and remote communication as an alternative development model that is simpler for the individual module developers while providing a lot more flexibility at deployment time.

This example shows how to design a modular application from microservices. The modules communicate only through OSGi services based on a shared interface (API) bundles.

For packaging an OSGi index is created on the fly from maven dependencies and bndtools bndrun descriptors are used to describe the application. This results in a self contained jar for the packaging. Optionally this can be packaged into a docker image.

The simplest packaging (all) is to package all bundles of the app together. They then use plain OSGi services to talk locally.

Alternatively the application can be split up into individual deployments per microservice comparable to spring boot apps. In this case we use the Aries Remote Service Admin to support transparent remote communication between the microservices.

Aries Remote Service Admin can also be used to export a plain OSGi service with rest annotations as a fully featured REST service that can be used to communicate with non OSGi modules or with external systems.

OSGi chat example for JBCNCONF

The example implements a chat notification system with several inputs and outputs. The inputs will always send to all currently available outputs.

Using Remote Service Admin the inputs and outputs can reside on different processes and machines.

  • chat api : Simple interface to send a char message consisting of time, sender, message
  • irc connector: Logs into a freenet irc server into channel #jbcnconf and forwards all messages
  • shell command send : Forwards the string as a message
  • LCD display: Listens to chat messages and displays them on a tinkerforge 20x4 LCD screen
  • Motion detector: Tinkerforge motion detector that sends notifications about motions

Prerequisites

Install

Source

Checkout the source git clone [email protected]:cschneider/osgi-chat.git Start eclipse and import the directory osgi-chat and all sub dirs as existing maven projects.

Build

  • mvn clean install
  • cd packaging/index
  • mvn clean install
  • cd ../..
  • mvn clean install
  • Package consumer and service as docker images using the sh build.sh in the respective directories

Run

Simple deployment chat-all

cd packaging/chat-all
java -jar osgi-chat.jar
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].