コード例 #1
0
        public override bool Execute()
        {
            Log.LogMessage("GenerateParameterNames Task");
            Log.LogMessage("  ApiOutputFile:  {0}", ApiOutputFile);
            Log.LogMessage("  GeneratedFile:  {0}", GeneratedFile);
            Log.LogMessage("  SourceJars:     {0}", string.Join(";", SourceJars.Select(x => x.ItemSpec)));
            Log.LogMessage("  TransformFiles: {0}", string.Join(";", TransformFiles.Select(x => x.ItemSpec)));

            var generatorParameters = new GeneratorParameters
            {
                ReservedPrefix  = ReservedPrefix ?? string.Empty,
                ReservedSuffix  = ReservedSuffix ?? string.Empty,
                ParameterCasing = (TextCasing)Enum.Parse(typeof(TextCasing), ParameterCasing, true),
                ForceMeaningfulParameterNames = ForceMeaningfulParameterNames
            };

            // create the folder
            var dir = Path.GetDirectoryName(GeneratedFile.ItemSpec);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            // read the jar files
            var classPath = new ClassPath()
            {
                ApiSource = "class-parse"
            };

            foreach (var jarFile in SourceJars)
            {
                if (ClassPath.IsJarFile(jarFile.ItemSpec))
                {
                    classPath.Load(jarFile.ItemSpec);
                }
            }

            // build up the object tree
            var metadataElement = classPath.ToXElement();

            // remove any nodes that the user wants
            metadataElement = TransformXml(metadataElement);

            var packages    = JavaPackage.Parse(metadataElement);
            var xParameters = packages.SelectMany(p => p.ToXElement(generatorParameters));

            // create the new xml document
            var xDoc = new XDocument(
                new XElement("metadata",
                             xParameters.ToArray()));

            // make sure we don't have anything not in the api.xml
            RemoveIgnoredApiXmlMembers(xDoc);

            // save
            xDoc.Save(GeneratedFile.ItemSpec);

            return(true);
        }
コード例 #2
0
        public override bool Execute()
        {
            Log.LogMessage("Begin TransformXmlFiles");

            if (TransformFiles?.Any() ?? false)
            {
                Log.LogMessage("Creating Microsoft.Web.Publishing.Tasks.TransformXml");

                foreach (var inputFile in TransformFiles)
                {
                    Log.LogMessage($"Preparing to transform '{inputFile.ItemSpec}'");

                    //Get the env name
                    var fileParts = Path.GetFileNameWithoutExtension(inputFile.ItemSpec).Split('.');
                    var envName   = fileParts.LastOrDefault();

                    //Build output directory as base output directory plus environment plus project (if supplied)
                    var outDir = Path.Combine(OutputDirectory, envName);
                    if (!String.IsNullOrEmpty(ProjectName))
                    {
                        outDir = Path.Combine(outDir, ProjectName);
                    }

                    //Build the output path
                    var outFile = Path.Combine(outDir, TargetFile);

                    //Make sure the directory exists
                    if (!Directory.Exists(outDir))
                    {
                        Log.LogMessage($"Creating directory '{outDir}'");
                        Directory.CreateDirectory(outDir);
                    }
                    ;

                    //Transform the config
                    var transform      = new XmlTransformation(inputFile.ItemSpec);
                    var sourceDocument = new XmlTransformableDocument()
                    {
                        PreserveWhitespace = true
                    };
                    sourceDocument.Load(SourceFile);

                    Log.LogMessage($"Transforming file");
                    if (transform.Apply(sourceDocument))
                    {
                        sourceDocument.Save(outFile);
                    }
                    else
                    {
                        Log.LogError($"Error transforming file");
                        return(false);
                    };
                }
                ;
            }
            ;

            Log.LogMessage("End TransformXmlFiles");
            return(true);
        }
コード例 #3
0
        public override bool Execute()
        {
            Log.LogMessage("Begin TransformXmlFiles");

            if (TransformFiles?.Any() ?? false)
            {
                Log.LogMessage("Creating Microsoft.Web.Publishing.Tasks.TransformXml");
                var transform = new Microsoft.Web.Publishing.Tasks.TransformXml()
                {
                    BuildEngine = BuildEngine,
                    HostObject  = HostObject
                };

                foreach (var inputFile in TransformFiles)
                {
                    Log.LogMessage($"Preparing to transform '{inputFile.ItemSpec}'");

                    //Get the env name
                    var fileParts = Path.GetFileNameWithoutExtension(inputFile.ItemSpec).Split('.');
                    var envName   = fileParts.LastOrDefault();

                    //Build output directory as base output directory plus environment plus project (if supplied)
                    var outDir = Path.Combine(OutputDirectory, envName);
                    if (!String.IsNullOrEmpty(ProjectName))
                    {
                        outDir = Path.Combine(outDir, ProjectName);
                    }

                    //Build the output path
                    var outFile = Path.Combine(outDir, TargetFile);

                    //Make sure the directory exists
                    if (!Directory.Exists(outDir))
                    {
                        Log.LogMessage($"Creating directory '{outDir}'");
                        Directory.CreateDirectory(outDir);
                    }
                    ;

                    //Transform the config
                    transform.Destination = outFile;
                    transform.Source      = SourceFile;
                    transform.Transform   = inputFile.ItemSpec;

                    Log.LogMessage($"Transforming file");
                    if (!transform.Execute())
                    {
                        Log.LogError($"Error transforming file");
                        return(false);
                    }
                    ;
                }
                ;
            }
            ;

            Log.LogMessage("End TransformXmlFiles");
            return(true);
        }