The HTTP Whiteboard service extends the OSGi HTTP service by automatically registering servlets, filters and resource mappings with the embedded servlet container. An AngularJS application consists of static resources that can easily be deployed in any HTTP server. The deployment of AngularJS in Blueprint leverages the HTTP Whiteboard service.
We are using Atomikos, a distributed transaction processor to build transactional JDBC and JMS connection pools in Apache Karaf.
The Activiti Explorer is a user interface for managing Activiti workflow processes. The Activiti Explorer is useful not only as a visual debugging tool but also as a generic back office for mdeployed processes. In order to use the Activiti Explorer as a management tool for deployed processes certain changes are required in the Activiti Explorer configuration and a minor provision in the processes design.
Spring Data is yet another extremely useful Spring subproject that is so tightly coupled with the Spring-specific container features, that it has become very hard to deploy it in Blueprint.
The alternative to an adaptation to Blueprint is (once again) mixing Spring DM and Blueprint bundles and importing Spring DM services into Blueprint contexts.
Traditionally Spring has excellent support for AOP features. One of the most common approaches for adding aspects to a Spring bean is the org.springframework.aop.framework.ProxyFactoryBean class. However this class does not work equally well in a Blueprint container.
This article focuses on the implementation of a REST service that can be deployed on Apache Karaf using the excellent HTTP Whiteboard service. In the first part, we will concentrate on building a REST service with Apache CXF and exporting it with the HTTP Whiteboard. In the second part, we will elaborate on securing the service using Spring Security.
Dozer is a popular bean-to-bean mapping library. This functionality is typically needed when switching between domain models, e.g. to isolate the internal representation of a domain model from the model published to clients through a REST API.
Dozer has a pluggable class loading configuration which allows to set a custom class loader for classes and resources. However Dozer was not designed with OSGi in mind. Custom class loaders are set on a Dozer singleton. This combined with the lazy loading of mapping definition files can generate unexpected results.
OpenDJ is a powerful LDAP server based on the popular OpenDS server. OpenDJ supports multi-master replication, failure auto-detection and recovery. The replication setup is extensively documented and fairly simple to setup. Apache Karaf is a customizable OSGi container with excellent support for application deployment. For OSGi application requiring an LDAP server, it would be ideal to be able to deploy OpenDJ as just another feature of the main application in Karaf.