Skip to content

Improve detection of conflicting artifact versions #21

Description

@stelfrich

Currently, there is a filename/regex-based check for determining if a file in scijava.app.directory conflicts with the artifact to be installed. While this check works, it has hardcoded patterns and is thus not extensible w.r.t. new architectures, etc.

We (@ctrueden and I) have come up with the following scheme to extract the version and qualifier of an artifact:

  1. Look in Jar for version information:
    1. pom.properties in META-INF/maven/<groupId>/<artifactId>/ (if found, return)
    2. pom.xml in META-INF/maven/<groupId>/<artifactId>/ (if found, return)
    3. MANIFEST.mf (Implementation-Version)
  2. If a version is found in the filename suffix, the rest is a qualifier [If not: ij.jar or inconsistent: warning]
  3. If nothing is in the filename
    1. use regex (dash+digit: substring)
    2. if there is no version, assume there is a qualifier or suffix

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions