Skip to content
Joel Håkansson edited this page Nov 13, 2018 · 5 revisions

The project type badges can be used to indicate the type of artifact produced by the project. Each type includes the markdown needed to generate the badge.

Note that some type blending may occur. For example, an API that provides some essential default implementations can still be classified as an API.

Application

Type

Indicates that the project artifact is an application.

Markdown:

[![Type](https://img.shields.io/badge/type-application-blue.svg)](https://github.com/brailleapps/wiki/wiki/Types)

API

Type

Indicates that the project artifact is an API.

A pure API bundle contains only Java interfaces (or abstract classes), which are public. The implementation of the API is meant to be provided in a separate bundle or JAR.

An API bundle does not publish or access any services.

Markdown:

[![Type](https://img.shields.io/badge/type-api-blue.svg)](https://github.com/brailleapps/wiki/wiki/Types)

Provider bundle

Type

Indicates that the project artifact is an implementation bundle that is accessed via some externally defined API.

A provider bundle contains the classes that implement an API. Usually, the classes in a provider bundle are all private and are not exported from the bundle.

The natural mechanism for a provider bundle to expose its functionality is to create and publish one or more services (where the services are then accessed through the public API).

Markdown:

[![Type](https://img.shields.io/badge/type-provider_bundle-blue.svg)](https://github.com/brailleapps/wiki/wiki/Types)

Consumer bundle

Type

Indicates that the project artifact is a consumer of an externally defined API. As such, it will require concrete implementations (provider bundles) to function.

A consumer bundle contains code that uses an API.

A consumer bundle typically accesses one or more services; it does not usually publish a service itself (unless it is acting as a hybrid of a consumer and a provider).

Markdown:

[![Type](https://img.shields.io/badge/type-consumer_bundle-blue.svg)](https://github.com/brailleapps/wiki/wiki/Types)

Library bundle

Type

Indicates that the project artifact is a library bundle, providing both a public API and the necessary implementations.

A library bundle contains Java classes and interfaces, which are public and intended to be used by other bundles. Often, in a library, there is no formal separation between API interfaces and implementation classes. Instead, developers simply instantiate and use the classes provided by the library.

A library bundle does not publish or access any services.

Markdown:

[![Type](https://img.shields.io/badge/type-library_bundle-blue.svg)](https://github.com/brailleapps/wiki/wiki/Types)
Clone this wiki locally