# Package de.caff.version

This package provides semantic versioning for modules.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  ModuleVersionService | Service interface used for retrieving module versions.
  SemVer.Prerelease.Identifier | Identifier.

- Class Summary
  Class | Description
  --- | ---
  ModuleVersion | Module version information.
  ModuleVersionTool | Helper class providing static methods to create and access classes implementing `ModuleVersionService`.
  SemVer | Semantic version.
  SemVer.Prerelease | Prerelease indicator.
  SemVer.Prerelease.AlphanumericIdentifier | Alphanumeric identifier.
  SemVer.Prerelease.NumericIdentifier | Numeric identifier.

## Package de.caff.version Description

This package provides semantic versioning for modules.

de.caff code is divided into lots of modules. With the help of the classes in this package it is possible to have access to the `semantic versions` of the modules contained in an application during runtime. This is done via the Java `service loader` mechanism. Classes which implement `ModuleVersionService` and which are published as services (i.e. there are dedicated service entries in the jar containing the class) can automatically be retrieved at runtime.

The interface `ModuleVersionService` provides static accessors methods for retrieving the registered services.

Helper class `ModuleVersionTool` provides static helper method to create Java code implementing the service.