What's Coming in Bndtools 3.0 and Beyond

Post on 22-Jan-2018

743 views 1 download

Transcript of What's Coming in Bndtools 3.0 and Beyond

Bndtools UpdateWhat’s Coming in 3.0 and BeyondHere!

Neil Bartlett – Paremus Ltd, neil.bartlett@paremus.com

3.0

Build

• (Even) better build fidelity with offline.

• Faster, more scalable builds.

• All packaged code in dependent bundle visible downstream.

OSGi Release 6• Support for OSGi R6 annotations: DS 1.3 and

MetaType 1.3.

• Annotation processing for DS & MetaType enabled by default.

• Versioning annotations from OSGi spec.

• Prefer package-info.java over packageinfo.

DS 1.3 Demo

Repo-Specific Deps

-buildpath: osgi.cmpn; version=5.0; repo="Build*,Release"

Capability Search

Wildcard Dependencies

-buildpath: *; repo=Build

• Can be used from cnf.

• Puts all bundles from the repo on buildpath.

• Enable type-level repo searches using ⌘T

• bnd-maven-plugin now production-ready.

• Use POM properties in bnd.bnd.

• Inheritance from Parent Project, omit bnd.bnd if specific settings not required.

• Most projects don’t require bnd.bnd (this surprised us too…)

• New “Non-Workspace” Plugin.

• Much better than the “official” Gradle OSGi plugin… also, maintained!

• As used by Liferay.

3.1

“Standalone” Operations

• Resolve/Run/Export without bnd Workspace.

• Better support for Maven and Gradle (non-ws) devs

• OSGi Repository Index wizard.

• Indexing (bnd-indexer-maven-plugin).

• Baselining (bnd-baseline-maven-plugin).

• Integration testing (bnd-test-maven-plugin).

• Export as executable JAR (TBD).

Standalone/Maven Demo

New Template System

• Load Templates from Repository and/or Workspace

• Base Templates Updated for OSGi Release 6

Template Demo

Hash Dependencies-buildpath: osgi.cmpn; version=hash; hash=292ecca5d8…

• Guaranteed repeatable builds.

• Repos can answer queries purely by hash.

• Safely consume from external repos.

• Hash + BSN validated after download.

Future Plans• Moar Maven integration!

• Incremental bundle build in m2e?

• Clean up Repository Plugin API.

• Export to Docker?

• JSR 376 (Java Platform Module System) Support?

Help!

• Number of Bndtools committers on Windows: 0

• If Windows is an important platform for you, please try to get involved.