8000 Frontend task output internals refactoring · sakerbuild/saker.java.compiler@dc4e15f · GitHub
[go: up one dir, main page]

Skip to content

Commit dc4e15f

Browse files
committed
Frontend task output internals refactoring
1 parent fb610e3 commit dc4e15f

File tree

5 files changed

+155
-59
lines changed

5 files changed

+155
-59
lines changed

api/resources/META-INF/nest/dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ saker.java.compiler-impl
44
saker.standard-api
55
classpath: [0)
66
saker.sdk.support-api
7-
classpath: [0)
7+
classpath: [0.8.2)

impl/src/main/saker/java/compiler/impl/JavaTaskUtils.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,21 +98,21 @@ public static boolean isModuleInfoSource(String filename) {
9898
//TODO we might not need this at all, since dependency handles were introduced to TaskResultResolver
9999
public static TaskIdentifier createJavaCompilationConfigurationOutputTaskIdentifier(
100100
JavaCompilationWorkerTaskIdentifier workertaskid) {
101-
return new JavaCompilationOutputTaskIdentifier(workertaskid);
101+
return new JavaCompilationConfigurationOutputTaskIdentifier(workertaskid);
102102
}
103103

104-
private static class JavaCompilationOutputTaskIdentifier implements TaskIdentifier, Externalizable {
104+
private static class JavaCompilationConfigurationOutputTaskIdentifier implements TaskIdentifier, Externalizable {
105105
private static final long serialVersionUID = 1L;
106106

107107
private JavaCompilationWorkerTaskIdentifier workerTaskId;
108108

109109
/**
110110
* For {@link Externalizable}.
111111
*/
112-
public JavaCompilationOutputTaskIdentifier() {
112+
public JavaCompilationConfigurationOutputTaskIdentifier() {
113113
}
114114

115-
public JavaCompilationOutputTaskIdentifier(JavaCompilationWorkerTaskIdentifier workerTaskId) {
115+
public JavaCompilationConfigurationOutputTaskIdentifier(JavaCompilationWorkerTaskIdentifier workerTaskId) {
116116
this.workerTaskId = workerTaskId;
117117
}
118118

@@ -142,7 +142,7 @@ public boolean equals(Object obj) {
142142
return false;
143143
if (getClass() != obj.getClass())
144144
return false;
145-
JavaCompilationOutputTaskIdentifier other = (JavaCompilationOutputTaskIdentifier) obj;
145+
JavaCompilationConfigurationOutputTaskIdentifier other = (JavaCompilationConfigurationOutputTaskIdentifier) obj;
146146
if (workerTaskId == null) {
147147
if (other.workerTaskId != null)
148148
return false;

impl/src/main/saker/java/compiler/impl/compile/FullWorkerJavaCompilerTaskFactory.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@
4141
import saker.java.compiler.impl.JavaTaskUtils;
4242
import saker.java.compiler.impl.compile.handler.full.FullCompilationHandler;
4343
import saker.java.compiler.impl.sdk.JavaSDKReference;
44+
import saker.sdk.support.api.IndeterminateSDKDescription;
45+
import saker.sdk.support.api.SDKDescription;
4446
import saker.sdk.support.api.SDKReference;
47+
import saker.sdk.support.api.exc.SDKNotFoundException;
4548
import testing.saker.java.compiler.TestFlag;
4649

4750
public class FullWorkerJavaCompilerTaskFactory extends WorkerJavaCompilerTaskFactoryBase {
@@ -100,7 +103,12 @@ private InternalJavaCompilerOutput compile(TaskContext taskcontext) throws IOExc
100103
NavigableMap<String, SDKReference> sdkrefs = toSDKReferences(taskcontext, sdks);
101104
SDKReference javasdkreference = sdkrefs.get(JavaSDKReference.DEFAULT_SDK_NAME);
102105
if (javasdkreference == null) {
103-
throw new IllegalArgumentException("No SDK found with name: " + JavaSDKReference.DEFAULT_SDK_NAME);
106+
throw new SDKNotFoundException("No SDK found with name: " + JavaSDKReference.DEFAULT_SDK_NAME);
107+
}
108+
109+
SDKDescription javasdkdesc = sdks.get(JavaSDKReference.DEFAULT_SDK_NAME);
110+
if (javasdkdesc instanceof IndeterminateSDKDescription) {
111+
javasdkdesc = ((IndeterminateSDKDescription) javasdkdesc).pinSDKDescription(javasdkreference);
104112
}
105113

106114
String modulename;
@@ -174,8 +182,7 @@ private InternalJavaCompilerOutput compile(TaskContext taskcontext) throws IOExc
174182

175183
SimpleJavaCompilationOutputConfiguration outputconfig = new SimpleJavaCompilationOutputConfiguration(taskid,
176184
outputClassDirectory.getSakerPath(), outputNativeHeaderDirectory.getSakerPath(),
177-
outputResourceDirectory.getSakerPath(), outputSourceDirectory.getSakerPath(), modulename,
178-
sdks.get(JavaSDKReference.DEFAULT_SDK_NAME));
185+
outputResourceDirectory.getSakerPath(), outputSourceDirectory.getSakerPath(), modulename, javasdkdesc);
179186
taskcontext.startTask(JavaTaskUtils.createJavaCompilationConfigurationOutputTaskIdentifier(taskid),
180187
new JavaCompilationConfigLiteralTaskFactory(outputconfig), null);
181188

impl/src/main/saker/java/compiler/impl/compile/IncrementalWorkerJavaCompilerTaskFactory.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,10 @@
6565
import saker.java.compiler.impl.options.SimpleAnnotationProcessorReferenceOption;
6666
import saker.java.compiler.impl.options.SimpleProcessorConfiguration;
6767
import saker.java.compiler.impl.sdk.JavaSDKReference;
68+
import saker.sdk.support.api.IndeterminateSDKDescription;
69+
import saker.sdk.support.api.SDKDescription;
6870
import saker.sdk.support.api.SDKReference;
71+
import saker.sdk.support.api.exc.SDKNotFoundException;
6972
import testing.saker.java.compiler.TestFlag;
7073

7174
public class IncrementalWorkerJavaCompilerTaskFactory extends WorkerJavaCompilerTaskFactoryBase {
@@ -134,8 +137,14 @@ private InternalJavaCompilerOutput compile(TaskContext taskcontext) throws IOExc
134137
NavigableMap<String, SDKReference> sdkrefs = toSDKReferences(taskcontext, sdks);
135138
SDKReference javasdkreference = sdkrefs.get(JavaSDKReference.DEFAULT_SDK_NAME);
136139
if (javasdkreference == null) {
137-
throw new IllegalArgumentException("No SDK found with name: " + JavaSDKReference.DEFAULT_SDK_NAME);
140+
throw new SDKNotFoundException("No SDK found with name: " + JavaSDKReference.DEFAULT_SDK_NAME);
138141
}
142+
143+
SDKDescription javasdkdesc = sdks.get(JavaSDKReference.DEFAULT_SDK_NAME);
144+
if (javasdkdesc instanceof IndeterminateSDKDescription) {
145+
javasdkdesc = ((IndeterminateSDKDescription) javasdkdesc).pinSDKDescription(javasdkreference);
146+
}
147+
139148
String modulename;
140149
try {
141150
if (sourceDirectories.isEmpty()) {
@@ -215,8 +224,7 @@ private InternalJavaCompilerOutput compile(TaskContext taskcontext) throws IOExc
215224

216225
SimpleJavaCompilationOutputConfiguration outputconfig = new SimpleJavaCompilationOutputConfiguration(taskid,
217226
outputClassDirectory.getSakerPath(), outputNativeHeaderDirectory.getSakerPath(),
218-
outputResourceDirectory.getSakerPath(), outputSourceDirectory.getSakerPath(), modulename,
219-
sdks.get(JavaSDKReference.DEFAULT_SDK_NAME));
227+
outputResourceDirectory.getSakerPath(), outputSourceDirectory.getSakerPath(), modulename, javasdkdesc);
220228

221229
InternalJavaCompilerOutputImpl output = new InternalJavaCompilerOutputImpl(sourceDirectories, classPath,
222230
modulePath, abiversionkey, implementationversionkey, outputconfig);

0 commit comments

Comments
 (0)
0