UNPKG

@atomist/sdm-pack-spring

Version:

Atomist software delivery machine extension pack for Spring and Spring Boot applications

162 lines (160 loc) 6.88 kB
"use strict"; /* * Copyright © 2018 Atomist, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const automation_client_1 = require("@atomist/automation-client"); const XmldocFileParser_1 = require("../../xml/XmldocFileParser"); /** * Return dependencies under dependencies section */ function findDeclaredDependencies(p, glob = "pom.xml") { return __awaiter(this, void 0, void 0, function* () { return findDeclaredDependenciesWith(p, "//project/dependencies/dependency", glob, {}); }); } exports.findDeclaredDependencies = findDeclaredDependencies; /** * Return plugins under plugins section */ function findDeclaredPlugins(p, glob = "pom.xml") { return __awaiter(this, void 0, void 0, function* () { return findDeclaredPluginsWith(p, "//project/build/plugins/plugin", glob, {}); }); } exports.findDeclaredPlugins = findDeclaredPlugins; /** * Return plugins under plugin management section */ function findDeclaredManagedPlugins(p, glob = "pom.xml") { return __awaiter(this, void 0, void 0, function* () { return findDeclaredPluginsWith(p, "//project/build/pluginManagement/plugins/plugin", glob, {}); }); } exports.findDeclaredManagedPlugins = findDeclaredManagedPlugins; /** * Find declared dependencies using the given path expression. * Control over the path expression allows us to look under dependencyManagement, * or directly in dependencies section under project * @param {Project} p * @param {string} pathExpression * @param {string} glob * @param {FunctionRegistry} functionRegistry * @return {Promise<Dependencies>} */ function findDeclaredDependenciesWith(p, pathExpression, glob = "pom.xml", functionRegistry) { return __awaiter(this, void 0, void 0, function* () { const dependencies = yield automation_client_1.astUtils.gatherFromMatches(p, new XmldocFileParser_1.XmldocFileParser(), glob, pathExpression, m => { return extractVersionedArtifact(m); }, functionRegistry); return { dependencies }; }); } /** * Find declared plugins using the given path expression. * Control over the path expression allows us to look under pluginManagement, * or directly in plugin section under project/build * @param {Project} p * @param {string} pathExpression * @param {string} glob * @param {FunctionRegistry} functionRegistry * @return {Promise<Dependencies>} */ function findDeclaredPluginsWith(p, pathExpression, glob = "pom.xml", functionRegistry) { return __awaiter(this, void 0, void 0, function* () { const plugins = yield automation_client_1.astUtils.gatherFromMatches(p, new XmldocFileParser_1.XmldocFileParser(), glob, pathExpression, m => { return extractPlugin(m); }, functionRegistry); return plugins; }); } /* <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> */ function extractVersionedArtifact(n) { const groupId = n.$children.find(c => c.$value.startsWith("<groupId>")); const artifactId = n.$children.find(c => c.$value.startsWith("<artifactId>")); const version = n.$children.find(c => c.$value.startsWith("<version>")); const scope = n.$children.find(c => c.$value.startsWith("<scope>")); if (!(!!groupId && !!artifactId)) { throw new Error(`groupId and artifactId are required in [${n.$value}]`); } return { group: groupId.innerValue, artifact: artifactId.innerValue, name: artifactId.innerValue, version: !!version ? version.innerValue : undefined, scope: !!scope ? scope.innerValue : undefined, }; } exports.extractVersionedArtifact = extractVersionedArtifact; function extractPlugin(n) { const groupId = n.$children.find(c => c.$value.startsWith("<groupId>")); const artifactId = n.$children.find(c => c.$value.startsWith("<artifactId>")); const version = n.$children.find(c => c.$value.startsWith("<version>")); const configuration = n.$children.find(c => c.$value.startsWith("<configuration>")); const inherited = n.$children.find(c => c.$value.startsWith("<inherited>")); const extensions = n.$children.find(c => c.$value.startsWith("<extensions>")); if (!(!!groupId && !!artifactId)) { throw new Error(`groupId and artifactId are required in [${n.$value}]`); } return { group: groupId.innerValue, artifact: artifactId.innerValue, version: !!version ? version.innerValue : undefined, configuration: !!configuration ? parseConfiguration(configuration.$children) : undefined, inherited: !!inherited ? !!inherited.innerValue : undefined, extensions: !!extensions ? !!extensions.innerValue : undefined, }; } function parseConfigurationNode(n) { const configurations = {}; const configurationName = n.$name; if (n.$children.length === 0) { configurations[configurationName] = n.innerValue; } else { const configurationValue = parseConfigurationNode(n); configurations[configurationName] = configurationValue; } return configurations; } function parseConfiguration(nodes) { const configurations = {}; for (const n of nodes) { const configurationName = n.$name; if (n.$children.length === 0) { configurations[configurationName] = n.innerValue; } else { const configurationValue = parseConfigurationNode(n); configurations[configurationName] = configurationValue; } } return configurations; } //# sourceMappingURL=fromPom.js.map