From 0ce16487b44bf3171b274921eb7ce0459b59570c Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Wed, 19 Sep 2012 19:30:02 +0400 Subject: [PATCH] IDEA-91781 Move maven profile setting to workspace.xml from misc.xml --- .../idea/maven/project/MavenProjectsManager.java | 13 +++++++++---- .../maven/project/MavenProjectsManagerState.java | 1 - .../idea/maven/project/MavenWorkspaceSettings.java | 12 ++++++++++++ .../project/MavenWorkspaceSettingsComponent.java | 13 +++++++++++++ .../idea/maven/wizards/MavenProjectBuilder.java | 4 ++-- .../maven/project/MavenProjectsManagerTest.java | 6 +++--- 6 files changed, 39 insertions(+), 10 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java index 87cab00f3b7c..a119acc0921b 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManager.java @@ -88,6 +88,8 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent private final List myManagerListeners = ContainerUtil.createEmptyCOWList(); private ModificationTracker myModificationTracker; + private MavenWorkspaceSettings myWorkspaceSettings; + public static MavenProjectsManager getInstance(Project p) { return p.getComponent(MavenProjectsManager.class); } @@ -126,7 +128,11 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent } private MavenWorkspaceSettings getWorkspaceSettings() { - return MavenWorkspaceSettingsComponent.getInstance(myProject).getState(); + if (myWorkspaceSettings == null) { + myWorkspaceSettings = MavenWorkspaceSettingsComponent.getInstance(myProject).getSettings(); + } + + return myWorkspaceSettings; } public File getLocalRepository() { @@ -152,7 +158,7 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent private void initNew(List files, List explicitProfiles) { myState.originalFiles = MavenUtil.collectPaths(files); - myState.activeProfiles = explicitProfiles; + getWorkspaceSettings().setEnabledProfiles(explicitProfiles); doInit(true); } @@ -207,13 +213,12 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent private void applyTreeToState() { myState.originalFiles = myProjectsTree.getManagedFilesPaths(); - myState.activeProfiles = new ArrayList(myProjectsTree.getExplicitProfiles()); myState.ignoredFiles = new THashSet(myProjectsTree.getIgnoredFilesPaths()); myState.ignoredPathMasks = myProjectsTree.getIgnoredFilesPatterns(); } private void applyStateToTree() { - myProjectsTree.resetManagedFilesPathsAndProfiles(myState.originalFiles, myState.activeProfiles); + myProjectsTree.resetManagedFilesPathsAndProfiles(myState.originalFiles, getWorkspaceSettings().enabledProfiles); myProjectsTree.setIgnoredFilesPaths(new ArrayList(myState.ignoredFiles)); myProjectsTree.setIgnoredFilesPatterns(myState.ignoredPathMasks); } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerState.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerState.java index 50c9701338b1..ddf0e800b399 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerState.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerState.java @@ -29,7 +29,6 @@ import java.util.TreeSet; public class MavenProjectsManagerState { public List originalFiles = new ArrayList(); - public List activeProfiles = new ArrayList(); public Set ignoredFiles = new TreeSet(); public List ignoredPathMasks = new ArrayList(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettings.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettings.java index e14e8affdb97..3451f0c33f2e 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettings.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettings.java @@ -15,7 +15,19 @@ */ package org.jetbrains.idea.maven.project; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + public class MavenWorkspaceSettings { public MavenGeneralSettings generalSettings = new MavenGeneralSettings(); public MavenImportingSettings importingSettings = new MavenImportingSettings(); + + public List enabledProfiles = new ArrayList(); + + public void setEnabledProfiles(Collection profiles) { + enabledProfiles.clear(); + enabledProfiles.addAll(profiles); + } + } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettingsComponent.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettingsComponent.java index 2cf1ef261161..6603f0d2d3df 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettingsComponent.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenWorkspaceSettingsComponent.java @@ -18,20 +18,33 @@ package org.jetbrains.idea.maven.project; import com.intellij.openapi.components.*; import com.intellij.openapi.components.StoragePathMacros; import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; @State(name = "MavenImportPreferences", storages = {@Storage( file = StoragePathMacros.WORKSPACE_FILE)}) public class MavenWorkspaceSettingsComponent implements PersistentStateComponent { private MavenWorkspaceSettings mySettings = new MavenWorkspaceSettings(); + private final Project myProject; + + public MavenWorkspaceSettingsComponent(Project project) { + myProject = project; + } + public static MavenWorkspaceSettingsComponent getInstance(Project project) { return ServiceManager.getService(project, MavenWorkspaceSettingsComponent.class); } + @NotNull public MavenWorkspaceSettings getState() { + mySettings.setEnabledProfiles(MavenProjectsManager.getInstance(myProject).getExplicitProfiles()); return mySettings; } public void loadState(MavenWorkspaceSettings state) { mySettings = state; } + + public MavenWorkspaceSettings getSettings() { + return mySettings; + } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java index 5af733cfb51c..118d7916e529 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenProjectBuilder.java @@ -95,7 +95,7 @@ public class MavenProjectBuilder extends ProjectImportBuilder { ModifiableModuleModel model, ModulesProvider modulesProvider, ModifiableArtifactModel artifactModel) { - MavenWorkspaceSettings settings = MavenWorkspaceSettingsComponent.getInstance(project).getState(); + MavenWorkspaceSettings settings = MavenWorkspaceSettingsComponent.getInstance(project).getSettings(); settings.generalSettings = getGeneralSettings(); settings.importingSettings = getImportingSettings(); @@ -252,7 +252,7 @@ public class MavenProjectBuilder extends ProjectImportBuilder { Project project = isUpdate() ? getProjectToUpdate() : null; if (project == null || project.isDisposed()) project = ProjectManager.getInstance().getDefaultProject(); - return MavenWorkspaceSettingsComponent.getInstance(project).getState(); + return MavenWorkspaceSettingsComponent.getInstance(project).getSettings(); } public void setFiles(List files) { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java index 12ee185e1697..aa5371a63af7 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenProjectsManagerTest.java @@ -661,7 +661,7 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { public void testSavingAndLoadingState() throws Exception { MavenProjectsManagerState state = myProjectsManager.getState(); assertTrue(state.originalFiles.isEmpty()); - assertTrue(state.activeProfiles.isEmpty()); + assertTrue(MavenWorkspaceSettingsComponent.getInstance(myProject).getSettings().enabledProfiles.isEmpty()); assertTrue(state.ignoredFiles.isEmpty()); assertTrue(state.ignoredPathMasks.isEmpty()); @@ -692,14 +692,14 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { state = myProjectsManager.getState(); assertUnorderedElementsAreEqual(state.originalFiles, p1.getPath(), p2.getPath()); - assertUnorderedElementsAreEqual(state.activeProfiles, "one", "two"); + assertUnorderedElementsAreEqual(MavenWorkspaceSettingsComponent.getInstance(myProject).getState().enabledProfiles, "one", "two"); assertUnorderedElementsAreEqual(state.ignoredFiles, p1.getPath()); assertUnorderedElementsAreEqual(state.ignoredPathMasks, "*.xxx"); MavenProjectsManagerState newState = new MavenProjectsManagerState(); newState.originalFiles = Arrays.asList(p1.getPath(), p3.getPath()); - newState.activeProfiles = Arrays.asList("three"); + MavenWorkspaceSettingsComponent.getInstance(myProject).getSettings().setEnabledProfiles(Arrays.asList("three")); newState.ignoredFiles = Collections.singleton(p1.getPath()); newState.ignoredPathMasks = Arrays.asList("*.zzz");