Skip to content

Add stable JPMS module names to Morphia core/kotlin artifacts#4255

Draft
Copilot wants to merge 3 commits into
masterfrom
copilot/modularize-jar
Draft

Add stable JPMS module names to Morphia core/kotlin artifacts#4255
Copilot wants to merge 3 commits into
masterfrom
copilot/modularize-jar

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 18, 2026

Morphia 3.0’s modularization effort needs stable module-path behavior despite mixed legacy/new driver usage. This PR adds explicit module names for published jars and aligns plugin configuration to keep that metadata consistent.

  • Jar modularization metadata

    • Added Automatic-Module-Name to published artifacts:
      • morphia-coredev.morphia.core
      • morphia-kotlindev.morphia.kotlin
  • Build config consistency

    • Moved maven-jar-plugin version management to parent pom.xml (pluginManagement) to prevent per-module version drift.
    • Kept module-specific manifest entries in each module POM.
  • Focused guardrail test

    • Added ModuleMetadataTest to assert both module POMs keep the expected maven-jar-plugin manifest configuration, so future edits don’t silently drop/rename module names.
<manifestEntries>
  <Automatic-Module-Name>dev.morphia.core</Automatic-Module-Name>
</manifestEntries>

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • central.sonatype.com
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -Dtest=MorphiaVersionTest test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
  • docs.oracle.com
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl kotlin -am -DskipTests package (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl kotlin -am -DskipTests package in/dist/gh-gpgsign/gh-gpgsign-liAutomatic-Module-Name|module-info|JPMS|java\.lang\.module (dns block)
  • kotlinlang.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl kotlin -am -DskipTests package (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl kotlin -am -DskipTests package in/dist/gh-gpgsign/gh-gpgsign-liAutomatic-Module-Name|module-info|JPMS|java\.lang\.module (dns block)
  • repo.eclipse.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=ModuleMetadataTest,MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
  • repository.apache.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=ModuleMetadataTest,MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
  • repository.jboss.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=ModuleMetadataTest,MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
  • repository.ow2.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/bin/m2.conf -Dmaven.home=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591 -Dmaven.mainClass=org.apache.maven.cling.MavenCling -Dlibrary.jline.path=/home/REDACTED/.m2/wrapper/dists/apache-maven-4.0.0-rc-5/1d86e591/lib/jline-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/morphia/morphia org.codehaus.plexus.classworlds.launcher.Launcher -pl core -am -Dtest=ModuleMetadataTest,MorphiaVersionTest -Dsurefire.failIfNoSpecifiedTests=false test (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI linked an issue May 18, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Modularize the Jar for version 3.0 Add stable JPMS module names to Morphia core/kotlin artifacts May 19, 2026
Copilot AI requested a review from evanchooly May 19, 2026 00:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Modularize the Jar

2 participants