Do not hard-code "latest", use Constants.VERSION_ATTR_LATEST

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Do not hard-code "project", use Constants.VERSION_ATTR_PROJECT

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Version: remove ZERO, it's the same as LOWEST

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Analyzer: move cleanupVersion into Version

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Version: add fromManifest/fromFileName methods and use them in FileRepo

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Jar: deprecate getVersion(), use Version.fromManifest(Manifest, boolean)

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Jar: add a getBsn(boolean)/getBsnFromFileName(boolean) methods

These also allow non-strict matching

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Jar: deprecate getBsn()

getBsn(true) can be used as a direct replacement

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Replace deprecated getBsn() invocations

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
FileRepo: allow plain jars to be put when bsn/version can be determined

To do it better the file name is needed but that requires an API change

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
PutOptions: add bsn and version hints

To allow the caller to specify bsn and version when the repo can't
determine them

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
FileRepo: add 'latest' option

When true will copy a put jar to a 'latest' jar

Defaults to false

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Update workspace dependencies

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>