Apache Ignite Integrations

The Apache Ignite Integrations Developer Hub

Welcome to the Apache Ignite Integrations developer hub. You'll find comprehensive guides and documentation to help you start working with Apache Ignite Integrations as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Installation in Apache Karaf

Overview

Apache Karaf is a lightweight, powerful, and enterprise ready container powered by OSGi. It supports both the Eclipse Equinox and Apache Felix OSGi runtimes.

Apache Karaf 4.0.0 release line supported

Apache Ignite has been tested with the Apache Karaf 4.0.0 release line. It is possible that it works with older versions too, but it has not been tested explicitly.

In order to facilitate the deployment of the different Ignite modules – along with their dependencies –, Apache Ignite offers a set of Karaf features packaged in a feature repository. This makes it possible to quickly provision Ignite onto the OSGi environment by means of a single command in the Karaf shell.

Preparatory Steps

First off, Ignite uses the low-level Oracle/Sun JRE package sun.nio.ch (which is also available on OpenJDK).

Since this is a proprietary package (not part of the standard Java specs), Apache Karaf does not export it by default from the System Bundle (bundle 0). You must instruct Karaf to export it by modifying the ${KARAF_BASE}/etc/jre.properties file.

Locate the jre-1.x property for the version of the JRE you're on, and append the package at the end. For example:

jre-1.8= \
 javax.accessibility, \
 javax.activation;version="1.1", \
 ...
 org.xml.sax.helpers, \
 sun.nio.ch

Installing the Ignite Features Repository

Use the following command in the Apache Karaf shell to install the Ignite features repository, making sure your container has access to the Internet or to an alternate Maven repository containing the Ignite artifacts:

karaf@root()> feature:repo-add mvn:org.apache.ignite/ignite-osgi-karaf/${ignite.version}/xml/features
Adding feature url mvn:org.apache.ignite/ignite-osgi-karaf/${ignite.version}/xml/features
karaf@root()>

Replace ${ignite.version} with the version of Apache Ignite you'd like to install.

You should now be able to list all supported Ignite features:

karaf@root()> feature:list | grep ignite
ignite-all                    | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: All
ignite-core                   | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: Core
ignite-aop                    | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: AOP
ignite-aws                    | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: AWS
ignite-indexing               | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: Indexing
ignite-hibernate              | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: Hibernate
ignite-jcl                    | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: JCL
ignite-jms11                  | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: JMS 1.1
ignite-jta                    | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: JTA
ignite-kafka                  | 1.5.0.SNAPSHOT   |          | Uninstalled | ignite                   | Apache Ignite :: Kafka
[...]
karaf@root()>

Install Appropriate Ignite Features

The following features are special:

  • ignite-core: the ignite-core module. It is required by all other features, so don't forget to install it.
  • ignite-all: an aggregate feature that installs all of the other Ignite features.

All other features contain the corresponding Ignite module + its dependencies. You can install them in the following manner:

karaf@root()> feature:install ignite-core
karaf@root()> feature:install ignite-kafka
karaf@root()> feature:install ignite-aop ignite-urideploy
karaf@root()>

Some modules are OSGi fragments rather than bundles. When installing them, you may notice that either, or both, the Karaf shell and/or the ignite-core bundle restart.

ignite-log4j and Pax Logging

Read this note carefully if using Pax Logging on Apache Karaf <= 4.0.3

When installing the ignite-log4j feature, the Karaf shell may show the following message:

Error executing command: Resource has no uri

This is not a harmful error and has been reported to the Karaf community at KARAF-4129: Installing a feature with a fragment that attaches to pax-logging-api fails.

Apply the instructions below ignoring the error.

Apache Karaf comes bundled with Pax Logging, a framework that collects and unifies all log output from other bundles (emitted via different frameworks such as slf4j, log4j, JULI, commons-logging, etc.) and processes it according to a canonical log4j configuration.

The ignite-log4j module required packages from log4j that Pax Logging doesn't export by default. We have developed an OSGi Fragment with symbolic name ignite-osgi-paxlogging that attaches to ignite-core and exports the missing packages.

The ignite-log4j feature already installs this fragment, but you will need to force its resolution by refreshing the bundle with symbolic name org.ops4j.pax.logging.pax-logging-api:

karaf@root()> feature:install ignite-log4j
karaf@root()> refresh org.ops4j.pax.logging.pax-logging-api
karaf@root()>
        __ __                  ____
       / //_/____ __________ _/ __/
      / ,<  / __ `/ ___/ __ `/ /_
     / /| |/ /_/ / /  / /_/ / __/
    /_/ |_|\__,_/_/   \__,_/_/

  Apache Karaf (4.0.2)

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf.

karaf@root()> la | grep ignite-osgi-paxlogging
75 | Resolved  |   8 | 1.5.0.SNAPSHOT                            | ignite-osgi-paxlogging, Hosts: 1
karaf@root()> 

Installation in Apache Karaf