blob: c4a1cea7a38166c4891c3e4e73e0122aaec457cf [file] [log] [blame]
BUG TITLE: Mono does not allow creation of a new app domain manager
DESCRIPTION: Mono does not support the use of the APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE environment variables to plugin a new app domain manager.
IMPACT: This impact is: 1) developers can't write Maven plugins in .NET; and 2) NPanday plugins like the solution generator can't be executed in Mono runtime.
I. SETTING UP:
Prerequisites:
1) Windows XP
2) Microsoft SDK 2.0 Installed
3) Microsoft Visual Studio Installed
4) Mono Installed (tested with 1.2.3.1)
Set Environmental Variables for test:
NPANDAY_FRAMEWORK (Microsoft .NET Framework)
NPANDAY_SDK (Microsoft SDK 2.0)
NPANDAY_MONO (Mono bin directory)
NPANDAY_MONO also needs to be included within the path.
Samples of Environmental Variables
NPANDAY_FRAMEWORK=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
NPANDAY_SDK="C:\Program Files\Microsoft.NET\SDK\v2.0\Bin"
NPANDAY_MONO="C:\Program Files\Mono-1.2.3.1\bin"
II. RUNNING THE TESTS:
The scripts should be built with Microsoft nmake (located within the SDK bin).
For Microsoft: goto the parent directory of the test distribution and from the commandline type:
nmake -f Makefile.mak install
nmake -f Makefile.mak test
At the end of the test, you should see something similar to:
-----Starting Plugin Loader-----
Assembly File = ..\NPanday.Test.Issue67.Application\NPanday.Test.Issue67.Application.dll
Loading Plugin: C:\Documents and Settings\shane\npanday-apache\trunk\integration-tests\mono-bug\NPanday.Test.Issue67.Application
Creating Plugin Domain Manager
-----Ending Plugin Loader-----
-----Test OK-----
Now for Mono: from the commandline
nmake -f Makefile.mak clean
nmake -f Makefile.mak install vendor=MONO
nmake -f Makefile.mak test vendor=MONO
At the end of the test, you should see something similar to:
----Starting Plugin Loader-----
Assembly File = ..\NPanday.Test.Issue67.Application\NPanday.Test.Issue67.Application.dll
Loading Plugin: C:\Documents and Settings\shane\npanday-apache\trunk\integration-tests\mono-bug\NPanday.Test.Issue67.Application
-----Failed to find test app domain manager-----
-----Test Failed----
III. Test Details
NPanday.Test.Issue67.Runner: This class instance takes two args: 1) the vendor (MONO or Microsoft) and the startProcessAssembly, which references NPanday.Test.Issue67.Loader.exe. The vendor arg tells the Runner whether to start the Loader.exe under the Microsoft CLR or the Mono one. This class instance also sets the application manager information that the Loader.exe process will use by setting the APPDOMAIN_MANAGER_ASM and the APPDOMAIN_MANAGER_TYPE environmental variables.
NPanday.Test.Issue67.Loader: This class attempts to get the correct instance of the AppDomainManager (TestAppDomainManager) and invoke a method on it.
The NPanday.Test.Issue67.Domain: Contains the TestAppDomainManager class.