Adding support for maven multi module projects

This commit is contained in:
Peter Murray
2022-10-25 16:23:05 +00:00
committed by GitHub
parent 0b9cd8f382
commit 91697157ce
23 changed files with 988 additions and 172 deletions
-18
View File
@@ -4,23 +4,5 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
<<<<<<< HEAD
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/node_modules/.bin/mocha",
"args": [
"-r",
"ts-node/register",
"--colors",
"${workspaceFolder}/src/depgraph.test.ts"
],
}
=======
>>>>>>> 4b5ca60 (Initial commit)
]
}
+1 -25
View File
@@ -1,26 +1,4 @@
{
<<<<<<< HEAD
"debug.onTaskErrors": "showErrors",
"files.trimTrailingWhitespace": true,
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.detectIndentation": false,
"[javascript]": {
"editor.tabSize": 2
},
"[json]": {
"editor.tabSize": 2
},
"[yaml]": {
"editor.tabSize": 2
},
"[html]": {
"editor.tabSize": 2
},
// GitHub Codespace Theme
"workbench.colorTheme": "GitHub Dark Dimmed"
}
=======
"debug.onTaskErrors": "showErrors",
"files.trimTrailingWhitespace": true,
"editor.tabSize": 2,
@@ -41,8 +19,6 @@
// GitHub Codespace Theme
"workbench.colorTheme": "GitHub Dark Dimmed",
"jest.autoRun": {
"watch": false,
"onSave": "test-file"
"watch": false
}
}
>>>>>>> 4b5ca60 (Initial commit)
+5
View File
@@ -16,6 +16,11 @@ inputs:
type: string
default: ${{ github.token }}
github-api-url:
description: The URL to the GitHub API to use to publish the results to, defaults to reading this from the Actions environment
type: string
required: false
runs:
using: node16
main: dist/index.js
+62 -19
View File
@@ -35,8 +35,6 @@ const fs = __importStar(__nccwpck_require__(7147));
const packageurl_js_1 = __nccwpck_require__(8915);
const dependency_submission_toolkit_1 = __nccwpck_require__(9810);
class MavenDependencyGraph {
// //@ ts-ignore
// private rootPackage: DepgraphArtifact;
constructor(graph) {
this.depGraph = graph;
this.cache = new dependency_submission_toolkit_1.PackageCache();
@@ -85,9 +83,9 @@ class MavenDependencyGraph {
parseDependencies() {
const graph = this.depGraph;
const cache = this.cache;
const rootPackageArtifactId = graph.graphName;
let rootPackageNumericId = 0;
const rootArtifactIds = [];
const dependencyIdMap = dependencyMap(graph.dependencies);
const dependencyArtifactIdsWithParents = extractDependencyArtifactIdsWithParents(graph.dependencies);
const idToPackageCachePackage = new Map();
// Create the packages for all known artifacts
graph.artifacts.forEach((artifact) => {
@@ -96,8 +94,8 @@ class MavenDependencyGraph {
idToPackageCachePackage[artifact.id] = pkg;
// Store a reference from the package URL to the original artifact as the artifact has extra metadata we need later for scopes and optionality
this.packageUrlToArtifact[artifactUrl.toString()] = artifact;
if (artifact.artifactId === rootPackageArtifactId) {
rootPackageNumericId = artifact.numericId - 1;
if (dependencyArtifactIdsWithParents.indexOf(artifact.id) === -1) {
rootArtifactIds.push(artifact.id);
}
});
// Now that all packages are known, process the dependencies for each and link them
@@ -118,15 +116,27 @@ class MavenDependencyGraph {
});
}
});
this.directDependencies = getDirectDependencies(rootPackageNumericId, graph.dependencies).map(id => { return idToPackageCachePackage[id]; });
const uniqueRootArtifactDependencies = [];
rootArtifactIds.forEach(rootArtifactId => {
const dependencyIds = getDirectDependencies(rootArtifactId, graph.dependencies);
if (dependencyIds) {
dependencyIds.forEach(dependencyId => {
if (uniqueRootArtifactDependencies.indexOf(dependencyId) === -1) {
uniqueRootArtifactDependencies.push(dependencyId);
}
});
}
});
this.directDependencies = uniqueRootArtifactDependencies.map(depId => idToPackageCachePackage[depId]);
}
}
exports.MavenDependencyGraph = MavenDependencyGraph;
function parseDependencyJson(file) {
function parseDependencyJson(file, isMultiModule = false) {
try {
const data = fs.readFileSync(file);
try {
const depGraph = JSON.parse(data.toString('utf-8'));
depGraph.isMultiModule = isMultiModule;
return depGraph;
}
catch (err) {
@@ -153,6 +163,9 @@ function getDependencyScopeForMavenScope(mavenScopes) {
// The default scope for now as we only have runtime and development currently
return 'runtime';
}
function extractDependencyArtifactIdsWithParents(dependencies) {
return dependencies.map(dependency => { return dependency.to; });
}
function dependencyMap(dependencies) {
const map = new Map();
dependencies.forEach(dependency => {
@@ -166,8 +179,8 @@ function dependencyMap(dependencies) {
});
return map;
}
function getDirectDependencies(rootPackageNumericId, dependencies) {
const topLevel = dependencies.filter(dependency => { return dependency.numericFrom === rootPackageNumericId; });
function getDirectDependencies(artifactId, dependencies) {
const topLevel = dependencies.filter(dependency => { return dependency.from === artifactId; });
return topLevel.map(dep => { return dep.to; });
}
//# sourceMappingURL=depgraph.js.map
@@ -283,9 +296,11 @@ exports.generateDependencyGraph = exports.generateSnapshot = void 0;
const exec = __importStar(__nccwpck_require__(1514));
const core = __importStar(__nccwpck_require__(2186));
const path = __importStar(__nccwpck_require__(1017));
const fs = __importStar(__nccwpck_require__(7147));
const dependency_submission_toolkit_1 = __nccwpck_require__(9810);
const depgraph_1 = __nccwpck_require__(8047);
const version = (__nccwpck_require__(2876)/* .version */ .i8);
const DEPGRAPH_MAVEN_PLUGIN_VERSION = '4.0.2';
function generateSnapshot(directory, context, job) {
return __awaiter(this, void 0, void 0, function* () {
const depgraph = yield generateDependencyGraph(directory);
@@ -326,12 +341,23 @@ function generateDependencyGraph(directory) {
}
}
};
const mavenArguments = [
'com.github.ferstl:depgraph-maven-plugin:4.0.1:graph',
core.startGroup('depgraph-maven-plugin:reactor');
const mavenReactorArguments = [
`com.github.ferstl:depgraph-maven-plugin:${DEPGRAPH_MAVEN_PLUGIN_VERSION}:reactor`,
'-DgraphFormat=json',
'-DoutputFileName=reactor.json'
];
core.startGroup('depgraph-maven-plugin');
yield exec.exec('mvn', mavenArguments, options);
yield exec.exec('mvn', mavenReactorArguments, options);
core.info(executionOutput);
core.info(errors);
core.endGroup();
core.startGroup('depgraph-maven-plugin:aggregate');
const mavenAggregateArguments = [
`com.github.ferstl:depgraph-maven-plugin:${DEPGRAPH_MAVEN_PLUGIN_VERSION}:aggregate`,
'-DgraphFormat=json',
'-DoutputFileName=aggregate-depgraph.json'
];
yield exec.exec('mvn', mavenAggregateArguments, options);
core.info(executionOutput);
core.info(errors);
core.endGroup();
@@ -340,11 +366,12 @@ function generateDependencyGraph(directory) {
core.error(err);
throw new Error(`A problem was encountered generating dependency files, please check execution logs for details; ${err.message}`);
}
//TODO need to account for multi module projects
// Now we have the target/dependency-graph.json file to process
const file = path.join(directory, 'target', 'dependency-graph.json');
const targetPath = path.join(directory, 'target');
const isMultiModule = checkForMultiModule(path.join(targetPath, 'reactor.json'));
// Now we have the aggregate dependency graph file to process
const file = path.join(targetPath, 'aggregate-depgraph.json');
try {
return (0, depgraph_1.parseDependencyJson)(file);
return (0, depgraph_1.parseDependencyJson)(file, isMultiModule);
}
catch (err) {
core.error(err);
@@ -353,6 +380,22 @@ function generateDependencyGraph(directory) {
});
}
exports.generateDependencyGraph = generateDependencyGraph;
function checkForMultiModule(reactorJsonFile) {
try {
const data = fs.readFileSync(reactorJsonFile);
try {
const reactor = JSON.parse(data.toString('utf-8'));
// The reactor file will have an array of artifacts making up the parent and child modules if it is a multi module project
return reactor.artifacts && reactor.artifacts.length > 0;
}
catch (err) {
throw new Error(`Failed to parse reactor JSON payload: ${err.message}`);
}
}
catch (err) {
throw new Error(`Failed to load file ${reactorJsonFile}: ${err}`);
}
}
//# sourceMappingURL=snapshot-generator.js.map
/***/ }),
@@ -15647,7 +15690,7 @@ module.exports = require("zlib");
/***/ ((module) => {
"use strict";
module.exports = {"i8":"2.0.1"};
module.exports = {"i8":"3.0.0"};
/***/ })
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "maven-dependency-tree-action",
"version": "2.0.1",
"version": "3.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "maven-dependency-tree-action",
"version": "2.0.1",
"version": "3.0.0",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.10.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "maven-dependency-tree-action",
"version": "2.0.1",
"version": "3.0.0",
"description": "",
"main": "index.js",
"scripts": {
+26 -2
View File
@@ -30,7 +30,7 @@ describe('depgraph', () => {
beforeAll(() => {
depGraph = parseDependencyJson(getTestDataFile('maven-plugin'));
})
});
it('should parse out the top level dependencies', () => {
const mavenDependencies = new MavenDependencyGraph(depGraph);
@@ -94,7 +94,7 @@ describe('depgraph', () => {
beforeAll(() => {
depGraph = parseDependencyJson(getTestDataFile('bookstore-v3'));
})
});
it('should parse out the top level dependencies', () => {
const mavenDependencies = new MavenDependencyGraph(depGraph);
@@ -114,6 +114,30 @@ describe('depgraph', () => {
]);
});
});
describe('bs-parent-dep-tree', () => {
let depGraph;
beforeAll(() => {
depGraph = parseDependencyJson(getTestDataFile('bs-parent-dep-tree'));
});
it('should parse out the top level dependencies', () => {
const mavenDependencies = new MavenDependencyGraph(depGraph);
const topLevelDependencies = mavenDependencies.getDirectDependencies();
expect(mavenDependencies.getPackageCount()).to.equal(19);
const topLevelNames = topLevelDependencies.map(pkg => pkg.packageID());
expect(topLevelNames).to.have.members([
"pkg:maven/org.eclipse.jetty/jetty-server@10.0.10",
"pkg:maven/com.github.octodemo/bs-library@1.0.0-SNAPSHOT",
"pkg:maven/junit/junit@4.13"
]);
});
});
});
});
+27 -12
View File
@@ -8,6 +8,7 @@ type Depgraph = {
graphName: string,
artifacts: DepgraphArtifact[],
dependencies: DepgraphDependency[],
isMultiModule: boolean,
}
type DepgraphArtifact = {
@@ -39,9 +40,6 @@ export class MavenDependencyGraph {
private directDependencies: Array<Package>;
// //@ ts-ignore
// private rootPackage: DepgraphArtifact;
constructor(graph: Depgraph) {
this.depGraph = graph;
this.cache = new PackageCache();
@@ -104,10 +102,9 @@ export class MavenDependencyGraph {
const graph = this.depGraph;
const cache = this.cache;
const rootPackageArtifactId = graph.graphName;
let rootPackageNumericId = 0;
const rootArtifactIds: string[] = [];
const dependencyIdMap = dependencyMap(graph.dependencies);
const dependencyArtifactIdsWithParents = extractDependencyArtifactIdsWithParents(graph.dependencies);
const idToPackageCachePackage: Map<string, Package> = new Map<string, Package>();
// Create the packages for all known artifacts
@@ -119,8 +116,8 @@ export class MavenDependencyGraph {
// Store a reference from the package URL to the original artifact as the artifact has extra metadata we need later for scopes and optionality
this.packageUrlToArtifact[artifactUrl.toString()] = artifact;
if (artifact.artifactId === rootPackageArtifactId) {
rootPackageNumericId = artifact.numericId - 1;
if (dependencyArtifactIdsWithParents.indexOf(artifact.id) === -1) {
rootArtifactIds.push(artifact.id);
}
});
@@ -145,15 +142,29 @@ export class MavenDependencyGraph {
});
}
});
this.directDependencies = getDirectDependencies(rootPackageNumericId, graph.dependencies).map(id => { return idToPackageCachePackage[id] });
const uniqueRootArtifactDependencies: string[] = [];
rootArtifactIds.forEach(rootArtifactId => {
const dependencyIds = getDirectDependencies(rootArtifactId, graph.dependencies);
if (dependencyIds) {
dependencyIds.forEach(dependencyId => {
if (uniqueRootArtifactDependencies.indexOf(dependencyId) === -1) {
uniqueRootArtifactDependencies.push(dependencyId);
}
})
}
});
this.directDependencies = uniqueRootArtifactDependencies.map(depId => idToPackageCachePackage[depId]);
}
}
export function parseDependencyJson(file: string): Depgraph {
export function parseDependencyJson(file: string, isMultiModule: boolean = false): Depgraph {
try {
const data: Buffer = fs.readFileSync(file);
try {
const depGraph: Depgraph = JSON.parse(data.toString('utf-8'));
depGraph.isMultiModule = isMultiModule;
return depGraph;
} catch (err: any) {
throw new Error(`Failed to parse JSON payload: ${err.message}`);
@@ -187,6 +198,10 @@ function getDependencyScopeForMavenScope(mavenScopes: string[] | undefined | nul
return 'runtime';
}
function extractDependencyArtifactIdsWithParents(dependencies: DepgraphDependency[]): string[] {
return dependencies.map(dependency => { return dependency.to; })
}
function dependencyMap(dependencies: DepgraphDependency[]): Map<string, string[] | undefined> {
const map = new Map<string, string[]>();
@@ -205,7 +220,7 @@ function dependencyMap(dependencies: DepgraphDependency[]): Map<string, string[]
return map;
}
function getDirectDependencies(rootPackageNumericId: number, dependencies: DepgraphDependency[]): string[] {
const topLevel = dependencies.filter(dependency => { return dependency.numericFrom === rootPackageNumericId; });
function getDirectDependencies(artifactId: string, dependencies: DepgraphDependency[]): string[] {
const topLevel = dependencies.filter(dependency => { return dependency.from === artifactId; });
return topLevel.map(dep => { return dep.to; });
}
+18 -1
View File
@@ -1,5 +1,5 @@
import * as path from 'path';
import {generateDependencyGraph, generateSnapshot} from './snapshot-generator';
import { generateDependencyGraph, generateSnapshot } from './snapshot-generator';
describe('snapshot-generator', () => {
@@ -25,6 +25,23 @@ describe('snapshot-generator', () => {
expect(snapshot.manifests['bookstore-v3']).toBeDefined();
expect(snapshot.detector.version).toBe(version);
});
it('should generate a snapshot for a multi-module project', async () => {
const projectDir = getMavenProjectDirectory('multi-module');
const snapshot = await generateSnapshot(projectDir);
expect(snapshot.manifests['bs-parent']).toBeDefined();
expect(snapshot.detector.version).toBe(version);
});
it('should generate a snapshot for a multi-module-multi-branch project', async () => {
const projectDir = getMavenProjectDirectory('multi-module-multi-branch');
const snapshot = await generateSnapshot(projectDir);
expect(snapshot.manifests['bs-parent']).toBeDefined();
expect(snapshot.detector.version).toBe(version);
expect(snapshot.manifests['bs-parent'].countDependencies()).toBe(20);
});
});
});
+39 -8
View File
@@ -2,12 +2,15 @@ import * as exec from '@actions/exec';
import * as core from '@actions/core';
import * as path from 'path';
import * as fs from 'fs';
import { Snapshot } from '@github/dependency-submission-toolkit';
import { MavenDependencyGraph, parseDependencyJson } from './depgraph';
const version = require('../package.json')['version'];
const DEPGRAPH_MAVEN_PLUGIN_VERSION = '4.0.2';
export async function generateSnapshot(directory: string, context?: any, job?: any) {
const depgraph = await generateDependencyGraph(directory);
@@ -49,13 +52,25 @@ export async function generateDependencyGraph(directory: string) {
}
};
const mavenArguments = [
'com.github.ferstl:depgraph-maven-plugin:4.0.1:graph',
core.startGroup('depgraph-maven-plugin:reactor');
const mavenReactorArguments = [
`com.github.ferstl:depgraph-maven-plugin:${DEPGRAPH_MAVEN_PLUGIN_VERSION}:reactor`,
'-DgraphFormat=json',
'-DoutputFileName=reactor.json'
];
await exec.exec('mvn', mavenReactorArguments, options);
core.startGroup('depgraph-maven-plugin');
await exec.exec('mvn', mavenArguments, options);
core.info(executionOutput);
core.info(errors);
core.endGroup();
core.startGroup('depgraph-maven-plugin:aggregate');
const mavenAggregateArguments = [
`com.github.ferstl:depgraph-maven-plugin:${DEPGRAPH_MAVEN_PLUGIN_VERSION}:aggregate`,
'-DgraphFormat=json',
'-DoutputFileName=aggregate-depgraph.json'
];
await exec.exec('mvn', mavenAggregateArguments, options);
core.info(executionOutput);
core.info(errors);
@@ -65,14 +80,30 @@ export async function generateDependencyGraph(directory: string) {
throw new Error(`A problem was encountered generating dependency files, please check execution logs for details; ${err.message}`);
}
//TODO need to account for multi module projects
const targetPath = path.join(directory, 'target');
const isMultiModule = checkForMultiModule(path.join(targetPath, 'reactor.json'));
// Now we have the target/dependency-graph.json file to process
const file = path.join(directory, 'target', 'dependency-graph.json');
// Now we have the aggregate dependency graph file to process
const file = path.join(targetPath, 'aggregate-depgraph.json');
try {
return parseDependencyJson(file);
return parseDependencyJson(file, isMultiModule);
} catch (err: any) {
core.error(err);
throw new Error(`Could not parse maven dependency file, '${file}': ${err.message}`);
}
}
function checkForMultiModule(reactorJsonFile) {
try {
const data: Buffer = fs.readFileSync(reactorJsonFile);
try {
const reactor = JSON.parse(data.toString('utf-8'));
// The reactor file will have an array of artifacts making up the parent and child modules if it is a multi module project
return reactor.artifacts && reactor.artifacts.length > 0;
} catch (err: any) {
throw new Error(`Failed to parse reactor JSON payload: ${err.message}`);
}
} catch (err: any) {
throw new Error(`Failed to load file ${reactorJsonFile}: ${err}`);
}
}
+61 -61
View File
@@ -1,7 +1,7 @@
{
"graphName" : "bookstore-v3",
"artifacts" : [ {
"id" : "org.eclipse.jetty:jetty-server:jar",
"id" : "org.eclipse.jetty:jetty-server:jar:compile",
"numericId" : 1,
"groupId" : "org.eclipse.jetty",
"artifactId" : "jetty-server",
@@ -10,7 +10,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.eclipse.jetty.toolchain:jetty-servlet-api:jar",
"id" : "org.eclipse.jetty.toolchain:jetty-servlet-api:jar:compile",
"numericId" : 2,
"groupId" : "org.eclipse.jetty.toolchain",
"artifactId" : "jetty-servlet-api",
@@ -19,7 +19,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.eclipse.jetty:jetty-http:jar",
"id" : "org.eclipse.jetty:jetty-http:jar:compile",
"numericId" : 3,
"groupId" : "org.eclipse.jetty",
"artifactId" : "jetty-http",
@@ -28,7 +28,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.eclipse.jetty:jetty-util:jar",
"id" : "org.eclipse.jetty:jetty-util:jar:compile",
"numericId" : 4,
"groupId" : "org.eclipse.jetty",
"artifactId" : "jetty-util",
@@ -37,7 +37,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.eclipse.jetty:jetty-io:jar",
"id" : "org.eclipse.jetty:jetty-io:jar:compile",
"numericId" : 5,
"groupId" : "org.eclipse.jetty",
"artifactId" : "jetty-io",
@@ -46,7 +46,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.slf4j:slf4j-api:jar",
"id" : "org.slf4j:slf4j-api:jar:compile",
"numericId" : 6,
"groupId" : "org.slf4j",
"artifactId" : "slf4j-api",
@@ -55,7 +55,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "com.github.octodemo:bookstore-v3:jar",
"id" : "com.github.octodemo:bookstore-v3:jar:compile",
"numericId" : 7,
"groupId" : "com.github.octodemo",
"artifactId" : "bookstore-v3",
@@ -64,7 +64,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.eclipse.jetty:jetty-servlet:jar",
"id" : "org.eclipse.jetty:jetty-servlet:jar:compile",
"numericId" : 8,
"groupId" : "org.eclipse.jetty",
"artifactId" : "jetty-servlet",
@@ -73,7 +73,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.eclipse.jetty:jetty-security:jar",
"id" : "org.eclipse.jetty:jetty-security:jar:compile",
"numericId" : 9,
"groupId" : "org.eclipse.jetty",
"artifactId" : "jetty-security",
@@ -82,7 +82,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "ognl:ognl:jar",
"id" : "ognl:ognl:jar:compile",
"numericId" : 10,
"groupId" : "ognl",
"artifactId" : "ognl",
@@ -91,7 +91,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.javassist:javassist:jar",
"id" : "org.javassist:javassist:jar:compile",
"numericId" : 11,
"groupId" : "org.javassist",
"artifactId" : "javassist",
@@ -100,7 +100,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.thymeleaf:thymeleaf:jar",
"id" : "org.thymeleaf:thymeleaf:jar:compile",
"numericId" : 12,
"groupId" : "org.thymeleaf",
"artifactId" : "thymeleaf",
@@ -109,7 +109,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.attoparser:attoparser:jar",
"id" : "org.attoparser:attoparser:jar:compile",
"numericId" : 13,
"groupId" : "org.attoparser",
"artifactId" : "attoparser",
@@ -118,7 +118,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.unbescape:unbescape:jar",
"id" : "org.unbescape:unbescape:jar:compile",
"numericId" : 14,
"groupId" : "org.unbescape",
"artifactId" : "unbescape",
@@ -127,7 +127,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.json:json:jar",
"id" : "org.json:json:jar:compile",
"numericId" : 15,
"groupId" : "org.json",
"artifactId" : "json",
@@ -136,7 +136,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.xerial:sqlite-jdbc:jar",
"id" : "org.xerial:sqlite-jdbc:jar:compile",
"numericId" : 16,
"groupId" : "org.xerial",
"artifactId" : "sqlite-jdbc",
@@ -145,7 +145,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar",
"id" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar:compile",
"numericId" : 17,
"groupId" : "org.apache.logging.log4j",
"artifactId" : "log4j-slf4j18-impl",
@@ -154,7 +154,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.apache.logging.log4j:log4j-api:jar",
"id" : "org.apache.logging.log4j:log4j-api:jar:compile",
"numericId" : 18,
"groupId" : "org.apache.logging.log4j",
"artifactId" : "log4j-api",
@@ -163,7 +163,7 @@
"scopes" : [ "compile" ],
"types" : [ "jar" ]
}, {
"id" : "org.apache.logging.log4j:log4j-core:jar",
"id" : "org.apache.logging.log4j:log4j-core:jar:runtime",
"numericId" : 19,
"groupId" : "org.apache.logging.log4j",
"artifactId" : "log4j-core",
@@ -172,7 +172,7 @@
"scopes" : [ "runtime" ],
"types" : [ "jar" ]
}, {
"id" : "junit:junit:jar",
"id" : "junit:junit:jar:test",
"numericId" : 20,
"groupId" : "junit",
"artifactId" : "junit",
@@ -181,7 +181,7 @@
"scopes" : [ "test" ],
"types" : [ "jar" ]
}, {
"id" : "org.hamcrest:hamcrest-core:jar",
"id" : "org.hamcrest:hamcrest-core:jar:test",
"numericId" : 21,
"groupId" : "org.hamcrest",
"artifactId" : "hamcrest-core",
@@ -191,122 +191,122 @@
"types" : [ "jar" ]
} ],
"dependencies" : [ {
"from" : "org.eclipse.jetty:jetty-server:jar",
"to" : "org.eclipse.jetty.toolchain:jetty-servlet-api:jar",
"from" : "org.eclipse.jetty:jetty-server:jar:compile",
"to" : "org.eclipse.jetty.toolchain:jetty-servlet-api:jar:compile",
"numericFrom" : 0,
"numericTo" : 1,
"resolution" : "INCLUDED"
}, {
"from" : "org.eclipse.jetty:jetty-http:jar",
"to" : "org.eclipse.jetty:jetty-util:jar",
"from" : "org.eclipse.jetty:jetty-http:jar:compile",
"to" : "org.eclipse.jetty:jetty-util:jar:compile",
"numericFrom" : 2,
"numericTo" : 3,
"resolution" : "INCLUDED"
}, {
"from" : "org.eclipse.jetty:jetty-server:jar",
"to" : "org.eclipse.jetty:jetty-http:jar",
"from" : "org.eclipse.jetty:jetty-server:jar:compile",
"to" : "org.eclipse.jetty:jetty-http:jar:compile",
"numericFrom" : 0,
"numericTo" : 2,
"resolution" : "INCLUDED"
}, {
"from" : "org.eclipse.jetty:jetty-server:jar",
"to" : "org.eclipse.jetty:jetty-io:jar",
"from" : "org.eclipse.jetty:jetty-server:jar:compile",
"to" : "org.eclipse.jetty:jetty-io:jar:compile",
"numericFrom" : 0,
"numericTo" : 4,
"resolution" : "INCLUDED"
}, {
"from" : "org.eclipse.jetty:jetty-server:jar",
"to" : "org.slf4j:slf4j-api:jar",
"from" : "org.eclipse.jetty:jetty-server:jar:compile",
"to" : "org.slf4j:slf4j-api:jar:compile",
"numericFrom" : 0,
"numericTo" : 5,
"resolution" : "INCLUDED"
}, {
"from" : "com.github.octodemo:bookstore-v3:jar",
"to" : "org.eclipse.jetty:jetty-server:jar",
"from" : "com.github.octodemo:bookstore-v3:jar:compile",
"to" : "org.eclipse.jetty:jetty-server:jar:compile",
"numericFrom" : 6,
"numericTo" : 0,
"resolution" : "INCLUDED"
}, {
"from" : "org.eclipse.jetty:jetty-servlet:jar",
"to" : "org.eclipse.jetty:jetty-security:jar",
"from" : "org.eclipse.jetty:jetty-servlet:jar:compile",
"to" : "org.eclipse.jetty:jetty-security:jar:compile",
"numericFrom" : 7,
"numericTo" : 8,
"resolution" : "INCLUDED"
}, {
"from" : "com.github.octodemo:bookstore-v3:jar",
"to" : "org.eclipse.jetty:jetty-servlet:jar",
"from" : "com.github.octodemo:bookstore-v3:jar:compile",
"to" : "org.eclipse.jetty:jetty-servlet:jar:compile",
"numericFrom" : 6,
"numericTo" : 7,
"resolution" : "INCLUDED"
}, {
"from" : "ognl:ognl:jar",
"to" : "org.javassist:javassist:jar",
"from" : "ognl:ognl:jar:compile",
"to" : "org.javassist:javassist:jar:compile",
"numericFrom" : 9,
"numericTo" : 10,
"resolution" : "INCLUDED"
}, {
"from" : "org.thymeleaf:thymeleaf:jar",
"to" : "ognl:ognl:jar",
"from" : "org.thymeleaf:thymeleaf:jar:compile",
"to" : "ognl:ognl:jar:compile",
"numericFrom" : 11,
"numericTo" : 9,
"resolution" : "INCLUDED"
}, {
"from" : "org.thymeleaf:thymeleaf:jar",
"to" : "org.attoparser:attoparser:jar",
"from" : "org.thymeleaf:thymeleaf:jar:compile",
"to" : "org.attoparser:attoparser:jar:compile",
"numericFrom" : 11,
"numericTo" : 12,
"resolution" : "INCLUDED"
}, {
"from" : "org.thymeleaf:thymeleaf:jar",
"to" : "org.unbescape:unbescape:jar",
"from" : "org.thymeleaf:thymeleaf:jar:compile",
"to" : "org.unbescape:unbescape:jar:compile",
"numericFrom" : 11,
"numericTo" : 13,
"resolution" : "INCLUDED"
}, {
"from" : "com.github.octodemo:bookstore-v3:jar",
"to" : "org.thymeleaf:thymeleaf:jar",
"from" : "com.github.octodemo:bookstore-v3:jar:compile",
"to" : "org.thymeleaf:thymeleaf:jar:compile",
"numericFrom" : 6,
"numericTo" : 11,
"resolution" : "INCLUDED"
}, {
"from" : "com.github.octodemo:bookstore-v3:jar",
"to" : "org.json:json:jar",
"from" : "com.github.octodemo:bookstore-v3:jar:compile",
"to" : "org.json:json:jar:compile",
"numericFrom" : 6,
"numericTo" : 14,
"resolution" : "INCLUDED"
}, {
"from" : "com.github.octodemo:bookstore-v3:jar",
"to" : "org.xerial:sqlite-jdbc:jar",
"from" : "com.github.octodemo:bookstore-v3:jar:compile",
"to" : "org.xerial:sqlite-jdbc:jar:compile",
"numericFrom" : 6,
"numericTo" : 15,
"resolution" : "INCLUDED"
}, {
"from" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar",
"to" : "org.apache.logging.log4j:log4j-api:jar",
"from" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar:compile",
"to" : "org.apache.logging.log4j:log4j-api:jar:compile",
"numericFrom" : 16,
"numericTo" : 17,
"resolution" : "INCLUDED"
}, {
"from" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar",
"to" : "org.apache.logging.log4j:log4j-core:jar",
"from" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar:compile",
"to" : "org.apache.logging.log4j:log4j-core:jar:runtime",
"numericFrom" : 16,
"numericTo" : 18,
"resolution" : "INCLUDED"
}, {
"from" : "com.github.octodemo:bookstore-v3:jar",
"to" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar",
"from" : "com.github.octodemo:bookstore-v3:jar:compile",
"to" : "org.apache.logging.log4j:log4j-slf4j18-impl:jar:compile",
"numericFrom" : 6,
"numericTo" : 16,
"resolution" : "INCLUDED"
}, {
"from" : "junit:junit:jar",
"to" : "org.hamcrest:hamcrest-core:jar",
"from" : "junit:junit:jar:test",
"to" : "org.hamcrest:hamcrest-core:jar:test",
"numericFrom" : 19,
"numericTo" : 20,
"resolution" : "INCLUDED"
}, {
"from" : "com.github.octodemo:bookstore-v3:jar",
"to" : "junit:junit:jar",
"from" : "com.github.octodemo:bookstore-v3:jar:compile",
"to" : "junit:junit:jar:test",
"numericFrom" : 6,
"numericTo" : 19,
"resolution" : "INCLUDED"
@@ -0,0 +1,427 @@
{
"graphName": "bs-parent",
"artifacts": [
{
"id": "org.eclipse.jetty:jetty-http:jar:compile",
"numericId": 1,
"groupId": "org.eclipse.jetty",
"artifactId": "jetty-http",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty:jetty-util:jar:compile",
"numericId": 2,
"groupId": "org.eclipse.jetty",
"artifactId": "jetty-util",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty:jetty-client:jar:compile",
"numericId": 3,
"groupId": "org.eclipse.jetty",
"artifactId": "jetty-client",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty:jetty-io:jar:compile",
"numericId": 4,
"groupId": "org.eclipse.jetty",
"artifactId": "jetty-io",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty:jetty-alpn-client:jar:compile",
"numericId": 5,
"groupId": "org.eclipse.jetty",
"artifactId": "jetty-alpn-client",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty.http2:http2-http-client-transport:jar:compile",
"numericId": 6,
"groupId": "org.eclipse.jetty.http2",
"artifactId": "http2-http-client-transport",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty.http2:http2-common:jar:compile",
"numericId": 7,
"groupId": "org.eclipse.jetty.http2",
"artifactId": "http2-common",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty.http2:http2-hpack:jar:compile",
"numericId": 8,
"groupId": "org.eclipse.jetty.http2",
"artifactId": "http2-hpack",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty.http2:http2-client:jar:compile",
"numericId": 9,
"groupId": "org.eclipse.jetty.http2",
"artifactId": "http2-client",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty:jetty-alpn-java-client:jar:compile",
"numericId": 10,
"groupId": "org.eclipse.jetty",
"artifactId": "jetty-alpn-java-client",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.slf4j:slf4j-api:jar:compile",
"numericId": 11,
"groupId": "org.slf4j",
"artifactId": "slf4j-api",
"version": "2.0.0-alpha6",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "com.github.octodemo:bs-library:jar:compile",
"numericId": 12,
"groupId": "com.github.octodemo",
"artifactId": "bs-library",
"version": "1.0.0-SNAPSHOT",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.apache.logging.log4j:log4j-api:jar:compile",
"numericId": 13,
"groupId": "org.apache.logging.log4j",
"artifactId": "log4j-api",
"version": "2.19.0",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "junit:junit:jar:test",
"numericId": 14,
"groupId": "junit",
"artifactId": "junit",
"version": "4.13",
"optional": false,
"scopes": [
"test"
],
"types": [
"jar"
]
},
{
"id": "org.hamcrest:hamcrest-core:jar:test",
"numericId": 15,
"groupId": "org.hamcrest",
"artifactId": "hamcrest-core",
"version": "1.3",
"optional": false,
"scopes": [
"test"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty:jetty-server:jar:compile",
"numericId": 16,
"groupId": "org.eclipse.jetty",
"artifactId": "jetty-server",
"version": "10.0.10",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "org.eclipse.jetty.toolchain:jetty-servlet-api:jar:compile",
"numericId": 17,
"groupId": "org.eclipse.jetty.toolchain",
"artifactId": "jetty-servlet-api",
"version": "4.0.6",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "com.github.octodemo:bs-application:jar:compile",
"numericId": 18,
"groupId": "com.github.octodemo",
"artifactId": "bs-application",
"version": "1.0.0-SNAPSHOT",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
},
{
"id": "com.github.octodemo:bs-other:jar:compile",
"numericId": 19,
"groupId": "com.github.octodemo",
"artifactId": "bs-other",
"version": "1.0.0-SNAPSHOT",
"optional": false,
"scopes": [
"compile"
],
"types": [
"jar"
]
}
],
"dependencies": [
{
"from": "org.eclipse.jetty:jetty-http:jar:compile",
"to": "org.eclipse.jetty:jetty-util:jar:compile",
"numericFrom": 0,
"numericTo": 1,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty:jetty-client:jar:compile",
"to": "org.eclipse.jetty:jetty-http:jar:compile",
"numericFrom": 2,
"numericTo": 0,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty:jetty-client:jar:compile",
"to": "org.eclipse.jetty:jetty-io:jar:compile",
"numericFrom": 2,
"numericTo": 3,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty:jetty-client:jar:compile",
"to": "org.eclipse.jetty:jetty-alpn-client:jar:compile",
"numericFrom": 2,
"numericTo": 4,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty.http2:http2-http-client-transport:jar:compile",
"to": "org.eclipse.jetty:jetty-client:jar:compile",
"numericFrom": 5,
"numericTo": 2,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty.http2:http2-common:jar:compile",
"to": "org.eclipse.jetty.http2:http2-hpack:jar:compile",
"numericFrom": 6,
"numericTo": 7,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty.http2:http2-client:jar:compile",
"to": "org.eclipse.jetty.http2:http2-common:jar:compile",
"numericFrom": 8,
"numericTo": 6,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty.http2:http2-http-client-transport:jar:compile",
"to": "org.eclipse.jetty.http2:http2-client:jar:compile",
"numericFrom": 5,
"numericTo": 8,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty.http2:http2-http-client-transport:jar:compile",
"to": "org.eclipse.jetty:jetty-alpn-java-client:jar:compile",
"numericFrom": 5,
"numericTo": 9,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty.http2:http2-http-client-transport:jar:compile",
"to": "org.slf4j:slf4j-api:jar:compile",
"numericFrom": 5,
"numericTo": 10,
"resolution": "INCLUDED"
},
{
"from": "com.github.octodemo:bs-library:jar:compile",
"to": "org.eclipse.jetty.http2:http2-http-client-transport:jar:compile",
"numericFrom": 11,
"numericTo": 5,
"resolution": "INCLUDED"
},
{
"from": "com.github.octodemo:bs-library:jar:compile",
"to": "org.apache.logging.log4j:log4j-api:jar:compile",
"numericFrom": 11,
"numericTo": 12,
"resolution": "INCLUDED"
},
{
"from": "junit:junit:jar:test",
"to": "org.hamcrest:hamcrest-core:jar:test",
"numericFrom": 13,
"numericTo": 14,
"resolution": "INCLUDED"
},
{
"from": "com.github.octodemo:bs-library:jar:compile",
"to": "junit:junit:jar:test",
"numericFrom": 11,
"numericTo": 13,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty:jetty-server:jar:compile",
"to": "org.eclipse.jetty.toolchain:jetty-servlet-api:jar:compile",
"numericFrom": 15,
"numericTo": 16,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty:jetty-server:jar:compile",
"to": "org.eclipse.jetty:jetty-http:jar:compile",
"numericFrom": 15,
"numericTo": 0,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty:jetty-server:jar:compile",
"to": "org.eclipse.jetty:jetty-io:jar:compile",
"numericFrom": 15,
"numericTo": 3,
"resolution": "INCLUDED"
},
{
"from": "org.eclipse.jetty:jetty-server:jar:compile",
"to": "org.slf4j:slf4j-api:jar:compile",
"numericFrom": 15,
"numericTo": 10,
"resolution": "INCLUDED"
},
{
"from": "com.github.octodemo:bs-application:jar:compile",
"to": "org.eclipse.jetty:jetty-server:jar:compile",
"numericFrom": 17,
"numericTo": 15,
"resolution": "INCLUDED"
},
{
"from": "com.github.octodemo:bs-application:jar:compile",
"to": "com.github.octodemo:bs-library:jar:compile",
"numericFrom": 17,
"numericTo": 11,
"resolution": "INCLUDED"
},
{
"from": "com.github.octodemo:bs-application:jar:compile",
"to": "junit:junit:jar:test",
"numericFrom": 17,
"numericTo": 13,
"resolution": "INCLUDED"
},
{
"from": "com.github.octodemo:bs-other:jar:compile",
"to": "junit:junit:jar:test",
"numericFrom": 18,
"numericTo": 13,
"resolution": "INCLUDED"
}
]
}
@@ -0,0 +1,29 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-parent</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-application</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bs-library-web</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bs-library-web</artifactId>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,25 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-libraries</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-library-database</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.36.0.3</version>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,19 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-libraries</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-library-web</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-http-client-transport</artifactId>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,36 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-parent</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-libraries</artifactId>
<packaging>pom</packaging>
<modules>
<module>bs-library-web</module>
<module>bs-library-database</module>
</modules>
<!-- Control some versions of dependencies here, overriding the parent -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.5.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- All child libraries should use these dependencies -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,12 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-parent</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-other</artifactId>
<packaging>jar</packaging>
</project>
@@ -0,0 +1,131 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-parent</artifactId>
<version>${revision}${changelist}${sha1}</version>
<packaging>pom</packaging>
<description>A Java example project to demonstrate a Java development stack with Maven, GitHub Actions, GitHub Package Registry and Azure.</description>
<modules>
<module>bs-libraries</module>
<module>bs-application</module>
<module>bs-other</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>11</java.version>
<!--
Dependency Versions
-->
<jetty.version>10.0.10</jetty.version>
<log4j.version>2.19.0</log4j.version>
<!--
Properties used to create a CD style version number for the Maven build
-->
<revision>1.0.0</revision>
<changelist></changelist>
<sha1>-SNAPSHOT</sha1>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-bom</artifactId>
<version>${jetty.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bs-library-web</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bs-library-logging</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>${log4j.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- This is overwritten in the bs-libraries versions -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<!-- To enable debug compilation use the maven.compiler.debug user property -->
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>com.github.ekryd.echo-maven-plugin</groupId>
<artifactId>echo-maven-plugin</artifactId>
<version>1.3.2</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.6</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
@@ -1,21 +1,24 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>com.github.octodemo:bs-parent:>${revision}${changelist}${sha1}</parent>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-parent</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-parent</artifactId>
<version</version>
<packaging>pom</packaging>
<modules>
<module>bs-library</module>
<module>bs-application</module>
</modules>
<artifactId>bs-application</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bs-library</artifactId>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,24 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-parent</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-library</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-http-client-transport</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,12 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.octodemo</groupId>
<artifactId>bs-parent</artifactId>
<version>${revision}${changelist}${sha1}</version>
</parent>
<artifactId>bs-other</artifactId>
<packaging>jar</packaging>
</project>
+17 -12
View File
@@ -11,6 +11,7 @@
<modules>
<module>bs-library</module>
<module>bs-application</module>
<module>bs-other</module>
</modules>
<properties>
@@ -22,8 +23,8 @@
<!--
Dependency Versions
-->
<jetty.version>10.0.0</jetty.version>
<log4j.version>2.17.2</log4j.version>
<jetty.version>10.0.10</jetty.version>
<log4j.version>2.19.0</log4j.version>
<!--
Properties used to create a CD style version number for the Maven build
@@ -42,20 +43,24 @@
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bs-library</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>${log4j.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>