diff --git a/java/java-impl/src/com/intellij/refactoring/migration/MigrationProcessor.java b/java/java-impl/src/com/intellij/refactoring/migration/MigrationProcessor.java index 4e17df39a9e5..83d651321513 100644 --- a/java/java-impl/src/com/intellij/refactoring/migration/MigrationProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/migration/MigrationProcessor.java @@ -37,7 +37,7 @@ import java.util.ArrayList; /** * @author ven */ -class MigrationProcessor extends BaseRefactoringProcessor { +public class MigrationProcessor extends BaseRefactoringProcessor { private static final Logger LOG = Logger.getInstance("#com.intellij.refactoring.migration.MigrationProcessor"); private final MigrationMap myMigrationMap; private static final String REFACTORING_NAME = RefactoringBundle.message("migration.title"); @@ -103,7 +103,7 @@ class MigrationProcessor extends BaseRefactoringProcessor { myPsiMigration.finish(); myPsiMigration = null; } - return usagesVector.toArray(new MigrationUsageInfo[usagesVector.size()]); + return usagesVector.toArray(UsageInfo.EMPTY_ARRAY); } protected boolean preprocessUsages(@NotNull Ref refUsages) { @@ -147,10 +147,10 @@ class MigrationProcessor extends BaseRefactoringProcessor { return REFACTORING_NAME; } - public static class MigrationUsageInfo extends UsageInfo { - public MigrationMapEntry mapEntry; + static class MigrationUsageInfo extends UsageInfo { + MigrationMapEntry mapEntry; - public MigrationUsageInfo(UsageInfo info, MigrationMapEntry mapEntry) { + MigrationUsageInfo(UsageInfo info, MigrationMapEntry mapEntry) { super(info.getElement(), info.getRangeInElement().getStartOffset(), info.getRangeInElement().getEndOffset()); this.mapEntry = mapEntry; } diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFxMigrationTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFxMigrationTest.java new file mode 100644 index 000000000000..1826e3bda069 --- /dev/null +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFxMigrationTest.java @@ -0,0 +1,45 @@ +package org.jetbrains.plugins.javaFX.fxml; + +import com.intellij.openapi.application.PluginPathManager; +import com.intellij.openapi.fileEditor.FileDocumentManager; +import com.intellij.refactoring.migration.MigrationMap; +import com.intellij.refactoring.migration.MigrationMapSet; +import com.intellij.refactoring.migration.MigrationProcessor; +import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; +import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.NotNull; + +/** + * @author Pavel.Dolgov + */ +public class JavaFxMigrationTest extends LightCodeInsightFixtureTestCase { + + public void testImportClasses() throws Exception { + doTest(); + } + + public void testImportSkinPackage() throws Exception { + doTest(); + } + + public void testImportCssPackage() throws Exception { + doTest(); + } + + private void doTest() { + myFixture.configureByFile(getTestName(false) + ".java"); + MigrationMap[] maps = new MigrationMapSet().getMaps(); + MigrationMap migrationMap = ContainerUtil.find(maps, m -> "JavaFX (8 -> 9)".equals(m.getName())); + assertNotNull(migrationMap); + + new MigrationProcessor(getProject(), migrationMap).run(); + FileDocumentManager.getInstance().saveAllDocuments(); + myFixture.checkResultByFile(getTestName(false) + "_after.java"); + } + + @NotNull + @Override + protected String getTestDataPath() { + return PluginPathManager.getPluginHomePath("javaFX") + "/testData/migration/"; + } +} diff --git a/plugins/javaFX/src/META-INF/common-javaFX-plugin.xml b/plugins/javaFX/src/META-INF/common-javaFX-plugin.xml index 5d885ca1558d..59b5666860cc 100644 --- a/plugins/javaFX/src/META-INF/common-javaFX-plugin.xml +++ b/plugins/javaFX/src/META-INF/common-javaFX-plugin.xml @@ -64,6 +64,7 @@ + diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/refactoring/migration/JavaFx8__9.xml b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/refactoring/migration/JavaFx8__9.xml new file mode 100644 index 000000000000..adcd2522788a --- /dev/null +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/refactoring/migration/JavaFx8__9.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/refactoring/migration/JavaFx9Migration.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/refactoring/migration/JavaFx9Migration.java new file mode 100644 index 000000000000..c5019e3f6e46 --- /dev/null +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/refactoring/migration/JavaFx9Migration.java @@ -0,0 +1,17 @@ +package org.jetbrains.plugins.javaFX.refactoring.migration; + +import com.intellij.refactoring.migration.PredefinedMigrationProvider; +import org.jetbrains.annotations.NotNull; + +import java.net.URL; + +/** + * @author Pavel.Dolgov + */ +public class JavaFx9Migration implements PredefinedMigrationProvider { + @NotNull + @Override + public URL getMigrationMap() { + return JavaFx9Migration.class.getResource("JavaFx8__9.xml"); + } +} diff --git a/plugins/javaFX/testData/migration/ImportClasses.java b/plugins/javaFX/testData/migration/ImportClasses.java new file mode 100644 index 000000000000..ba78397a1ec3 --- /dev/null +++ b/plugins/javaFX/testData/migration/ImportClasses.java @@ -0,0 +1,7 @@ +import com.sun.javafx.css.CompoundSelector; +import com.sun.javafx.scene.control.skin.AccordionSkin; + +class ImportClasses { + CompoundSelector compoundSelector; + AccordionSkin accordionSkin; +} \ No newline at end of file diff --git a/plugins/javaFX/testData/migration/ImportClasses_after.java b/plugins/javaFX/testData/migration/ImportClasses_after.java new file mode 100644 index 000000000000..aede4bd3ab57 --- /dev/null +++ b/plugins/javaFX/testData/migration/ImportClasses_after.java @@ -0,0 +1,7 @@ +import javafx.css.CompoundSelector; +import javafx.scene.control.skin.AccordionSkin; + +class ImportClasses { + CompoundSelector compoundSelector; + AccordionSkin accordionSkin; +} \ No newline at end of file diff --git a/plugins/javaFX/testData/migration/ImportCssPackage.java b/plugins/javaFX/testData/migration/ImportCssPackage.java new file mode 100644 index 000000000000..29c216a273f7 --- /dev/null +++ b/plugins/javaFX/testData/migration/ImportCssPackage.java @@ -0,0 +1,6 @@ +import com.sun.javafx.css.*; + +class ImportSkinPackage { + CompoundSelector compoundSelector; + SimpleSelector simpleSelector; +} \ No newline at end of file diff --git a/plugins/javaFX/testData/migration/ImportCssPackage_after.java b/plugins/javaFX/testData/migration/ImportCssPackage_after.java new file mode 100644 index 000000000000..93afb59dbf50 --- /dev/null +++ b/plugins/javaFX/testData/migration/ImportCssPackage_after.java @@ -0,0 +1,6 @@ +import javafx.css.*; + +class ImportSkinPackage { + CompoundSelector compoundSelector; + SimpleSelector simpleSelector; +} \ No newline at end of file diff --git a/plugins/javaFX/testData/migration/ImportSkinPackage.java b/plugins/javaFX/testData/migration/ImportSkinPackage.java new file mode 100644 index 000000000000..2b293d575fb0 --- /dev/null +++ b/plugins/javaFX/testData/migration/ImportSkinPackage.java @@ -0,0 +1,6 @@ +import com.sun.javafx.scene.control.skin.*; + +class ImportSkinPackage { + ButtonBarSkin buttonBarSkin; + ChoiceBoxSkin choiceBoxSkin; +} \ No newline at end of file diff --git a/plugins/javaFX/testData/migration/ImportSkinPackage_after.java b/plugins/javaFX/testData/migration/ImportSkinPackage_after.java new file mode 100644 index 000000000000..33e3b34d9906 --- /dev/null +++ b/plugins/javaFX/testData/migration/ImportSkinPackage_after.java @@ -0,0 +1,6 @@ +import javafx.scene.control.skin.*; + +class ImportSkinPackage { + ButtonBarSkin buttonBarSkin; + ChoiceBoxSkin choiceBoxSkin; +} \ No newline at end of file