[2/3] maven-surefire git commit: [SUREFIRE-1262] Add modulepath support

2017-11-18 Thread tibordigana
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/f337881f/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
--
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
new file mode 100644
index 000..2b47c03
--- /dev/null
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
@@ -0,0 +1,230 @@
+package org.apache.maven.plugin.surefire.booterclient;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
+import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
+import org.apache.maven.surefire.booter.AbstractPathConfiguration;
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.ModularClasspath;
+import org.apache.maven.surefire.booter.ModularClasspathConfiguration;
+import org.apache.maven.surefire.booter.StartupConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ModuleVisitor;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import static java.io.File.createTempFile;
+import static java.io.File.pathSeparatorChar;
+import static 
org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath;
+import static org.objectweb.asm.Opcodes.ASM6;
+
+/**
+ * @author mailto:tibordig...@apache.org;>Tibor Digana (tibor17)
+ * @since 2.21.0.Jigsaw
+ */
+public class ModularClasspathForkConfiguration
+extends DefaultForkConfiguration
+{
+@SuppressWarnings( "checkstyle:parameternumber" )
+public ModularClasspathForkConfiguration( @Nonnull Classpath bootClasspath,
+  @Nonnull File tempDirectory,
+  @Nullable String debugLine,
+  @Nonnull File workingDirectory,
+  @Nonnull Properties 
modelProperties,
+  @Nullable String argLine,
+  @Nonnull Map 
environmentVariables,
+  boolean debug,
+  int forkCount,
+  boolean reuseForks,
+  @Nonnull Platform pluginPlatform,
+  @Nonnull ConsoleLogger log )
+{
+super( bootClasspath, tempDirectory, debugLine, workingDirectory, 
modelProperties, argLine,
+environmentVariables, debug, forkCount, reuseForks, 
pluginPlatform, log );
+}
+
+@Override
+protected void resolveClasspath( OutputStreamFlushableCommandline cli, 
String startClass,
+ StartupConfiguration config )
+throws SurefireBooterForkException
+{
+try
+{
+AbstractPathConfiguration pathConfig = 
config.getClasspathConfiguration();
+
+ModularClasspathConfiguration modularClasspathConfiguration =
+pathConfig.toRealPath( ModularClasspathConfiguration.class 
);
+
+ModularClasspath modularClasspath = 
modularClasspathConfiguration.getModularClasspath();
+
+File descriptor = modularClasspath.getModuleDescriptor();
+List modulePath = modularClasspath.getModulePath();
+   

[2/3] maven-surefire git commit: [SUREFIRE-1262] Add modulepath support

2017-11-18 Thread tibordigana
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/17eb9a3b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
--
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
new file mode 100644
index 000..2b47c03
--- /dev/null
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
@@ -0,0 +1,230 @@
+package org.apache.maven.plugin.surefire.booterclient;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
+import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
+import org.apache.maven.surefire.booter.AbstractPathConfiguration;
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.ModularClasspath;
+import org.apache.maven.surefire.booter.ModularClasspathConfiguration;
+import org.apache.maven.surefire.booter.StartupConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ModuleVisitor;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import static java.io.File.createTempFile;
+import static java.io.File.pathSeparatorChar;
+import static 
org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath;
+import static org.objectweb.asm.Opcodes.ASM6;
+
+/**
+ * @author mailto:tibordig...@apache.org;>Tibor Digana (tibor17)
+ * @since 2.21.0.Jigsaw
+ */
+public class ModularClasspathForkConfiguration
+extends DefaultForkConfiguration
+{
+@SuppressWarnings( "checkstyle:parameternumber" )
+public ModularClasspathForkConfiguration( @Nonnull Classpath bootClasspath,
+  @Nonnull File tempDirectory,
+  @Nullable String debugLine,
+  @Nonnull File workingDirectory,
+  @Nonnull Properties 
modelProperties,
+  @Nullable String argLine,
+  @Nonnull Map 
environmentVariables,
+  boolean debug,
+  int forkCount,
+  boolean reuseForks,
+  @Nonnull Platform pluginPlatform,
+  @Nonnull ConsoleLogger log )
+{
+super( bootClasspath, tempDirectory, debugLine, workingDirectory, 
modelProperties, argLine,
+environmentVariables, debug, forkCount, reuseForks, 
pluginPlatform, log );
+}
+
+@Override
+protected void resolveClasspath( OutputStreamFlushableCommandline cli, 
String startClass,
+ StartupConfiguration config )
+throws SurefireBooterForkException
+{
+try
+{
+AbstractPathConfiguration pathConfig = 
config.getClasspathConfiguration();
+
+ModularClasspathConfiguration modularClasspathConfiguration =
+pathConfig.toRealPath( ModularClasspathConfiguration.class 
);
+
+ModularClasspath modularClasspath = 
modularClasspathConfiguration.getModularClasspath();
+
+File descriptor = modularClasspath.getModuleDescriptor();
+List modulePath = modularClasspath.getModulePath();
+   

[2/3] maven-surefire git commit: [SUREFIRE-1262] Add modulepath support

2017-11-17 Thread tibordigana
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/b436a15e/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
--
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
new file mode 100644
index 000..2b47c03
--- /dev/null
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
@@ -0,0 +1,230 @@
+package org.apache.maven.plugin.surefire.booterclient;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
+import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
+import org.apache.maven.surefire.booter.AbstractPathConfiguration;
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.ModularClasspath;
+import org.apache.maven.surefire.booter.ModularClasspathConfiguration;
+import org.apache.maven.surefire.booter.StartupConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ModuleVisitor;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import static java.io.File.createTempFile;
+import static java.io.File.pathSeparatorChar;
+import static 
org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath;
+import static org.objectweb.asm.Opcodes.ASM6;
+
+/**
+ * @author mailto:tibordig...@apache.org;>Tibor Digana (tibor17)
+ * @since 2.21.0.Jigsaw
+ */
+public class ModularClasspathForkConfiguration
+extends DefaultForkConfiguration
+{
+@SuppressWarnings( "checkstyle:parameternumber" )
+public ModularClasspathForkConfiguration( @Nonnull Classpath bootClasspath,
+  @Nonnull File tempDirectory,
+  @Nullable String debugLine,
+  @Nonnull File workingDirectory,
+  @Nonnull Properties 
modelProperties,
+  @Nullable String argLine,
+  @Nonnull Map 
environmentVariables,
+  boolean debug,
+  int forkCount,
+  boolean reuseForks,
+  @Nonnull Platform pluginPlatform,
+  @Nonnull ConsoleLogger log )
+{
+super( bootClasspath, tempDirectory, debugLine, workingDirectory, 
modelProperties, argLine,
+environmentVariables, debug, forkCount, reuseForks, 
pluginPlatform, log );
+}
+
+@Override
+protected void resolveClasspath( OutputStreamFlushableCommandline cli, 
String startClass,
+ StartupConfiguration config )
+throws SurefireBooterForkException
+{
+try
+{
+AbstractPathConfiguration pathConfig = 
config.getClasspathConfiguration();
+
+ModularClasspathConfiguration modularClasspathConfiguration =
+pathConfig.toRealPath( ModularClasspathConfiguration.class 
);
+
+ModularClasspath modularClasspath = 
modularClasspathConfiguration.getModularClasspath();
+
+File descriptor = modularClasspath.getModuleDescriptor();
+List modulePath = modularClasspath.getModulePath();
+   

[2/3] maven-surefire git commit: [SUREFIRE-1262] Add modulepath support

2017-11-17 Thread tibordigana
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/0e41142b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
--
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
new file mode 100644
index 000..2b47c03
--- /dev/null
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
@@ -0,0 +1,230 @@
+package org.apache.maven.plugin.surefire.booterclient;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
+import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
+import org.apache.maven.surefire.booter.AbstractPathConfiguration;
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.ModularClasspath;
+import org.apache.maven.surefire.booter.ModularClasspathConfiguration;
+import org.apache.maven.surefire.booter.StartupConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ModuleVisitor;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import static java.io.File.createTempFile;
+import static java.io.File.pathSeparatorChar;
+import static 
org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath;
+import static org.objectweb.asm.Opcodes.ASM6;
+
+/**
+ * @author mailto:tibordig...@apache.org;>Tibor Digana (tibor17)
+ * @since 2.21.0.Jigsaw
+ */
+public class ModularClasspathForkConfiguration
+extends DefaultForkConfiguration
+{
+@SuppressWarnings( "checkstyle:parameternumber" )
+public ModularClasspathForkConfiguration( @Nonnull Classpath bootClasspath,
+  @Nonnull File tempDirectory,
+  @Nullable String debugLine,
+  @Nonnull File workingDirectory,
+  @Nonnull Properties 
modelProperties,
+  @Nullable String argLine,
+  @Nonnull Map 
environmentVariables,
+  boolean debug,
+  int forkCount,
+  boolean reuseForks,
+  @Nonnull Platform pluginPlatform,
+  @Nonnull ConsoleLogger log )
+{
+super( bootClasspath, tempDirectory, debugLine, workingDirectory, 
modelProperties, argLine,
+environmentVariables, debug, forkCount, reuseForks, 
pluginPlatform, log );
+}
+
+@Override
+protected void resolveClasspath( OutputStreamFlushableCommandline cli, 
String startClass,
+ StartupConfiguration config )
+throws SurefireBooterForkException
+{
+try
+{
+AbstractPathConfiguration pathConfig = 
config.getClasspathConfiguration();
+
+ModularClasspathConfiguration modularClasspathConfiguration =
+pathConfig.toRealPath( ModularClasspathConfiguration.class 
);
+
+ModularClasspath modularClasspath = 
modularClasspathConfiguration.getModularClasspath();
+
+File descriptor = modularClasspath.getModuleDescriptor();
+List modulePath = modularClasspath.getModulePath();
+   

[2/3] maven-surefire git commit: [SUREFIRE-1262] Add modulepath support

2017-11-16 Thread tibordigana
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/29621dd0/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
--
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
new file mode 100644
index 000..2b47c03
--- /dev/null
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
@@ -0,0 +1,230 @@
+package org.apache.maven.plugin.surefire.booterclient;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
+import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
+import org.apache.maven.surefire.booter.AbstractPathConfiguration;
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.ModularClasspath;
+import org.apache.maven.surefire.booter.ModularClasspathConfiguration;
+import org.apache.maven.surefire.booter.StartupConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ModuleVisitor;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import static java.io.File.createTempFile;
+import static java.io.File.pathSeparatorChar;
+import static 
org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath;
+import static org.objectweb.asm.Opcodes.ASM6;
+
+/**
+ * @author mailto:tibordig...@apache.org;>Tibor Digana (tibor17)
+ * @since 2.21.0.Jigsaw
+ */
+public class ModularClasspathForkConfiguration
+extends DefaultForkConfiguration
+{
+@SuppressWarnings( "checkstyle:parameternumber" )
+public ModularClasspathForkConfiguration( @Nonnull Classpath bootClasspath,
+  @Nonnull File tempDirectory,
+  @Nullable String debugLine,
+  @Nonnull File workingDirectory,
+  @Nonnull Properties 
modelProperties,
+  @Nullable String argLine,
+  @Nonnull Map 
environmentVariables,
+  boolean debug,
+  int forkCount,
+  boolean reuseForks,
+  @Nonnull Platform pluginPlatform,
+  @Nonnull ConsoleLogger log )
+{
+super( bootClasspath, tempDirectory, debugLine, workingDirectory, 
modelProperties, argLine,
+environmentVariables, debug, forkCount, reuseForks, 
pluginPlatform, log );
+}
+
+@Override
+protected void resolveClasspath( OutputStreamFlushableCommandline cli, 
String startClass,
+ StartupConfiguration config )
+throws SurefireBooterForkException
+{
+try
+{
+AbstractPathConfiguration pathConfig = 
config.getClasspathConfiguration();
+
+ModularClasspathConfiguration modularClasspathConfiguration =
+pathConfig.toRealPath( ModularClasspathConfiguration.class 
);
+
+ModularClasspath modularClasspath = 
modularClasspathConfiguration.getModularClasspath();
+
+File descriptor = modularClasspath.getModuleDescriptor();
+List modulePath = modularClasspath.getModulePath();
+   

[2/3] maven-surefire git commit: [SUREFIRE-1262] Add modulepath support

2017-11-16 Thread tibordigana
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/ec354cc7/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
--
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
new file mode 100644
index 000..2b47c03
--- /dev/null
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ModularClasspathForkConfiguration.java
@@ -0,0 +1,230 @@
+package org.apache.maven.plugin.surefire.booterclient;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
+import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
+import org.apache.maven.surefire.booter.AbstractPathConfiguration;
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.ModularClasspath;
+import org.apache.maven.surefire.booter.ModularClasspathConfiguration;
+import org.apache.maven.surefire.booter.StartupConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.ModuleVisitor;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import static java.io.File.createTempFile;
+import static java.io.File.pathSeparatorChar;
+import static 
org.apache.maven.plugin.surefire.SurefireHelper.escapeToPlatformPath;
+import static org.objectweb.asm.Opcodes.ASM6;
+
+/**
+ * @author mailto:tibordig...@apache.org;>Tibor Digana (tibor17)
+ * @since 2.21.0.Jigsaw
+ */
+public class ModularClasspathForkConfiguration
+extends DefaultForkConfiguration
+{
+@SuppressWarnings( "checkstyle:parameternumber" )
+public ModularClasspathForkConfiguration( @Nonnull Classpath bootClasspath,
+  @Nonnull File tempDirectory,
+  @Nullable String debugLine,
+  @Nonnull File workingDirectory,
+  @Nonnull Properties 
modelProperties,
+  @Nullable String argLine,
+  @Nonnull Map 
environmentVariables,
+  boolean debug,
+  int forkCount,
+  boolean reuseForks,
+  @Nonnull Platform pluginPlatform,
+  @Nonnull ConsoleLogger log )
+{
+super( bootClasspath, tempDirectory, debugLine, workingDirectory, 
modelProperties, argLine,
+environmentVariables, debug, forkCount, reuseForks, 
pluginPlatform, log );
+}
+
+@Override
+protected void resolveClasspath( OutputStreamFlushableCommandline cli, 
String startClass,
+ StartupConfiguration config )
+throws SurefireBooterForkException
+{
+try
+{
+AbstractPathConfiguration pathConfig = 
config.getClasspathConfiguration();
+
+ModularClasspathConfiguration modularClasspathConfiguration =
+pathConfig.toRealPath( ModularClasspathConfiguration.class 
);
+
+ModularClasspath modularClasspath = 
modularClasspathConfiguration.getModularClasspath();
+
+File descriptor = modularClasspath.getModuleDescriptor();
+List modulePath = modularClasspath.getModulePath();
+