Skip to content

Commit 9d8f04b

Browse files
committed
Fixed Internal API usage
1 parent 72f0f9b commit 9d8f04b

File tree

7 files changed

+71
-12
lines changed

7 files changed

+71
-12
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
66

7-
## 2026.1.0
7+
## 2026.1.1
88

99
### Added
1010

@@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
1313
### Fixed
1414

1515
- java.lang.runtime exception java.util.concurrent.execution exception java.nio.file.invalid path exception [#2640](https://github.com/magento/magento2-phpstorm-plugin/pull/2640)
16+
- Internal API usages
1617

1718
## 2025.2.2
1819

gradle.properties

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
pluginGroup = com.magento.idea.magento2plugin
22
pluginName = Magento PhpStorm
33
pluginRepositoryUrl = https://github.com/magento/magento2-phpstorm-plugin
4-
pluginVersion = 2026.1.0
4+
pluginVersion = 2026.1.1
55
pluginSinceBuild = 261.21525.38
66
pluginUntilBuild = 268.*
77
platformType = PS
8-
platformVersion = 261.21525.38
9-
platformPlugins = com.intellij.lang.jsgraphql:261.21525.28
8+
platformVersion = 261.22158.208
9+
platformPlugins = com.intellij.lang.jsgraphql:261.22158.185
1010
platformBundledPlugins = com.intellij.modules.json,com.jetbrains.php,JavaScript,com.intellij.css,org.jetbrains.plugins.yaml,com.intellij.copyright
1111
gradleVersion = 9.3.1
1212
kotlin.stdlib.default.dependency = true
1313
org.gradle.configuration-cache = true
14-
org.gradle.caching = true
14+
org.gradle.caching = true

src/main/java/com/magento/idea/magento2plugin/generation/php/MagentoModuleGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.intellij.openapi.application.ApplicationManager;
1010
import com.intellij.openapi.module.Module;
1111
import com.intellij.openapi.project.Project;
12-
import com.intellij.openapi.startup.StartupManager;
1312
import com.intellij.openapi.vfs.VirtualFile;
1413
import com.intellij.platform.ProjectGeneratorPeer;
1514
import com.intellij.psi.PsiDirectory;
@@ -24,6 +23,7 @@
2423
import com.magento.idea.magento2plugin.actions.generation.generator.ModuleXmlGenerator;
2524
import com.magento.idea.magento2plugin.init.ConfigurationManager;
2625
import com.magento.idea.magento2plugin.project.Settings;
26+
import com.magento.idea.magento2plugin.project.startup.DeferredProjectOpenActions;
2727
import java.util.ArrayList;
2828
import javax.swing.Icon;
2929
import org.jetbrains.annotations.Nls;
@@ -91,7 +91,7 @@ public void generateProject(
9191
.refreshIncludePaths(dataService.getState(), project);
9292
});
9393
};
94-
StartupManager.getInstance(project).runAfterOpened(generate);
94+
DeferredProjectOpenActions.getInstance(project).runAfterProjectOpened(generate);
9595
}
9696

