GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - bndtools/bnd: Bnd/Bndtools. Tooling to build OSGi bundles including Eclipse, Maven, and Gradle plugins.

BranchesTags
Open more actions menu

Latest commit

 

History

18,886 Commits
18,886 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
.mvn/wrapper
.mvn/wrapper
 
 
aQute.libg
aQute.libg
 
 
biz.aQute.bnd.annotation
biz.aQute.bnd.annotation
 
 
biz.aQute.bnd.ant
biz.aQute.bnd.ant
 
 
biz.aQute.bnd.embedded-repo
biz.aQute.bnd.embedded-repo
 
 
biz.aQute.bnd.exporters
biz.aQute.bnd.exporters
 
 
biz.aQute.bnd.javagen
biz.aQute.bnd.javagen
 
 
biz.aQute.bnd.maven
biz.aQute.bnd.maven
 
 
biz.aQute.bnd.pde
biz.aQute.bnd.pde
 
 
biz.aQute.bnd.reporter
biz.aQute.bnd.reporter
 
 
biz.aQute.bnd.runtime
biz.aQute.bnd.runtime
 
 
biz.aQute.bnd.test
biz.aQute.bnd.test
 
 
biz.aQute.bnd.testextension
biz.aQute.bnd.testextension
 
 
biz.aQute.bnd.transform
biz.aQute.bnd.transform
 
 
biz.aQute.bnd.util
biz.aQute.bnd.util
 
 
biz.aQute.bnd
biz.aQute.bnd
 
 
biz.aQute.bndall.tests
biz.aQute.bndall.tests
 
 
biz.aQute.bndlib.comm.tests
biz.aQute.bndlib.comm.tests
 
 
biz.aQute.bndlib.tests
biz.aQute.bndlib.tests
 
 
biz.aQute.bndlib
biz.aQute.bndlib
 
 
biz.aQute.http.testservers
biz.aQute.http.testservers
 
 
biz.aQute.junit
biz.aQute.junit
 
 
biz.aQute.launcher
biz.aQute.launcher
 
 
biz.aQute.launchpad.tests
biz.aQute.launchpad.tests
 
 
biz.aQute.launchpad
biz.aQute.launchpad
 
 
biz.aQute.remote
biz.aQute.remote
 
 
biz.aQute.repository
biz.aQute.repository
 
 
biz.aQute.resolve.test
biz.aQute.resolve.test
 
 
biz.aQute.resolve
biz.aQute.resolve
 
 
biz.aQute.tester.junit-platform
biz.aQute.tester.junit-platform
 
 
biz.aQute.tester.test
biz.aQute.tester.test
 
 
biz.aQute.tester
biz.aQute.tester
 
 
bndtools.api
bndtools.api
 
 
bndtools.builder
bndtools.builder
 
 
bndtools.core.services
bndtools.core.services
 
 
bndtools.core.test
bndtools.core.test
 
 
bndtools.core
bndtools.core
 
 
bndtools.jareditor
bndtools.jareditor
 
 
bndtools.m2e.debug.fragment
bndtools.m2e.debug.fragment
 
 
bndtools.m2e
bndtools.m2e
 
 
bndtools.pde
bndtools.pde
 
 
bndtools.release
bndtools.release
 
 
bndtools.test
bndtools.test
 
 
bndtools.utils
bndtools.utils
 
 
cnf
cnf
 
 
demo-fragment
demo-fragment
 
 
demo
demo
 
 
dist
dist
 
 
docs
docs
 
 
gradle-plugins
gradle-plugins
 
 
gradle
gradle
 
 
maven-plugins
maven-plugins
 
 
org.bndtools.applaunch.test
org.bndtools.applaunch.test
 
 
org.bndtools.applaunch
org.bndtools.applaunch
 
 
org.bndtools.headless.build.manager
org.bndtools.headless.build.manager
 
 
org.bndtools.headless.build.plugin.ant
org.bndtools.headless.build.plugin.ant
 
 
org.bndtools.headless.build.plugin.gradle
org.bndtools.headless.build.plugin.gradle
 
 
org.bndtools.launch
org.bndtools.launch
 
 
org.bndtools.p2
org.bndtools.p2
 
 
org.bndtools.remoteinstall
org.bndtools.remoteinstall
 
 
org.bndtools.templates.osgi
org.bndtools.templates.osgi
 
 
org.bndtools.templates.template
org.bndtools.templates.template
 
 
org.bndtools.templating.gitrepo
org.bndtools.templating.gitrepo
 
 
org.bndtools.templating
org.bndtools.templating
 
 
org.bndtools.versioncontrol.ignores.manager
org.bndtools.versioncontrol.ignores.manager
 
 
org.bndtools.versioncontrol.ignores.plugin.git
org.bndtools.versioncontrol.ignores.plugin.git
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.mailmap
.mailmap
 
 
Agents.md
Agents.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
DEV_README.md
DEV_README.md
 
 
KEYS.md
KEYS.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 
build.gradle
build.gradle
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
mvnw
mvnw
 
 
mvnw.cmd
mvnw.cmd
 
 
pom.xml
pom.xml
 
 
rebuild-with-local-plugin
rebuild-with-local-plugin
 
 
settings.gradle
settings.gradle
 
 

