Skip to content

Commit c0e2dee

Browse files
committed
fix inject collecting after platform change
1 parent 7e837a8 commit c0e2dee

1 file changed

Lines changed: 29 additions & 16 deletions

File tree

  • hub-plugin-analyzer-rt/src/main/java/consulo/hub/pluginAnalyzer

hub-plugin-analyzer-rt/src/main/java/consulo/hub/pluginAnalyzer/Analyzer.java

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
import consulo.component.extension.preview.ExtensionPreview;
99
import consulo.component.extension.preview.ExtensionPreviewRecorder;
1010
import consulo.component.internal.ComponentBinding;
11-
import consulo.component.internal.inject.InjectingBindingLoader;
12-
import consulo.component.internal.inject.TopicBindingLoader;
11+
import consulo.component.internal.inject.*;
1312
import consulo.disposer.AutoDisposable;
1413
import consulo.hub.pluginAnalyzer.logger.SilentLoggerFactory;
1514
import consulo.logging.internal.LoggerFactoryInitializer;
@@ -30,25 +29,39 @@ public static List<Map<String, String>> runAnalyzer(String targetPluginId) {
3029

3130
List<ExtensionPreview> previews = new ArrayList<>();
3231

33-
try (InjectingBindingLoader injectingBindingLoader = new InjectingBindingLoader()) {
34-
injectingBindingLoader.analyzeBindings();
32+
NewInjectingBindingCollector injectingBindingCollector = new NewInjectingBindingCollector();
33+
NewTopicBindingCollector topicBindingCollector = new NewTopicBindingCollector();
3534

36-
AnalyzerApplication application = new AnalyzerApplication(disposable, new ComponentBinding(injectingBindingLoader, new TopicBindingLoader()));
37-
ApplicationManager.setApplication(application, disposable);
35+
NewBindingLoader bindingLoader = new NewBindingLoader(injectingBindingCollector, topicBindingCollector);
3836

39-
ExtensionPoint<ExtensionPreviewRecorder> recorders = application.getExtensionPoint(ExtensionPreviewRecorder.class);
37+
List<Runnable> actions = new ArrayList<>();
4038

41-
recorders.forEachExtensionSafe(recorder -> recorder.analyze(it ->
42-
{
43-
ExtensionPreview extensionPreview = (ExtensionPreview) it;
39+
bindingLoader.init(actions);
4440

45-
if (!targetPluginId.equals(extensionPreview.implPluginId().getIdString())) {
46-
return;
47-
}
41+
actions.parallelStream().forEach(Runnable::run);
4842

49-
previews.add(extensionPreview);
50-
}));
51-
}
43+
InjectingBindingLoader injectingBindingLoader = new InjectingBindingLoader(
44+
injectingBindingCollector.getServices(),
45+
injectingBindingCollector.getExtensions(),
46+
injectingBindingCollector.getTopics(),
47+
injectingBindingCollector.getActions()
48+
);
49+
50+
TopicBindingLoader topicBindingLoader = new TopicBindingLoader(topicBindingCollector.getBindings());
51+
AnalyzerApplication application = new AnalyzerApplication(disposable, new ComponentBinding(injectingBindingLoader, topicBindingLoader));
52+
ApplicationManager.setApplication(application, disposable);
53+
54+
ExtensionPoint<ExtensionPreviewRecorder> recorders = application.getExtensionPoint(ExtensionPreviewRecorder.class);
55+
56+
recorders.forEachExtensionSafe(recorder -> recorder.analyze(it -> {
57+
ExtensionPreview extensionPreview = (ExtensionPreview) it;
58+
59+
if (!targetPluginId.equals(extensionPreview.implPluginId().getIdString())) {
60+
return;
61+
}
62+
63+
previews.add(extensionPreview);
64+
}));
5265

5366
if (previews.isEmpty()) {
5467
return List.of();

0 commit comments

Comments
 (0)