Skip to content

Commit be47a3f

Browse files
committed
support 'requires static' and 'requires transitive'
1 parent 27452f1 commit be47a3f

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ Maven:
3737
<dependency>
3838
<groupId>org.glavo</groupId>
3939
<artifactId>module-info-compiler</artifactId>
40-
<version>1.3</version>
40+
<version>1.5</version>
4141
</dependency>
4242
```
4343

4444
Gradle:
4545

4646
```kotlin
47-
implementation("org.glavo:module-info-compiler:1.3")
47+
implementation("org.glavo:module-info-compiler:1.5")
4848
```
4949

5050
### Gradle Task (`CompileModuleInfo`)
@@ -58,7 +58,7 @@ buildscript {
5858
}
5959

6060
dependencies {
61-
classpath("org.glavo:module-info-compiler:1.3")
61+
classpath("org.glavo:module-info-compiler:1.5")
6262
}
6363
}
6464
```

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ allprojects {
1717
}
1818

1919
group = "org.glavo"
20-
version = "1.4"// + "-SNAPSHOT"
20+
version = "1.5"// + "-SNAPSHOT"
2121

2222
repositories {
2323
mavenCentral()

src/main/java/org/glavo/mic/ModuleInfoCompiler.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.github.javaparser.ParseProblemException;
44
import com.github.javaparser.StaticJavaParser;
55
import com.github.javaparser.ast.CompilationUnit;
6+
import com.github.javaparser.ast.Modifier;
67
import com.github.javaparser.ast.NodeList;
78
import com.github.javaparser.ast.expr.Name;
89
import com.github.javaparser.ast.modules.*;
@@ -102,7 +103,16 @@ public void compile(Reader source, OutputStream target) throws IOException {
102103
} else if (directive.isModuleRequiresDirective()) {
103104
ModuleRequiresDirective requires = directive.asModuleRequiresDirective();
104105
if (!requires.getNameAsString().equals("java.base")) {
105-
moduleVisitor.visitRequire(requires.getNameAsString(), 0, null);
106+
int access = 0;
107+
for (Modifier modifier : requires.getModifiers()) {
108+
if (modifier.getKeyword() == Modifier.Keyword.STATIC) {
109+
access |= Opcodes.ACC_STATIC_PHASE;
110+
} else if (modifier.getKeyword() == Modifier.Keyword.TRANSITIVE) {
111+
access |= Opcodes.ACC_TRANSITIVE;
112+
}
113+
}
114+
115+
moduleVisitor.visitRequire(requires.getNameAsString(), access, null);
106116
}
107117
} else if (directive.isModuleUsesDirective()) {
108118
ModuleUsesDirective uses = directive.asModuleUsesDirective();

0 commit comments

Comments
 (0)