/// <summary> /// Creates an instance of the specified mojo name within the specified application domain. /// </summary> /// <param name="mojoName">the name of the mojo to create</param> /// <param name="pluginAssemblyFile">the.NET maven plugin</param> /// <param name="paramFile">the file containing the parameters to inject into an instance /// of the specified mojo</param> /// <param name="applicationDomain"> /// the application domain used to create the specified mojo name instance</param> /// <returns>an instance of the specified mojo name within the specified application domain</returns> internal AbstractMojo CreateAbstractMojoFor(String mojoName, FileInfo pluginAssemblyFile, FileInfo paramFile, AppDomain applicationDomain) { ObjectHandle objectHandle = applicationDomain.CreateInstanceFrom(pluginAssemblyFile.FullName, mojoName); AbstractMojo abstractMojo = (AbstractMojo)objectHandle.Unwrap(); abstractMojo.InjectFields(paramFile.FullName); return(abstractMojo); }
public static int Main(string[] args) { string paramFilePath = GetArgFor("parameterFile", args); string assemblyFilePath = GetArgFor("assemblyFile", args); string mojoName = GetArgFor("mojoName", args); Console.WriteLine("ParamFile = {0}, AssemblyFile = {1}, MojoName = {2}", paramFilePath, assemblyFilePath, mojoName); if (paramFilePath == null || assemblyFilePath == null || mojoName == null) { Console.WriteLine("Missing arguement"); return(1); } FileInfo assemblyFile = new FileInfo(assemblyFilePath); if (!assemblyFile.Exists) { Console.WriteLine("Assembly File does not exist: File = " + assemblyFile.FullName); return(1); } FileInfo paramFile = new FileInfo(paramFilePath); if (!paramFile.Exists) { Console.WriteLine("Param File does not exist: File = " + paramFile.FullName); return(1); } PluginLoader pluginLoader = new PluginLoader(); AppDomain applicationDomain = pluginLoader.LoadPlugin(assemblyFile); AbstractMojo abstractMojo = pluginLoader.CreateAbstractMojoFor(mojoName, assemblyFile, paramFile, applicationDomain); try { abstractMojo.Execute(); } catch (Exception e) { Console.WriteLine("Exception occcurred: " + e); return(1); } return(0); }