Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
        }