Repository files navigation

bnd

GitHub release Rebuild CodeQL GitHub issues GitHub commit activity

bnd & bndtools

Bnd/Bndtools is a swiss army knife for OSGi. It creates manifest headers for you based on analyzing the class code, it verifies your settings, it manages project dependencies, diffs jars, and much more. At the core is a library with all the functions (see our bnd cheatsheet). The library is then used in a myriad of subsystems to provide the core functionality to the rest of the world.

  • bndlib and friends – The core library plus repository, resolve, etc.
  • maven plugins – A full set of maven plugins that make bnd useful for maven users
  • eclipse – Bndtools is the plugin for Eclipse that provides full GUI support for bnd. This is a p2 repository.
  • bnd – a command line utility with a hodgepodge of sometimes extremely useful functions. Can even be used instead of a build tool. is available through Homebrew formula.
  • gradle plugin(s) – A bnd workspace plugin that builds identical to Eclipse's bndtool as well as a gradle plugin that provides bnd support for non-workspace projects
  • ant – well ...

Eclipse Feature Browsing

Bndtools displays Eclipse features from both P2 repositories and their generated OSGi indexes. The Repositories view toolbar provides Show Eclipse Features to show or hide them; the setting is remembered. Feature selections also expose their capabilities and requirements in the resolution view.

Feedback

Well, assuming you were born after 1970 you probably know how to file an issue? :-) We got a good record fixing bugs. However, to help us, it always works best if you can provide the smallest possible example as a github repo. If the bug is consistent we tend fix it really fast. At least specify the environment where the bug appears, we got lots of variants.

General feedback is of course also always welcome! The bnd discourse site mail list is open for any topic even remotely associated with bnd. And we even love to hear also how people use the product that takes so much of our time.

And the ones we love most are of course PRs! The documentation of bnd is fully included in this workspace. From a typo to a brilliant essay on Launchpad, submit a PR and we probably take it. Don't ask what bnd can do for you, ask what you can do for bnd!

License

This program and the accompanying materials are made available under the terms of the Apache License, Version 2.0 which is available at https://www.apache.org/licenses/LICENSE-2.0, or the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0.

API

We go out of our way to be backward compatible. There are thousands of extensive test cases and we use our own baselining tool to verify that we do not make gratuitious changes. Since this tool is part of Bndtools we often find out early enough that there are alternatives to breaking changes. We strictly follow OSGi semantic versioning. This means that we mark exported packages with a package version.

We try to keep major versions to a minimum but sometimes we must. This is clearly marked with a major release number.

The master branch is release 7 currently and the Java release version is 17. Since some libraries are used in the embedded world that have a slower uptake of the Java release train we keep a classic branch that continues a major release 6 on Java 1.8. The classic branch does not include the plugins.

Contributing

Want to work on Bnd/Bndtools? There are instructions to get you started. Please let us know if anything feels wrong or incomplete.

Some more instructions how to get started with bndtools development can be found here

Repo Structure

Branches

We have the following branches:

  • master – Where the work for the next release takes place. Pushes on this branch release to the snapshot repository
  • classic – A continuation of 6.4 compiled on Java 1.8 for the poor developers stuck in the limbo of 1.8 and 17.
  • next – Release branch to Maven central. Is used during the release process.

We generally do not use other branches. Issues and features are handled through PR's from forked repos.

Issues

Open issues are the one actively scheduled to go into the next milestone(s).

All other issues will be closed. However, some issues we close because we just lack people that are interested in working on them. We explicitly mark those issues with help wanted. If you got time to spare, do not hesitate to open them and indicate you're willing to work on them. We will then properly schedule and track them. If you need to find them, use this filter: is:issue state:closed label:"help wanted".

