88import consulo .component .extension .preview .ExtensionPreview ;
99import consulo .component .extension .preview .ExtensionPreviewRecorder ;
1010import consulo .component .internal .ComponentBinding ;
11- import consulo .component .internal .inject .InjectingBindingLoader ;
12- import consulo .component .internal .inject .TopicBindingLoader ;
11+ import consulo .component .internal .inject .*;
1312import consulo .disposer .AutoDisposable ;
1413import consulo .hub .pluginAnalyzer .logger .SilentLoggerFactory ;
1514import 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