Skip to content

refactor: consolidate multi-module Maven project into single module#139

Open
rpoet-jh wants to merge 4 commits into
mainfrom
rdp-single-module
Open

refactor: consolidate multi-module Maven project into single module#139
rpoet-jh wants to merge 4 commits into
mainfrom
rdp-single-module

Conversation

@rpoet-jh
Copy link
Copy Markdown
Contributor

@rpoet-jh rpoet-jh commented Apr 21, 2026

Merge all 9 sub-modules (pass-core-object-service, pass-core-doi-service, pass-core-file-service, pass-core-user-service, pass-core-policy-service, pass-core-usertoken, pass-core-test-config, pass-core-main, jacoco-aggregate-report-pass-core) into a single Maven module rooted at the repository root.

  • Replace parent POM (packaging=pom) with single-module POM (packaging=jar)
  • Consolidate all dependencies and plugins into root pom.xml
  • Move all Java sources into src/main/java and src/test/java
  • Move all resources into src/main/resources and src/test/resources
  • Move Dockerfile, entrypoint.sh, init_postgres.sh to repo root
  • Update Dockerfile COPY instruction for new JAR artifact name
  • Replace aggregate JaCoCo module with single-module coverage report
  • Update sonar.coverage.jacoco.xmlReportPaths for single-module layout
  • Add Shibboleth repository to root POM
  • Add maven-failsafe-plugin for integration test execution

All 179 unit tests pass. Build produces target/pass-core-2.6.0-SNAPSHOT-exec.jar. File content integrity verified via MD5 checksums (183/183 files match).

AI Disclosure: Kiro IDE 0.11.133 with Claude Sonnet 4.6 was used in Spec Mode to make the changes in this PR. Most of the changes are just git renames. I have reviewed the POM consolidation to ensure it contains the needed elements from the multi-module POMs. I have also tested locally using pass-docker.

Important Notes:

  • Used Kiro to create StorageFileTest.java to bump the test coverage for SQ. One thing to verify is this method testEquals_uuidNotConsideredInEquality, should uuid be included in equals?

  • In pass-support, we will have to update the POMs to use the pass-core-test-config jar file like this:

<dependency>
  <groupId>org.eclipse.pass</groupId>
  <artifactId>pass-core</artifactId>
  <version>2.6.0-SNAPSHOT</version>
  <classifier>test-config</classifier>
  <scope>test</scope>
</dependency>

Merge all 9 sub-modules (pass-core-object-service, pass-core-doi-service,
pass-core-file-service, pass-core-user-service, pass-core-policy-service,
pass-core-usertoken, pass-core-test-config, pass-core-main,
jacoco-aggregate-report-pass-core) into a single Maven module rooted at
the repository root.

- Replace parent POM (packaging=pom) with single-module POM (packaging=jar)
- Consolidate all dependencies and plugins into root pom.xml
- Move all Java sources into src/main/java and src/test/java
- Move all resources into src/main/resources and src/test/resources
- Move Dockerfile, entrypoint.sh, init_postgres.sh to repo root
- Update Dockerfile COPY instruction for new JAR artifact name
- Replace aggregate JaCoCo module with single-module coverage report
- Update sonar.coverage.jacoco.xmlReportPaths for single-module layout
- Add Shibboleth repository to root POM
- Add maven-failsafe-plugin for integration test execution

All 179 unit tests pass. Build produces target/pass-core-2.6.0-SNAPSHOT-exec.jar.
File content integrity verified via MD5 checksums (183/183 files match).
@rpoet-jh rpoet-jh self-assigned this Apr 21, 2026
Add maven-jar-plugin execution to produce a test-config classified jar
(pass-core-2.6.0-SNAPSHOT-test-config.jar) containing the same resources
as the former pass-core-test-config module: application-test.yml and
saml2/ directory. Consumers should update their dependency to use
classifier=test-config on the pass-core artifact.
@rpoet-jh rpoet-jh requested a review from markpatton April 21, 2026 19:29
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@markpatton markpatton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did some local testing and it is running well. This is a nice simplification.
I also looked through the github actions and I don't see anything that should cause a problem. I think the existing release actions will just work.

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.

Consolidate pass-core maven modules into single module

2 participants