Milestones

We try to have a release every 3-6 months and plan these with milestones.

PRs

PRs should be submitted via another repo. After approval, they will be built to check for our requirements.

Actions

Actions trigger workflows depending on the branch. PR's for verification require approval when not from a known contributor. We verify the code quality with CodeQL and the contribution rules are also checked.

Installation (Stable Releases)

Use the latest stable release for normal development.

  • Maven Central (group id: biz.aQute.bnd) - https://repo.maven.apache.org/maven2
  • Bndtools Eclipse Plugin p2 update site - https://bndtools.jfrog.io/bndtools/update-latest

Bnd Maven Plugin (stable)

<plugin>
  <groupId>biz.aQute.bnd</groupId>
  <artifactId>bnd-maven-plugin</artifactId>
  <version></version>
</plugin>

Bnd Gradle Plugin (stable)

plugins {
  id "biz.aQute.bnd.builder" version "7.4.0"
}

Installation (Release Candidates)

Release Candidates are pre-release builds published for testing.

  • RC artifacts - https://bndtools.jfrog.io/bndtools/libs-release/
  • Bndtools Eclipse Plugin RC update site - https://bndtools.jfrog.io/bndtools/update-rc
pluginManagement {
  repositories {
    gradlePluginPortal()
    maven { url "https://bndtools.jfrog.io/bndtools/libs-release/" }
  }
}

plugins {
  id "biz.aQute.bnd.builder" version "X.Y.Z-RC1"
}
<pluginRepositories>
  <pluginRepository>
    <id>bnd-rc</id>
    <url>https://bndtools.jfrog.io/bndtools/libs-release/</url>
  </pluginRepository>
</pluginRepositories>

<plugin>
  <groupId>biz.aQute.bnd</groupId>
  <artifactId>bnd-maven-plugin</artifactId>
  <version>X.Y.Z-RC1</version>
</plugin>

Installation (Development Snapshot Builds — master branch)

Snapshot builds are produced from the current master branch and may be unstable.

  • Snapshot artifacts - https://bndtools.jfrog.io/bndtools/libs-snapshot/
  • Bndtools Eclipse Plugin snapshot update site - https://bndtools.jfrog.io/bndtools/update-snapshot
pluginManagement {
  repositories {
    gradlePluginPortal()
    maven { url "https://bndtools.jfrog.io/bndtools/libs-snapshot/" }
  }
}

plugins {
  id "biz.aQute.bnd.builder" version "X.Y.Z-SNAPSHOT"
}
<pluginRepositories>
  <pluginRepository>
    <id>bnd-snapshots</id>
    <url>https://bndtools.jfrog.io/bndtools/libs-snapshot/</url>
  </pluginRepository>
</pluginRepositories>

<plugin>
  <groupId>biz.aQute.bnd</groupId>
  <artifactId>bnd-maven-plugin</artifactId>
  <version>X.Y.Z-SNAPSHOT</version>
</plugin>

Building

We use Gradle and Maven to build and the repo includes gradlew and mvnw at the necessary versions. We require at least Java 17.

  • ./gradlew :build - Assembles and tests the Bnd Workspace projects. This must be run before building the Bnd Maven and Gradle plugins.
  • ./gradlew :gradle-plugins:build - Assembles and tests the Bnd Gradle plugins.
  • ./mvnw install - Assembles and tests the Bnd Maven plugins.
  • ./gradlew :publish - Assembles and publishes the Bnd Workspace projects into dist/bundles.
  • ./gradlew :gradle-plugins:publish - Assembles and publishes the Bnd Gradle plugins into dist/bundles.
  • ./mvnw -Pdist deploy - Assembles and publishes the Bnd Maven plugins into dist/bundles.

Acknowledgments

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

Powered by Artifactory

YourKit

icons8 – For some of the icons

About

Bnd/Bndtools. Tooling to build OSGi bundles including Eclipse, Maven, and Gradle plugins.

bnd.bndtools.org/

Topics

assemblerbndbnd-gradle-pluginsbndtoolseclipseeclipse-plugingradlegradle-pluginjavamaven-pluginosgiosgi-developmentyourkit

Resources

Readme
License

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

557 stars

Watchers

36 watching

Forks

304 forks
Report repository

Releases

Sponsor this project

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.