--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Fri Jan 20 09:26:49 2017 +0100
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Fri Jan 20 13:20:42 2017 +0100
@@ -41,6 +41,7 @@
import java.util.function.Predicate;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.lang.model.SourceVersion;
@@ -114,6 +115,7 @@
import static com.sun.tools.javac.code.Kinds.Kind.ERR;
import static com.sun.tools.javac.code.Kinds.Kind.MDL;
import static com.sun.tools.javac.code.Kinds.Kind.MTH;
+import com.sun.tools.javac.code.Symbol.ModuleResolutionFlags;
import static com.sun.tools.javac.code.TypeTag.CLASS;
/**
@@ -1090,6 +1092,10 @@
Predicate<ModuleSymbol> observablePred = sym ->
(observable == null) ? (moduleFinder.findModule(sym).kind != ERR) : observable.contains(sym);
Predicate<ModuleSymbol> systemModulePred = sym -> (sym.flags() & Flags.SYSTEM_MODULE) != 0;
+ Predicate<ModuleSymbol> noIncubatorPred = sym -> {
+ sym.complete();
+ return !sym.resolutionFlags.contains(ModuleResolutionFlags.DO_NOT_RESOLVE_BY_DEFAULT);
+ };
Set<ModuleSymbol> enabledRoot = new LinkedHashSet<>();
if (rootModules.contains(syms.unnamedModule)) {
@@ -1108,7 +1114,7 @@
}
for (ModuleSymbol sym : new HashSet<>(syms.getAllModules())) {
- if (systemModulePred.test(sym) && observablePred.test(sym) && jdkModulePred.test(sym)) {
+ if (systemModulePred.test(sym) && observablePred.test(sym) && jdkModulePred.test(sym) && noIncubatorPred.test(sym)) {
enabledRoot.add(sym);
}
}
@@ -1128,14 +1134,14 @@
Stream<ModuleSymbol> modules;
switch (added) {
case ALL_SYSTEM:
- modules = syms.getAllModules()
- .stream()
- .filter(systemModulePred.and(observablePred));
+ modules = new HashSet<>(syms.getAllModules())
+ .stream()
+ .filter(systemModulePred.and(observablePred).and(noIncubatorPred));
break;
case ALL_MODULE_PATH:
- modules = syms.getAllModules()
- .stream()
- .filter(systemModulePred.negate().and(observablePred));
+ modules = new HashSet<>(syms.getAllModules())
+ .stream()
+ .filter(systemModulePred.negate().and(observablePred));
break;
default:
if (!isValidName(added))
@@ -1155,6 +1161,15 @@
result.add(syms.unnamedModule);
+ String incubatingModules = result.stream()
+ .filter(msym -> msym.resolutionFlags.contains(ModuleResolutionFlags.WARN_INCUBATING))
+ .map(msym -> msym.name.toString())
+ .collect(Collectors.joining(","));
+
+ if (!incubatingModules.isEmpty()) {
+ log.warning(Warnings.IncubatingModules(incubatingModules));
+ }
+
allModules = result;
//add module versions from options, if any: