Checkout Knopflerfish
Knopflerfish on GitHub
Follow knopflerfish on Twitter

Knopflerfish Maven Repositories

Knopflerfish Release Repository
Browsable KF6 release repository

Knopflerfish offers a set of different maven2 repositories, each with a specific purpose.

The primary repository is a browsable, custom Knopflerfish 6 based release repository hosted by Knopflerfish.

Define the repository as follows:

  <repositories>
    <repository>
      <id>Knopflerfish 6 Repository</id>
      <name>Knopflerfish 6 Releases Repository</name>
      <url>http://resources.knopflerfish.org/repo/maven2/releases</url> 
    </repository>
  </repositories>

There is also a former release repository for KF5 releases and older versions.

In addition to the release repositories every Knopflerfish SDK release also includes a complete and self-contained maven 2 repository. These repositories may be used to build against exactly one specific KF version. Please see below for more info.

Source code version first philosophy

Knopflerfish uses a source code version first philosophy. I.e. the bundle version is only changed when the actual source code is changed, not when changing JDK versions, or other build system changes, including a change of major Knopflerfish version.

This means that that a bundle may exist in multiple Knopflerfish releases with the same versions number, but possibly compiled with different JDK versions, resulting in different Java byte code version in the OSGi bundles.

With Knopflerfish 6 the group id of the Knopflerfish artifacts was changed to also include the Knopflerfish main version. E.g. org.knopflerfish.kf6.bundle. This will allow a bundle to exist under the same name and version, but under a different group id in the future.

Maven Main Repositories

Knopflerfish Release Repository

The Knopflerfish release repository is browsable and located at:
http://resources.knopflerfish.org/repo/maven2/release

This repository contains released Knopflerfish artifacts since KF6. This repository will most likely be mirrored to one or more standard repositories in the near future.

Define the repository as follows:

  <repositories>
    <repository>
      <id>Knopflerfish 6 Repository</id>
      <name>Knopflerfish 6 Releases Repository</name>
      <url>http://resources.knopflerfish.org/repo/maven2/releases</url> 
    </repository>
  </repositories>

For every release that has been merged into the repository there is a dependency file describing the exact contents of that release.

Release Artifacts
6.1.0 KF-6.1.0_dependencyManagement.xml
6.0.0 KF-6.0.0_dependencyManagement.xml

Knopflerfish SDK Release Repositories

Included in every KF release is a maven2 repository containing exactly those bundles / artifacts included in the release. It should be used to build against one specific Knopflerfish version.

The dependency management xml-file show the exact contents of the repository.
Release Repository URL Artifacts
6.1.0 http://www.knopflerfish.org/releases/6.1.0/maven2 KF-6.1.0_dependencyManagement.xml
6.0.0 http://www.knopflerfish.org/releases/6.0.0/maven2 KF-6.0.0_dependencyManagement.xml
5.2.0 http://www.knopflerfish.org/releases/5.2.0/maven2 KF-5.2.0_dependencyManagement.xml
5.1.0 http://www.knopflerfish.org/releases/5.1.0/maven2 KF-5.1.0_dependencyManagement.xml
5.0.0 http://www.knopflerfish.org/releases/5.0.0/maven2 KF-5.0.0_dependencyManagement.xml
4.0.1 http://www.knopflerfish.org/releases/4.0.1/maven2 KF-4.0.1_dependencyManagement.xml
4.0.0 http://www.knopflerfish.org/releases/4.0.0/maven2 KF-4.0.0_dependencyManagement.xml
4.0.1 http://www.knopflerfish.org/releases/4.0.0/maven2 KF-4.0.1_dependencyManagement.xml
3.5.0 http://www.knopflerfish.org/releases/3.5.0/maven2 KF-3.5.0_dependencyManagement.xml
3.4.0 http://www.knopflerfish.org/releases/3.4.0/maven2 KF-3.4.0_dependencyManagement.xml
3.3.0 http://www.knopflerfish.org/releases/3.3.0/maven2 KF-3.3.0_dependencyManagement.xml
3.2.0 http://www.knopflerfish.org/releases/3.2.0/maven2 KF-3.2.0_dependencyManagement.xml
3.1.0 http://www.knopflerfish.org/releases/3.1.0/maven2 KF-3.1.0_dependencyManagement.xml
3.0.0 http://www.knopflerfish.org/releases/3.0.0/maven2 KF-3.0.0_dependencyManagement.xml
2.4.0 http://www.knopflerfish.org/releases/2.4.00/maven2 KF-2.4.0_dependencyManagement.xml
2.3.3 http://www.knopflerfish.org/releases/2.3.3/maven2 KF-2.3.3_dependencyManagement.xml

Knopflerfish Former Maven Release Repository

The release repository for older Knopflerfish releases, KF5 and older, is browsable and located at:
http://www.knopflerfish.org/maven2

Define the repository as follows:

  <repositories>
    <repository>
      <id>Knopflerfish Repository</id>
      <name>Knopflerfish 5 Releases Repository</name>
      <url>http://www.knopflerfish.org/maven2</url> 
    </repository>
  </repositories>

This former main repository is also mirrored to bintray and made available in jcenter, making it more conveniently available for maven and gradle users. Currently all artifacts (framework and bundles) are included in one large package called knopflerfish which has an unspecified version. This might change in the future.

Both of these two repositories are populated with all artifacts from all Knopflerfish releases since Knopflerfish release 2.3 until Knopflerfish release 5.2 In OSGi-language that means exactly all the specific bundles that have been included in a Knopflerfish release since KF 2.3.

Snapshot repositories (temporarily turned off)

The KF snapshot build repository is temporarily turned off.

Naming conventions

The convention used for group id and artifact is based on the bundle symbolic name. The naming convention is:

Group Id
First part of the bundle symbolic name, i.e., everything to the left of the last '.' with the kf${MainVersion} appended at the end (since KF6)
Artifact Id
Last part of the bundle symbolic name, i.e. everything after the last '.'
E.g. the Knopflerfish HTTP bundle has the symbolic name org.knopflerfish.bundle.http. It will get Group Id org.knopflerfish.kf${MainVersion}.bundle and Artifact Id http. Older bundles, before KF6, will not include the MainVersion in the group id.