Posts

What's new in Apache Karaf runtime 4.3.2 ?

Apache Karaf runtime 4.3.2 has been released and available on https://karaf.apache.org . You can have take a look on the Release Notes . Let's take a quick tour on this new Karaf release. Support R7 configutation factory and fix on json check Karaf 4.3.x introduced both suppport of OSGi Spec R7 and json configuration support (in addition of the "regular" cfg/properties format). We identify an issue in the configuration json format: when the json contains an array, then it was always considered as updated. For instance, the following configuration: { "foo": [ "bar" ] } was considered as always updated. We can see in the log: 2021-05-07T23:01:45,924 | INFO | fileinstall-/[...]/karaf/etc | JsonConfigInstaller | 25 - org.apache.karaf.config.core - 4.3.1 | Updating configuration from my.config.json 2021-05-07T23:03:45,924 | INFO | fileinstall-/[...]/karaf/etc | JsonConfigInstaller | 25 - org.apache.karaf.config.co

What's new in Apache ActiveMQ 5.16.2 ?

Apache ActiveMQ 5.15.15 and 5.16.2 has been released. 5.15.15 is the last planned one on the 5.15.x branch, and contains only bug fixes. If you use ActiveMQ 5.15.x, you should upgrade to 5.16.x. Now, we are focusing on 5.16.x and coming 5.17.x (see later in this blog). ActiveMQ 5.16.2 brings important fixes and improvements. Let's take a quick tour ;) Fix on failover priorityBackup When you have brokers located on different networks, failver priortyBackup allows you to specify a preference to "local" broker. For instance, you can use a broker URL like this: failover:(tcp://local:61616,tcp://remote:61616)?randomize=false&priorityBackup=true With this URL, client will try to connect to tcp://local:61616 and stay connected there. The client will connect to remote only if local is not there. However, client will constantly try to reconnect to local . Once the client can do it (when local is back), he will automatically reconnect. By default, the first U

What's new in Apache Karaf 4.3.1 ?

Apache Karaf 4.3.1 has just been released. It's now available on http://karaf.apache.org/download.html . It contains the same features as Apache Karaf 4.2.11, you can find on https://nanthrax.blogspot.com/2021/03/whats-new-in-apache-karaf-4211.html . Of course, Karaf 4.3.1 contains some specific fixes and improvements. Updated system packages (for OSGi R7) Since OSGi R7, the java.* packages should be exported by the framework (aka system packages). As Karaf 4.3.x is based on OSGi R7, it should do it. Karaf uses configuration file to list the packages exported by itself. Regarding the packages provided by the JDK, Karaf use etc/jre.properties to export the packages depending of the JDK version (aka the execution environment). Karaf 4.3.1 has been updated to cleanly export java.* packages, and it has been done by adding these packages in etc/jre.properties configuration file. Features JSON format Karaf Features is the main provisioning extension for Apache Karaf. Basic

What's new in Apache Karaf 4.2.11 ?

Even if Apache Karaf 4.2.11 is a "minor" version on the Karaf 4.2.x series, it brings some interesting small stuff ;) Karaf BoM Like Apache Karaf 4.3.0, Karaf 4.2.11 now provides a Bill Of Material (BoM) siplifying the management of Karaf dependencies version. All Karaf examples now use the BoM. In your project, you can use the Karaf BoM like this: <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.karaf</groupId> <artifactId>karaf-bom</artifactId> <version>4.2.11</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> The BoM provides all Karaf dependencies. It means you can use directly the Karaf dependencies like this: <dependency> <groupId>o

What's new in Apache Karaf Decanter 2.7.0 ?

Image
Apache Karaf Decanter 2.7.0 release is currently on vote. I'm a little bit anticipating to the release to do some highlights about what's coming ;) Karaf Decanter 2.7.0 is an important milestone as it brings new features, especially around big data and cloud. HDFS and S3 appenders Decanter 2.7.0 brings two new appenders: HDFS and S3 appenders. The HDFS appender is able to store the collected data on HDFS (using CSV format by default). Similary, S3 appender store the collected data as an object into a S3 bucket. Let's illustrate this with a simple use case using S3 appender. First, let's create a S3 bucket on AWS: So, now we have our decanter-test S3 bucket ready. Let's start a Karaf instance with Decanter S3 appender enabled: Then, we configure S3 appender in etc/org.apache.karaf.decanter.appender.s3.cfg : ############################### # Decanter Appender S3 Configuration ############################### # AWS credentials accessKeyId=... secr

Complete metrics collections and analytics with Apache Karaf Decanter, Apache Kafka and Apache Druid

Image
In this blog post, I will show how to extend the Karaf Decanter as log and metrics collection with storage and analytic powered by Apache Druid. The idea is to collect machine metrics (using Decanter OSHI collector for instance), send to a Kafka broker and aggregate and analyze the metrics on Druid. Apache Kafka We can ingest data in Apache Druid using several channels (in streaming mode or batch mode). For this blog post, I will use streaming mode with Apache Kafka. For the purpose of the blog, I will simply start a zookeeper: $ bin/zookeeper-server-start.sh config/zookeeper.properties and kafka 2.6.1 broker: $ bin/kafka-server-start.sh config/server.properties ... [2021-01-19 14:57:26,528] INFO [KafkaServer id=0] started (kafka.server.KafkaServer) I'm create a decanter topic where we gonna send the metrics: $ bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic decanter --partitions 2 $ bin/kafka-topics.sh --bootstrap-server localhost:9092 -

Coming in Apache Karaf 4.3.1: features JSON

The next Apache Karaf release (4.3.1) will support features definition in JSON format. Up to now, only XML was supported. It’s now possible to use either XML or JSON format. For instance, the following features repository using XML format: <features name="my-features-repo" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"> <feature name="my-feature" version="1.0-SNAPSHOT"> <feature>scheduler</feature> <bundle>mvn:org.example.bundle/my-bundle/1.0-SNAPSHOT</bundle> </feature></features> can now be defined using JSON format: { "name": "my-features-repo", "feature": [ { "name": "my-feature", "version": "1.0-SNAPSHOT", "feature": [ { "name": "scheduler" } ] "bundle": [ { "location": "mvn:org.example.bundle/my-bundle/1.0-SNAPSH