From bf85c140b24443cfbdfa9563730d6ef952f7bab1 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Thu, 11 Nov 2010 12:00:15 +0300 Subject: [PATCH] Maven: reinit embedder on settings changes, e.g. offline mode settings (IDEA-17589) --- .../lib/maven-embedder-1.1-SNAPSHOT.jar | Bin 23051 -> 23104 bytes .../idea/maven/facade/MavenFacadeManager.java | 2 +- .../project/MavenGeneralConfigurable.java | 4 + .../maven/project/MavenGeneralSettings.java | 89 +++++++++++------- .../project/MavenProjectsManagerWatcher.java | 4 +- .../jetbrains/idea/maven/MavenTestCase.java | 2 +- .../indices/MavenIndicesTestFixture.java | 3 +- .../idea/maven/project/MavenSettingsTest.java | 2 +- 8 files changed, 65 insertions(+), 41 deletions(-) diff --git a/plugins/maven/facade-impl/lib/maven-embedder-1.1-SNAPSHOT.jar b/plugins/maven/facade-impl/lib/maven-embedder-1.1-SNAPSHOT.jar index 9a16b6b86b2ae8dd02c89210def9436d0ee2f058..c08b985459fba1072173ccd85a137e1d064cc709 100644 GIT binary patch delta 11777 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 #i#h;yTTIlryAl|YR5 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 Ut^njr1r>6mi~S;B^`FH54^a0=j{pDw delta 11829 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