9797
/**

src/main/java/com/magento/idea/magento2plugin/project/ProjectDetector.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
import com.intellij.openapi.module.Module;
1313
import com.intellij.openapi.project.DumbService;
1414
import com.intellij.openapi.project.Project;
15-
import com.intellij.openapi.startup.StartupManager;
1615
import com.intellij.openapi.util.Ref;
1716
import com.intellij.openapi.vfs.VirtualFile;
1817
import com.intellij.platform.DirectoryProjectConfigurator;
1918
import com.magento.idea.magento2plugin.indexes.IndexManager;
2019
import com.magento.idea.magento2plugin.magento.packages.MagentoComponentManager;
20+
import com.magento.idea.magento2plugin.project.startup.DeferredProjectOpenActions;
2121
import com.magento.idea.magento2plugin.util.magento.MagentoBasePathUtil;
2222
import com.magento.idea.magento2plugin.util.magento.MagentoVersionUtil;
2323
import javax.swing.event.HyperlinkEvent;
@@ -31,7 +31,7 @@ public void configureProject(
3131
final @NotNull Ref<Module> moduleRef,
3232
final boolean newProject
3333
) {
34-
StartupManager.getInstance(project).runAfterOpened(() -> {
34+
DeferredProjectOpenActions.getInstance(project).runAfterProjectOpened(() -> {
3535
DumbService.getInstance(project).smartInvokeLater(() -> {
3636
if (!MagentoBasePathUtil.isMagentoFolderValid(baseDir.getPath())) {
3737
return;

src/main/java/com/magento/idea/magento2plugin/project/startup/CheckIfMagentoPathIsValidActivity.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,11 @@ private void registerSettings(final @NotNull Project project) {
3737
if (settings.pluginEnabled && (path == null || path.isEmpty())) {
3838
if (MagentoBasePathUtil.isMagentoFolderValid(project.getBasePath())) {
3939
settings.setMagentoPath(project.getBasePath());
40-
return;
40+
} else {
41+
settings.pluginEnabled = false;
42+
ConfigurationManager.suggestToConfigureMagentoPath(project);
4143
}
42-
settings.pluginEnabled = false;
43-
ConfigurationManager.suggestToConfigureMagentoPath(project);
4444
}
45+
DeferredProjectOpenActions.getInstance(project).runPendingActions();
4546
}
4647
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.project.startup;
7+
8+
import com.intellij.openapi.diagnostic.Logger;
9+
import com.intellij.openapi.project.Project;
10+
import java.util.Queue;
11+
import java.util.concurrent.ConcurrentLinkedQueue;
12+
import org.jetbrains.annotations.NotNull;
13+
14+
public final class DeferredProjectOpenActions {
15+
private static final Logger LOGGER = Logger.getInstance(DeferredProjectOpenActions.class);
16+
17+
private final Project project;
18+
private final Queue<Runnable> pendingActions = new ConcurrentLinkedQueue<>();
19+
20+
public DeferredProjectOpenActions(final @NotNull Project project) {
21+
this.project = project;
22+
}
23+
24+
public static DeferredProjectOpenActions getInstance(final @NotNull Project project) {
25+
return project.getService(DeferredProjectOpenActions.class);
26+
}
27+
28+
public void runAfterProjectOpened(final @NotNull Runnable action) {
29+
if (project.isDisposed()) {
30+
return;
31+
}
32+
if (project.isInitialized()) {
33+
runAction(action);
34+
return;
35+
}
36+
pendingActions.add(action);
37+
}
38+
39+
public void runPendingActions() {
40+
Runnable action;
41+
while ((action = pendingActions.poll()) != null) {
42+
if (project.isDisposed()) {
43+
return;
44+
}
45+
runAction(action);
46+
}
47+
}
48+
49+
private void runAction(final @NotNull Runnable action) {
50+
try {
51+
action.run();
52+
} catch (RuntimeException exception) {
53+
LOGGER.warn("Failed to run deferred post-open action", exception);
54+
}
55+
}
56+
}

src/main/resources/META-INF/plugin.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@
189189

190190
<projectService serviceImplementation="com.magento.idea.magento2plugin.project.Settings"/>
191191
<projectService serviceImplementation="com.magento.idea.magento2uct.settings.UctSettingsService"/>
192+
<projectService serviceImplementation="com.magento.idea.magento2plugin.project.startup.DeferredProjectOpenActions"/>
192193

193194
<completion.contributor language="XML" implementationClass="com.magento.idea.magento2plugin.completion.xml.XmlCompletionContributor" id="xml"/>
194195
<completion.contributor language="PHP" implementationClass="com.magento.idea.magento2plugin.completion.php.PhpCompletionContributor" id="php"/>

0 commit comments

Comments
 (0)