langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/api/BasicJavacTask.java
equal
deleted
inserted
replaced
27 |
27 |
28 import java.util.Collection; |
28 import java.util.Collection; |
29 import java.util.LinkedHashSet; |
29 import java.util.LinkedHashSet; |
30 import java.util.Locale; |
30 import java.util.Locale; |
31 import java.util.Set; |
31 import java.util.Set; |
|
32 import java.util.stream.Collectors; |
32 |
33 |
33 import javax.annotation.processing.Processor; |
34 import javax.annotation.processing.Processor; |
34 import javax.lang.model.element.Element; |
35 import javax.lang.model.element.Element; |
35 import javax.lang.model.type.TypeMirror; |
36 import javax.lang.model.type.TypeMirror; |
36 import javax.lang.model.util.Elements; |
37 import javax.lang.model.util.Elements; |
44 import com.sun.source.util.TaskListener; |
45 import com.sun.source.util.TaskListener; |
45 import com.sun.tools.doclint.DocLint; |
46 import com.sun.tools.doclint.DocLint; |
46 import com.sun.tools.javac.main.JavaCompiler; |
47 import com.sun.tools.javac.main.JavaCompiler; |
47 import com.sun.tools.javac.model.JavacElements; |
48 import com.sun.tools.javac.model.JavacElements; |
48 import com.sun.tools.javac.model.JavacTypes; |
49 import com.sun.tools.javac.model.JavacTypes; |
|
50 import com.sun.tools.javac.platform.PlatformDescription; |
|
51 import com.sun.tools.javac.platform.PlatformDescription.PluginInfo; |
49 import com.sun.tools.javac.processing.JavacProcessingEnvironment; |
52 import com.sun.tools.javac.processing.JavacProcessingEnvironment; |
50 import com.sun.tools.javac.tree.JCTree; |
53 import com.sun.tools.javac.tree.JCTree; |
51 import com.sun.tools.javac.util.Context; |
54 import com.sun.tools.javac.util.Context; |
52 import com.sun.tools.javac.util.DefinedBy; |
55 import com.sun.tools.javac.util.DefinedBy; |
53 import com.sun.tools.javac.util.DefinedBy.Api; |
56 import com.sun.tools.javac.util.DefinedBy.Api; |
169 public Context getContext() { |
172 public Context getContext() { |
170 return context; |
173 return context; |
171 } |
174 } |
172 |
175 |
173 public void initPlugins(Set<List<String>> pluginOpts) { |
176 public void initPlugins(Set<List<String>> pluginOpts) { |
|
177 PlatformDescription platformProvider = context.get(PlatformDescription.class); |
|
178 |
|
179 if (platformProvider != null) { |
|
180 for (PluginInfo<Plugin> pluginDesc : platformProvider.getPlugins()) { |
|
181 java.util.List<String> options = |
|
182 pluginDesc.getOptions().entrySet().stream() |
|
183 .map(e -> e.getKey() + "=" + e.getValue()) |
|
184 .collect(Collectors.toList()); |
|
185 try { |
|
186 pluginDesc.getPlugin().init(this, options.toArray(new String[options.size()])); |
|
187 } catch (RuntimeException ex) { |
|
188 throw new PropagatedException(ex); |
|
189 } |
|
190 } |
|
191 } |
|
192 |
174 if (pluginOpts.isEmpty()) |
193 if (pluginOpts.isEmpty()) |
175 return; |
194 return; |
176 |
195 |
177 Set<List<String>> pluginsToCall = new LinkedHashSet<>(pluginOpts); |
196 Set<List<String>> pluginsToCall = new LinkedHashSet<>(pluginOpts); |
178 JavacProcessingEnvironment pEnv = JavacProcessingEnvironment.instance(context); |
197 JavacProcessingEnvironment pEnv = JavacProcessingEnvironment.instance(context); |