IDEA-91781 Move maven profile setting to workspace.xml from misc.xml

This commit is contained in:
Sergey Evdokimov
2012-09-19 19:30:29 +04:00
parent 6f1b75b311
commit 0ce16487b4
6 changed files with 39 additions and 10 deletions
@@ -88,6 +88,8 @@ public class MavenProjectsManager extends MavenSimpleProjectComponent
private final List<Listener> 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<VirtualFile> files, List<String> 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<String>(myProjectsTree.getExplicitProfiles());
myState.ignoredFiles = new THashSet<String>(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<String>(myState.ignoredFiles));
myProjectsTree.setIgnoredFilesPatterns(myState.ignoredPathMasks);
}
@@ -29,7 +29,6 @@ import java.util.TreeSet;
public class MavenProjectsManagerState {
public List<String> originalFiles = new ArrayList<String>();
public List<String> activeProfiles = new ArrayList<String>();
public Set<String> ignoredFiles = new TreeSet<String>();
public List<String> ignoredPathMasks = new ArrayList<String>();
@@ -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<String> enabledProfiles = new ArrayList<String>();
public void setEnabledProfiles(Collection<String> profiles) {
enabledProfiles.clear();
enabledProfiles.addAll(profiles);
}
}
@@ -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<MavenWorkspaceSettings> {
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;
}
}
@@ -95,7 +95,7 @@ public class MavenProjectBuilder extends ProjectImportBuilder<MavenProject> {
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<MavenProject> {
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<VirtualFile> files) {
@@ -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");