Fv&Et8VyYU%byY_3I8kGM1n=ZtLY>VxEgv zl_X9qUg$44a7wYcl4GpBBYK|oYdp9(# z=cTwHKn_pDDfs0<@txtK3*@Fzo~0TwMFmEnnNv6K_GY0~uL20P1sPUp>#bM$_3lyLZrNX}#J^8Z9_yiJ`~CsGI^Caw_lk_z zs%{mPtd_Bm;Dh=6v#S!~m8HQBU{ej0-VdXn^1)Rm8bqnwE8W?r=3O_Kw~w%fnsLv|oav1Du@;nnzVWJk6*bfuh5bjwnG@=nPD*G zX>Xw_3U0SO%nh~)T2knJAJP_ApiR=6TA#B6H;nHlcBjtFFh0Dukhn4Q?=f%lVpY`se#lT{*nW>X|9}bmQ>^FnwVY)?2%)eKe<%2a zk_Z=xgi#8u8Uwao|2~Yn=);0qw=oJt-S;qzMc$YITU_WJLw0;1`LhWv+9!u03YRKA z6tAd(9Xs}1dJ!mNOsXAEcBD<5FFS&22p^&;hb|weA*f7+BE0L8qT(rpf0G~@&{nGz z?f~uYDp#-4Alxp{$KoLoL8oLZGwL71$Ifl^qowuX11iz>sk;;k=L@d29$%jbE0XM9 zr%Oc~SK)9OK7=ca1<?N`k*wGAkWs9bs!kfQ+TVB`nA85RVzEP?~Y~){g zvI$_a%NgzVTI+r@7yRBkx3yOJ$m_}}j9x@Q27L!|u9~Bej@h}5!X&tShyHJj?;lR} zj28*|FQ@t>P!IKYP$kR=`FF4^()?daq8JR^UnO0p;lC7l`NaS7tSbmZLjU1n!Nf|8 zf3I>%BL7^QVw7lM{t8WMT>nkXg0IzdApd-CQD=wT0{f{8LLozfLo{%~lj@96!v74( z!1x*{hJQd>VNuJM^p-!+Ey*9g5dANH`(LNx5TAdjLq{`rcNa4cTcDkjrInAW0wfeR z^gom?0>qzL2_GODV28m#K#U_pK=AylSRWj$Aw~X=CxdQOFZECO@E;zR?Oz^t_`jWe zgah%dKn9y>G5=wDvC01j9{DdLJKA64^#3;gUqI5~|80W?)2GZ2 zzF?C-J&3|WK=A&n2Tib?4l@Hqu7 { } public MavenEmbedderWrapper createEmbedder(final Project project) { - final MavenFacadeSettings settings = convertSettings(MavenProjectsManager.getInstance(project).getGeneralSettings()); return new MavenEmbedderWrapper(this) { @NotNull @Override protected MavenFacadeEmbedder create() throws RemoteException { + final MavenFacadeSettings settings = convertSettings(MavenProjectsManager.getInstance(project).getGeneralSettings()); return MavenFacadeManager.this.getOrCreateWrappee().createEmbedder(settings); } }; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java index a2857989698e..366a5d6a7442 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralConfigurable.java @@ -133,6 +133,8 @@ public abstract class MavenGeneralConfigurable implements SearchableConfigurable } private void setData(MavenGeneralSettings data) { + data.beginUpdate(); + data.setWorkOffline(checkboxWorkOffline.isSelected()); mavenPathsForm.setData(data); @@ -145,6 +147,8 @@ public abstract class MavenGeneralConfigurable implements SearchableConfigurable data.setFailureBehavior((MavenExecutionOptions.FailureMode)ComboBoxUtil.getSelectedValue(failPolicyComboModel)); data.setPluginUpdatePolicy((MavenExecutionOptions.PluginUpdatePolicy)ComboBoxUtil.getSelectedValue(pluginUpdatePolicyComboModel)); data.setSnapshotUpdatePolicy((MavenExecutionOptions.SnapshotUpdatePolicy)ComboBoxUtil.getSelectedValue(snapshotUpdatePolicyComboModel)); + + data.endUpdate(); } private void getData(MavenGeneralSettings data) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralSettings.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralSettings.java index 8294bbeec711..80e427bd65ff 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralSettings.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenGeneralSettings.java @@ -32,35 +32,54 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; -@SuppressWarnings({"UnusedDeclaration"}) public class MavenGeneralSettings implements Cloneable { private boolean workOffline = false; private String mavenHome = ""; private String mavenSettingsFile = ""; - private String overridenLocalRepository = ""; + private String overriddenLocalRepository = ""; private boolean printErrorStackTraces = false; private boolean usePluginRegistry = false; private boolean nonRecursive = false; + private MavenExecutionOptions.LoggingLevel outputLevel = MavenExecutionOptions.LoggingLevel.INFO; private MavenExecutionOptions.ChecksumPolicy checksumPolicy = MavenExecutionOptions.ChecksumPolicy.FAIL; private MavenExecutionOptions.FailureMode failureBehavior = MavenExecutionOptions.FailureMode.FAST; private MavenExecutionOptions.SnapshotUpdatePolicy snapshotUpdatePolicy = MavenExecutionOptions.SnapshotUpdatePolicy.ALWAYS_UPDATE; private MavenExecutionOptions.PluginUpdatePolicy pluginUpdatePolicy = MavenExecutionOptions.PluginUpdatePolicy.DO_NOT_UPDATE; - private volatile File myEffectiveLocalRepositoryCache; - private volatile Set myDefaultPluginsCache; + private File myEffectiveLocalRepositoryCache; + private Set myDefaultPluginsCache; + private int myBulkUpdateLevel = 0; private List myListeners = ContainerUtil.createEmptyCOWList(); - public + public void beginUpdate() { + myBulkUpdateLevel++; + } + + public void endUpdate() { + if (--myBulkUpdateLevel == 0) { + changed(); + } + } + + public void changed() { + if (myBulkUpdateLevel > 0) return; + + myEffectiveLocalRepositoryCache = null; + myDefaultPluginsCache = null; + fireChanged(); + } + @NotNull - MavenExecutionOptions.PluginUpdatePolicy getPluginUpdatePolicy() { + public MavenExecutionOptions.PluginUpdatePolicy getPluginUpdatePolicy() { return pluginUpdatePolicy; } public void setPluginUpdatePolicy(MavenExecutionOptions.PluginUpdatePolicy value) { if (value == null) return; // null may come from deserializator this.pluginUpdatePolicy = value; + changed(); } @NotNull @@ -71,6 +90,7 @@ public class MavenGeneralSettings implements Cloneable { public void setChecksumPolicy(MavenExecutionOptions.ChecksumPolicy value) { if (value == null) return; // null may come from deserializator this.checksumPolicy = value; + changed(); } @NotNull @@ -81,6 +101,7 @@ public class MavenGeneralSettings implements Cloneable { public void setFailureBehavior(MavenExecutionOptions.FailureMode value) { if (value == null) return; // null may come from deserializator this.failureBehavior = value; + changed(); } public @@ -92,6 +113,7 @@ public class MavenGeneralSettings implements Cloneable { public void setOutputLevel(MavenExecutionOptions.LoggingLevel value) { if (value == null) return; // null may come from deserializator this.outputLevel = value; + changed(); } public @@ -103,6 +125,7 @@ public class MavenGeneralSettings implements Cloneable { public void setSnapshotUpdatePolicy(MavenExecutionOptions.SnapshotUpdatePolicy value) { if (value == null) return; // null may come from deserializator this.snapshotUpdatePolicy = value; + changed(); } public boolean isWorkOffline() { @@ -111,29 +134,30 @@ public class MavenGeneralSettings implements Cloneable { public void setWorkOffline(boolean workOffline) { this.workOffline = workOffline; + changed(); } @NotNull - public String getOverridenLocalRepository() { - return overridenLocalRepository; + public String getOverriddenLocalRepository() { + return overriddenLocalRepository; } public File getEffectiveLocalRepository() { File result = myEffectiveLocalRepositoryCache; if (result != null) return result; - result = MavenUtil.resolveLocalRepository(overridenLocalRepository, mavenHome, mavenSettingsFile); + result = MavenUtil.resolveLocalRepository(overriddenLocalRepository, mavenHome, mavenSettingsFile); myEffectiveLocalRepositoryCache = result; return result; } - public void setOverridenLocalRepository(final @Nullable String overridenLocalRepository) { - if (overridenLocalRepository != null) { - if (!Comparing.equal(this.overridenLocalRepository, overridenLocalRepository)) { - this.overridenLocalRepository = overridenLocalRepository; + public void setOverriddenLocalRepository(final @Nullable String overridenLocalRepository) { + if (overridenLocalRepository == null) return; - localRepositoryChanged(); - } + if (!Comparing.equal(this.overriddenLocalRepository, overridenLocalRepository)) { + this.overriddenLocalRepository = overridenLocalRepository; + + changed(); } } @@ -147,7 +171,7 @@ public class MavenGeneralSettings implements Cloneable { this.mavenHome = mavenHome; myDefaultPluginsCache = null; - pathsChanged(); + changed(); } } @@ -162,23 +186,14 @@ public class MavenGeneralSettings implements Cloneable { } public void setMavenSettingsFile(@Nullable String mavenSettingsFile) { - if (mavenSettingsFile != null) { - if (!Comparing.equal(this.mavenSettingsFile, mavenSettingsFile)) { - this.mavenSettingsFile = mavenSettingsFile; - pathsChanged(); - } + if (mavenSettingsFile == null) return; + + if (!Comparing.equal(this.mavenSettingsFile, mavenSettingsFile)) { + this.mavenSettingsFile = mavenSettingsFile; + changed(); } } - public void localRepositoryChanged() { - pathsChanged(); - } - - private void pathsChanged() { - myEffectiveLocalRepositoryCache = null; - fidePathsChanged(); - } - @Nullable public File getEffectiveUserSettingsIoFile() { return MavenUtil.resolveUserSettingsFile(getMavenSettingsFile()); @@ -242,6 +257,7 @@ public class MavenGeneralSettings implements Cloneable { public void setPrintErrorStackTraces(boolean value) { printErrorStackTraces = value; + changed(); } public boolean isUsePluginRegistry() { @@ -250,6 +266,7 @@ public class MavenGeneralSettings implements Cloneable { public void setUsePluginRegistry(final boolean usePluginRegistry) { this.usePluginRegistry = usePluginRegistry; + changed(); } public boolean isNonRecursive() { @@ -258,6 +275,7 @@ public class MavenGeneralSettings implements Cloneable { public void setNonRecursive(final boolean nonRecursive) { this.nonRecursive = nonRecursive; + changed(); } public boolean equals(final Object o) { @@ -275,7 +293,7 @@ public class MavenGeneralSettings implements Cloneable { if (workOffline != that.workOffline) return false; if (!checksumPolicy.equals(that.checksumPolicy)) return false; if (!failureBehavior.equals(that.failureBehavior)) return false; - if (!overridenLocalRepository.equals(that.overridenLocalRepository)) return false; + if (!overriddenLocalRepository.equals(that.overriddenLocalRepository)) return false; if (!mavenHome.equals(that.mavenHome)) return false; if (!mavenSettingsFile.equals(that.mavenSettingsFile)) return false; @@ -287,7 +305,7 @@ public class MavenGeneralSettings implements Cloneable { result = (workOffline ? 1 : 0); result = 31 * result + mavenHome.hashCode(); result = 31 * result + mavenSettingsFile.hashCode(); - result = 31 * result + overridenLocalRepository.hashCode(); + result = 31 * result + overriddenLocalRepository.hashCode(); result = 31 * result + (printErrorStackTraces ? 1 : 0); result = 31 * result + (usePluginRegistry ? 1 : 0); result = 31 * result + (nonRecursive ? 1 : 0); @@ -304,6 +322,7 @@ public class MavenGeneralSettings implements Cloneable { try { MavenGeneralSettings result = (MavenGeneralSettings)super.clone(); result.myListeners = ContainerUtil.createEmptyCOWList(); + result.myBulkUpdateLevel = 0; return result; } catch (CloneNotSupportedException e) { @@ -319,13 +338,13 @@ public class MavenGeneralSettings implements Cloneable { myListeners.remove(l); } - private void fidePathsChanged() { + private void fireChanged() { for (Listener each : myListeners) { - each.pathsChanged(); + each.changed(); } } public interface Listener { - void pathsChanged(); + void changed(); } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java index 416b72e9da9f..71b8d64b0726 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsManagerWatcher.java @@ -142,7 +142,7 @@ public class MavenProjectsManagerWatcher { EditorFactory.getInstance().getEventMulticaster().addDocumentListener(myDocumentListener, myBusConnection); final MavenGeneralSettings.Listener mySettingsPathsChangesListener = new MavenGeneralSettings.Listener() { - public void pathsChanged() { + public void changed() { updateSettingsFilePointers(); onSettingsChange(); } @@ -256,7 +256,7 @@ public class MavenProjectsManagerWatcher { } private void onSettingsXmlChange() { - myGeneralSettings.localRepositoryChanged(); + myGeneralSettings.changed(); // onSettingsChange() will be called indirectly by pathsChanged listener on GeneralSettings object } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java index a208f6155e52..59284f64d705 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenTestCase.java @@ -251,7 +251,7 @@ public abstract class MavenTestCase extends UsefulTestCase { } protected void setRepositoryPath(String path) { - getMavenGeneralSettings().setOverridenLocalRepository(path); + getMavenGeneralSettings().setOverriddenLocalRepository(path); } protected String getProjectPath() { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java index 32acbc98daa2..6ad7a3facbb8 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/indices/MavenIndicesTestFixture.java @@ -50,7 +50,8 @@ public class MavenIndicesTestFixture { addToRepository(each); } - MavenProjectsManager.getInstance(myProject).getGeneralSettings().setOverridenLocalRepository(myRepositoryHelper.getTestDataPath(myLocalRepoDir)); + MavenProjectsManager.getInstance(myProject).getGeneralSettings().setOverriddenLocalRepository( + myRepositoryHelper.getTestDataPath(myLocalRepoDir)); getIndicesManager().setTestIndexDir(new File(myDir, "MavenIndices")); myIndicesManager = MavenProjectIndicesManager.getInstance(myProject); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java index 2dda71beb851..165014f8db84 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/MavenSettingsTest.java @@ -26,7 +26,7 @@ public class MavenSettingsTest extends MavenTestCase { MavenGeneralSettings s = new MavenGeneralSettings(); s.addListener(new MavenGeneralSettings.Listener() { @Override - public void pathsChanged() { + public void changed() { log[0] += "changed "; } });