Skip to content

Commit 02bb789

Browse files
author
Vitaliy
authored
Merge pull request #499 from magento/require-restart-on-plugin-update
Require restart
2 parents 05c4e3a + 30b4c74 commit 02bb789

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+305
-202
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).
66

77
## 3.1.3
88

9+
### Changed
10+
11+
- Require restart on plugin update due to using native libraries
12+
913
## 3.1.2
1014

1115
### Fixed

resources/META-INF/plugin.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* See COPYING.txt for license details.
55
*/
66
-->
7-
<idea-plugin>
7+
<idea-plugin require-restart="true">
88
<id>com.magento.idea.magento2plugin</id>
99
<name>Magento PhpStorm</name>
1010
<version>3.1.3</version>

src/com/magento/idea/magento2plugin/actions/generation/dialog/CreateAPluginDialog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ public static void open(
232232
}
233233

234234
private void createUIComponents() {
235-
final List<String> allModulesList = ModuleIndex.getInstance(project)
235+
final List<String> allModulesList = new ModuleIndex(project)
236236
.getEditableModuleNames();
237237

238238
this.pluginModule = new FilteredComboBox(allModulesList);

src/com/magento/idea/magento2plugin/actions/generation/dialog/CreateAnObserverDialog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ public String getObserverModule() {
192192
}
193193

194194
private void createUIComponents() { //NOPMD
195-
final List<String> allModulesList = ModuleIndex.getInstance(project)
195+
final List<String> allModulesList = new ModuleIndex(project)
196196
.getEditableModuleNames();
197197

198198
this.observerModule = new FilteredComboBox(allModulesList);

src/com/magento/idea/magento2plugin/actions/generation/dialog/NewModuleDialog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public NewModuleDialog(
123123
this.project = project;
124124
this.initialBaseDir = initialBaseDir;
125125
this.camelCaseToHyphen = CamelCaseToHyphen.getInstance();
126-
this.moduleIndex = ModuleIndex.getInstance(project);
126+
this.moduleIndex = new ModuleIndex(project);
127127
detectPackageName(initialBaseDir);
128128
setContentPane(contentPane);
129129
setModal(true);

src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideClassByAPreferenceDialog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ public static void open(final @NotNull Project project, final PhpClass targetCla
235235
}
236236

237237
private void createUIComponents() {
238-
final List<String> allModulesList = ModuleIndex.getInstance(project)
238+
final List<String> allModulesList = new ModuleIndex(project)
239239
.getEditableModuleNames();
240240

241241
this.preferenceModule = new FilteredComboBox(allModulesList);

src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public static void open(final @NotNull Project project, final PsiFile psiFile) {
131131
}
132132

133133
private void fillThemeOptions() {
134-
final List<String> themeNames = ModuleIndex.getInstance(project).getEditableThemeNames();
134+
final List<String> themeNames = new ModuleIndex(project).getEditableThemeNames();
135135
for (final String themeName: themeNames) {
136136
theme.addItem(themeName);
137137
}

src/com/magento/idea/magento2plugin/actions/generation/generator/CLICommandClassGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public CLICommandClassGenerator(
4848
this.phpClassData = phpClassData;
4949

5050
this.dirGenerator = DirectoryGenerator.getInstance();
51-
this.fileGenerator = FileFromTemplateGenerator.getInstance(project);
51+
this.fileGenerator = new FileFromTemplateGenerator(project);
5252
this.validatorBundle = new ValidatorBundle();
5353
this.commonBundle = new CommonBundle();
5454
}
@@ -83,7 +83,7 @@ private PhpFile createCLICommandClass(final String actionName) {
8383
private PsiDirectory getParentDirectory() {
8484
final String moduleName = this.phpClassData.getModuleName();
8585
final String[] subDirectories = this.phpClassData.getParentDirectory().split("/");
86-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
86+
PsiDirectory parentDirectory = new ModuleIndex(project)
8787
.getModuleDirectoryByModuleName(moduleName);
8888
for (final String subDirectory : subDirectories) {
8989
parentDirectory = dirGenerator.findOrCreateSubdirectory(parentDirectory, subDirectory);

src/com/magento/idea/magento2plugin/actions/generation/generator/CronjobClassGenerator.java

+47-35
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
* Copyright © Magento, Inc. All rights reserved.
33
* See COPYING.txt for license details.
44
*/
5+
56
package com.magento.idea.magento2plugin.actions.generation.generator;
67

78
import com.intellij.openapi.project.Project;
@@ -14,87 +15,98 @@
1415
import com.magento.idea.magento2plugin.bundles.ValidatorBundle;
1516
import com.magento.idea.magento2plugin.indexes.ModuleIndex;
1617
import com.magento.idea.magento2plugin.magento.files.CronjobTemplate;
17-
import org.jetbrains.annotations.NotNull;
1818
import java.util.Properties;
19+
import org.jetbrains.annotations.NotNull;
1920

2021
public class CronjobClassGenerator extends FileGenerator {
21-
private CronjobClassData cronjobClassData;
22-
private Project project;
23-
private ValidatorBundle validatorBundle;
22+
private final CronjobClassData cronjobClassData;
23+
private final Project project;
24+
private final ValidatorBundle validatorBundle;
2425
private final DirectoryGenerator directoryGenerator;
2526
private final FileFromTemplateGenerator fileFromTemplateGenerator;
2627

2728
/**
28-
* @param project
29-
* @param cronjobClassData
29+
* Construct generator.
30+
*
31+
* @param project Project
32+
* @param cronjobClassData CronjobClassData
3033
*/
31-
public CronjobClassGenerator(Project project, @NotNull CronjobClassData cronjobClassData) {
34+
public CronjobClassGenerator(
35+
final Project project,
36+
final @NotNull CronjobClassData cronjobClassData
37+
) {
3238
super(project);
3339
this.project = project;
3440
this.cronjobClassData = cronjobClassData;
3541

3642
this.directoryGenerator = DirectoryGenerator.getInstance();
37-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
43+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
3844
this.validatorBundle = new ValidatorBundle();
3945
}
4046

4147
/**
48+
* Generate file from code template.
4249
*
43-
* @param actionName
50+
* @param actionName String
4451
*
4552
* @return void
4653
*/
47-
public PsiFile generate(String actionName) {
48-
PhpFile cronjobFile = createCronjobClass(actionName);
54+
@Override
55+
public PsiFile generate(final String actionName) {
56+
final PhpFile cronjobFile = createCronjobClass(actionName);
4957

5058
if (cronjobFile == null) {
51-
String errorMessage = validatorBundle.message(
52-
"validator.file.cantBeCreated",
53-
"Cronjob Class"
59+
final String errorMessage = validatorBundle.message(
60+
"validator.file.cantBeCreated",
61+
"Cronjob Class"
5462
);
5563

56-
throw new RuntimeException(errorMessage);
64+
throw new RuntimeException(errorMessage);//NOPMD
5765
}
5866

5967
return cronjobFile;
6068
}
6169

6270
/**
71+
* Fill template attributes.
6372
*
64-
* @param attributes
73+
* @param attributes Properties
6574
*/
66-
protected void fillAttributes(Properties attributes) {
67-
String cronjobClassName = this.cronjobClassData.getClassName();
68-
String cronjobNamespace = this.cronjobClassData.getNamespace();
75+
@Override
76+
protected void fillAttributes(final Properties attributes) {
77+
final String cronjobClassName = this.cronjobClassData.getClassName();
78+
final String cronjobNamespace = this.cronjobClassData.getNamespace();
6979

7080
attributes.setProperty("NAME", cronjobClassName);
7181
attributes.setProperty("NAMESPACE", cronjobNamespace);
7282
}
7383

7484
/**
75-
* Generate Cronjob Class according to data model
85+
* Generate Cronjob Class according to data model.
7686
*
77-
* @param actionName
87+
* @param actionName String
7888
*
7989
* @return PhpFile
8090
*/
81-
private PhpFile createCronjobClass(String actionName) {
82-
String cronjobClassName = this.cronjobClassData.getClassName();
83-
String moduleName = this.cronjobClassData.getModuleName();
84-
String[] cronjobSubDirectories = this.cronjobClassData.getDirectory().split("/");
85-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project).getModuleDirectoryByModuleName(moduleName);
86-
87-
for (String cronjobSubDirectory: cronjobSubDirectories) {
88-
parentDirectory = directoryGenerator.findOrCreateSubdirectory(parentDirectory, cronjobSubDirectory);
91+
private PhpFile createCronjobClass(final String actionName) {
92+
final String cronjobClassName = this.cronjobClassData.getClassName();
93+
final String moduleName = this.cronjobClassData.getModuleName();
94+
final String[] cronjobSubDirectories = this.cronjobClassData.getDirectory().split("/");
95+
PsiDirectory parentDirectory = new ModuleIndex(project)
96+
.getModuleDirectoryByModuleName(moduleName);
97+
98+
for (final String cronjobSubDirectory: cronjobSubDirectories) {
99+
parentDirectory = directoryGenerator
100+
.findOrCreateSubdirectory(parentDirectory, cronjobSubDirectory);
89101
}
90102

91-
Properties attributes = getAttributes();
103+
final Properties attributes = getAttributes();
92104

93-
PsiFile blockFile = fileFromTemplateGenerator.generate(
94-
new CronjobTemplate(cronjobClassName),
95-
attributes,
96-
parentDirectory,
97-
actionName
105+
final PsiFile blockFile = fileFromTemplateGenerator.generate(
106+
new CronjobTemplate(cronjobClassName),
107+
attributes,
108+
parentDirectory,
109+
actionName
98110
);
99111

100112
if (blockFile == null) {

src/com/magento/idea/magento2plugin/actions/generation/generator/DataModelGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public DataModelGenerator(final Project project, final DataModelData modelData)
4444
this.project = project;
4545
this.modelData = modelData;
4646
this.directoryGenerator = DirectoryGenerator.getInstance();
47-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
47+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
4848
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
4949
this.validatorBundle = new ValidatorBundle();
5050
this.commonBundle = new CommonBundle();
@@ -122,7 +122,7 @@ private List<String> getUses() {
122122
}
123123

124124
private PhpClass createModel(final String actionName) {
125-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
125+
PsiDirectory parentDirectory = new ModuleIndex(project)
126126
.getModuleDirectoryByModuleName(modelData.getModuleName());
127127
final PsiFile interfaceFile;
128128
final Properties attributes = getAttributes();

src/com/magento/idea/magento2plugin/actions/generation/generator/DataModelInterfaceGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public DataModelInterfaceGenerator(
4444
this.project = project;
4545
this.interfaceData = interfaceData;
4646
this.directoryGenerator = DirectoryGenerator.getInstance();
47-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
47+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
4848
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
4949
this.validatorBundle = new ValidatorBundle();
5050
this.commonBundle = new CommonBundle();
@@ -101,7 +101,7 @@ protected void fillAttributes(final Properties attributes) {
101101
}
102102

103103
private PhpClass createInterface(final String actionName) {
104-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
104+
PsiDirectory parentDirectory = new ModuleIndex(project)
105105
.getModuleDirectoryByModuleName(interfaceData.getModuleName());
106106
final PsiFile interfaceFile;
107107
final Properties attributes = getAttributes();

src/com/magento/idea/magento2plugin/actions/generation/generator/MessageQueueClassGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public MessageQueueClassGenerator(
5050

5151
this.messageQueueClassDataName = messageQueueClassData;
5252
this.directoryGenerator = DirectoryGenerator.getInstance();
53-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
53+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
5454
this.validatorBundle = new ValidatorBundle();
5555
this.commonBundle = new CommonBundle();
5656
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
@@ -112,7 +112,7 @@ protected void fillAttributes(final Properties attributes) {
112112
}
113113

114114
private PhpClass createHandlerClass(final String actionName) {
115-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
115+
PsiDirectory parentDirectory = new ModuleIndex(project)
116116
.getModuleDirectoryByModuleName(this.moduleName);
117117
final PsiFile handlerFile;
118118
final String[] handlerDirectories = messageQueueClassDataName.getPath().split(

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleBlockClassGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public ModuleBlockClassGenerator(
4545
) {
4646
super(project);
4747
this.directoryGenerator = DirectoryGenerator.getInstance();
48-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
48+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
4949
this.blockFileData = blockFileData;
5050
this.project = project;
5151
this.validatorBundle = new ValidatorBundle();
@@ -104,7 +104,7 @@ private String getBlockFqn() {
104104
}
105105

106106
private PhpFile createBlockClass(final String actionName) {
107-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
107+
PsiDirectory parentDirectory = new ModuleIndex(project)
108108
.getModuleDirectoryByModuleName(getBlockModule());
109109
final String[] blockDirectories = blockFileData.getBlockDirectory().split(File.separator);
110110
for (final String blockDirectory: blockDirectories) {

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleCollectionGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public ModuleCollectionGenerator(
5151
this.project = project;
5252
this.collectionData = collectionData;
5353
this.directoryGenerator = DirectoryGenerator.getInstance();
54-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
54+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
5555
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
5656
this.validatorBundle = new ValidatorBundle();
5757
this.commonBundle = new CommonBundle();
@@ -123,7 +123,7 @@ private String getCollectionModelFqn() {
123123
}
124124

125125
private PhpClass createClass(final String actionName) {
126-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
126+
PsiDirectory parentDirectory = new ModuleIndex(project)
127127
.getModuleDirectoryByModuleName(getModuleName());
128128
final PsiFile modelFile;
129129

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleComposerJsonGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ public ModuleComposerJsonGenerator(
4444
) {
4545
super(project);
4646
this.moduleComposerJsonData = moduleComposerJsonData;
47-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
47+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
4848
this.directoryGenerator = DirectoryGenerator.getInstance();
4949
this.camelCaseToHyphen = CamelCaseToHyphen.getInstance();
50-
this.moduleIndex = ModuleIndex.getInstance(project);
50+
this.moduleIndex = new ModuleIndex(project);
5151
}
5252

5353
@Override

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleControllerClassGenerator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public ModuleControllerClassGenerator(
5757
this.project = project;
5858
this.controllerFileData = controllerFileData;
5959
this.directoryGenerator = DirectoryGenerator.getInstance();
60-
this.fileFromTemplateGenerator = FileFromTemplateGenerator.getInstance(project);
60+
this.fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
6161
this.getFirstClassOfFile = GetFirstClassOfFile.getInstance();
6262
this.validatorBundle = new ValidatorBundle();
6363
this.commonBundle = new CommonBundle();
@@ -144,7 +144,7 @@ private String getControllerFqn() {
144144
}
145145

146146
private PhpClass createControllerClass(final String actionName) {
147-
PsiDirectory parentDirectory = ModuleIndex.getInstance(project)
147+
PsiDirectory parentDirectory = new ModuleIndex(project)
148148
.getModuleDirectoryByModuleName(getControllerModule());
149149
final PsiFile controllerFile;
150150
final String[] controllerDirectories = controllerFileData.getActionDirectory().split(

0 commit comments

Comments
 (0)