Within this project you will make Calimero OSGI (Open Services Gateway Initiative) ready. OSGI provides a framework and service platform for deploying modular Java components, so called bundles. OSGI is a platform that can be used to create home automation gateways. Bundles have a lifecycle within an OSGI container and provide only a defined scope of their classes to other bundles within the container, which eases and enforces proper modularization of large Java projects. The goal of this project is to make Calimero OSGI ready, which means to create a bundle activator responsible for establishing connections to a KNX bus system. Furthermore, the API classes and interfaces that should be visible for other bundles need to be defined as exported classes and any dependencies on other software bundles need also to be defined and specified in the according manifest attributes of a .jar file. Within the project the build process to create an OSGI bundle should be automated and automated unit tests should verify that all the Calimero features are working within an OSGI container.
Benefit for the Student
Work on a well-established and industry acknowledged open source project. Gain experience in automation technology KNX, OSGI, build tools and automatic unit testing.
Benefit for the Project
Calimero is used in several other open source projects. A direct OSGI support within Calimero would allow to easily use Calimero as OSGI bundle in other software projects and avoid the redundancy of each project defining its own OSGI bundle for Calimero.
Good Java programming skills
Know-how in OSGI, Build Tools (Ant/Maven/Gradle) and automatic unit testing (JUnit) is a plus.