Author: apadilla
Date: Thu May 26 03:25:17 2011
New Revision: 1127766
URL: http://svn.apache.org/viewvc?rev=1127766&view=rev
Log:
[NPANDAY-433]
- made sure when NPanday is stopped, POMs should not be updated if project is
changed
Added:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs?rev=1127766&r1=1127765&r2=1127766&view=diff
==============================================================================
---
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
(original)
+++
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
Thu May 26 03:25:17 2011
@@ -1549,6 +1549,11 @@ namespace NPanday.VisualStudio.Addin
/// <seealso class='IDTExtensibility2' />
public void OnDisconnection(ext_DisconnectMode disconnectMode, ref
Array custom)
{
+ //check if NPanday is already closed
+ if ( _applicationObject == null )
+ {
+ return;
+ }
mavenConnected = false;
//remove maven menus
DTE2 dte2 = _applicationObject;
@@ -1559,19 +1564,30 @@ namespace NPanday.VisualStudio.Addin
outputWindowPane.Clear();
mavenRunner.ClearOutputWindow();
+ List<CommandBarControl> npandayCmdBarCtrl = new
List<CommandBarControl>();
+
foreach (CommandBar commandBar in (CommandBars)dte2.CommandBars)
{
foreach (CommandBarControl control in commandBar.Controls)
{
if (control.Caption.ToLower().Contains("maven") ||
control.Caption.ToLower().Contains("npanday") ||
control.Caption.ToLower().Contains("pom"))
{
- // i dont know what 'false' means. but it works.
- control.Delete(false);
+ //getting the npanday controls instead of deleting
+ //to prevent index out of bounds exception being
thrown
+ //when deleting from within the List of
CommandBarControls
+ npandayCmdBarCtrl.Add(control);
}
}
}
+ //Delete the npandayCtrls
+ foreach (CommandBarControl delCtrl in npandayCmdBarCtrl)
+ {
+ //false works a temporary control
+ delCtrl.Delete(false);
+ }
+
//unregister maven event listener
foreach (Project project in dte2.Solution.Projects)
{
@@ -1585,8 +1601,8 @@ namespace NPanday.VisualStudio.Addin
continue;
}
- //vsProject.Events.ReferencesEvents.ReferenceRemoved
- // -= new
_dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
+ vsProject.Events.ReferencesEvents.ReferenceRemoved
+ -= new
_dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
}
@@ -1599,6 +1615,22 @@ namespace NPanday.VisualStudio.Addin
{
s.Stop();
}
+
+ if (disconnectMode !=
Extensibility.ext_DisconnectMode.ext_dm_HostShutdown)
+ {
+ this.OnBeginShutdown(ref custom);
+ }
+ _applicationObject = null;
+ }
+
+ //used for Unit Testing on Disconnect
+ protected bool IsApplicationObjectNull()
+ {
+ if (_applicationObject == null)
+ {
+ return true;
+ }
+ return false;
}
#endregion
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs?rev=1127766&r1=1127765&r2=1127766&view=diff
==============================================================================
---
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
(original)
+++
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
Thu May 26 03:25:17 2011
@@ -66,7 +66,11 @@ namespace NPanday.VisualStudio.Addin
return filtered;
}
-
+
+ public NPandayImportProjectForm()
+ {
+ }
+
public NPandayImportProjectForm(DTE2 applicationObject, Logger logger)
{
this.applicationObject = applicationObject;
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj
URL:
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj?rev=1127766&r1=1127765&r2=1127766&view=diff
==============================================================================
---
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj
(original)
+++
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj
Thu May 26 03:25:17 2011
@@ -79,6 +79,7 @@ under the License.
<Compile Include="MavenSettingsConfigurationTest.cs" />
<Compile Include="RenameWebReferenceTest.cs" />
<Compile Include="ResyncArtifactSnapshot.cs" />
+ <Compile Include="SuccessfulDisconnectTest.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
Added:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs?rev=1127766&view=auto
==============================================================================
---
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
(added)
+++
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
Thu May 26 03:25:17 2011
@@ -0,0 +1,35 @@
+using System;
+using NUnit.Framework;
+using NPanday.Utils;
+using System.IO;
+using NPanday.VisualStudio.Addin;
+using Extensibility;
+
+namespace ConnectTest.UtilsTest
+{
+ [TestFixture]
+ public class SuccessfulDisconnectTest
+ {
+ public class ConnectTest : Connect
+ {
+ public bool IsNpandayDisconnected()
+ {
+ return this.IsApplicationObjectNull();
+ }
+ }
+
+ [Test]
+ public void CheckCleanDisconnectTest()
+ {
+ ConnectTest npandayConnect = new ConnectTest();
+
+ ext_DisconnectMode disconnectMode =
ext_DisconnectMode.ext_dm_HostShutdown;
+ Object[] holder = {""};
+ Array custom = (Array)holder;
+
+ npandayConnect.OnDisconnection(disconnectMode,ref custom);
+
+ Assert.AreEqual(true,npandayConnect.IsNpandayDisconnected());
+ }
+ }
+}