Skip to content

Improve the aggregator's maven publishing to support resolving package requirements #11

@merks

Description

@merks

I'm testing using the platform's *.aggr which I've modified to add more rules for completeness of the mapping, including correctness for all dependencies:

image

The above selected maven mapping specifies to map any bundle to $key$ where key must be present as a property in the p2 metadata of the installable unit for the rule to be applicable. This normal default rule kicks in when that's not the case.

image

A new tab in the Analyzer editor presents the information about the POM induced for each installable unit. Here we see that package imports are resolved to one or more installable units (two in the case selected below) and those are also mapped to dependencies:

image

The Analyzer editor analyzes each generated POM to ensure that the group/artifact information can be resolved to its maven metadata either remotely or locally, e.g.,

https://repo1.maven.org/maven2/org/eclipse/jdt/org.eclipse.jdt.apt.pluggable.core/maven-metadata.xml

It also tests that each dependency's version range resolves to an existing artifact version.

It's not clear whether adding support for java.package requirements will result in bogus or undesirable dependencies. In the example above. I think the dependency on ecg is undesirable (and definitely unnecessary), but I don't know if it's problematic. If you look at the most recent published version you can see that the dependencies for package imports were not present previously:

https://repo1.maven.org/maven2/org/eclipse/jdt/org.eclipse.jdt.apt.pluggable.core/1.3.0/org.eclipse.jdt.apt.pluggable.core-1.3.0.pom

In other cases duplicates seem correct, e.g., as in this case involving split packages:

image

My sense though is that we need some general mechanism to control this new behavior or even to turn off this new behavior...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions