Version Utility
Table of Contents
About
Provides POJO representations for version numbers and ranges.
Contacts
Using
When running maven you may simply add a new dependency along with our repository to your pom.xml
:
<dependencies>
<dependency>
<groupId>com.torchmind.utility</groupId>
<artifactId>version</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
<!-- Or for unstable releases: -->
<repository>
<id>sonatype</id>
<name>Sonatype Open Source Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<dependencies>
<dependency>
<groupId>com.torchmind.utility</groupId>
<artifactId>version</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
</dependencies>
Parsing SemVer based versions:
SemanticVersion version = SemanticVersion.of("1.0-alpha");
SemanticVersion version = SemanticVersion.of("0.1.0");
Comparing versions:
IVersion version1 = ...;
IVersion version2 = ...;
if (version2.isNewerThan(version1)) {
// Update application or something
}
Creating version ranges
VersionRange<SemanticVersion> range = SemanticVersion.range("(1.0,2.0]");
// OR
SemanticVersion version1 = ...;
SemanticVersion version2 = ...;
VersionRange<SemanticVersion> range = SemanticVersion.range(version1, version2);
Checking range matches:
VersionRange range = ...;
IVersion version = ...;
if (range.matches(version)) {
// Dependency satisfied or something
}
// OR
VersionRange range = ...;
Set<IVersion> versions = ...;
Set<IVersion> matchingVersions = range.matching(versions);
Note: Developers may develop their own version parsers by implementing the com.torchmind.utility.version.IVersion
interface. For an example please refer to com.torchmind.utility.version.semantic.SemanticVersion
.
Issues
You encountered problems with the library or have a suggestion? Create an issue!
- Make sure your issue has not been fixed in a newer version (check the list of closed issues
- Create a new issue from the issues page
- Enter your issue's title (something that summarizes your issue) and create a detailed description containing:
- What is the expected result?
- What problem occurs?
- How to reproduce the problem?
- Crash Log (Please use a Pastebin service)
- Click "Submit" and wait for further instructions
Building
- Clone this repository via
git clone https://github.com/Torchmind/VersionUtility.git
or download a zip - Build the modification by running
mvn clean install
- The resulting jars can be found in
api/target
,core/target
andmapper/target
Contributing
Before you add any major changes to the library you may want to discuss them with us (see Contact) as we may choose to reject your changes for various reasons. All contributions are applied via Pull-Requests. Patches will not be accepted. Also be aware that all of your contributions are made available under the terms of the Apache License 2.0. Please read the Contribution Guidelines for more information.