From ab64d5b0738036740ba02b22cabbd1920c12cb93 Mon Sep 17 00:00:00 2001 From: Tanyi Chen Date: Mon, 25 May 2020 15:24:08 +0800 Subject: [PATCH 1/2] feat: update pom after generation --- eng/mgmt/gulpfile.js | 54 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/eng/mgmt/gulpfile.js b/eng/mgmt/gulpfile.js index 273cb544497d..32b2d43ce52e 100644 --- a/eng/mgmt/gulpfile.js +++ b/eng/mgmt/gulpfile.js @@ -105,7 +105,7 @@ var handleInput = function(projects, cb) { } } -var codegen = function(project, cb) { +var codegen = async function(project, cb) { if (!args['preserve']) { deleteMgmtFolders(project); } @@ -157,7 +157,10 @@ var codegen = function(project, cb) { } console.log('Command: ' + cmd); - return execa(cmd, [], { shell: true, stdio: "inherit" }); + await execa(cmd, [], { shell: true, stdio: "inherit" }); + if (cmd.includes('--multiapi')) { + changePom(project); + } }; var deleteMgmtFolders = function(project) { @@ -202,6 +205,53 @@ var deleteFolderRecursive = function(folder) { } }; +var changePom = function(project) { + var modules = [] + + project = project.split('/')[0] + var projectRoot = path.join(sdkRoot, 'sdk', project); + var projectPom = path.join(projectRoot, mgmtPomFilename); + + // search modules + fs.readdirSync(projectRoot).forEach(function(folder, index) { + if (fs.lstatSync(path.join(projectRoot, folder)).isDirectory()) { + if (folder.startsWith('mgmt-')) { + modules.push(folder); + } + } + }) + + pomHeader = +` +`; + pomVersion = '1.0.0 ' + + // add all modules to pom + if(fs.existsSync(projectPom)) { + var xmlContent = fs.readFileSync(projectPom, {encoding: 'utf-8'}); + var xml = xmlparser.parse(xmlContent); + xml.project.modules.module = modules; + xmlContent = new xmlparser.j2xParser({format: true, indentBy: " "}).parse(xml); + xmlContent = xmlContent.replace('', pomHeader); + xmlContent = xmlContent.replace('1.0.0', pomVersion); + + fs.writeFileSync(projectPom, xmlContent, {encoding: 'utf-8'}) + } + + // change all module pom.xml + modules.forEach(function(mod, index) { + var modulePom = path.join(projectRoot, mod, 'pom.xml'); + if (fs.existsSync(modulePom)) { + var pomContent = fs.readFileSync(modulePom, {encoding: 'utf-8'}); + pomContent = pomContent.replace('1.1.0', '1.3.0'); + pomContent = pomContent.replace('../../../pom.management.xml', '../../parents/azure-arm-parent/pom.xml'); + } + }); +} + gulp.task('java:build', shell.task('mvn package javadoc:aggregate -DskipTests=true -q')); gulp.task('java:stage', ['java:build'], function(){ return gulp.src('./target/site/apidocs/**/*').pipe(gulp.dest('./dist')); From e82765efe66d6a8b46320659cb9922ed5cdf7d88 Mon Sep 17 00:00:00 2001 From: Tanyi Chen Date: Mon, 25 May 2020 17:06:07 +0800 Subject: [PATCH 2/2] fix: write back to pom --- eng/mgmt/gulpfile.js | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/mgmt/gulpfile.js b/eng/mgmt/gulpfile.js index 32b2d43ce52e..c57eec3c8890 100644 --- a/eng/mgmt/gulpfile.js +++ b/eng/mgmt/gulpfile.js @@ -248,6 +248,7 @@ var changePom = function(project) { var pomContent = fs.readFileSync(modulePom, {encoding: 'utf-8'}); pomContent = pomContent.replace('1.1.0', '1.3.0'); pomContent = pomContent.replace('../../../pom.management.xml', '../../parents/azure-arm-parent/pom.xml'); + fs.writeFileSync(modulePom, pomContent, {encoding: 'utf-8'}); } }); }