From 6c5ab5cbfdddf331eeb771f24684e20d03caf6ed Mon Sep 17 00:00:00 2001 From: Edward Mezarina Date: Tue, 7 Jul 2026 09:13:49 -0400 Subject: [PATCH 1/2] Discover peer modules --- .../tools/eclipse/model/ProjectModel.java | 6 +----- .../tools/eclipse/model/WorkspaceModel.java | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/ProjectModel.java b/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/ProjectModel.java index 2fd2a8fe..08691498 100644 --- a/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/ProjectModel.java +++ b/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/ProjectModel.java @@ -452,11 +452,7 @@ public boolean hasNature(String nature) throws CoreException { * @param peerProjects The raw list of peer projects. */ public void setPeerDirProjects(List peerProjects) { - for (ProjectModel project : peerProjects) { - if (!getName().equals(project.getName())) { - this.peerDirProjects.add(project); - } - } + this.peerDirProjects.addAll(peerProjects); } /** diff --git a/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/WorkspaceModel.java b/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/WorkspaceModel.java index f90c35b0..b11df1a3 100644 --- a/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/WorkspaceModel.java +++ b/bundles/io.openliberty.tools.eclipse.ui/src/io/openliberty/tools/eclipse/model/WorkspaceModel.java @@ -180,7 +180,17 @@ private void buildMultiProjectModel(List projectsToScan, boolean class } } - // Step 3: Extract project/module dependencies. + // Step 3: Set peer projects for each child within the same parent. + for (ProjectModel projectModel : projectsByLocation.values()) { + List children = projectModel.getChildProjects(); + if (!children.isEmpty()) { + for (ProjectModel child : children) { + child.setPeerDirProjects(children); + } + } + } + + // Step 4: Extract project/module dependencies. for (IProject iProject : projectsToScan) { if (iProject.isOpen()) { String projectLocation = iProject.getLocation().toOSString(); @@ -204,7 +214,7 @@ private void buildMultiProjectModel(List projectsToScan, boolean class } } - // Step 4: Now that we have established parent and child relationships, classify with Liberty nature. + // Step 5: Now that we have established parent and child relationships, classify with Liberty nature. if (classify) { for (IProject iProject : projectsToScan) { if (iProject.isOpen()) { @@ -215,7 +225,7 @@ private void buildMultiProjectModel(List projectsToScan, boolean class } } - // Step 5: Identify root projects (no parent or parent not in workspace). + // Step 6: Identify root projects (no parent or parent not in workspace). rootProjects.clear(); for (ProjectModel projectModel : projectsByLocation.values()) { if (projectModel.getParentProjectModel() == null) { @@ -231,7 +241,7 @@ private void buildMultiProjectModel(List projectsToScan, boolean class } } - // Step 6. Sort root projects alphabetically. Maven projects are shown first and Gradle projects second. + // Step 7. Sort root projects alphabetically. Maven projects are shown first and Gradle projects second. rootProjects.sort((p1, p2) -> { if (p1.getBuildType() != p2.getBuildType()) { return p1.getBuildType() == BuildType.Maven ? -1 : 1; From a81a02351661aae15eef77c2539be4ae98cad03e Mon Sep 17 00:00:00 2001 From: Edward Mezarina Date: Tue, 7 Jul 2026 09:14:15 -0400 Subject: [PATCH 2/2] Re-enable associated test --- .../eclipse/test/it/LibertyPluginSWTBotMultiModMavenTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/src/main/java/io/openliberty/tools/eclipse/test/it/LibertyPluginSWTBotMultiModMavenTest.java b/tests/src/main/java/io/openliberty/tools/eclipse/test/it/LibertyPluginSWTBotMultiModMavenTest.java index 21c86bc4..062dd54e 100644 --- a/tests/src/main/java/io/openliberty/tools/eclipse/test/it/LibertyPluginSWTBotMultiModMavenTest.java +++ b/tests/src/main/java/io/openliberty/tools/eclipse/test/it/LibertyPluginSWTBotMultiModMavenTest.java @@ -45,7 +45,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.MethodOrderer.MethodName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; @@ -292,7 +291,6 @@ public void testStartWithDefaultRunAsConfig() { /** * Tests that the correct dependency projects are added to the debug source lookup list */ - @Disabled("Until peer project discovery is implemented.") @Test public void testDebugSourceLookupContentSiblingModule() {