forax / pro

A Java build tool that works seamlessly with modules
GNU General Public License v3.0
103 stars 15 forks source link

Impossible de bootstrap Pro #1

Closed chmuche closed 7 years ago

chmuche commented 7 years ago

Hello,

I tried to use Pro for fun But when I execute this line

$javac --module-source-path src/main/java \
       -d bootstrap/modules/ \
       --module-path deps \
       $(find src/main/java/ -name "*.java")

I have got a lot errors :smile:

src/main/java/com.github.forax.pro.ubermain/com/github/forax/pro/ubermain/Main.java:15: error: cannot find symbol
import java.lang.module.ModuleDescriptor.Modifier;
                                        ^
  symbol:   class Modifier
  location: class ModuleDescriptor
src/main/java/com.github.forax.pro.helper/com/github/forax/pro/helper/ModuleHelper.java:14: error: cannot find symbol
import java.lang.module.ModuleDescriptor.Modifier;
                                        ^
  symbol:   class Modifier
  location: class ModuleDescriptor
src/main/java/com.github.forax.pro.plugin.modulefixer/com/github/forax/pro/plugin/modulefixer/ModuleFixerPlugin.java:10: error: cannot find symbol
import java.lang.module.ModuleDescriptor.Modifier;
                                        ^
  symbol:   class Modifier
  location: class ModuleDescriptor
src/main/java/com.github.forax.pro.ubermain/com/github/forax/pro/ubermain/Main.java:99: error: cannot find symbol
          Set<Modifier> modifiers = descriptor.isOpen()? Set.of(Modifier.OPEN):
              ^
  symbol: class Modifier
src/main/java/com.github.forax.pro.ubermain/com/github/forax/pro/ubermain/Main.java:99: error: cannot find symbol
          Set<Modifier> modifiers = descriptor.isOpen()? Set.of(Modifier.OPEN):
                                                                ^
  symbol: variable Modifier
src/main/java/com.github.forax.pro.ubermain/com/github/forax/pro/ubermain/Main.java:100: error: cannot find symbol
            descriptor.isAutomatic()? Set.of(Modifier.AUTOMATIC): Set.of();
                                             ^
  symbol: variable Modifier
src/main/java/com.github.forax.pro.ubermain/com/github/forax/pro/ubermain/Main.java:116: error: cannot find symbol
          builder.packages(packages);
                 ^
  symbol:   method packages(HashSet<String>)
  location: variable builder of type Builder
src/main/java/com.github.forax.pro.ubermain/com/github/forax/pro/ubermain/Main.java:130: error: cannot find symbol
    Configuration cf = parent.configuration().resolveAndBind(patchedFinder, ModuleFinder.of(), List.of("com.github.forax.pro.uberbooter", mainModule));
                                             ^
  symbol:   method resolveAndBind(ModuleFinder,ModuleFinder,List<String>)
  location: class Configuration
src/main/java/com.github.forax.pro.helper/com/github/forax/pro/helper/ModuleHelper.java:139: error: cannot find symbol
    Set<Modifier> modifiers = (moduleNode.access & ACC_OPEN) != 0? Set.of(Modifier.OPEN): Set.of();
        ^
  symbol:   class Modifier
  location: class ModuleHelper
src/main/java/com.github.forax.pro.helper/com/github/forax/pro/helper/ModuleHelper.java:139: error: cannot find symbol
    Set<Modifier> modifiers = (moduleNode.access & ACC_OPEN) != 0? Set.of(Modifier.OPEN): Set.of();
                                                                          ^
  symbol:   variable Modifier
  location: class ModuleHelper
src/main/java/com.github.forax.pro.helper/com/github/forax/pro/helper/ModuleHelper.java:164: error: cannot find symbol
    builder.packages(javaPackages);
           ^
  symbol:   method packages(Set<String>)
  location: variable builder of type Builder
src/main/java/com.github.forax.pro.helper/com/github/forax/pro/helper/ModuleHelper.java:276: error: cannot find symbol
    Set<Modifier> moduleModifiers = open? Set.of(Modifier.OPEN): Set.of();
        ^
  symbol:   class Modifier
  location: class ModuleHelper
src/main/java/com.github.forax.pro.helper/com/github/forax/pro/helper/ModuleHelper.java:276: error: cannot find symbol
    Set<Modifier> moduleModifiers = open? Set.of(Modifier.OPEN): Set.of();
                                                 ^
  symbol:   variable Modifier
  location: class ModuleHelper
src/main/java/com.github.forax.pro.helper/com/github/forax/pro/helper/ModuleHelper.java:301: error: cannot find symbol
    builder.packages(packages.keySet());
           ^
  symbol:   method packages(Set<String>)
  location: variable builder of type Builder
src/main/java/com.github.forax.pro.plugin.modulefixer/com/github/forax/pro/plugin/modulefixer/ModuleFixerPlugin.java:210: error: cannot find symbol
    ModuleDescriptor.Builder builder = ModuleDescriptor.newModule(moduleName, Set.of(Modifier.OPEN));
                                                                                     ^
  symbol:   variable Modifier
  location: class ModuleFixerPlugin
15 errors
Error occurred during initialization of VM
java.lang.module.ResolutionException: Module com.github.forax.pro.bootstrap not found
        at java.lang.module.Resolver.fail(java.base@9-ea/Resolver.java:850)
        at java.lang.module.Resolver.resolveRequires(java.base@9-ea/Resolver.java:103)
        at java.lang.module.Configuration.resolveRequiresAndUses(java.base@9-ea/Configuration.java:311)
        at java.lang.module.ModuleDescriptor$1.resolveRequiresAndUses(java.base@9-ea/ModuleDescriptor.java:2522)
        at jdk.internal.module.ModuleBootstrap.boot(java.base@9-ea/ModuleBootstrap.java:278)
        at java.lang.System.initPhase2(java.base@9-ea/System.java:1928)

the output of -> $java --version inside your script

/usr/jdk/jdk-9
openjdk 9-ea
OpenJDK Runtime Environment (build 9-ea+154)
OpenJDK 64-Bit Server VM (build 9-ea+154, mixed mode)

Thanks for your future answer

forax commented 7 years ago

The API of the JDK9 has changed between the b154 and a more recent version. It should work with a more recent version of the jdk9 (at least b157). The current version is b159, you should test with that version. https://jdk9.java.net/download/ and report a new issue if it doesn't work with the latest version of the JDK9.

chmuche commented 7 years ago

ok thanks for the quick answer