Package: maven-plugin-tools
Version: 3.10.2-1
Severity: important

This is not an issue with the libmaven-plugin-tools-java binary package
currently uploaded to Debian unstable. This issue surfaces if
maven-plugin-tools 3.10.2-1 is rebuilt in a debian/sid chroot and the
generated libmaven-plugin-tools-java used to build some of the maven plugin
packages in the archive.

I first came across this issue in the Ubuntu update excuses and filed a bug
[1] last November. The affected packages, which FTBFS, are all maven
plugins that use the Javadoc-based Mojo descriptors (support for
Javadoc-based MOJOs will be removed in Maven 4).

The MOJO descriptor extractor classes are included in the
libmaven-plugin-tools-java binary package. Specifically, the javadoc Mojo
extracter (JavaJavadocMojoDescriptorExtractor) is bundled in
the maven-plugin-tools-java-debian.jar file in the package. The extractor
classes are discovered and instantiated into the maven workflow through
dependency injection, by the sisu-maven-plugin [2]. For the latter to
discover these classes, they need to be indexed in a file named
"META-INF/sisu/javax.inject.Named" [2] packaged in the
maven-plugin-tools-java-debian.jar. While the current
libmaven-plugin-tools-java binary package includes this index file, a
binary package currently built in a debian/sid chroot no longer includes
this file.  Because of the absence of the index file, we fail to discover
the JavaJavadocMojoDescriptorExtractor class present in
maven-plugin-tools-java-debian.jar, which in turn causes failures to
discover the Javadoc-based MOJO descriptors in the maven packages that
FTBFS.

Because there is no change in the version (3.10.2-1), there is something
else at play here, but I couldn't find any relevant dependency that could
cause this change. Note that JARs maven-plugin-tools-ant-debian.jar
and maven-plugin-tools-beanshell-debian.jar are expected to have similar
index files used to sisu, and they DO EXIST in the newly built binary
packages.

The list of packages that FTBFS due to the missing index file currently is:
activemq-protobuf [3]
antlr-maven-plugin [4]
gettext-maven-plugin [5]
javacc-maven-plugin [6]
munge-maven-plugin [7]

The issue can be fixed by explicitly listing the sisu plugin in
maven-plugin-tool's pom.xml [8]. The more profound question is, how did we
manage to have the index file generated without this dependency, up until
now!

[1]
https://bugs.launchpad.net/ubuntu/+source/maven-plugin-tools/+bug/2089933
[2] https://tracker.debian.org/pkg/sisu-maven-plugin
[3] https://tracker.debian.org/pkg/activemq-protobuf
[4] https://tracker.debian.org/pkg/antlr-maven-plugin
[5] https://tracker.debian.org/pkg/gettext-maven-plugin
[6] https://tracker.debian.org/pkg/javacc-maven-plugin
[7] https://tracker.debian.org/pkg/munge-maven-plugin
[8]
https://code.launchpad.net/~pushkarnk/ubuntu/+source/maven-plugin-tools/+git/maven-plugin-tools/+merge/477551

Reply via email to