diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java b/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java index dadeecf26..dea3514f8 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/DaemonConnector.java @@ -255,7 +255,6 @@ private String startDaemon() { if (timeout != null) { args.add(Environment.DAEMON_IDLE_TIMEOUT.asCommandLineProperty(timeout)); } - args.add("\"-Dmaven.multiModuleProjectDirectory=" + layout.multiModuleProjectDirectory().toString() + "\""); args.add(ServerMain.class.getName()); command = String.join(" ", args); diff --git a/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java b/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java index df4eacbc8..bcdf36647 100644 --- a/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java +++ b/client/src/main/java/org/jboss/fuse/mvnd/client/Environment.java @@ -116,22 +116,25 @@ public static EnvValue findBasicMavenHome() { public static Path findMultiModuleProjectDirectory(Path pwd) { return MAVEN_MULTIMODULE_PROJECT_DIRECTORY .systemProperty() - .orDefault(() -> { - Path dir = pwd; - do { - if (Files.isDirectory(dir.resolve(".mvn"))) { - return dir.toString(); - } - dir = dir.getParent(); - } while (dir != null); - throw new IllegalStateException("Could not detect maven.multiModuleProjectDirectory by climbing up from [" - + pwd - + "] seeking a .mvn directory. You may want to create a .mvn directory in the root directory of your source tree."); - }) + .orDefault(() -> findDefaultMultimoduleProjectDirectory(pwd)) .asPath() .toAbsolutePath().normalize(); } + public static String findDefaultMultimoduleProjectDirectory(Path pwd) { + Path dir = pwd; + do { + if (Files.isDirectory(dir.resolve(".mvn"))) { + return dir.toString(); + } + dir = dir.getParent(); + } while (dir != null); + /* Return pwd if .mvn directory was not found in the hierarchy. + * Maven does the same thing in mvn shell script's find_maven_basedir() + * and find_file_argument_basedir() routines */ + return pwd.toString(); + } + public static Path findLogbackConfigurationPath(Supplier mvndProperties, Path mvndPropertiesPath, Path mvndHome) { return LOGBACK_CONFIGURATION_FILE diff --git a/daemon/src/main/java/org/jboss/fuse/mvnd/plugin/CliPluginRealmCache.java b/daemon/src/main/java/org/jboss/fuse/mvnd/plugin/CliPluginRealmCache.java index 386f8c3f3..191504a5f 100644 --- a/daemon/src/main/java/org/jboss/fuse/mvnd/plugin/CliPluginRealmCache.java +++ b/daemon/src/main/java/org/jboss/fuse/mvnd/plugin/CliPluginRealmCache.java @@ -20,7 +20,6 @@ import java.io.File; import java.io.IOException; -import java.net.URISyntaxException; import java.net.URL; import java.nio.file.FileSystems; import java.nio.file.Files; diff --git a/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionNativeIT.java b/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionNativeIT.java index 4d0de95c9..c057bc5ee 100644 --- a/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionNativeIT.java +++ b/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionNativeIT.java @@ -28,7 +28,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -@MvndNativeTest(projectDir = "src/test/projects/single-module") +@MvndNativeTest(projectDir = MvndTestExtension.TEMP_EXTERNAL) public class VersionNativeIT { @Inject diff --git a/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionTest.java b/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionTest.java index cf392a2a5..40b48acf4 100644 --- a/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionTest.java +++ b/integration-tests/src/test/java/org/jboss/fuse/mvnd/it/VersionTest.java @@ -18,7 +18,7 @@ import org.jboss.fuse.mvnd.junit.MvndTest; import org.jboss.fuse.mvnd.junit.MvndTestExtension; -@MvndTest(projectDir = "src/test/projects/single-module") +@MvndTest(projectDir = MvndTestExtension.TEMP_EXTERNAL) public class VersionTest extends VersionNativeIT { } diff --git a/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/MvndTestExtension.java b/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/MvndTestExtension.java index 92010ffa2..c29f7663d 100644 --- a/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/MvndTestExtension.java +++ b/integration-tests/src/test/java/org/jboss/fuse/mvnd/junit/MvndTestExtension.java @@ -30,6 +30,7 @@ import org.jboss.fuse.mvnd.client.DaemonInfo; import org.jboss.fuse.mvnd.client.DaemonRegistry; import org.jboss.fuse.mvnd.client.DefaultClient; +import org.jboss.fuse.mvnd.client.Environment; import org.jboss.fuse.mvnd.client.Layout; import org.jboss.fuse.mvnd.jpm.ProcessImpl; import org.junit.jupiter.api.extension.AfterAllCallback; @@ -167,6 +168,8 @@ public static MvndResource create(String className, String rawProjectDir, boolea }); } } + final Path multiModuleProjectDirectory = Paths + .get(Environment.findDefaultMultimoduleProjectDirectory(testExecutionDir)); final Path mvndHome = Paths .get(Objects.requireNonNull(System.getProperty("mvnd.home"), "System property mvnd.home must be set")) @@ -183,7 +186,7 @@ public static MvndResource create(String className, String rawProjectDir, boolea mvndPropertiesPath, mvndHome, testExecutionDir, - testExecutionDir, + multiModuleProjectDirectory, Paths.get(System.getProperty("java.home")).toAbsolutePath().normalize(), localMavenRepository, settingsPath, mvndHome.resolve("conf/logging/logback.xml"));