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

Lines changed: 4 additions & 0 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 47 additions & 35 deletions
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

Lines changed: 2 additions & 2 deletions
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();

0 commit comments

Comments
 (0)