dcdx 1.2.0-next.3 → 1.2.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{program as u,Option as t}from"commander";import{gracefulExit as d}from"exit-hook";import{DOMParser as n,XMLSerializer as k}from"@xmldom/xmldom";import{spawn as j}from"child_process";import{XMLParser as b}from"fast-xml-parser";import{existsSync as e,readFileSync as s,mkdirSync as i}from"fs";import{cwd as a}from"process";import o from"xpath";import{hideBin as r}from"yargs/helpers";import c from"yargs/yargs";import{dirname as A,join as l}from"path";import P from"axios";import{stop as E,downAll as p,ps as C,execCompose as h,upAll as R}from"docker-compose/dist/v2.js";import m from"events";import{dump as g}from"js-yaml";import{homedir as w}from"os";import S from"simple-git";import{upAll as f}from"docker-compose";import{Sequelize as v,ConnectionError as y,TimeoutError as x,ConnectionTimedOutError as T,ConnectionRefusedError as D,ConnectionAcquireTimeoutError as M}from"sequelize";var O,L=["latest","9.8.0-ubuntu-jdk11","9.8.0-jdk11","9.8.0","9.5-ubuntu-jdk11","9.5-jdk11","9.5.1-ubuntu-jdk11","9.5.1-jdk11","9.5.1","9.5","9.14.0-ubuntu-jdk11","9.14.0-jdk11","9.14-ubuntu-jdk11","9.14.0","9.14-jdk11","9.14.1-ubuntu-jdk11","9.14","9.14.1","9.12.5-ubuntu-jdk11","9.12.5-jdk11","9.12.5","9.0-ubuntu-jdk11","9.0-jdk11","9.0.0-ubuntu-jdk11","9.0.0-jdk11","9.0.0","9.0","9.8.1-ubuntu-jdk11","9.8.1-jdk11","9.8.1","9.14.1-jdk11","9.10-ubuntu-jdk11","9.10-jdk11","9.10.2-ubuntu-jdk11","9.10.2-jdk11","9.10.2","9.8","9.10","9.12.6-jdk11","9.12.6-ubuntu-jdk11","9.12.6","9.8-ubuntu-jdk11","9.8-jdk11","9.8.2-ubuntu-jdk11","9.8.2-jdk11","9.8.2","9.6-ubuntu-jdk11","9.6-jdk11","9.6.0-ubuntu-jdk11","9.6.0-jdk11","9.6.0","9.6","9.4.2-ubuntu-jdk11","9.4.2-jdk11","9.4.2","9.3.0-ubuntu-jdk11","9.3.0-jdk11","9.3.0","9.14.0-ubi9-jdk17","9.14.0-ubi9","9.12.7-ubi9-jdk17","9.12.7-ubi9","9.5.0-ubi9-jdk17","9.5.0-ubi9","9.12-ubuntu-jdk11","9.12-jdk11","9.12.7-ubuntu-jdk11","9.12.7-jdk11","9.12.7","9.12","9.1.0-ubuntu-jdk11","9.1.0-jdk11","ubuntu-jdk11","9.1.0","jdk11","9-ubuntu-jdk11","9-jdk11","9.4-ubuntu-jdk11","9.4-jdk11","9.4.20-ubuntu-jdk11","9.4.20-jdk11","9.4.20","9.4","9.3.1-ubuntu-jdk11","9.3.1-jdk11","9.3.1","9.15-ubuntu-jdk11","9.15-jdk11","9.15.0-ubuntu-jdk11","9.15.0-jdk11","9.15.0","9.15","9.12.0-ubuntu-jdk11","9.12.0-jdk11","9.12.0","9.11.0-ubuntu-jdk11","9.11.0-jdk11","9.11.0","9","9.8.0-ubi9-jdk17","9.8.0-ubi9","9.7.0-ubi9-jdk17","9.7.0-ubi9","9.5.1-ubi9-jdk17","9.5.1-ubi9","9.1-ubuntu-jdk11","9.1-jdk11","9.14.1-ubi9-jdk17","9.14.1-ubi9","9.1.1-ubuntu-jdk11","9.1.1-jdk11","9.1.1","9.9.0-ubuntu-jdk11","9.1","9.9.0-ubi9-jdk17","9.9.0-ubi9","9.9.0-jdk11","9.9.0","9.7.0-ubuntu-jdk11","9.7.0-jdk11","9.7.0","9.4.6-ubuntu-jdk11","9.4.6-jdk11","9.4.6","9.4.1-ubuntu-jdk11","9.4.1-jdk11","9.4.15-ubuntu-jdk11","9.4.15-jdk11","9.4.15","9.4.1","9.3.2-ubuntu-jdk11","9.3.2-jdk11","9.3.2","9.12.1-ubuntu-jdk11","9.12.1-jdk11","9.12.1","9.11.1-ubuntu-jdk11","9.11.1-jdk11","9.11.1","9.8.1-ubi9-jdk17","9.8.1-ubi9","9.7.1-ubi9-jdk17","9.7.1-ubi9","9.4.10-ubuntu-jdk11","9.4.10-jdk11","9.4.10","9.13.0-ubuntu-jdk11","9.13.0-ubi9-jdk17","9.13.0-ubi9","9.13.0-jdk11","9.13.0","9.11.3-ubi9-jdk17","9.11.3-ubi9","9.10.2-ubi9-jdk17","9.10.2-ubi9","9.9.1-ubuntu-jdk11","9.9.1-ubi9-jdk17","9.9.1-ubi9","9.9.1-jdk11","9.9.1","9.7.1-ubuntu-jdk11","9.7.1-jdk11","9.7.1","9.4.7-ubuntu-jdk11","9.4.7-jdk11","9.4.7","9.4.16-ubuntu-jdk11","9.4.16-jdk11","9.4.16","9.3-ubuntu-jdk11","9.3-jdk11","9.3.3-ubuntu-jdk11","9.3.3-jdk11","9.3.3","9.3","9.2.0-ubuntu-jdk11","9.2.0-jdk11","9.2.0","9.12.4-ubi9-jdk17","9.12.4-ubi9","9.12.1-ubi9-jdk17","9.12.1-ubi9","9.11.2-ubuntu-jdk11","9.11.2-jdk11","9.11.2","ubi9-jdk17","ubi9","9.8.2-ubi9-jdk17","9.8.2-ubi9","9.7.2-ubi9-jdk17","9.7.2-ubi9","9.6.0-ubi9-jdk17","9.6.0-ubi9","9.4.8-ubuntu-jdk11","9.4.8-jdk11","9.4.8","9.4.3-ubuntu-jdk11","9.4.3-jdk11","9.4.3","9.4.11-ubuntu-jdk11","9.4.11-jdk11","9.4.11","9.15.0-ubi9-jdk17","9.15.0-ubi9","9.13-ubuntu-jdk11","9.13-jdk11","9.13.1-ubuntu-jdk11","9.13.1-ubi9-jdk17","9.13.1-ubi9","9.13.1-jdk11","9.13.1","9.13","9.12.2-ubuntu-jdk11","9.12.2-jdk11","9.12.2","9.9-ubuntu-jdk11","9.9-jdk11","9.9.2-ubuntu-jdk11","9.9.2-ubi9-jdk17","9.9.2-ubi9","9.9.2-jdk11","9.9.2","9.9","9.7-ubuntu-jdk11","9.7-jdk11","9.7.2-ubuntu-jdk11","9.7.2-jdk11","9.7.2","9.7","9.4.17-ubuntu-jdk11","9.4.17-jdk11","9.4.17","9.2-ubuntu-jdk11","9.2-jdk11","9.2.1-ubuntu-jdk11","9.2.1-jdk11","9.2.1","9.2","9.12.5-ubi9-jdk17","9.12.5-ubi9","9.11-ubuntu-jdk11","9.11-jdk11","9.11.3-ubuntu-jdk11","9.11.3-jdk11","9.11.3","9.11.1-ubi9-jdk17","9.11.1-ubi9","9.11","9.10.0-ubuntu-jdk11","9.10.0-ubi9-jdk17","9.10.0-ubi9","9.10.0-jdk11","9.10.0","9.4.9-ubuntu-jdk11","9.4.9-jdk11","9.4.9","9.4.4-ubuntu-jdk11","9.4.4-jdk11","9.4.4","9.4.12-ubuntu-jdk11","9.4.12-jdk11","9.4.12","9.12.3-ubuntu-jdk11","9.12.3-jdk11","9.12.3","9.12.2-ubi9-jdk17","9.12.2-ubi9","9.4.18-ubuntu-jdk11","9.4.18-jdk11","9.4.18","9.5.0-ubuntu-jdk11","9.5.0-jdk11","9.5.0","9.4.5-ubuntu-jdk11","9.4.5-jdk11","9.4.5","9.4.19-ubuntu-jdk11","9.4.19-jdk11","9.4.19","9.4.14-ubuntu-jdk11","9.4.14-jdk11","9.4.14","9.4.0-ubuntu-jdk11","9.4.0-jdk11","9.4.0","9.12.6-ubi9-jdk17","9.12.6-ubi9","9.12.4-ubuntu-jdk11","9.12.4-jdk11","9.12.4","9.12.3-ubi9-jdk17","9.12.3-ubi9","9.12.0-ubi9-jdk17","9.12.0-ubi9","9.11.2-ubi9-jdk17","9.11.2-ubi9","9.11.0-ubi9-jdk17","9.11.0-ubi9","9.10.1-ubuntu-jdk11","9.10.1-ubi9-jdk17","9.10.1-ubi9","9.10.1-jdk11","9.10.1","10.0.0-EAP02-ubi9-jdk17","10.0.0-EAP02","10.0.0-EAP02-ubi9","10.0.0-EAP02-ubuntu-jdk11","10.0.0-EAP02-jdk11","9.15.0-RC","9.15.0-RC-jdk11","9.15.0-RC-ubuntu-jdk11","9.15.0-RC-ubi9","9.15.0-RC-ubi9-jdk17","9.15.0-EAP02-ubi9-jdk17","9.15.0-EAP02-ubi9","9.15.0-EAP02-jdk11","9.15.0-EAP02-ubuntu-jdk11","9.15.0-EAP02","8.22.3-ubuntu-jdk11","8.22.3-jdk11","8.22.3","8.22.4-ubuntu-jdk11","8.22.4-jdk11","8.22.4","8.22.5-ubuntu-jdk11","8.22.5","8.22.5-jdk11","8.16-ubuntu-jdk11","8.16-jdk11","8.16.2-ubuntu-jdk11","8.16.2-jdk11","8.16.2","8.16","8-ubuntu-jdk11","8-jdk11","8.22-ubuntu-jdk11","8.22-jdk11","8.22.6-ubuntu-jdk11","8.22.6-jdk11","8.22.6","8.22","8","8.17.0-ubuntu-jdk11","8.17.0-jdk11","8.17.0","8.20.21-ubuntu-jdk11","8.20.21-jdk11","8.20.21","8.20.4-ubuntu-jdk11","8.20.4-jdk11","8.20.4","8.17-ubuntu-jdk11","8.17-jdk11","8.17.1-ubuntu-jdk11","8.17.1-jdk11","8.17.1","8.17","8.20.22-ubuntu-jdk11","8.20.22-jdk11","8.20.22","8.13.5-ubuntu-jdk11","8.13.5-jdk11","8.13.5","8.20.5-ubuntu-jdk11","8.20.5-jdk11","8.20.5","8.13.19-ubuntu-jdk11","8.13.19-jdk11","8.13.19","8.13.6-jdk11","8.20.23-ubuntu-jdk11","8.20.23-jdk11","8.20.23","8.20.11-ubuntu-jdk11","8.20.11-jdk11","8.20.11","8.13.6-ubuntu-jdk11","8.13.6","8.13.2-ubuntu-jdk11","8.13.2-jdk11","8.13.2","8.20.6-ubuntu-jdk11","8.20.6-jdk11","8.20.6","8.18.0-ubuntu-jdk11","8.18.0-jdk11","8.18.0","8.13.0-ubuntu-jdk11","8.13.0-jdk11","8.13.0","8.20.24-ubuntu-jdk11","8.20.24-jdk11","8.20.24","8.20.12-ubuntu-jdk11","8.20.12-jdk11","8.20.12","8.13.7-ubuntu-jdk11","8.13.7-jdk11","8.20.7-ubuntu-jdk11","8.13.7","8.20.7-jdk11","8.20.7","8.18.1-ubuntu-jdk11","8.18.1-jdk11","8.18.1","8.13.20-ubuntu-jdk11","8.13.20-jdk11","8.13.20","8.13.1-ubuntu-jdk11","8.13.1-jdk11","8.13.1","8.13.8-ubuntu-jdk11","8.13.8-jdk11","8.13.8","8.20.25-ubuntu-jdk11","8.20.25-jdk11","8.20.25","8.20.13-ubuntu-jdk11","8.20.13-jdk11","8.20.13","8.13.21-ubuntu-jdk11","8.13.21-jdk11","8.13.21","8.13.10-ubuntu-jdk11","8.13.10-jdk11","8.20.8-ubuntu-jdk11","8.13.10","8.20.8-jdk11","8.20.8","8.18-ubuntu-jdk11","8.18-jdk11","8.18.2-ubuntu-jdk11","8.18.2-jdk11","8.18.2","8.18","8.13.9-ubuntu-jdk11","8.13.9-jdk11","8.13.9","8.20.26-ubuntu-jdk11","8.20.26-jdk11","8.20.26","8.20.14-ubuntu-jdk11","8.20.14-jdk11","8.20.14","8.13.22-ubuntu-jdk11","8.13.22-jdk11","8.13.22","8.20.9-ubuntu-jdk11","8.20.9-jdk11","8.20.9","8.14.0-ubuntu-jdk11","8.14.0-jdk11","8.14.0","8.13.11-ubuntu-jdk11","8.13.11-jdk11","8.13.11","8.20.15-ubuntu-jdk11","8.20.15-jdk11","8.20.15","8.13.24-ubuntu-jdk11","8.13.24-jdk11","8.13.24","8.20.27-ubuntu-jdk11","8.20.27-jdk11","8.20.27","8.19.0-ubuntu-jdk11","8.19.0-jdk11","8.19.0","8.14-ubuntu-jdk11","8.14-jdk11","8.14.1-ubuntu-jdk11","8.14.1-jdk11","8.14.1","8.14","8.13.12-ubuntu-jdk11","8.13.12-jdk11","8.13.12","8.21.0-ubuntu-jdk11","8.21.0-jdk11","8.21.0","8.20.28-ubuntu-jdk11","8.20.28-jdk11","8.20.28","8.20.16-ubuntu-jdk11","8.20.16-jdk11","8.20.16","8.13.25-ubuntu-jdk11","8.13.25-jdk11","8.13.25","8.13.13-ubuntu-jdk11","8.13.13-jdk11","8.13.13","8.21-ubuntu-jdk11","8.21-jdk11","8.21.1-ubuntu-jdk11","8.21.1-jdk11","8.21.1","8.21","8.19-ubuntu-jdk11","8.19-jdk11","8.19.1-ubuntu-jdk11","8.19.1-jdk11","8.19.1","8.19","8.20.17-ubuntu-jdk11","8.20.17-jdk11","8.20.17","8.15.0-ubuntu-jdk11","8.15.0-jdk11","8.15.0","8.13.26-ubuntu-jdk11","8.13.26-jdk11","8.13.26","8.13.14-ubuntu-jdk11","8.13.14-jdk11","8.20.29-ubuntu-jdk11","8.20.29-jdk11","8.20.29","8.13.14","8.13-ubuntu-jdk11","8.13-jdk11","8.13.27-ubuntu-jdk11","8.13.27-jdk11","8.13.27","8.13","8.20.3-ubuntu-jdk11","8.20.3-jdk11","8.20.3","8.20.18-ubuntu-jdk11","8.20.18-jdk11","8.20.18","8.15-ubuntu-jdk11","8.15-jdk11","8.15.1-ubuntu-jdk11","8.15.1-jdk11","8.15.1","8.15","8.13.15-ubuntu-jdk11","8.13.15-jdk11","8.13.15","8.22.0-ubuntu-jdk11","8.22.0-jdk11","8.22.0","8.20.19-ubuntu-jdk11","8.20.19-jdk11","8.20.19","8.20.0-ubuntu-jdk11","8.20.0-jdk11","8.20.0","8.13.16-ubuntu-jdk11","8.13.16-jdk11","8.20-ubuntu-jdk11","8.13.16","8.20-jdk11","8.20.30-ubuntu-jdk11","8.20.30-jdk11","8.20.30","8.20","8.22.1-ubuntu-jdk11","8.22.1-jdk11","8.22.1","8.20.2-ubuntu-jdk11","8.20.2-jdk11","8.20.2","8.20.1-ubuntu-jdk11","8.20.1-jdk11","8.20.1","8.13.17-ubuntu-jdk11","8.13.17-jdk11","8.13.17","8.16.0-ubuntu-jdk11","8.16.0-jdk11","8.16.0","8.13.3-ubuntu-jdk11","8.13.3-jdk11","8.13.3","8.22.2-ubuntu-jdk11","8.22.2-jdk11","8.22.2","8.20.20-ubuntu-jdk11","8.20.20-jdk11","8.20.20","8.20.10-ubuntu-jdk11","8.20.10-jdk11","8.20.10","8.13.4-ubuntu-jdk11","8.13.4-jdk11","8.13.4","8.13.18-ubuntu-jdk11","8.13.18-jdk11","8.13.18","8.16.1-ubuntu-jdk11","8.16.1-jdk11","8.16.1","9.15.0-EAP01-ubuntu-jdk11","9.15.0-EAP01","9.15.0-EAP01-jdk11","10.0.0-EAP01-jdk11","10.0.0-EAP01-ubuntu-jdk11","10.0.0-EAP01","9.14.0-RC-ubuntu-jdk11","9.14.0-RC-jdk11","9.14.0-RC","9.14.0-EAP02","9.14.0-EAP02-ubuntu-jdk11","9.14.0-EAP02-jdk11","9.14.0-EAP01-ubuntu-jdk11","9.14.0-EAP01-jdk11","9.14.0-EAP01","9.13.0-EAP02","9.13.0-EAP02-ubuntu-jdk11","9.13.0-EAP02-jdk11","9.4.13-jdk11","9.4.13","9.4.13-ubuntu-jdk11","9.13.0-EAP01-ubuntu-jdk11","9.13.0-EAP01-jdk11","9.13.0-EAP01","8.11.0-ubuntu-jdk11","8.11.0-jdk11","8.11.0","8.11-ubuntu-jdk11","8.11-jdk11","8.11.1-ubuntu-jdk11","8.11.1-jdk11","8.11.1","8.11","8.12.0-ubuntu-jdk11","8.12.0-jdk11","8.12.0","8.12.1-ubuntu-jdk11","8.12.1-jdk11","8.12.1","8.12.2-ubuntu-jdk11","8.12.2-jdk11","8.12.2","8.12-ubuntu-jdk11","8.12-jdk11","8.12.3-ubuntu-jdk11","8.12.3-jdk11","8.12.3","8.12","9.12.0-EAP01-ubuntu-jdk11","9.12.0-EAP01-jdk11","9.12.0-EAP01","9.11.0-RC-jdk11","9.11.0-RC-ubuntu-jdk11","9.11.0-RC","9.11.0-EAP02-ubuntu-jdk11","9.11.0-EAP02-jdk11","9.11.0-EAP02","9.11.0-EAP01-ubuntu-jdk11","9.11.0-EAP01-jdk11","9.11.0-EAP01","9.10.0-RC-ubuntu-jdk11","9.10.0-RC-jdk11","9.10.0-RC","9.10.0-EAP02-ubuntu-jdk11","9.10.0-EAP02-jdk11","9.10.0-EAP02","9.10.0-EAP01-ubuntu-jdk11","9.10.0-EAP01","9.10.0-EAP01-jdk11","9.9.0-RC02-jdk11","9.9.0-RC02-ubuntu-jdk11","9.9.0-RC02","9.9.0-RC01-jdk11","9.9.0-RC01-ubuntu-jdk11","9.9.0-RC01","9.9.0-EAP02-ubuntu-jdk11","9.9.0-EAP02-jdk11","9.9.0-EAP02","9.9.0-EAP01-jdk11","9.9.0-EAP01-ubuntu-jdk11","9.9.0-EAP01","9.8.0-RC01-jdk11","9.8.0-RC01-ubuntu-jdk11","9.8.0-RC01","9.8.0-EAP02","eap-jdk11","eap","9.8.0-EAP02-ubuntu-jdk11","eap-ubuntu-jdk11","9.8.0-EAP02-jdk11","9.8.0-EAP01","9.8.0-EAP01-jdk11","9.8.0-EAP01-ubuntu-jdk11","9.7.0-RC01-jdk11","9.7.0-RC01","9.7.0-RC01-ubuntu-jdk11","9.7.0-EAP02","9.7.0-EAP02-ubuntu-jdk11","9.7.0-EAP02-jdk11","9.7.0-EAP01-ubuntu-jdk11","9.7.0-EAP01-jdk11","9.7.0-EAP01","9.6.0-RC01","9.6.0-RC01-ubuntu-jdk11","9.6.0-EAP02-ubuntu-jdk11","9.6.0-EAP02","9.6.0-EAP02-jdk11","9.6.0-EAP01","9.6.0-EAP01-jdk11","9.6.0-EAP01-ubuntu-jdk11","9.5.0-RC01","9.5.0-RC01-ubuntu-jdk11","9.5.0-RC01-jdk11","9.5.0-EAP03-ubuntu-jdk11","9.5.0-EAP03-jdk11","9.5.0-EAP03","9.5.0-EAP02-ubuntu-jdk11","9.5.0-EAP02","9.5.0-EAP02-jdk11","9.4.0-RC02-jdk11","9.4.0-RC02","9.4.0-RC02-ubuntu-jdk11","9.4.0-RC01-ubuntu-jdk11","9.4.0-RC01-jdk11","9.4.0-RC01","9.4.0-EAP01","9.4.0-EAP01-ubuntu-jdk11","9.4.0-EAP01-jdk11","9.5.0-EAP01-ubuntu-jdk11","9.5.0-EAP01","9.5.0-EAP01-jdk11","9.3.0-RC01","9.3.0-RC01-ubuntu-jdk11","9.3.0-RC01-jdk11","9.3.0-EAP02-jdk11","9.3.0-EAP02","9.3.0-EAP02-ubuntu-jdk11","9.3.0-EAP01-jdk11","9.3.0-EAP01-ubuntu-jdk11","9.3.0-EAP01","9.2.0-RC01-ubuntu-jdk11","9.2.0-RC01-jdk11","9.2.0-RC01","9.2.0-EAP03-jdk11","9.2.0-EAP03-ubuntu-jdk11","9.2.0-EAP03","9.2.0-EAP02-ubuntu-jdk11","9.2.0-EAP02-jdk11","9.2.0-EAP02","9.2.0-EAP01-jdk11","9.2.0-EAP01-ubuntu-jdk11","9.2.0-EAP01","9.1.0-RC01-ubuntu-jdk11","9.1.0-RC01-jdk11","9.1.0-RC01","9.1.0-EAP02-ubuntu-jdk11","9.1.0-EAP02-jdk11","9.1.0-EAP02","9.1.0-EAP01-jdk11","9.1.0-EAP01-ubuntu-jdk11","9.1.0-EAP01","8.8.0-ubuntu-jdk11","8.8.0-jdk11","8.8.0","8.9-ubuntu-jdk11","8.9-jdk11","8.9.1-ubuntu-jdk11","8.9.1-jdk11","8.9.1","8.9.0-ubuntu-jdk11","8.9.0-jdk11","8.9.0","8.9","8.8-ubuntu-jdk11","8.8-jdk11","8.8.1-ubuntu-jdk11","8.8.1-jdk11","8.8.1","8.8","8.10-ubuntu-jdk11","8.10-jdk11","8.10.1-ubuntu-jdk11","8.10.1-jdk11","8.10.1","8.10.0-ubuntu-jdk11","8.10.0-jdk11","8.10.0","8.10","9.0.0-RC02-jdk11","9.0.0-RC02-ubuntu-jdk11","9.0.0-RC02","9.0.0-RC01-jdk11","9.0.0-RC01-ubuntu-jdk11","9.0.0-RC01","9.0.0-EAP04-ubuntu-jdk11","9.0.0-EAP04-jdk11","9.0.0-EAP04","9.0.0-EAP03-ubuntu-jdk11","9.0.0-EAP03-jdk11","9.0.0-EAP03","9.0.0-EAP02-ubuntu-jdk11","9.0.0-EAP02-jdk11","9.0.0-EAP02","9.0.0-EAP01-ubuntu-jdk11","9.0.0-EAP01-jdk11","9.0.0-EAP01","8.22.0-RC01-ubuntu-jdk11","8.22.0-RC01-jdk11","8.22.0-RC01","8.22.0-EAP02-ubuntu-jdk11","8.22.0-EAP02-jdk11","8.22.0-EAP02","8.22.0-EAP01-ubuntu-jdk11","8.22.0-EAP01-jdk11","8.22.0-EAP01","8.21.0-RC01-ubuntu-jdk11","8.21.0-RC01-jdk11","8.21.0-RC01","8.21.0-EAP02-ubuntu-jdk11","8.21.0-EAP02-jdk11","8.21.0-EAP02","8.21.0-EAP01-ubuntu-jdk11","8.21.0-EAP01-jdk11","8.21.0-EAP01","8.20-ubuntu-jdk-11","8.20.7-ubuntu-jdk-11","8.20.0-RC01-ubuntu-jdk11","8.20.0-RC01-jdk11","8.20.0-RC01","8.20.0-EAP01-ubuntu-jdk11","8.20.0-EAP01-jdk11","8.20.0-EAP01","8.19.0-RC01-ubuntu-jdk11","8.19.0-RC01-jdk11","8.19.0-RC01","8.19.0-EAP02-ubuntu-jdk11","8.19.0-EAP02-jdk11","8.19.0-EAP02","8.19.0-EAP01-ubuntu-jdk-11","8.19.0-EAP01-jdk11","8.19.0-EAP01","8.18.0-RC01-ubuntu-jdk11","8.18.0-RC01-jdk11","8.18.0-RC01","8.18.0-EAP02-ubuntu-jdk-11","8.18.0-EAP02-jdk11","8.18.0-EAP02","8.18.0-EAP01-ubuntu-jdk11","8.18.0-EAP01-jdk11","8.18.0-EAP01","8.17.0-RC02-ubuntu-jdk11","8.17.0-RC02-jdk11","8.17.0-RC02","8.17.0-RC01-ubuntu-jdk11","8.17.0-RC01-jdk11","8.17.0-RC01","8.17.0-EAP02-ubuntu-jdk11","8.17.0-EAP02-jdk11","8.17.0-EAP02","8.17.0-EAP01-ubuntu-jdk11","8.17.0-EAP01-jdk11","8.17.0-EAP01","8.8.0-ubuntu-jdk-11","8.8.1-ubuntu-jdk-11","8.8-ubuntu-jdk-11","8.7-jdk11","8.7-ubuntu-jdk11","8.7","8.7.1-jdk11","8.7.1","8.7.1-ubuntu-jdk11","8.7.0-jdk11","8.7.0-ubuntu-jdk11","8.7.0","8.5.18","8.5.18-jdk11","8.5.18-ubuntu-jdk11","8.5.19-jdk11","8.5.19-ubuntu-jdk11","8.5-jdk11","8.5-ubuntu-jdk11","8.5","8.5.19","8.5.2-ubuntu-jdk11","8.5.2","8.5.2-jdk11","8.5.3","8.5.3-ubuntu-jdk11","8.5.3-jdk11","8.5.4-ubuntu-jdk11","8.5.4","8.5.4-jdk11","8.5.5-jdk11","8.5.5-ubuntu-jdk11","8.5.5","8.5.6-ubuntu-jdk11","8.5.6","8.5.6-jdk11","8.5.7-ubuntu-jdk11","8.5.7","8.5.12-ubuntu-jdk11","8.5.7-jdk11","8.5.12","8.5.12-jdk11","8.5.8","8.5.8-jdk11","8.5.8-ubuntu-jdk11","8.5.13-jdk11","8.5.13","8.5.13-ubuntu-jdk11","8.5.9-jdk11","8.5.9","8.5.9-ubuntu-jdk11","8.5.14-jdk11","8.5.0-ubuntu-jdk11","8.5.14","8.5.0","8.5.14-ubuntu-jdk11","8.5.0-jdk11","8.6.0-jdk11","8.6.0","8.6.0-ubuntu-jdk11","8.5.15-jdk11","8.5.1","8.5.15","8.5.1-ubuntu-jdk11","8.5.15-ubuntu-jdk11","8.5.1-jdk11","8.6","8.6-ubuntu-jdk11","8.6.1-ubuntu-jdk11","8.6.1","8.5.16","8.5.10-ubuntu-jdk11","8.6.1-jdk11","8.5.16-ubuntu-jdk11","8.5.10","8.6-jdk11","8.5.16-jdk11","8.5.10-jdk11","8.5.17","8.5.11","8.5.17-ubuntu-jdk11","8.5.11-jdk11","8.5.17-jdk11","8.5.11-ubuntu-jdk11","8.14.0-jdk8","8.14.0-ubuntu-jdk8","8.14.0-ubuntu","8.14.1-jdk8","8.14-jdk8","8.14.1-ubuntu","8.14.1-ubuntu-jdk8","8.14-ubuntu","8.14-ubuntu-jdk8","8.15.0-ubuntu","8.15.0-jdk8","8.15.0-ubuntu-jdk8","8.15-ubuntu","8.15.1-ubuntu","8.15-ubuntu-jdk8","8.15.1-ubuntu-jdk8","8.15.1-jdk8","8.15-jdk8","8.16.0-ubuntu","8.16.0-ubuntu-jdk8","8.16.0-jdk8","8.18.1-jdk8","8.18.1-ubuntu","8.7.1-ubuntu-jdk8","8.18.1-ubuntu-jdk8","8.7-jdk8","8.16.1-jdk8","8.16.1-ubuntu-jdk8","8.7.1-ubuntu","8.16.1-ubuntu","8.7.1-jdk8","8.7-ubuntu","8.18.2-ubuntu","8.7-ubuntu-jdk8","8.18-ubuntu","8.18-jdk8","8.16-ubuntu","8.18.2-jdk8","8.18-ubuntu-jdk8","8.16-ubuntu-jdk8","8.10.0-ubuntu-jdk8","8.18.2-ubuntu-jdk8","8.10.0-ubuntu","8.16.2-jdk8","8.13.1-ubuntu","8.10.0-jdk8","8.16-jdk8","8.13.1-ubuntu-jdk8","8.16.2-ubuntu","8.12.0-ubuntu-jdk8","8.12.0-ubuntu","8.16.2-ubuntu-jdk8","8.8.0-ubuntu","8.8.0-jdk8","8.5.8-jdk8","8.5.15-ubuntu","8.10.1-ubuntu","8.5.8-ubuntu-jdk8","8.5.15-ubuntu-jdk8","8.8.0-ubuntu-jdk8","8.12.0-jdk8","8.5.15-jdk8","8.13.1-jdk8","8.5.8-ubuntu","8.10.1-ubuntu-jdk8","8.19-ubuntu-jdk8","8.10-ubuntu-jdk8","8.5.16-jdk8","8.12.1-ubuntu-jdk8","8.8.1-ubuntu-jdk8","8.10.1-jdk8","8.13-jdk8","8.12.1-ubuntu","8.8-ubuntu","8.10-ubuntu","8.13.10-jdk8","8.5.16-ubuntu-jdk8","8.5.9-ubuntu-jdk8","8.12.1-jdk8","8.8.1-ubuntu","8.13.10-ubuntu-jdk8","8.19.0-ubuntu-jdk8","8.5.16-ubuntu","8.5.9-jdk8","8.17.0-ubuntu-jdk8","8.10-jdk8","8.13-ubuntu","8-ubuntu-jdk8","8.5.9-ubuntu","8.8-jdk8","jdk8","8.8.1-jdk8","8.19-ubuntu","8.17.0-ubuntu","8.8-ubuntu-jdk8","8.5.3-ubuntu-jdk8","8.13.5-ubuntu-jdk8","8.19-jdk8","8.5.10-jdk8","8.17.0-jdk8","8.5.17-jdk8","8.5.3-jdk8","8.13.5-ubuntu","8.12.2-ubuntu","8.5.10-ubuntu","8.19.0-ubuntu","8.13-ubuntu-jdk8","8.6.0-ubuntu-jdk8","8.5.17-ubuntu","8.13.5-jdk8","8.12.2-ubuntu-jdk8","8.5.10-ubuntu-jdk8","8.6.0-ubuntu","8.5.17-ubuntu-jdk8","8.5.3-ubuntu","ubuntu-jdk8","8.12.2-jdk8","8.19.0-jdk8","8.17-ubuntu","8.6.0-jdk8","8-jdk8","8.17.1-jdk8","8.13.6-jdk8","ubuntu","8.11.0-ubuntu","8.5.11-jdk8","8-ubuntu","8.5.4-jdk8","8.5.18-ubuntu-jdk8","8.17.1-ubuntu","8.12.3-ubuntu","8.11.0-jdk8","8.13.6-ubuntu-jdk8","8.5.11-ubuntu","8.5.4-ubuntu","8.17.1-ubuntu-jdk8","8.6.1-jdk8","8.5.18-jdk8","8.13.6-ubuntu","8.5.11-ubuntu-jdk8","8.9.0-ubuntu-jdk8","8.5.4-ubuntu-jdk8","8.12.3-jdk8","8.17-jdk8","8.5-ubuntu-jdk8","8.11.0-ubuntu-jdk8","8.9.0-jdk8","8.12-jdk8","8.5-jdk8","8.9.0-ubuntu","8.12-ubuntu-jdk8","8.6.1-ubuntu","8.17-ubuntu-jdk8","8.12.3-ubuntu-jdk8","8.6.1-ubuntu-jdk8","8.5-ubuntu","8.13.7-jdk8","8.13.2-ubuntu-jdk8","8.5.5-jdk8","8.6-ubuntu","8.13.7-ubuntu-jdk8","8.11-jdk8","8.13.2-ubuntu","8.5.5-ubuntu-jdk8","8.6-jdk8","8.12-ubuntu","8.5.12-ubuntu-jdk8","8.11-ubuntu-jdk8","8.5.18-ubuntu","8.13.7-ubuntu","8.5.5-ubuntu","8.6-ubuntu-jdk8","8.5.12-ubuntu","8.13.2-jdk8","8.5.12-jdk8","8.11.1-jdk8","8.9-ubuntu-jdk8","8.11-ubuntu","8.9.1-jdk8","8.11.1-ubuntu","8.9.1-ubuntu-jdk8","8.11.1-ubuntu-jdk8","8.9-jdk8","8.13.3-ubuntu","8.13.8-ubuntu-jdk8","8.5.6-jdk8","8.9-ubuntu","8.5.0-jdk8","8.5.13-jdk8","8.5.0-ubuntu-jdk8","8.13.3-jdk8","8.5.6-ubuntu-jdk8","8.13.8-ubuntu","8.5.13-ubuntu","8.9.1-ubuntu","8.5.0-ubuntu","8.13.3-ubuntu-jdk8","8.5.6-ubuntu","8.13.8-jdk8","8.5.13-ubuntu-jdk8","8.18.0-jdk8","8.13.0-jdk8","8.5.7-jdk8","8.5.2-jdk8","8.13.9-ubuntu-jdk8","8.7.0-ubuntu","8.5.14-ubuntu","8.18.0-ubuntu","8.5.1-ubuntu-jdk8","8.5.7-ubuntu","8.5.2-ubuntu-jdk8","8.13.4-ubuntu-jdk8","8.13.0-ubuntu-jdk8","8.7.0-jdk8","8.18.0-ubuntu-jdk8","8.5.2-ubuntu","8.13.4-jdk8","8.13.0-ubuntu","8.13.9-jdk8","8.5.1-ubuntu","8.5.14-jdk8","8.5.7-ubuntu-jdk8","8.13.4-ubuntu","8.13.9-ubuntu","8.5.1-jdk8","8.5.14-ubuntu-jdk8","8.7.0-ubuntu-jdk8","8.13.10-ubuntu","8.3.5-jdk8","8.3.5","8.3.5-ubuntu-jdk8","8.3-ubuntu","8.3-jdk8","8.3","8.3.5-ubuntu","7.13.13-ubuntu","8.3-ubuntu-jdk8","7.13.13-jdk8","7.13.4-ubuntu-jdk8","7.13.13-ubuntu-jdk8","7.13.4","7.13.13","7.13.4-ubuntu","7.13.4-jdk8","8.2.4","8.2.4-ubuntu-jdk8","8.2.4-ubuntu","8.1.3-jdk8","7.13.14-ubuntu-jdk8","8.2.4-jdk8","7.13.14","8.1.3-ubuntu","7.13.5-jdk8","7.13.14-jdk8","8.1-ubuntu","7.13.5-ubuntu-jdk8","7.13.14-ubuntu","8.4.0","7.13.5-ubuntu","8.4.0-jdk8","8.2.5-ubuntu","7.13.5","8.4.0-ubuntu-jdk8","8.2.5","8.4.0-ubuntu","8.2.5-ubuntu-jdk8","8.2.5-jdk8","7.13.15","7.13.15-jdk8","7.13.6-ubuntu","7.13.15-ubuntu","7.13.6-ubuntu-jdk8","7.13.15-ubuntu-jdk8","8.4.1-ubuntu-jdk8","7.13.6","8.4.1-ubuntu","8.2","7.13.6-jdk8","8.4.1-jdk8","8.2-jdk8","8.4.1","8.2-ubuntu-jdk8","8.2-ubuntu","7.13.16-ubuntu-jdk8","8.2.6-ubuntu","7.13.16-jdk8","8.2.6-jdk8","7.13.8-ubuntu","7.13.16","8.2.6-ubuntu-jdk8","7.13.16-ubuntu","8.4.2","7.13.8-jdk8","8.2.6","8.4.2-jdk8","7.13.8-ubuntu-jdk8","8.4.2-ubuntu","7.13.8","8.4.2-ubuntu-jdk8","7.13.17-ubuntu-jdk8","8.4.1-ubuntu-jdk11","8.2.2-ubuntu-jdk11","7.13.17-ubuntu","8.4.1-jdk11","8.3.1-ubuntu-jdk11","8.2.2-jdk11","7.13.17","7.13.9-ubuntu","8.3.1-jdk11","7.13.17-jdk8","8.4.3-ubuntu","7.13.9","8.4.3-jdk8","7.13.9-ubuntu-jdk8","8.4.3","7.13.9-jdk8","8.2.3-jdk11","8.4.2-ubuntu-jdk11","8.4-jdk8","8.2.3-ubuntu-jdk11","8.3.2-ubuntu-jdk11","7.13-jdk8","8.4.3-ubuntu-jdk8","8.4.2-jdk11","8.3.2-jdk11","7.13-ubuntu-jdk8","8.4-ubuntu-jdk8","8.3.0-ubuntu-jdk8","7-jdk8","8.4-ubuntu","8.0.0-jdk8","8.3.0","7.13.18","8.4","8.0.0-ubuntu","8.3.0-ubuntu","7.13","8.2.4-ubuntu-jdk11","8.0.0-ubuntu-jdk8","8.4-jdk11","8.3.0-jdk8","7.13-ubuntu","8.2.4-jdk11","8.3.3-ubuntu-jdk11","8.0.0","8.4.3-jdk11","7-ubuntu","8.3.3-jdk11","8.4-ubuntu-jdk11","7","7-ubuntu-jdk8","8.4.3-ubuntu-jdk11","7.13.18-jdk8","8.3.1-jdk8","8.0.2","8.2.5-jdk11","7.13.18-ubuntu-jdk8","8.3.1","8.2.0","8.0.2-ubuntu","8.3.4-ubuntu-jdk11","8.2.5-ubuntu-jdk11","8.3.1-ubuntu-jdk8","7.13.18-ubuntu","8.2.0-ubuntu-jdk8","8.0.2-jdk8","8.3.4-jdk11","8.3.1-ubuntu","8.2.0-ubuntu","8.0.2-ubuntu-jdk8","8.2.0-jdk8","8.2-ubuntu-jdk11","8.3-jdk11","8.2.6-jdk11","8.3.2-ubuntu-jdk8","8.0-jdk8","8.3.5-jdk11","8.2.1","8.3.2","8.2-jdk11","8.0.3-jdk8","8.3.5-ubuntu-jdk11","8.2.1-ubuntu-jdk8","8.3.2-jdk8","8.2.6-ubuntu-jdk11","8.0-ubuntu","8.3-ubuntu-jdk11","8.2.1-ubuntu","8.3.2-ubuntu","8.0","8.2.1-jdk8","8.0.3","8.0.3-ubuntu","8.0-ubuntu-jdk8","7.13.2-jdk8","8.0.3-ubuntu-jdk8","8.3.3-jdk8","7.13.2-ubuntu-jdk8","8.2.2-ubuntu","8.3.3-ubuntu","7.13.2","8.2.2-ubuntu-jdk8","8.3.3","7.13.2-ubuntu","8.2.2-jdk8","8.2.0-ubuntu-jdk11","8.3.3-ubuntu-jdk8","8.2.2","8.2.0-jdk11","7.13.3-ubuntu","8.3.0-ubuntu-jdk11","7.13.3-ubuntu-jdk8","8.3.4-ubuntu-jdk8","8.2.3-ubuntu-jdk8","8.4.0-ubuntu-jdk11","8.2.1-ubuntu-jdk11","7.13.3-jdk8","8.3.0-jdk11","8.3.4-jdk8","8.2.3","8.4.0-jdk11","8.2.1-jdk11","7.13.3","8.3.4-ubuntu","8.2.3-jdk8","8.3.4","8.2.3-ubuntu","8.19.0-RC01-ubuntu-jdk8","8.19.0-RC01-jdk8","8.19.0-RC01-ubuntu","7.13.0-ubuntu-jdk8","7.13.0","7.13.0-ubuntu","7.13.0-jdk8","7.13.1-ubuntu-jdk8","7.13.1-jdk8","7.13.1-ubuntu","7.13.1","7.13.11-ubuntu","7.13.11","8.1.0-jdk8","8.1.0","7.13.11-ubuntu-jdk8","8.1.0-ubuntu-jdk8","7.13.11-jdk8","8.1.0-ubuntu","7.13.12-ubuntu","8.1.1-ubuntu","7.13.12","8.1.1-jdk8","7.13.12-jdk8","8.1.1","7.13.12-ubuntu-jdk8","8.1.1-ubuntu-jdk8","8.1.2-ubuntu-jdk8","8.1.2-ubuntu","8.1.2","8.1.2-jdk8","8.1.3-ubuntu-jdk8","8.1","8.1.3","8.1-jdk8","8.1-ubuntu-jdk8","eap-ubuntu","8.19.0-EAP02-ubuntu","eap-ubuntu-jdk8","8.19.0-EAP02-ubuntu-jdk8","eap-jdk8","8.19.0-EAP02-jdk8","8.19.0-EAP01-ubuntu","8.19.0-EAP01-jdk8","8.19.0-EAP01-ubuntu-jdk8","8.19.0-EAP01-ubuntu-jdk11","8.18.0-ssmith-perm-build-1","8.18.0-RC01-ubuntu","8.18.0-RC01-ubuntu-jdk8","8.18.0-RC01-jdk8","8.18.0-EAP02-ubuntu-jdk8","8.18.0-EAP02-jdk8","8.18.0-EAP02-ubuntu","8.18.0-EAP02-ubuntu-jdk11","8.18.0-EAP01-ubuntu","8.18.0-EAP01-jdk8","8.18.0-EAP01-ubuntu-jdk8","8.17.0-RC02-jdk8","8.17.0-RC02-ubuntu","8.17.0-RC02-ubuntu-jdk8","8.17.0-RC01-jdk8","8.17.0-RC01-ubuntu-jdk8","8.17.0-RC01-ubuntu","8.17.0-EAP02-ubuntu","8.17.0-EAP02-jdk8","8.17.0-EAP02-ubuntu-jdk8","8.17.0-EAP01-ubuntu","8.17.0-EAP01-ubuntu-jdk8","8.17.0-EAP01-jdk8","8.16.0-EAP02-ubuntu-jdk8","8.16.0-EAP02-jdk8","8.16.0-EAP02-ubuntu","8.16.0-EAP02","8.16.0-EAP02-jdk11","8.16.0-EAP02-ubuntu-jdk11","8.16.0-RC01-ubuntu-jdk11","8.16.0-RC01-jdk11","8.16.0-EAP03","8.16.0-EAP03-ubuntu-jdk11","8.16.0-EAP03-ubuntu-jdk8","8.16.0-EAP03-jdk11","8.16.0-EAP03-jdk8","8.16.0-EAP03-ubuntu","8.16.0-RC01-ubuntu-jdk8","8.16.0-RC01-ubuntu","8.16.0-RC01","8.16.0-RC01-jdk8","8.16.0-RC02-ubuntu-jdk11","8.16.0-RC02-jdk11","8.16.0-RC02","8.16.0-RC02-ubuntu","8.16.0-RC02-ubuntu-jdk8","8.16.0-RC02-jdk8","8.16.0-EAP01","8.16.0-EAP01-jdk8","8.16.0-EAP01-ubuntu","8.16.0-EAP01-ubuntu-jdk11","8.16.0-EAP01-jdk11","8.15.0-RC01","8.15.0-RC01-jdk8","8.15.0-RC01-ubuntu-jdk11","8.15.0-RC01-ubuntu","8.15.0-RC01-jdk11","8.15.0-EAP03-jdk11","8.15.0-EAP03-ubuntu-jdk11","8.15.0-EAP03-jdk8","8.15.0-EAP03","8.15.0-EAP03-ubuntu","8.15.0-EAP02-ubuntu","8.15.0-EAP02","8.15.0-EAP02-jdk8","8.15.0-EAP02-ubuntu-jdk11","8.15.0-EAP02-jdk11","8.15.0-EAP01-ubuntu-jdk11","8.15.0-EAP01-jdk11","8.15.0-EAP01","8.15.0-EAP01-ubuntu","8.15.0-EAP01-jdk8","8.14.0-RC01-jdk11","8.14.0-RC01-ubuntu-jdk11","8.14.0-RC01","8.14.0-RC01-ubuntu","8.14.0-RC01-jdk8","8.14.0-EAP01-ubuntu","8.14.0-EAP01","8.14.0-EAP01-jdk8","8.14.0-EAP01-ubuntu-jdk11","8.14.0-EAP01-jdk11","8.13.0-RC01","8.13.0-RC01-jdk11","8.13.0-RC01-ubuntu","8.13.0-RC01-ubuntu-jdk11","8.13.0-RC01-jdk8","8.13.0-EAP03-jdk8","8.13.0-EAP03","8.13.0-EAP03-ubuntu","8.13.0-EAP03-ubuntu-jdk11","8.13.0-EAP03-jdk11","8.13.0-EAP02","8.13.0-EAP02-ubuntu","8.13.0-EAP02-jdk8","8.13.0-EAP02-jdk11","8.13.0-EAP02-ubuntu-jdk11","8.12.0-RC02-jdk11","8.12.0-RC02-ubuntu-jdk11","8.12.0-RC02-jdk8","8.12.0-RC02-ubuntu","8.12.0-RC02","8.13.0-EAP01-jdk11","8.13.0-EAP01-ubuntu-jdk11","8.12.0-RC01-jdk11","8.12.0-RC01-ubuntu-jdk11","8.13.0-EAP01-jdk8","8.13.0-EAP01-ubuntu","8.13.0-EAP01","8.12.0-RC01-jdk8","8.12.0-RC01-ubuntu","8.12.0-RC01","8.12.0-EAP02-ubuntu-jdk11","8.12.0-EAP02-jdk11","8.12.0-EAP02","8.12.0-EAP02-ubuntu","8.12.0-EAP02-jdk8","8.12.0-EAP01-jdk11","8.12.0-EAP01-ubuntu-jdk11","8.12.0-EAP01","8.12.0-EAP01-jdk8","8.12.0-EAP01-ubuntu","8.5.6-RC02-jdk8","8.5.6-RC02-ubuntu","8.5.6-RC02","8.5.6-RC02-ubuntu-jdk11","8.5.6-RC02-jdk11","8.11.0-RC01","8.11.0-RC01-jdk8","8.11.0-RC01-ubuntu","8.11.0-RC01-jdk11","8.11.0-RC01-ubuntu-jdk11","8.11.0-EAP01-ubuntu-jdk11","8.11.0-EAP01-jdk11","8.11.0-EAP01-jdk8","8.11.0-EAP01-ubuntu","8.11.0-EAP01","8.10.0-RC01-ubuntu","8.10.0-RC01","8.10.0-RC01-jdk8","8.10.0-RC01-jdk11","8.10.0-RC01-ubuntu-jdk11","7.13.14-RC01","7.13.14-RC01-ubuntu","7.13.14-RC01-jdk8","8.10.0-EAP02-jdk8","8.10.0-EAP02","8.10.0-EAP02-ubuntu","8.10.0-EAP01-jdk8","8.10.0-EAP01","8.10.0-EAP01-ubuntu","8.10.0-EAP01-ubuntu-jdk11","7.13.15-RC01-ubuntu","8.10.0-EAP01-jdk11","7.13.15-RC01","7.13.15-RC01-jdk8","8.10.0-EAP02-ubuntu-jdk11","8.10.0-EAP02-jdk11","8.5.6-RC01-jdk11","8.5.6-RC01-ubuntu-jdk11","8.5.6-RC01","8.5.6-RC01-ubuntu","8.5.6-RC01-jdk8","8.5.5-RC01-jdk11","8.5.5-RC01-ubuntu-jdk11","8.5.5-RC01","8.5.5-RC01-jdk8","8.5.5-RC01-ubuntu","8.9.0-RC01-ubuntu","8.9.0-RC01-jdk8","8.9.0-RC01","8.9.0-RC01-jdk11","8.9.0-RC01-ubuntu-jdk11","8.9.0-EAP02-jdk11","8.9.0-EAP02-ubuntu-jdk11","8.9.0-EAP02-jdk8","8.9.0-EAP02-ubuntu","8.9.0-EAP02","8.9.0-EAP01-ubuntu-jdk11","8.9.0-EAP01-jdk11","8.9.0-EAP01-ubuntu","8.9.0-EAP01","8.9.0-EAP01-jdk8","8.8.0-RC02-ubuntu-jdk11","8.8.0-RC02-jdk11","8.8.0-RC02-jdk8","8.8.0-RC02-ubuntu","8.8.0-RC02"];!function(u){u.JIRA="jira",u.CONFLUENCE="confluence",u.BITBUCKET="bitbucket",u.BAMBOO="bamboo"}(O||(O={}));const{P:q,activeProfiles:I}=c(r(process.argv)).parseSync(),U=q||I||void 0;class AMPS{static maven;static stop(){AMPS.maven&&AMPS.maven.kill(0)}static async build(u){return new Promise(((t,d)=>{if(AMPS.maven){AMPS.maven.kill(0)||d(new Error("Failed to terminate existing Maven process"))}AMPS.maven=j("mvn",["package",...u],{cwd:a(),stdio:"inherit"}),AMPS.maven.on("exit",(u=>{AMPS.maven=null,0===u||130===u?t():d(new Error(`Maven exited with code ${u}`))}))}))}static isAtlassianPlugin=()=>{try{return AMPS.getNodes("//*[local-name()='packaging']").some((u=>"atlassian-plugin"===u.textContent))}catch(u){return!1}};static getApplicationVersion(){const u=U?AMPS.getNodes(`//*[local-name()='profile']/*[local-name()='id' and text()='${U}']/..//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']`,!0):AMPS.getNodes("//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']",!0);if(u){const t=u.parentNode;if(t){const{plugin:u}=AMPS.toObject(t),d=u?.configuration?.productVersion;return d?this.doPropertyReplacement(d):void 0}}}static getApplication(){const u=AMPS.getApplications();if(1===u.length)return u[0];if(U){const u=AMPS.getApplications(U);if(1===u.length)return u[0]}return null}static getApplications(u){const t=new Set;return(u?AMPS.getNodes(`//*[local-name()='profile']/*[local-name()='id' and text()='${u}']/..//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']`):AMPS.getNodes("//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']")).forEach((u=>{const d=u.parentNode;if(d){const{plugin:u}=AMPS.toObject(d);u?.artifactId?.includes(O.JIRA)?t.add(O.JIRA):u?.artifactId?.includes(O.CONFLUENCE)?t.add(O.CONFLUENCE):u?.artifactId?.includes(O.BAMBOO)?t.add(O.BAMBOO):u?.artifactId?.includes(O.BITBUCKET)&&t.add(O.BITBUCKET)}})),Array.from(t)}static doPropertyReplacement(u){let t=u;const d=U?AMPS.getProperties(U):{};Object.entries(d).forEach((([u,d])=>{t=t.replaceAll(`\${${u}}`,d)}));const n=AMPS.getProperties();return Object.entries(n).forEach((([u,d])=>{t=t.replaceAll(`\${${u}}`,d)})),t}static getProperties(u){const t={};return(u?AMPS.getNodes(`//*[local-name()='profile']/*[local-name()='id' and text()='${u}']/..//*[local-name()='properties']`):AMPS.getNodes("//*[local-name()='properties']")).forEach((u=>{const{properties:d}=AMPS.toObject(u);Object.entries(d).forEach((([u,d])=>t[u]=d))})),t}static getNodes(u,t){if(e("./pom.xml")){const d=s("./pom.xml","utf8"),k=(new n).parseFromString(d,"text/xml"),j=t?o.select(u,k,!0):o.select(u,k,!1);return Array.isArray(j)||t?j:[]}return[]}static toObject(u){try{return(new b).parse((new k).serializeToString(u))}catch(u){return null}}}const $="AAACBA0ODAoPeNp9kl1v2jAUhu/zK460OyQHSLuVIkUaTbwNVBKUhEnbugsTDuA2sSPbgbFfPxOC1i+4yEXO5+vnPR+yGiGSW/CuoXc7vBoMvT4ENAOv5/WctUIUG1lVqNx7nqPQSJfccCl8GmU0mSXjlDpRXS5Qxau5RqV90ncCKQzLTcRK9Eu944Ip/cQ/M1MwrTkTbi5LZ1arfMM0hsyg7/X6A9LvE89z2j3ZvsJmQBBPpzQJxqP7U4r+qbjaN32zG+/baR2dMl6c35ei2qIah/4dvaHkOvzpkU/x5IZ8vbodOI9cMbdSclnnxj38EC1XZscUunYy36JvVI3OxGZmbZXdzwIU5lVJWi90rnjVQGoi70B873GNhPOQO51OFGfkS5yQWRKH8yAbxxGZp9Qm/EChpbGExR7MBqGdAlTkcokK7MMeMTfwa2NM9TDsdtfSfQGnWxw7CB47frsQShDSwJJro/iiNmgncw1GQl5rI0trtetY4sKgYCJ/Y4qVFSR0lNGQ3P04aDxrTKvWOjMXT0LuxCU33txaSiPffuRjr3fsO/mC6og/VmsmuGYN0Ij93TFYcVXunQaaDb4+wJbFd7vg0OI5If53NENtoK2AlVQwGScjSFt5lrjdWymu8WEIgSwtppyzAsLgxRk8P5hG9PMA3bKiPspdsULjJRwX7ukf5/NX7TAtAhUAhQSHz9DgycOX7wcwERMJb3TLGb4CFGkB/xUWSRK3BZLrPF9Rn6ZmrUqJX02oc",N="AAACzg0ODAoPeNp9VO9v2jAQ/Z6/wtK+IYWGsEKHFGmQmJau/GgIm9iYJhMOYprYke1A4a+fSchGKtqPPvvevXv3zp/6gqLHLEb2HbKsTvNzp9lC98MA2ZbdNKYgdiAGntPDQ2z688HcdH/aM7P5o2kZTzQEJiE4pDAiCTgBngaD0b0RCr5f1S9uHfcUWXSQBzuIeQrCCDlb10mo6A4cJTLQSVlIlzFUggpI8ickMbAVEbI+ypIliPG6R5Il5z4kXEF3A0xJp1Gywa8pFQePKHAmDdt6+A9cJVQEK5yWmhMV8HGZLRWkwrF8PZMgpGPfGh7IUNBUUc6cAKRCcVEYrblAaZxtKEOrsqj8V/US85zxXd+fUGwD70ickRwyf7ARACziqUYo+8Irmt/jUYD9iT+YYmNIKFPACAuvyHIaQEUSHYgz0G8rorgC8rp5qvaEZVp3pt0u8sve3TiTCsSIr0A6llGr1VwfdwPsmb25PjjbVwq2EcZcm6nS6DKX+I3iT1yP/Cy42TBe4FAK0WhZVtu6azYbZeZlB0U2wrpnkQoqq40Uyst67RqB9zU8k64olYeqKnGmNCzWiseOUoKwhLLoK1ExkZISVg95cr3ZN/YqdueSYW649/mdrfJAZOQM3b3b96DRuhVk3261kkFvexwe41UQtJN12u5Gz6GcPT7Pn71H70t69CPcbx/a9rcj3rDuwlk4xprKCA5VN+oJjsaB2R/75sQfezM3GIxH5myKT6PN/QErtDwgFQE6E9VDCLUZtN8F30Ko0K9IqXTRubnZ8HpFlZtzAyYUGb/ryOOIcYVWVCpBl5kCjUwlUhyF2mY80WaoXxdzEhOWe2YsNoRRWWxMt6xX/hH6P5uxF8b3rLJIlz1LpQW95pQPvqfLq0kmwohIeLs2l9PMzfQ48LvvWTbfMY1AXDg9KJDLCV2C9HUMH+CaJfOfudi/v0kIGVswLAIUEMQ9X77gqGBdfH0HIzBaV8NadPUCFBn+RiUA4D+IqVQpTTouLVY66aCGX02121",toAbsolutePath=u=>{const[,t]=process.argv,d=A(t),n=d.substring(0,d.indexOf("dcdx")+4);return l(n,u.replaceAll("../",""))},_={name:"shared",driver:"bridge"};let Q=class Base extends m{options;sequelize=null;constructor(u){super(),this.options=u}async run(u,t){try{if(!this.sequelize)throw new Error("Database connection does not exist");await this.sequelize.query(u,{logging:t})}catch(t){console.error("An error occurred while trying to run the following SQL query:",u,t),d()}return null}async start(u=this.options.clean){console.log(`Starting instance of ${this.name} ⏳`),u&&await this.down(),await this.up(),this.emit(`${this.name}:up`);if(await this.waitUntilReady()){if(console.log(`Database is ready and accepting connections on localhost:${this.options.port} 🗄️`),await this.onDatabaseReady(),this.emit("db:ready"),this.options.logging){const u=await this.getServiceState();u&&await this.showDockerLogs(u.name)}}else console.log(`Failed to start database ${this.name} ⛔`),d(0)}async stop(u=this.options.prune){if(u)await this.down();else{const u=g(this.getDockerComposeConfig());await E({cwd:a(),configAsString:u,log:!0})}this.emit("db:stopped")}async onDatabaseReady(){}getDockerComposeConfig(){return{version:"3.8",services:{db:this.getService()},networks:{shared:_}}}async up(){const u=g(this.getDockerComposeConfig());return f({cwd:a(),configAsString:u,log:!0})}async down(){const u=g(this.getDockerComposeConfig());return p({cwd:a(),configAsString:u,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async waitUntilReady(){try{const u="mssql"===this.name?"master":this.options.database;return this.sequelize=new v(u,this.options.username,this.options.password,{host:"localhost",port:this.options.port,dialect:this.name.replace("postgresql","postgres"),retry:{max:30,match:[y,x,T,D,M],backoffBase:1e3,backoffExponent:1},logging:!1}),this.sequelize.authenticate().then((()=>!0)).catch((u=>(console.log(u),!1)))}catch(u){return!1}}async getServiceState(){const u=g(this.getDockerComposeConfig());return(await C({configAsString:u,log:!1,commandOptions:["--all"]})).data.services.find((u=>u.name.includes(this.name)))}async showDockerLogs(u){return new Promise(((t,d)=>{j("docker",["logs","-f","-n","5000",u],{cwd:a(),stdio:"inherit"}).on("exit",(u=>0===u?t():d(new Error(`Docker exited with code ${u}`))))}))}};const B={port:1433,database:"dcdx",username:"sa",password:"DataCenterDX!",edition:"Developer",version:"2022"};class MSSQL extends Q{name="mssql";driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";options=B;version="2022";get url(){return`jdbc:sqlserver://db:${this.options.port};databaseName=${this.options.database};trustServerCertificate=true`}constructor(u=B){super({...B,...u})}async onDatabaseReady(){await this.run(`CREATE DATABASE ${this.options.database}`),await this.run(`ALTER DATABASE ${this.options.database} COLLATE SQL_Latin1_General_CP1_CS_AS`),await this.run(`ALTER DATABASE ${this.options.database} SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;`)}getService=()=>({image:`mcr.microsoft.com/mssql/server:${this.version}-latest`,ports:[`${this.options.port||1433}:1433`],environment:{ACCEPT_EULA:"y",MSSQL_SA_PASSWORD:this.options.password||"dcdx",MSSQL_PID:this.options.edition},networks:{shared:{aliases:["db","database"]}}})}const G={port:3306,database:"dcdx",username:"dcdx",password:"dcdx",version:"8.0"};class MySQL extends Q{name="mysql";driver="com.mysql.jdbc.Driver";options=G;version="8.0";get url(){return`jdbc:mysql://db:${this.options.port}/${this.options.database}?sessionVariables=transaction_isolation='READ-COMMITTED'`}constructor(u=G){super({...G,...u})}async onDatabaseReady(){await this.run(`ALTER DATABASE ${this.options.database} CHARACTER SET 'utf8mb4' COLLATE utf8mb4_bin`)}getService=()=>({image:`mysql:${this.version}`,ports:[`${this.options.port||3306}:3306`],environment:{MYSQL_ROOT_PASSWORD:this.options.password||"dcdx",MYSQL_USER:this.options.username||"dcdx",MYSQL_PASSWORD:this.options.password||"dcdx",MYSQL_DATABASE:this.options.database||"dcdx"},command:["--log_bin_trust_function_creators=1"],networks:{shared:{aliases:["db","database"]}}})}const V={version:"15",database:"dcdx",port:5432,username:"dcdx",password:"dcdx"};class Postgres extends Q{name="postgresql";driver="org.postgresql.Driver";options=V;version="15";get url(){return`jdbc:postgresql://db:${this.options.port}/${this.options.database}`}constructor(u=V){super({...V,...u})}getService=()=>({image:`postgres:${this.version}`,ports:[`${this.options.port||5432}:5432`],environment:{POSTGRES_USER:this.options.username||"dcdx",POSTGRES_PASSWORD:this.options.password||"dcdx",POSTGRES_DB:this.options.database||"dcdx",POSTGRES_HOST_AUTH_METHOD:"md5",POSTGRES_INITDB_ARGS:"--encoding=UTF-8 --lc-collate=C --lc-ctype=C"},networks:{shared:{aliases:["db","database"]}}})}const z=l(w(),".dcdx");class Base extends m{options;constructor(u){super(),this.options=u}get baseUrl(){let u="http://localhost";return this.options.port&&(u+=`:${this.options.port}`),this.options.contextPath?`${u}/${this.options.contextPath}`:u}getDatabaseEngine(u){switch(u){case"postgresql":return new Postgres;case"mssql":return new MSSQL;case"mysql":return new MySQL}}async start(){this.options.clean&&await this.down(),await this.build(this.options.version),await this.database.start(this.options.clean),await this.up()}async stop(){if(await this.database.stop(this.options.prune),this.options.prune)await this.down();else{const u=g(this.getDockerComposeConfig());await E({cwd:a(),configAsString:u,log:!0})}this.emit(`${this.name}:stopped`)}async reset(){await this.database.stop(!0),await this.down()}async cp(u){const t=await this.getServiceState();if(t&&t.state.toLowerCase().startsWith("up")){const t=this.getDockerComposeConfig(),d=g(t);await h("cp",[u,`${this.name}:/opt/quickreload/`],{cwd:a(),configAsString:d,log:!1})}}async isApplicationReady(){try{const u=await P.get(`${this.baseUrl}/status`,{validateStatus:()=>!0}).catch((()=>null));if(u&&200===u.status){const{data:t}=u;if("FIRST_RUN"===t.state)return console.log(`The application ${this.name} is ready on ${this.baseUrl} 🎉`),!0}return!1}catch(u){return!1}}getDockerComposeConfig(){return{version:"3.8",services:{[this.name]:this.getService()},networks:{shared:_}}}async up(){const u=this.getDockerComposeConfig(),t=g(u);await R({cwd:a(),configAsString:t,log:!0}),this.emit(`${this.name}:up`);await this.waitUntilReady()?(this.emit(`${this.name}:ready`),await this.tailApplicationLogs()):console.log(`Failed to start ${this.name} ⛔`),d(0)}async down(){const u=g(this.getDockerComposeConfig());await p({cwd:a(),configAsString:u,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async getServiceState(){const u=g(this.getDockerComposeConfig());return(await C({configAsString:u,log:!1,commandOptions:["--all"]})).data.services.find((u=>u.name.includes(this.name)))}async waitUntilReady(u=0){console.log(`Waiting for ${this.name} to become available... ${u}s`);const t=await this.getServiceState();return!!(t&&t.state.toLowerCase().startsWith("up")&&await this.isApplicationReady())||(u>=300?(console.error(`A timeout occurred while waiting for ${this.name} to become available ⛔`),t&&await this.showDockerLogs(t.name),!1):(await new Promise((u=>setTimeout(u,1e3))),this.waitUntilReady(u+1)))}getDockerRepositoryUrl(){return`https://bitbucket.org/atlassian-docker/docker-${"jira"===this.name?"atlassian-jira":"bamboo"===this.name?`${this.name}-server`:`atlassian-${this.name}-server`}.git`}async build(u){const t=this.getDockerRepositoryUrl(),d=l(z,this.name,"source");e(d)?await S({baseDir:d}).pull({"--recurse-submodule":null}):(i(l(z,this.name),{recursive:!0}),await S().clone(t,d,{"--recurse-submodule":null})),await new Promise(((t,n)=>{j("docker",["build","-t",`dcdx/${this.name}:${u}`,"--build-arg",`${this.name.toUpperCase()}_VERSION=${u}`,"."],{cwd:d,stdio:"inherit"}).on("exit",(u=>0===u?t():n(new Error(`Docker exited with code ${u}`))))}))}async tailApplicationLogs(){const u=await this.getServiceState();u&&u.state.toLowerCase().startsWith("up")&&await this.showApplicationLogs(u.name).catch((()=>null))}async showDockerLogs(u){return new Promise(((t,d)=>{j("docker",["logs","-f","-n","5000",u],{cwd:a(),stdio:"inherit"}).on("exit",(u=>0===u?t():d(new Error(`Docker exited with code ${u}`))))}))}async showApplicationLogs(u){return new Promise(((t,d)=>{j("docker",["exec","-i",u,"tail","-F","-n","5000",this.logFilePath],{cwd:a(),stdio:"inherit"}).on("exit",(u=>0===u?t():d(new Error(`Docker exited with code ${u}`))))}))}}class Jira extends Base{name=O.JIRA;database;logFilePath="/var/atlassian/application-data/jira/log/atlassian-jira.log";constructor(u){super(u),this.database=this.getDatabaseEngine(u.database)}getService(){const u=this.getVolumes(),t=this.getEnvironmentVariables();return{build:{context:toAbsolutePath("../../assets"),dockerfile_inline:`\nFROM dcdx/${this.name}:${this.options.version}\nCOPY ./jira-data-generator-5.0.0.jar /var/atlassian/application-data/jira/plugins/installed-plugins/jira-data-generator-5.0.0.jar\nCOPY ./mysql-connector-j-8.3.0.jar /opt/atlassian/jira/lib/mysql-connector-j-8.3.0.jar\nCOPY ./quickreload-5.0.2.jar /var/atlassian/application-data/jira/plugins/installed-plugins/quickreload-5.0.2.jar\nRUN echo "/opt/quickreload" > /var/atlassian/application-data/jira/quickreload.properties; mkdir -p /opt/quickreload; chown -R jira:jira /opt/quickreload;\n\nRUN chown -R jira:jira /var/atlassian/application-data/jira`},ports:[`${this.options.port||80}:8080`,...this.options.debug?["5005:5005"]:[]],environment:Object.keys(t).length>0?t:void 0,volumes:u.length>0?u:void 0,networks:["shared"]}}getEnvironmentVariables(){const u="postgresql"===this.database.name?"postgres72":this.database.name;return{...this.options.contextPath?{ATL_TOMCAT_CONTEXTPATH:this.options.contextPath}:"",...this.options.debug?{JVM_SUPPORT_RECOMMENDED_ARGS:this.getJVMArgs()}:"",ATL_LICENSE_KEY:this.options.license||N,ATL_JDBC_URL:this.database.url,ATL_JDBC_USER:this.database.options.username,ATL_JDBC_PASSWORD:this.database.options.password,ATL_DB_DRIVER:this.database.driver,ATL_DB_TYPE:u,JIRA_SETUP_LICENSE:this.options.license||$}}getJVMArgs(){const u=[];return this.options.debug&&(u.push("-Dupm.plugin.upload.enabled=true"),u.push("-Xdebug"),u.push("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005")),this.options.quickReload&&u.push("-Dquickreload.dirs=/opt/quickreload"),u.join(" ")}getVolumes(){return[...this.options.quickReload?[`${this.options.quickReload}:/opt/quickreload`]:""]}}const J=AMPS.getApplicationVersion()||"latest";(async()=>{const d=u.showHelpAfterError(!0).addOption(new t("-v, --version <version>","The version of the host application").choices(L).default(J)).addOption(new t("-d, --database <name>","The database engine to remove data from").choices(["postgresql","mysql","mssql"]).default("postgresql")).parse(process.argv).opts(),n=new Jira({version:d.version,database:d.database});await n.reset()})(),process.on("SIGINT",(()=>{console.log("Received term signal, trying to stop gracefully 💪"),d()}));
2
+ import{program as u,Option as t}from"commander";import{gracefulExit as d}from"exit-hook";import{DOMParser as n,XMLSerializer as k}from"@xmldom/xmldom";import{spawn as j}from"child_process";import{XMLParser as b}from"fast-xml-parser";import{existsSync as e,readFileSync as s,mkdirSync as i}from"fs";import{cwd as a}from"process";import o from"xpath";import{hideBin as r}from"yargs/helpers";import c from"yargs/yargs";import{dirname as A,join as l}from"path";import P from"axios";import{stop as E,downAll as p,ps as C,execCompose as h,upAll as R}from"docker-compose/dist/v2.js";import m from"events";import{dump as g}from"js-yaml";import{homedir as w}from"os";import S from"simple-git";import{upAll as f}from"docker-compose";import{Sequelize as v,ConnectionError as y,TimeoutError as x,ConnectionTimedOutError as T,ConnectionRefusedError as D,ConnectionAcquireTimeoutError as M}from"sequelize";var O,L=["latest","9.8.0-ubuntu-jdk11","9.8.0-jdk11","9.8.0","9.5-ubuntu-jdk11","9.5-jdk11","9.5.1-ubuntu-jdk11","9.5.1-jdk11","9.5.1","9.5","9.14.0-ubuntu-jdk11","9.14.0-jdk11","9.14-ubuntu-jdk11","9.14.0","9.14-jdk11","9.14.1-ubuntu-jdk11","9.14","9.14.1","9.12.5-ubuntu-jdk11","9.12.5-jdk11","9.12.5","9.0-ubuntu-jdk11","9.0-jdk11","9.0.0-ubuntu-jdk11","9.0.0-jdk11","9.0.0","9.0","9.8.1-ubuntu-jdk11","9.8.1-jdk11","9.8.1","9.14.1-jdk11","9.10-ubuntu-jdk11","9.10-jdk11","9.10.2-ubuntu-jdk11","9.10.2-jdk11","9.10.2","9.8","9.10","9.12.6-jdk11","9.12.6-ubuntu-jdk11","9.12.6","9.8-ubuntu-jdk11","9.8-jdk11","9.8.2-ubuntu-jdk11","9.8.2-jdk11","9.8.2","9.6-ubuntu-jdk11","9.6-jdk11","9.6.0-ubuntu-jdk11","9.6.0-jdk11","9.6.0","9.6","9.4.2-ubuntu-jdk11","9.4.2-jdk11","9.4.2","9.3.0-ubuntu-jdk11","9.3.0-jdk11","9.3.0","9.14.0-ubi9-jdk17","9.14.0-ubi9","9.12.7-ubi9-jdk17","9.12.7-ubi9","9.5.0-ubi9-jdk17","9.5.0-ubi9","9.12-ubuntu-jdk11","9.12-jdk11","9.12.7-ubuntu-jdk11","9.12.7-jdk11","9.12.7","9.12","9.1.0-ubuntu-jdk11","9.1.0-jdk11","ubuntu-jdk11","9.1.0","jdk11","9-ubuntu-jdk11","9-jdk11","9.4-ubuntu-jdk11","9.4-jdk11","9.4.20-ubuntu-jdk11","9.4.20-jdk11","9.4.20","9.4","9.3.1-ubuntu-jdk11","9.3.1-jdk11","9.3.1","9.15-ubuntu-jdk11","9.15-jdk11","9.15.0-ubuntu-jdk11","9.15.0-jdk11","9.15.0","9.15","9.12.0-ubuntu-jdk11","9.12.0-jdk11","9.12.0","9.11.0-ubuntu-jdk11","9.11.0-jdk11","9.11.0","9","9.8.0-ubi9-jdk17","9.8.0-ubi9","9.7.0-ubi9-jdk17","9.7.0-ubi9","9.5.1-ubi9-jdk17","9.5.1-ubi9","9.1-ubuntu-jdk11","9.1-jdk11","9.14.1-ubi9-jdk17","9.14.1-ubi9","9.1.1-ubuntu-jdk11","9.1.1-jdk11","9.1.1","9.9.0-ubuntu-jdk11","9.1","9.9.0-ubi9-jdk17","9.9.0-ubi9","9.9.0-jdk11","9.9.0","9.7.0-ubuntu-jdk11","9.7.0-jdk11","9.7.0","9.4.6-ubuntu-jdk11","9.4.6-jdk11","9.4.6","9.4.1-ubuntu-jdk11","9.4.1-jdk11","9.4.15-ubuntu-jdk11","9.4.15-jdk11","9.4.15","9.4.1","9.3.2-ubuntu-jdk11","9.3.2-jdk11","9.3.2","9.12.1-ubuntu-jdk11","9.12.1-jdk11","9.12.1","9.11.1-ubuntu-jdk11","9.11.1-jdk11","9.11.1","9.8.1-ubi9-jdk17","9.8.1-ubi9","9.7.1-ubi9-jdk17","9.7.1-ubi9","9.4.10-ubuntu-jdk11","9.4.10-jdk11","9.4.10","9.13.0-ubuntu-jdk11","9.13.0-ubi9-jdk17","9.13.0-ubi9","9.13.0-jdk11","9.13.0","9.11.3-ubi9-jdk17","9.11.3-ubi9","9.10.2-ubi9-jdk17","9.10.2-ubi9","9.9.1-ubuntu-jdk11","9.9.1-ubi9-jdk17","9.9.1-ubi9","9.9.1-jdk11","9.9.1","9.7.1-ubuntu-jdk11","9.7.1-jdk11","9.7.1","9.4.7-ubuntu-jdk11","9.4.7-jdk11","9.4.7","9.4.16-ubuntu-jdk11","9.4.16-jdk11","9.4.16","9.3-ubuntu-jdk11","9.3-jdk11","9.3.3-ubuntu-jdk11","9.3.3-jdk11","9.3.3","9.3","9.2.0-ubuntu-jdk11","9.2.0-jdk11","9.2.0","9.12.4-ubi9-jdk17","9.12.4-ubi9","9.12.1-ubi9-jdk17","9.12.1-ubi9","9.11.2-ubuntu-jdk11","9.11.2-jdk11","9.11.2","ubi9-jdk17","ubi9","9.8.2-ubi9-jdk17","9.8.2-ubi9","9.7.2-ubi9-jdk17","9.7.2-ubi9","9.6.0-ubi9-jdk17","9.6.0-ubi9","9.4.8-ubuntu-jdk11","9.4.8-jdk11","9.4.8","9.4.3-ubuntu-jdk11","9.4.3-jdk11","9.4.3","9.4.11-ubuntu-jdk11","9.4.11-jdk11","9.4.11","9.15.0-ubi9-jdk17","9.15.0-ubi9","9.13-ubuntu-jdk11","9.13-jdk11","9.13.1-ubuntu-jdk11","9.13.1-ubi9-jdk17","9.13.1-ubi9","9.13.1-jdk11","9.13.1","9.13","9.12.2-ubuntu-jdk11","9.12.2-jdk11","9.12.2","9.9-ubuntu-jdk11","9.9-jdk11","9.9.2-ubuntu-jdk11","9.9.2-ubi9-jdk17","9.9.2-ubi9","9.9.2-jdk11","9.9.2","9.9","9.7-ubuntu-jdk11","9.7-jdk11","9.7.2-ubuntu-jdk11","9.7.2-jdk11","9.7.2","9.7","9.4.17-ubuntu-jdk11","9.4.17-jdk11","9.4.17","9.2-ubuntu-jdk11","9.2-jdk11","9.2.1-ubuntu-jdk11","9.2.1-jdk11","9.2.1","9.2","9.12.5-ubi9-jdk17","9.12.5-ubi9","9.11-ubuntu-jdk11","9.11-jdk11","9.11.3-ubuntu-jdk11","9.11.3-jdk11","9.11.3","9.11.1-ubi9-jdk17","9.11.1-ubi9","9.11","9.10.0-ubuntu-jdk11","9.10.0-ubi9-jdk17","9.10.0-ubi9","9.10.0-jdk11","9.10.0","9.4.9-ubuntu-jdk11","9.4.9-jdk11","9.4.9","9.4.4-ubuntu-jdk11","9.4.4-jdk11","9.4.4","9.4.12-ubuntu-jdk11","9.4.12-jdk11","9.4.12","9.12.3-ubuntu-jdk11","9.12.3-jdk11","9.12.3","9.12.2-ubi9-jdk17","9.12.2-ubi9","9.4.18-ubuntu-jdk11","9.4.18-jdk11","9.4.18","9.5.0-ubuntu-jdk11","9.5.0-jdk11","9.5.0","9.4.5-ubuntu-jdk11","9.4.5-jdk11","9.4.5","9.4.19-ubuntu-jdk11","9.4.19-jdk11","9.4.19","9.4.14-ubuntu-jdk11","9.4.14-jdk11","9.4.14","9.4.0-ubuntu-jdk11","9.4.0-jdk11","9.4.0","9.12.6-ubi9-jdk17","9.12.6-ubi9","9.12.4-ubuntu-jdk11","9.12.4-jdk11","9.12.4","9.12.3-ubi9-jdk17","9.12.3-ubi9","9.12.0-ubi9-jdk17","9.12.0-ubi9","9.11.2-ubi9-jdk17","9.11.2-ubi9","9.11.0-ubi9-jdk17","9.11.0-ubi9","9.10.1-ubuntu-jdk11","9.10.1-ubi9-jdk17","9.10.1-ubi9","9.10.1-jdk11","9.10.1","10.0.0-EAP02-ubi9-jdk17","10.0.0-EAP02","10.0.0-EAP02-ubi9","10.0.0-EAP02-ubuntu-jdk11","10.0.0-EAP02-jdk11","9.15.0-RC","9.15.0-RC-jdk11","9.15.0-RC-ubuntu-jdk11","9.15.0-RC-ubi9","9.15.0-RC-ubi9-jdk17","9.15.0-EAP02-ubi9-jdk17","9.15.0-EAP02-ubi9","9.15.0-EAP02-jdk11","9.15.0-EAP02-ubuntu-jdk11","9.15.0-EAP02","8.22.3-ubuntu-jdk11","8.22.3-jdk11","8.22.3","8.22.4-ubuntu-jdk11","8.22.4-jdk11","8.22.4","8.22.5-ubuntu-jdk11","8.22.5","8.22.5-jdk11","8.16-ubuntu-jdk11","8.16-jdk11","8.16.2-ubuntu-jdk11","8.16.2-jdk11","8.16.2","8.16","8-ubuntu-jdk11","8-jdk11","8.22-ubuntu-jdk11","8.22-jdk11","8.22.6-ubuntu-jdk11","8.22.6-jdk11","8.22.6","8.22","8","8.17.0-ubuntu-jdk11","8.17.0-jdk11","8.17.0","8.20.21-ubuntu-jdk11","8.20.21-jdk11","8.20.21","8.20.4-ubuntu-jdk11","8.20.4-jdk11","8.20.4","8.17-ubuntu-jdk11","8.17-jdk11","8.17.1-ubuntu-jdk11","8.17.1-jdk11","8.17.1","8.17","8.20.22-ubuntu-jdk11","8.20.22-jdk11","8.20.22","8.13.5-ubuntu-jdk11","8.13.5-jdk11","8.13.5","8.20.5-ubuntu-jdk11","8.20.5-jdk11","8.20.5","8.13.19-ubuntu-jdk11","8.13.19-jdk11","8.13.19","8.13.6-jdk11","8.20.23-ubuntu-jdk11","8.20.23-jdk11","8.20.23","8.20.11-ubuntu-jdk11","8.20.11-jdk11","8.20.11","8.13.6-ubuntu-jdk11","8.13.6","8.13.2-ubuntu-jdk11","8.13.2-jdk11","8.13.2","8.20.6-ubuntu-jdk11","8.20.6-jdk11","8.20.6","8.18.0-ubuntu-jdk11","8.18.0-jdk11","8.18.0","8.13.0-ubuntu-jdk11","8.13.0-jdk11","8.13.0","8.20.24-ubuntu-jdk11","8.20.24-jdk11","8.20.24","8.20.12-ubuntu-jdk11","8.20.12-jdk11","8.20.12","8.13.7-ubuntu-jdk11","8.13.7-jdk11","8.20.7-ubuntu-jdk11","8.13.7","8.20.7-jdk11","8.20.7","8.18.1-ubuntu-jdk11","8.18.1-jdk11","8.18.1","8.13.20-ubuntu-jdk11","8.13.20-jdk11","8.13.20","8.13.1-ubuntu-jdk11","8.13.1-jdk11","8.13.1","8.13.8-ubuntu-jdk11","8.13.8-jdk11","8.13.8","8.20.25-ubuntu-jdk11","8.20.25-jdk11","8.20.25","8.20.13-ubuntu-jdk11","8.20.13-jdk11","8.20.13","8.13.21-ubuntu-jdk11","8.13.21-jdk11","8.13.21","8.13.10-ubuntu-jdk11","8.13.10-jdk11","8.20.8-ubuntu-jdk11","8.13.10","8.20.8-jdk11","8.20.8","8.18-ubuntu-jdk11","8.18-jdk11","8.18.2-ubuntu-jdk11","8.18.2-jdk11","8.18.2","8.18","8.13.9-ubuntu-jdk11","8.13.9-jdk11","8.13.9","8.20.26-ubuntu-jdk11","8.20.26-jdk11","8.20.26","8.20.14-ubuntu-jdk11","8.20.14-jdk11","8.20.14","8.13.22-ubuntu-jdk11","8.13.22-jdk11","8.13.22","8.20.9-ubuntu-jdk11","8.20.9-jdk11","8.20.9","8.14.0-ubuntu-jdk11","8.14.0-jdk11","8.14.0","8.13.11-ubuntu-jdk11","8.13.11-jdk11","8.13.11","8.20.15-ubuntu-jdk11","8.20.15-jdk11","8.20.15","8.13.24-ubuntu-jdk11","8.13.24-jdk11","8.13.24","8.20.27-ubuntu-jdk11","8.20.27-jdk11","8.20.27","8.19.0-ubuntu-jdk11","8.19.0-jdk11","8.19.0","8.14-ubuntu-jdk11","8.14-jdk11","8.14.1-ubuntu-jdk11","8.14.1-jdk11","8.14.1","8.14","8.13.12-ubuntu-jdk11","8.13.12-jdk11","8.13.12","8.21.0-ubuntu-jdk11","8.21.0-jdk11","8.21.0","8.20.28-ubuntu-jdk11","8.20.28-jdk11","8.20.28","8.20.16-ubuntu-jdk11","8.20.16-jdk11","8.20.16","8.13.25-ubuntu-jdk11","8.13.25-jdk11","8.13.25","8.13.13-ubuntu-jdk11","8.13.13-jdk11","8.13.13","8.21-ubuntu-jdk11","8.21-jdk11","8.21.1-ubuntu-jdk11","8.21.1-jdk11","8.21.1","8.21","8.19-ubuntu-jdk11","8.19-jdk11","8.19.1-ubuntu-jdk11","8.19.1-jdk11","8.19.1","8.19","8.20.17-ubuntu-jdk11","8.20.17-jdk11","8.20.17","8.15.0-ubuntu-jdk11","8.15.0-jdk11","8.15.0","8.13.26-ubuntu-jdk11","8.13.26-jdk11","8.13.26","8.13.14-ubuntu-jdk11","8.13.14-jdk11","8.20.29-ubuntu-jdk11","8.20.29-jdk11","8.20.29","8.13.14","8.13-ubuntu-jdk11","8.13-jdk11","8.13.27-ubuntu-jdk11","8.13.27-jdk11","8.13.27","8.13","8.20.3-ubuntu-jdk11","8.20.3-jdk11","8.20.3","8.20.18-ubuntu-jdk11","8.20.18-jdk11","8.20.18","8.15-ubuntu-jdk11","8.15-jdk11","8.15.1-ubuntu-jdk11","8.15.1-jdk11","8.15.1","8.15","8.13.15-ubuntu-jdk11","8.13.15-jdk11","8.13.15","8.22.0-ubuntu-jdk11","8.22.0-jdk11","8.22.0","8.20.19-ubuntu-jdk11","8.20.19-jdk11","8.20.19","8.20.0-ubuntu-jdk11","8.20.0-jdk11","8.20.0","8.13.16-ubuntu-jdk11","8.13.16-jdk11","8.20-ubuntu-jdk11","8.13.16","8.20-jdk11","8.20.30-ubuntu-jdk11","8.20.30-jdk11","8.20.30","8.20","8.22.1-ubuntu-jdk11","8.22.1-jdk11","8.22.1","8.20.2-ubuntu-jdk11","8.20.2-jdk11","8.20.2","8.20.1-ubuntu-jdk11","8.20.1-jdk11","8.20.1","8.13.17-ubuntu-jdk11","8.13.17-jdk11","8.13.17","8.16.0-ubuntu-jdk11","8.16.0-jdk11","8.16.0","8.13.3-ubuntu-jdk11","8.13.3-jdk11","8.13.3","8.22.2-ubuntu-jdk11","8.22.2-jdk11","8.22.2","8.20.20-ubuntu-jdk11","8.20.20-jdk11","8.20.20","8.20.10-ubuntu-jdk11","8.20.10-jdk11","8.20.10","8.13.4-ubuntu-jdk11","8.13.4-jdk11","8.13.4","8.13.18-ubuntu-jdk11","8.13.18-jdk11","8.13.18","8.16.1-ubuntu-jdk11","8.16.1-jdk11","8.16.1","9.15.0-EAP01-ubuntu-jdk11","9.15.0-EAP01","9.15.0-EAP01-jdk11","10.0.0-EAP01-jdk11","10.0.0-EAP01-ubuntu-jdk11","10.0.0-EAP01","9.14.0-RC-ubuntu-jdk11","9.14.0-RC-jdk11","9.14.0-RC","9.14.0-EAP02","9.14.0-EAP02-ubuntu-jdk11","9.14.0-EAP02-jdk11","9.14.0-EAP01-ubuntu-jdk11","9.14.0-EAP01-jdk11","9.14.0-EAP01","9.13.0-EAP02","9.13.0-EAP02-ubuntu-jdk11","9.13.0-EAP02-jdk11","9.4.13-jdk11","9.4.13","9.4.13-ubuntu-jdk11","9.13.0-EAP01-ubuntu-jdk11","9.13.0-EAP01-jdk11","9.13.0-EAP01","8.11.0-ubuntu-jdk11","8.11.0-jdk11","8.11.0","8.11-ubuntu-jdk11","8.11-jdk11","8.11.1-ubuntu-jdk11","8.11.1-jdk11","8.11.1","8.11","8.12.0-ubuntu-jdk11","8.12.0-jdk11","8.12.0","8.12.1-ubuntu-jdk11","8.12.1-jdk11","8.12.1","8.12.2-ubuntu-jdk11","8.12.2-jdk11","8.12.2","8.12-ubuntu-jdk11","8.12-jdk11","8.12.3-ubuntu-jdk11","8.12.3-jdk11","8.12.3","8.12","9.12.0-EAP01-ubuntu-jdk11","9.12.0-EAP01-jdk11","9.12.0-EAP01","9.11.0-RC-jdk11","9.11.0-RC-ubuntu-jdk11","9.11.0-RC","9.11.0-EAP02-ubuntu-jdk11","9.11.0-EAP02-jdk11","9.11.0-EAP02","9.11.0-EAP01-ubuntu-jdk11","9.11.0-EAP01-jdk11","9.11.0-EAP01","9.10.0-RC-ubuntu-jdk11","9.10.0-RC-jdk11","9.10.0-RC","9.10.0-EAP02-ubuntu-jdk11","9.10.0-EAP02-jdk11","9.10.0-EAP02","9.10.0-EAP01-ubuntu-jdk11","9.10.0-EAP01","9.10.0-EAP01-jdk11","9.9.0-RC02-jdk11","9.9.0-RC02-ubuntu-jdk11","9.9.0-RC02","9.9.0-RC01-jdk11","9.9.0-RC01-ubuntu-jdk11","9.9.0-RC01","9.9.0-EAP02-ubuntu-jdk11","9.9.0-EAP02-jdk11","9.9.0-EAP02","9.9.0-EAP01-jdk11","9.9.0-EAP01-ubuntu-jdk11","9.9.0-EAP01","9.8.0-RC01-jdk11","9.8.0-RC01-ubuntu-jdk11","9.8.0-RC01","9.8.0-EAP02","eap-jdk11","eap","9.8.0-EAP02-ubuntu-jdk11","eap-ubuntu-jdk11","9.8.0-EAP02-jdk11","9.8.0-EAP01","9.8.0-EAP01-jdk11","9.8.0-EAP01-ubuntu-jdk11","9.7.0-RC01-jdk11","9.7.0-RC01","9.7.0-RC01-ubuntu-jdk11","9.7.0-EAP02","9.7.0-EAP02-ubuntu-jdk11","9.7.0-EAP02-jdk11","9.7.0-EAP01-ubuntu-jdk11","9.7.0-EAP01-jdk11","9.7.0-EAP01","9.6.0-RC01","9.6.0-RC01-ubuntu-jdk11","9.6.0-EAP02-ubuntu-jdk11","9.6.0-EAP02","9.6.0-EAP02-jdk11","9.6.0-EAP01","9.6.0-EAP01-jdk11","9.6.0-EAP01-ubuntu-jdk11","9.5.0-RC01","9.5.0-RC01-ubuntu-jdk11","9.5.0-RC01-jdk11","9.5.0-EAP03-ubuntu-jdk11","9.5.0-EAP03-jdk11","9.5.0-EAP03","9.5.0-EAP02-ubuntu-jdk11","9.5.0-EAP02","9.5.0-EAP02-jdk11","9.4.0-RC02-jdk11","9.4.0-RC02","9.4.0-RC02-ubuntu-jdk11","9.4.0-RC01-ubuntu-jdk11","9.4.0-RC01-jdk11","9.4.0-RC01","9.4.0-EAP01","9.4.0-EAP01-ubuntu-jdk11","9.4.0-EAP01-jdk11","9.5.0-EAP01-ubuntu-jdk11","9.5.0-EAP01","9.5.0-EAP01-jdk11","9.3.0-RC01","9.3.0-RC01-ubuntu-jdk11","9.3.0-RC01-jdk11","9.3.0-EAP02-jdk11","9.3.0-EAP02","9.3.0-EAP02-ubuntu-jdk11","9.3.0-EAP01-jdk11","9.3.0-EAP01-ubuntu-jdk11","9.3.0-EAP01","9.2.0-RC01-ubuntu-jdk11","9.2.0-RC01-jdk11","9.2.0-RC01","9.2.0-EAP03-jdk11","9.2.0-EAP03-ubuntu-jdk11","9.2.0-EAP03","9.2.0-EAP02-ubuntu-jdk11","9.2.0-EAP02-jdk11","9.2.0-EAP02","9.2.0-EAP01-jdk11","9.2.0-EAP01-ubuntu-jdk11","9.2.0-EAP01","9.1.0-RC01-ubuntu-jdk11","9.1.0-RC01-jdk11","9.1.0-RC01","9.1.0-EAP02-ubuntu-jdk11","9.1.0-EAP02-jdk11","9.1.0-EAP02","9.1.0-EAP01-jdk11","9.1.0-EAP01-ubuntu-jdk11","9.1.0-EAP01","8.8.0-ubuntu-jdk11","8.8.0-jdk11","8.8.0","8.9-ubuntu-jdk11","8.9-jdk11","8.9.1-ubuntu-jdk11","8.9.1-jdk11","8.9.1","8.9.0-ubuntu-jdk11","8.9.0-jdk11","8.9.0","8.9","8.8-ubuntu-jdk11","8.8-jdk11","8.8.1-ubuntu-jdk11","8.8.1-jdk11","8.8.1","8.8","8.10-ubuntu-jdk11","8.10-jdk11","8.10.1-ubuntu-jdk11","8.10.1-jdk11","8.10.1","8.10.0-ubuntu-jdk11","8.10.0-jdk11","8.10.0","8.10","9.0.0-RC02-jdk11","9.0.0-RC02-ubuntu-jdk11","9.0.0-RC02","9.0.0-RC01-jdk11","9.0.0-RC01-ubuntu-jdk11","9.0.0-RC01","9.0.0-EAP04-ubuntu-jdk11","9.0.0-EAP04-jdk11","9.0.0-EAP04","9.0.0-EAP03-ubuntu-jdk11","9.0.0-EAP03-jdk11","9.0.0-EAP03","9.0.0-EAP02-ubuntu-jdk11","9.0.0-EAP02-jdk11","9.0.0-EAP02","9.0.0-EAP01-ubuntu-jdk11","9.0.0-EAP01-jdk11","9.0.0-EAP01","8.22.0-RC01-ubuntu-jdk11","8.22.0-RC01-jdk11","8.22.0-RC01","8.22.0-EAP02-ubuntu-jdk11","8.22.0-EAP02-jdk11","8.22.0-EAP02","8.22.0-EAP01-ubuntu-jdk11","8.22.0-EAP01-jdk11","8.22.0-EAP01","8.21.0-RC01-ubuntu-jdk11","8.21.0-RC01-jdk11","8.21.0-RC01","8.21.0-EAP02-ubuntu-jdk11","8.21.0-EAP02-jdk11","8.21.0-EAP02","8.21.0-EAP01-ubuntu-jdk11","8.21.0-EAP01-jdk11","8.21.0-EAP01","8.20-ubuntu-jdk-11","8.20.7-ubuntu-jdk-11","8.20.0-RC01-ubuntu-jdk11","8.20.0-RC01-jdk11","8.20.0-RC01","8.20.0-EAP01-ubuntu-jdk11","8.20.0-EAP01-jdk11","8.20.0-EAP01","8.19.0-RC01-ubuntu-jdk11","8.19.0-RC01-jdk11","8.19.0-RC01","8.19.0-EAP02-ubuntu-jdk11","8.19.0-EAP02-jdk11","8.19.0-EAP02","8.19.0-EAP01-ubuntu-jdk-11","8.19.0-EAP01-jdk11","8.19.0-EAP01","8.18.0-RC01-ubuntu-jdk11","8.18.0-RC01-jdk11","8.18.0-RC01","8.18.0-EAP02-ubuntu-jdk-11","8.18.0-EAP02-jdk11","8.18.0-EAP02","8.18.0-EAP01-ubuntu-jdk11","8.18.0-EAP01-jdk11","8.18.0-EAP01","8.17.0-RC02-ubuntu-jdk11","8.17.0-RC02-jdk11","8.17.0-RC02","8.17.0-RC01-ubuntu-jdk11","8.17.0-RC01-jdk11","8.17.0-RC01","8.17.0-EAP02-ubuntu-jdk11","8.17.0-EAP02-jdk11","8.17.0-EAP02","8.17.0-EAP01-ubuntu-jdk11","8.17.0-EAP01-jdk11","8.17.0-EAP01","8.8.0-ubuntu-jdk-11","8.8.1-ubuntu-jdk-11","8.8-ubuntu-jdk-11","8.7-jdk11","8.7-ubuntu-jdk11","8.7","8.7.1-jdk11","8.7.1","8.7.1-ubuntu-jdk11","8.7.0-jdk11","8.7.0-ubuntu-jdk11","8.7.0","8.5.18","8.5.18-jdk11","8.5.18-ubuntu-jdk11","8.5.19-jdk11","8.5.19-ubuntu-jdk11","8.5-jdk11","8.5-ubuntu-jdk11","8.5","8.5.19","8.5.2-ubuntu-jdk11","8.5.2","8.5.2-jdk11","8.5.3","8.5.3-ubuntu-jdk11","8.5.3-jdk11","8.5.4-ubuntu-jdk11","8.5.4","8.5.4-jdk11","8.5.5-jdk11","8.5.5-ubuntu-jdk11","8.5.5","8.5.6-ubuntu-jdk11","8.5.6","8.5.6-jdk11","8.5.7-ubuntu-jdk11","8.5.7","8.5.12-ubuntu-jdk11","8.5.7-jdk11","8.5.12","8.5.12-jdk11","8.5.8","8.5.8-jdk11","8.5.8-ubuntu-jdk11","8.5.13-jdk11","8.5.13","8.5.13-ubuntu-jdk11","8.5.9-jdk11","8.5.9","8.5.9-ubuntu-jdk11","8.5.14-jdk11","8.5.0-ubuntu-jdk11","8.5.14","8.5.0","8.5.14-ubuntu-jdk11","8.5.0-jdk11","8.6.0-jdk11","8.6.0","8.6.0-ubuntu-jdk11","8.5.15-jdk11","8.5.1","8.5.15","8.5.1-ubuntu-jdk11","8.5.15-ubuntu-jdk11","8.5.1-jdk11","8.6","8.6-ubuntu-jdk11","8.6.1-ubuntu-jdk11","8.6.1","8.5.16","8.5.10-ubuntu-jdk11","8.6.1-jdk11","8.5.16-ubuntu-jdk11","8.5.10","8.6-jdk11","8.5.16-jdk11","8.5.10-jdk11","8.5.17","8.5.11","8.5.17-ubuntu-jdk11","8.5.11-jdk11","8.5.17-jdk11","8.5.11-ubuntu-jdk11","8.14.0-jdk8","8.14.0-ubuntu-jdk8","8.14.0-ubuntu","8.14.1-jdk8","8.14-jdk8","8.14.1-ubuntu","8.14.1-ubuntu-jdk8","8.14-ubuntu","8.14-ubuntu-jdk8","8.15.0-ubuntu","8.15.0-jdk8","8.15.0-ubuntu-jdk8","8.15-ubuntu","8.15.1-ubuntu","8.15-ubuntu-jdk8","8.15.1-ubuntu-jdk8","8.15.1-jdk8","8.15-jdk8","8.16.0-ubuntu","8.16.0-ubuntu-jdk8","8.16.0-jdk8","8.18.1-jdk8","8.18.1-ubuntu","8.7.1-ubuntu-jdk8","8.18.1-ubuntu-jdk8","8.7-jdk8","8.16.1-jdk8","8.16.1-ubuntu-jdk8","8.7.1-ubuntu","8.16.1-ubuntu","8.7.1-jdk8","8.7-ubuntu","8.18.2-ubuntu","8.7-ubuntu-jdk8","8.18-ubuntu","8.18-jdk8","8.16-ubuntu","8.18.2-jdk8","8.18-ubuntu-jdk8","8.16-ubuntu-jdk8","8.10.0-ubuntu-jdk8","8.18.2-ubuntu-jdk8","8.10.0-ubuntu","8.16.2-jdk8","8.13.1-ubuntu","8.10.0-jdk8","8.16-jdk8","8.13.1-ubuntu-jdk8","8.16.2-ubuntu","8.12.0-ubuntu-jdk8","8.12.0-ubuntu","8.16.2-ubuntu-jdk8","8.8.0-ubuntu","8.8.0-jdk8","8.5.8-jdk8","8.5.15-ubuntu","8.10.1-ubuntu","8.5.8-ubuntu-jdk8","8.5.15-ubuntu-jdk8","8.8.0-ubuntu-jdk8","8.12.0-jdk8","8.5.15-jdk8","8.13.1-jdk8","8.5.8-ubuntu","8.10.1-ubuntu-jdk8","8.19-ubuntu-jdk8","8.10-ubuntu-jdk8","8.5.16-jdk8","8.12.1-ubuntu-jdk8","8.8.1-ubuntu-jdk8","8.10.1-jdk8","8.13-jdk8","8.12.1-ubuntu","8.8-ubuntu","8.10-ubuntu","8.13.10-jdk8","8.5.16-ubuntu-jdk8","8.5.9-ubuntu-jdk8","8.12.1-jdk8","8.8.1-ubuntu","8.13.10-ubuntu-jdk8","8.19.0-ubuntu-jdk8","8.5.16-ubuntu","8.5.9-jdk8","8.17.0-ubuntu-jdk8","8.10-jdk8","8.13-ubuntu","8-ubuntu-jdk8","8.5.9-ubuntu","8.8-jdk8","jdk8","8.8.1-jdk8","8.19-ubuntu","8.17.0-ubuntu","8.8-ubuntu-jdk8","8.5.3-ubuntu-jdk8","8.13.5-ubuntu-jdk8","8.19-jdk8","8.5.10-jdk8","8.17.0-jdk8","8.5.17-jdk8","8.5.3-jdk8","8.13.5-ubuntu","8.12.2-ubuntu","8.5.10-ubuntu","8.19.0-ubuntu","8.13-ubuntu-jdk8","8.6.0-ubuntu-jdk8","8.5.17-ubuntu","8.13.5-jdk8","8.12.2-ubuntu-jdk8","8.5.10-ubuntu-jdk8","8.6.0-ubuntu","8.5.17-ubuntu-jdk8","8.5.3-ubuntu","ubuntu-jdk8","8.12.2-jdk8","8.19.0-jdk8","8.17-ubuntu","8.6.0-jdk8","8-jdk8","8.17.1-jdk8","8.13.6-jdk8","ubuntu","8.11.0-ubuntu","8.5.11-jdk8","8-ubuntu","8.5.4-jdk8","8.5.18-ubuntu-jdk8","8.17.1-ubuntu","8.12.3-ubuntu","8.11.0-jdk8","8.13.6-ubuntu-jdk8","8.5.11-ubuntu","8.5.4-ubuntu","8.17.1-ubuntu-jdk8","8.6.1-jdk8","8.5.18-jdk8","8.13.6-ubuntu","8.5.11-ubuntu-jdk8","8.9.0-ubuntu-jdk8","8.5.4-ubuntu-jdk8","8.12.3-jdk8","8.17-jdk8","8.5-ubuntu-jdk8","8.11.0-ubuntu-jdk8","8.9.0-jdk8","8.12-jdk8","8.5-jdk8","8.9.0-ubuntu","8.12-ubuntu-jdk8","8.6.1-ubuntu","8.17-ubuntu-jdk8","8.12.3-ubuntu-jdk8","8.6.1-ubuntu-jdk8","8.5-ubuntu","8.13.7-jdk8","8.13.2-ubuntu-jdk8","8.5.5-jdk8","8.6-ubuntu","8.13.7-ubuntu-jdk8","8.11-jdk8","8.13.2-ubuntu","8.5.5-ubuntu-jdk8","8.6-jdk8","8.12-ubuntu","8.5.12-ubuntu-jdk8","8.11-ubuntu-jdk8","8.5.18-ubuntu","8.13.7-ubuntu","8.5.5-ubuntu","8.6-ubuntu-jdk8","8.5.12-ubuntu","8.13.2-jdk8","8.5.12-jdk8","8.11.1-jdk8","8.9-ubuntu-jdk8","8.11-ubuntu","8.9.1-jdk8","8.11.1-ubuntu","8.9.1-ubuntu-jdk8","8.11.1-ubuntu-jdk8","8.9-jdk8","8.13.3-ubuntu","8.13.8-ubuntu-jdk8","8.5.6-jdk8","8.9-ubuntu","8.5.0-jdk8","8.5.13-jdk8","8.5.0-ubuntu-jdk8","8.13.3-jdk8","8.5.6-ubuntu-jdk8","8.13.8-ubuntu","8.5.13-ubuntu","8.9.1-ubuntu","8.5.0-ubuntu","8.13.3-ubuntu-jdk8","8.5.6-ubuntu","8.13.8-jdk8","8.5.13-ubuntu-jdk8","8.18.0-jdk8","8.13.0-jdk8","8.5.7-jdk8","8.5.2-jdk8","8.13.9-ubuntu-jdk8","8.7.0-ubuntu","8.5.14-ubuntu","8.18.0-ubuntu","8.5.1-ubuntu-jdk8","8.5.7-ubuntu","8.5.2-ubuntu-jdk8","8.13.4-ubuntu-jdk8","8.13.0-ubuntu-jdk8","8.7.0-jdk8","8.18.0-ubuntu-jdk8","8.5.2-ubuntu","8.13.4-jdk8","8.13.0-ubuntu","8.13.9-jdk8","8.5.1-ubuntu","8.5.14-jdk8","8.5.7-ubuntu-jdk8","8.13.4-ubuntu","8.13.9-ubuntu","8.5.1-jdk8","8.5.14-ubuntu-jdk8","8.7.0-ubuntu-jdk8","8.13.10-ubuntu","8.3.5-jdk8","8.3.5","8.3.5-ubuntu-jdk8","8.3-ubuntu","8.3-jdk8","8.3","8.3.5-ubuntu","7.13.13-ubuntu","8.3-ubuntu-jdk8","7.13.13-jdk8","7.13.4-ubuntu-jdk8","7.13.13-ubuntu-jdk8","7.13.4","7.13.13","7.13.4-ubuntu","7.13.4-jdk8","8.2.4","8.2.4-ubuntu-jdk8","8.2.4-ubuntu","8.1.3-jdk8","7.13.14-ubuntu-jdk8","8.2.4-jdk8","7.13.14","8.1.3-ubuntu","7.13.5-jdk8","7.13.14-jdk8","8.1-ubuntu","7.13.5-ubuntu-jdk8","7.13.14-ubuntu","8.4.0","7.13.5-ubuntu","8.4.0-jdk8","8.2.5-ubuntu","7.13.5","8.4.0-ubuntu-jdk8","8.2.5","8.4.0-ubuntu","8.2.5-ubuntu-jdk8","8.2.5-jdk8","7.13.15","7.13.15-jdk8","7.13.6-ubuntu","7.13.15-ubuntu","7.13.6-ubuntu-jdk8","7.13.15-ubuntu-jdk8","8.4.1-ubuntu-jdk8","7.13.6","8.4.1-ubuntu","8.2","7.13.6-jdk8","8.4.1-jdk8","8.2-jdk8","8.4.1","8.2-ubuntu-jdk8","8.2-ubuntu","7.13.16-ubuntu-jdk8","8.2.6-ubuntu","7.13.16-jdk8","8.2.6-jdk8","7.13.8-ubuntu","7.13.16","8.2.6-ubuntu-jdk8","7.13.16-ubuntu","8.4.2","7.13.8-jdk8","8.2.6","8.4.2-jdk8","7.13.8-ubuntu-jdk8","8.4.2-ubuntu","7.13.8","8.4.2-ubuntu-jdk8","7.13.17-ubuntu-jdk8","8.4.1-ubuntu-jdk11","8.2.2-ubuntu-jdk11","7.13.17-ubuntu","8.4.1-jdk11","8.3.1-ubuntu-jdk11","8.2.2-jdk11","7.13.17","7.13.9-ubuntu","8.3.1-jdk11","7.13.17-jdk8","8.4.3-ubuntu","7.13.9","8.4.3-jdk8","7.13.9-ubuntu-jdk8","8.4.3","7.13.9-jdk8","8.2.3-jdk11","8.4.2-ubuntu-jdk11","8.4-jdk8","8.2.3-ubuntu-jdk11","8.3.2-ubuntu-jdk11","7.13-jdk8","8.4.3-ubuntu-jdk8","8.4.2-jdk11","8.3.2-jdk11","7.13-ubuntu-jdk8","8.4-ubuntu-jdk8","8.3.0-ubuntu-jdk8","7-jdk8","8.4-ubuntu","8.0.0-jdk8","8.3.0","7.13.18","8.4","8.0.0-ubuntu","8.3.0-ubuntu","7.13","8.2.4-ubuntu-jdk11","8.0.0-ubuntu-jdk8","8.4-jdk11","8.3.0-jdk8","7.13-ubuntu","8.2.4-jdk11","8.3.3-ubuntu-jdk11","8.0.0","8.4.3-jdk11","7-ubuntu","8.3.3-jdk11","8.4-ubuntu-jdk11","7","7-ubuntu-jdk8","8.4.3-ubuntu-jdk11","7.13.18-jdk8","8.3.1-jdk8","8.0.2","8.2.5-jdk11","7.13.18-ubuntu-jdk8","8.3.1","8.2.0","8.0.2-ubuntu","8.3.4-ubuntu-jdk11","8.2.5-ubuntu-jdk11","8.3.1-ubuntu-jdk8","7.13.18-ubuntu","8.2.0-ubuntu-jdk8","8.0.2-jdk8","8.3.4-jdk11","8.3.1-ubuntu","8.2.0-ubuntu","8.0.2-ubuntu-jdk8","8.2.0-jdk8","8.2-ubuntu-jdk11","8.3-jdk11","8.2.6-jdk11","8.3.2-ubuntu-jdk8","8.0-jdk8","8.3.5-jdk11","8.2.1","8.3.2","8.2-jdk11","8.0.3-jdk8","8.3.5-ubuntu-jdk11","8.2.1-ubuntu-jdk8","8.3.2-jdk8","8.2.6-ubuntu-jdk11","8.0-ubuntu","8.3-ubuntu-jdk11","8.2.1-ubuntu","8.3.2-ubuntu","8.0","8.2.1-jdk8","8.0.3","8.0.3-ubuntu","8.0-ubuntu-jdk8","7.13.2-jdk8","8.0.3-ubuntu-jdk8","8.3.3-jdk8","7.13.2-ubuntu-jdk8","8.2.2-ubuntu","8.3.3-ubuntu","7.13.2","8.2.2-ubuntu-jdk8","8.3.3","7.13.2-ubuntu","8.2.2-jdk8","8.2.0-ubuntu-jdk11","8.3.3-ubuntu-jdk8","8.2.2","8.2.0-jdk11","7.13.3-ubuntu","8.3.0-ubuntu-jdk11","7.13.3-ubuntu-jdk8","8.3.4-ubuntu-jdk8","8.2.3-ubuntu-jdk8","8.4.0-ubuntu-jdk11","8.2.1-ubuntu-jdk11","7.13.3-jdk8","8.3.0-jdk11","8.3.4-jdk8","8.2.3","8.4.0-jdk11","8.2.1-jdk11","7.13.3","8.3.4-ubuntu","8.2.3-jdk8","8.3.4","8.2.3-ubuntu","8.19.0-RC01-ubuntu-jdk8","8.19.0-RC01-jdk8","8.19.0-RC01-ubuntu","7.13.0-ubuntu-jdk8","7.13.0","7.13.0-ubuntu","7.13.0-jdk8","7.13.1-ubuntu-jdk8","7.13.1-jdk8","7.13.1-ubuntu","7.13.1","7.13.11-ubuntu","7.13.11","8.1.0-jdk8","8.1.0","7.13.11-ubuntu-jdk8","8.1.0-ubuntu-jdk8","7.13.11-jdk8","8.1.0-ubuntu","7.13.12-ubuntu","8.1.1-ubuntu","7.13.12","8.1.1-jdk8","7.13.12-jdk8","8.1.1","7.13.12-ubuntu-jdk8","8.1.1-ubuntu-jdk8","8.1.2-ubuntu-jdk8","8.1.2-ubuntu","8.1.2","8.1.2-jdk8","8.1.3-ubuntu-jdk8","8.1","8.1.3","8.1-jdk8","8.1-ubuntu-jdk8","eap-ubuntu","8.19.0-EAP02-ubuntu","eap-ubuntu-jdk8","8.19.0-EAP02-ubuntu-jdk8","eap-jdk8","8.19.0-EAP02-jdk8","8.19.0-EAP01-ubuntu","8.19.0-EAP01-jdk8","8.19.0-EAP01-ubuntu-jdk8","8.19.0-EAP01-ubuntu-jdk11","8.18.0-ssmith-perm-build-1","8.18.0-RC01-ubuntu","8.18.0-RC01-ubuntu-jdk8","8.18.0-RC01-jdk8","8.18.0-EAP02-ubuntu-jdk8","8.18.0-EAP02-jdk8","8.18.0-EAP02-ubuntu","8.18.0-EAP02-ubuntu-jdk11","8.18.0-EAP01-ubuntu","8.18.0-EAP01-jdk8","8.18.0-EAP01-ubuntu-jdk8","8.17.0-RC02-jdk8","8.17.0-RC02-ubuntu","8.17.0-RC02-ubuntu-jdk8","8.17.0-RC01-jdk8","8.17.0-RC01-ubuntu-jdk8","8.17.0-RC01-ubuntu","8.17.0-EAP02-ubuntu","8.17.0-EAP02-jdk8","8.17.0-EAP02-ubuntu-jdk8","8.17.0-EAP01-ubuntu","8.17.0-EAP01-ubuntu-jdk8","8.17.0-EAP01-jdk8","8.16.0-EAP02-ubuntu-jdk8","8.16.0-EAP02-jdk8","8.16.0-EAP02-ubuntu","8.16.0-EAP02","8.16.0-EAP02-jdk11","8.16.0-EAP02-ubuntu-jdk11","8.16.0-RC01-ubuntu-jdk11","8.16.0-RC01-jdk11","8.16.0-EAP03","8.16.0-EAP03-ubuntu-jdk11","8.16.0-EAP03-ubuntu-jdk8","8.16.0-EAP03-jdk11","8.16.0-EAP03-jdk8","8.16.0-EAP03-ubuntu","8.16.0-RC01-ubuntu-jdk8","8.16.0-RC01-ubuntu","8.16.0-RC01","8.16.0-RC01-jdk8","8.16.0-RC02-ubuntu-jdk11","8.16.0-RC02-jdk11","8.16.0-RC02","8.16.0-RC02-ubuntu","8.16.0-RC02-ubuntu-jdk8","8.16.0-RC02-jdk8","8.16.0-EAP01","8.16.0-EAP01-jdk8","8.16.0-EAP01-ubuntu","8.16.0-EAP01-ubuntu-jdk11","8.16.0-EAP01-jdk11","8.15.0-RC01","8.15.0-RC01-jdk8","8.15.0-RC01-ubuntu-jdk11","8.15.0-RC01-ubuntu","8.15.0-RC01-jdk11","8.15.0-EAP03-jdk11","8.15.0-EAP03-ubuntu-jdk11","8.15.0-EAP03-jdk8","8.15.0-EAP03","8.15.0-EAP03-ubuntu","8.15.0-EAP02-ubuntu","8.15.0-EAP02","8.15.0-EAP02-jdk8","8.15.0-EAP02-ubuntu-jdk11","8.15.0-EAP02-jdk11","8.15.0-EAP01-ubuntu-jdk11","8.15.0-EAP01-jdk11","8.15.0-EAP01","8.15.0-EAP01-ubuntu","8.15.0-EAP01-jdk8","8.14.0-RC01-jdk11","8.14.0-RC01-ubuntu-jdk11","8.14.0-RC01","8.14.0-RC01-ubuntu","8.14.0-RC01-jdk8","8.14.0-EAP01-ubuntu","8.14.0-EAP01","8.14.0-EAP01-jdk8","8.14.0-EAP01-ubuntu-jdk11","8.14.0-EAP01-jdk11","8.13.0-RC01","8.13.0-RC01-jdk11","8.13.0-RC01-ubuntu","8.13.0-RC01-ubuntu-jdk11","8.13.0-RC01-jdk8","8.13.0-EAP03-jdk8","8.13.0-EAP03","8.13.0-EAP03-ubuntu","8.13.0-EAP03-ubuntu-jdk11","8.13.0-EAP03-jdk11","8.13.0-EAP02","8.13.0-EAP02-ubuntu","8.13.0-EAP02-jdk8","8.13.0-EAP02-jdk11","8.13.0-EAP02-ubuntu-jdk11","8.12.0-RC02-jdk11","8.12.0-RC02-ubuntu-jdk11","8.12.0-RC02-jdk8","8.12.0-RC02-ubuntu","8.12.0-RC02","8.13.0-EAP01-jdk11","8.13.0-EAP01-ubuntu-jdk11","8.12.0-RC01-jdk11","8.12.0-RC01-ubuntu-jdk11","8.13.0-EAP01-jdk8","8.13.0-EAP01-ubuntu","8.13.0-EAP01","8.12.0-RC01-jdk8","8.12.0-RC01-ubuntu","8.12.0-RC01","8.12.0-EAP02-ubuntu-jdk11","8.12.0-EAP02-jdk11","8.12.0-EAP02","8.12.0-EAP02-ubuntu","8.12.0-EAP02-jdk8","8.12.0-EAP01-jdk11","8.12.0-EAP01-ubuntu-jdk11","8.12.0-EAP01","8.12.0-EAP01-jdk8","8.12.0-EAP01-ubuntu","8.5.6-RC02-jdk8","8.5.6-RC02-ubuntu","8.5.6-RC02","8.5.6-RC02-ubuntu-jdk11","8.5.6-RC02-jdk11","8.11.0-RC01","8.11.0-RC01-jdk8","8.11.0-RC01-ubuntu","8.11.0-RC01-jdk11","8.11.0-RC01-ubuntu-jdk11","8.11.0-EAP01-ubuntu-jdk11","8.11.0-EAP01-jdk11","8.11.0-EAP01-jdk8","8.11.0-EAP01-ubuntu","8.11.0-EAP01","8.10.0-RC01-ubuntu","8.10.0-RC01","8.10.0-RC01-jdk8","8.10.0-RC01-jdk11","8.10.0-RC01-ubuntu-jdk11","7.13.14-RC01","7.13.14-RC01-ubuntu","7.13.14-RC01-jdk8","8.10.0-EAP02-jdk8","8.10.0-EAP02","8.10.0-EAP02-ubuntu","8.10.0-EAP01-jdk8","8.10.0-EAP01","8.10.0-EAP01-ubuntu","8.10.0-EAP01-ubuntu-jdk11","7.13.15-RC01-ubuntu","8.10.0-EAP01-jdk11","7.13.15-RC01","7.13.15-RC01-jdk8","8.10.0-EAP02-ubuntu-jdk11","8.10.0-EAP02-jdk11","8.5.6-RC01-jdk11","8.5.6-RC01-ubuntu-jdk11","8.5.6-RC01","8.5.6-RC01-ubuntu","8.5.6-RC01-jdk8","8.5.5-RC01-jdk11","8.5.5-RC01-ubuntu-jdk11","8.5.5-RC01","8.5.5-RC01-jdk8","8.5.5-RC01-ubuntu","8.9.0-RC01-ubuntu","8.9.0-RC01-jdk8","8.9.0-RC01","8.9.0-RC01-jdk11","8.9.0-RC01-ubuntu-jdk11","8.9.0-EAP02-jdk11","8.9.0-EAP02-ubuntu-jdk11","8.9.0-EAP02-jdk8","8.9.0-EAP02-ubuntu","8.9.0-EAP02","8.9.0-EAP01-ubuntu-jdk11","8.9.0-EAP01-jdk11","8.9.0-EAP01-ubuntu","8.9.0-EAP01","8.9.0-EAP01-jdk8","8.8.0-RC02-ubuntu-jdk11","8.8.0-RC02-jdk11","8.8.0-RC02-jdk8","8.8.0-RC02-ubuntu","8.8.0-RC02"];!function(u){u.JIRA="jira",u.CONFLUENCE="confluence",u.BITBUCKET="bitbucket",u.BAMBOO="bamboo"}(O||(O={}));const{P:q,activeProfiles:I}=c(r(process.argv)).parseSync(),U=q||I||void 0;class AMPS{static maven;static stop(){AMPS.maven&&AMPS.maven.kill(0)}static async build(u){return new Promise(((t,d)=>{if(AMPS.maven){AMPS.maven.kill(0)||d(new Error("Failed to terminate existing Maven process"))}AMPS.maven=j("mvn",["package",...u],{cwd:a(),stdio:"inherit"}),AMPS.maven.on("exit",(u=>{AMPS.maven=null,0===u||130===u?t():d(new Error(`Maven exited with code ${u}`))}))}))}static isAtlassianPlugin=()=>{try{return AMPS.getNodes("//*[local-name()='packaging']").some((u=>"atlassian-plugin"===u.textContent))}catch(u){return!1}};static getApplicationVersion(){const u=U?AMPS.getNodes(`//*[local-name()='profile']/*[local-name()='id' and text()='${U}']/..//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']`,!0):AMPS.getNodes("//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']",!0);if(u){const t=u.parentNode;if(t){const{plugin:u}=AMPS.toObject(t),d=u?.configuration?.productVersion;return d?this.doPropertyReplacement(d):void 0}}}static getApplication(){const u=AMPS.getApplications();if(1===u.length)return u[0];if(U){const u=AMPS.getApplications(U);if(1===u.length)return u[0]}return null}static getApplications(u){const t=new Set;return(u?AMPS.getNodes(`//*[local-name()='profile']/*[local-name()='id' and text()='${u}']/..//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']`):AMPS.getNodes("//*[local-name()='groupId' and text()='com.atlassian.maven.plugins']")).forEach((u=>{const d=u.parentNode;if(d){const{plugin:u}=AMPS.toObject(d);u?.artifactId?.includes(O.JIRA)?t.add(O.JIRA):u?.artifactId?.includes(O.CONFLUENCE)?t.add(O.CONFLUENCE):u?.artifactId?.includes(O.BAMBOO)?t.add(O.BAMBOO):u?.artifactId?.includes(O.BITBUCKET)&&t.add(O.BITBUCKET)}})),Array.from(t)}static doPropertyReplacement(u){let t=u;const d=U?AMPS.getProperties(U):{};Object.entries(d).forEach((([u,d])=>{t=t.replaceAll(`\${${u}}`,d)}));const n=AMPS.getProperties();return Object.entries(n).forEach((([u,d])=>{t=t.replaceAll(`\${${u}}`,d)})),t}static getProperties(u){const t={};return(u?AMPS.getNodes(`//*[local-name()='profile']/*[local-name()='id' and text()='${u}']/..//*[local-name()='properties']`):AMPS.getNodes("//*[local-name()='properties']")).forEach((u=>{const{properties:d}=AMPS.toObject(u);Object.entries(d).forEach((([u,d])=>t[u]=d))})),t}static getNodes(u,t){if(e("./pom.xml")){const d=s("./pom.xml","utf8"),k=(new n).parseFromString(d,"text/xml"),j=t?o.select(u,k,!0):o.select(u,k,!1);return Array.isArray(j)||t?j:[]}return[]}static toObject(u){try{return(new b).parse((new k).serializeToString(u))}catch(u){return null}}}const N="AAACBA0ODAoPeNp9kl1v2jAUhu/zK460OyQHSLuVIkUaTbwNVBKUhEnbugsTDuA2sSPbgbFfPxOC1i+4yEXO5+vnPR+yGiGSW/CuoXc7vBoMvT4ENAOv5/WctUIUG1lVqNx7nqPQSJfccCl8GmU0mSXjlDpRXS5Qxau5RqV90ncCKQzLTcRK9Eu944Ip/cQ/M1MwrTkTbi5LZ1arfMM0hsyg7/X6A9LvE89z2j3ZvsJmQBBPpzQJxqP7U4r+qbjaN32zG+/baR2dMl6c35ei2qIah/4dvaHkOvzpkU/x5IZ8vbodOI9cMbdSclnnxj38EC1XZscUunYy36JvVI3OxGZmbZXdzwIU5lVJWi90rnjVQGoi70B873GNhPOQO51OFGfkS5yQWRKH8yAbxxGZp9Qm/EChpbGExR7MBqGdAlTkcokK7MMeMTfwa2NM9TDsdtfSfQGnWxw7CB47frsQShDSwJJro/iiNmgncw1GQl5rI0trtetY4sKgYCJ/Y4qVFSR0lNGQ3P04aDxrTKvWOjMXT0LuxCU33txaSiPffuRjr3fsO/mC6og/VmsmuGYN0Ij93TFYcVXunQaaDb4+wJbFd7vg0OI5If53NENtoK2AlVQwGScjSFt5lrjdWymu8WEIgSwtppyzAsLgxRk8P5hG9PMA3bKiPspdsULjJRwX7ukf5/NX7TAtAhUAhQSHz9DgycOX7wcwERMJb3TLGb4CFGkB/xUWSRK3BZLrPF9Rn6ZmrUqJX02oc",$="AAACzg0ODAoPeNp9VO9v2jAQ/Z6/wtK+IYWGsEKHFGmQmJau/GgIm9iYJhMOYprYke1A4a+fSchGKtqPPvvevXv3zp/6gqLHLEb2HbKsTvNzp9lC98MA2ZbdNKYgdiAGntPDQ2z688HcdH/aM7P5o2kZTzQEJiE4pDAiCTgBngaD0b0RCr5f1S9uHfcUWXSQBzuIeQrCCDlb10mo6A4cJTLQSVlIlzFUggpI8ickMbAVEbI+ypIliPG6R5Il5z4kXEF3A0xJp1Gywa8pFQePKHAmDdt6+A9cJVQEK5yWmhMV8HGZLRWkwrF8PZMgpGPfGh7IUNBUUc6cAKRCcVEYrblAaZxtKEOrsqj8V/US85zxXd+fUGwD70ickRwyf7ARACziqUYo+8Irmt/jUYD9iT+YYmNIKFPACAuvyHIaQEUSHYgz0G8rorgC8rp5qvaEZVp3pt0u8sve3TiTCsSIr0A6llGr1VwfdwPsmb25PjjbVwq2EcZcm6nS6DKX+I3iT1yP/Cy42TBe4FAK0WhZVtu6azYbZeZlB0U2wrpnkQoqq40Uyst67RqB9zU8k64olYeqKnGmNCzWiseOUoKwhLLoK1ExkZISVg95cr3ZN/YqdueSYW649/mdrfJAZOQM3b3b96DRuhVk3261kkFvexwe41UQtJN12u5Gz6GcPT7Pn71H70t69CPcbx/a9rcj3rDuwlk4xprKCA5VN+oJjsaB2R/75sQfezM3GIxH5myKT6PN/QErtDwgFQE6E9VDCLUZtN8F30Ko0K9IqXTRubnZ8HpFlZtzAyYUGb/ryOOIcYVWVCpBl5kCjUwlUhyF2mY80WaoXxdzEhOWe2YsNoRRWWxMt6xX/hH6P5uxF8b3rLJIlz1LpQW95pQPvqfLq0kmwohIeLs2l9PMzfQ48LvvWTbfMY1AXDg9KJDLCV2C9HUMH+CaJfOfudi/v0kIGVswLAIUEMQ9X77gqGBdfH0HIzBaV8NadPUCFBn+RiUA4D+IqVQpTTouLVY66aCGX02121",toAbsolutePath=u=>{const[,t]=process.argv,d=A(t),n=d.substring(0,d.indexOf("dcdx")+4);return l(n,u.replaceAll("../",""))},_={name:"shared",driver:"bridge"};let Q=class Base extends m{options;sequelize=null;constructor(u){super(),this.options=u}async run(u,t){try{if(!this.sequelize)throw new Error("Database connection does not exist");await this.sequelize.query(u,{logging:t})}catch(t){console.error("An error occurred while trying to run the following SQL query:",u,t),d()}return null}async start(u=this.options.clean){console.log(`Starting instance of ${this.name} ⏳`),u&&await this.down(),await this.up(),this.emit(`${this.name}:up`);if(await this.waitUntilReady()){if(console.log(`Database is ready and accepting connections on localhost:${this.options.port} 🗄️`),await this.onDatabaseReady(),this.emit("db:ready"),this.options.logging){const u=await this.getServiceState();u&&await this.showDockerLogs(u.name)}}else console.log(`Failed to start database ${this.name} ⛔`),d(0)}async stop(u=this.options.prune){if(u)await this.down();else{const u=g(this.getDockerComposeConfig());await E({cwd:a(),configAsString:u,log:!0})}this.emit("db:stopped")}async onDatabaseReady(){}getDockerComposeConfig(){return{version:"3.8",services:{db:this.getService()},networks:{shared:_}}}async up(){const u=g(this.getDockerComposeConfig());return f({cwd:a(),configAsString:u,log:!0})}async down(){const u=g(this.getDockerComposeConfig());return p({cwd:a(),configAsString:u,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async waitUntilReady(){try{const u="mssql"===this.name?"master":this.options.database;return this.sequelize=new v(u,this.options.username,this.options.password,{host:"localhost",port:this.options.port,dialect:this.name.replace("postgresql","postgres"),retry:{max:30,match:[y,x,T,D,M],backoffBase:1e3,backoffExponent:1},logging:!1}),this.sequelize.authenticate().then((()=>!0)).catch((u=>(console.log(u),!1)))}catch(u){return!1}}async getServiceState(){const u=g(this.getDockerComposeConfig());return(await C({configAsString:u,log:!1,commandOptions:["--all"]})).data.services.find((u=>u.name.includes(this.name)))}async showDockerLogs(u){return new Promise(((t,d)=>{j("docker",["logs","-f","-n","5000",u],{cwd:a(),stdio:"inherit"}).on("exit",(u=>0===u?t():d(new Error(`Docker exited with code ${u}`))))}))}};const G={port:1433,database:"dcdx",username:"sa",password:"DataCenterDX!",edition:"Developer",version:"2022"};class MSSQL extends Q{name="mssql";driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";options=G;version="2022";get url(){return`jdbc:sqlserver://db:${this.options.port};databaseName=${this.options.database};trustServerCertificate=true`}constructor(u=G){super({...G,...u})}async onDatabaseReady(){await this.run(`CREATE DATABASE ${this.options.database}`),await this.run(`ALTER DATABASE ${this.options.database} COLLATE SQL_Latin1_General_CP1_CS_AS`),await this.run(`ALTER DATABASE ${this.options.database} SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;`)}getService=()=>({image:`mcr.microsoft.com/mssql/server:${this.version}-latest`,ports:[`${this.options.port||1433}:1433`],environment:{ACCEPT_EULA:"y",MSSQL_SA_PASSWORD:this.options.password||"dcdx",MSSQL_PID:this.options.edition},networks:{shared:{aliases:["db","database"]}}})}const B={port:3306,database:"dcdx",username:"dcdx",password:"dcdx",version:"8.0"};class MySQL extends Q{name="mysql";driver="com.mysql.jdbc.Driver";options=B;version="8.0";get url(){return`jdbc:mysql://db:${this.options.port}/${this.options.database}?sessionVariables=transaction_isolation='READ-COMMITTED'`}constructor(u=B){super({...B,...u})}async onDatabaseReady(){await this.run(`ALTER DATABASE ${this.options.database} CHARACTER SET 'utf8mb4' COLLATE utf8mb4_bin`)}getService=()=>({image:`mysql:${this.version}`,ports:[`${this.options.port||3306}:3306`],environment:{MYSQL_ROOT_PASSWORD:this.options.password||"dcdx",MYSQL_USER:this.options.username||"dcdx",MYSQL_PASSWORD:this.options.password||"dcdx",MYSQL_DATABASE:this.options.database||"dcdx"},command:["--log_bin_trust_function_creators=1"],networks:{shared:{aliases:["db","database"]}}})}const V={version:"15",database:"dcdx",port:5432,username:"dcdx",password:"dcdx"};class Postgres extends Q{name="postgresql";driver="org.postgresql.Driver";options=V;version="15";get url(){return`jdbc:postgresql://db:${this.options.port}/${this.options.database}`}constructor(u=V){super({...V,...u})}getService=()=>({image:`postgres:${this.version}`,ports:[`${this.options.port||5432}:5432`],environment:{POSTGRES_USER:this.options.username||"dcdx",POSTGRES_PASSWORD:this.options.password||"dcdx",POSTGRES_DB:this.options.database||"dcdx",POSTGRES_HOST_AUTH_METHOD:"md5",POSTGRES_INITDB_ARGS:"--encoding=UTF-8 --lc-collate=C --lc-ctype=C"},networks:{shared:{aliases:["db","database"]}}})}const z=l(w(),".dcdx");class Base extends m{options;constructor(u){super(),this.options=u}get baseUrl(){let u="http://localhost";return this.options.port&&(u+=`:${this.options.port}`),this.options.contextPath?`${u}/${this.options.contextPath}`:u}getDatabaseEngine(u){switch(u){case"postgresql":return new Postgres;case"mssql":return new MSSQL;case"mysql":return new MySQL}}async start(){this.options.clean&&await this.down(),await this.build(this.options.version),await this.database.start(this.options.clean),await this.up()}async stop(){if(await this.database.stop(this.options.prune),this.options.prune)await this.down();else{const u=g(this.getDockerComposeConfig());await E({cwd:a(),configAsString:u,log:!0})}this.emit(`${this.name}:stopped`)}async reset(){await this.database.stop(!0),await this.down()}async cp(u){const t=await this.getServiceState();if(t&&t.state.toLowerCase().startsWith("up")){const t=this.getDockerComposeConfig(),d=g(t);await h("cp",[u,`${this.name}:/opt/quickreload/`],{cwd:a(),configAsString:d,log:!1})}}async isApplicationReady(){try{const u=await P.get(`${this.baseUrl}/status`,{validateStatus:()=>!0}).catch((()=>null));if(u&&200===u.status){const{data:t}=u;if("FIRST_RUN"===t.state||"RUNNING"===t.state)return console.log(`The application ${this.name} is ready on ${this.baseUrl} 🎉`),!0}return!1}catch(u){return!1}}getDockerComposeConfig(){return{version:"3.8",services:{[this.name]:this.getService()},networks:{shared:_}}}async up(){const u=this.getDockerComposeConfig(),t=g(u);await R({cwd:a(),configAsString:t,log:!0}),this.emit(`${this.name}:up`);await this.waitUntilReady()?(this.emit(`${this.name}:ready`),await this.tailApplicationLogs()):console.log(`Failed to start ${this.name} ⛔`),d(0)}async down(){const u=g(this.getDockerComposeConfig());await p({cwd:a(),configAsString:u,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async getServiceState(){const u=g(this.getDockerComposeConfig());return(await C({configAsString:u,log:!1,commandOptions:["--all"]})).data.services.find((u=>u.name.includes(this.name)))}async waitUntilReady(u=0){console.log(`Waiting for ${this.name} to become available... ${u}s`);const t=await this.getServiceState();return!!(t&&t.state.toLowerCase().startsWith("up")&&await this.isApplicationReady())||(u>=300?(console.error(`A timeout occurred while waiting for ${this.name} to become available ⛔`),t&&await this.showDockerLogs(t.name),!1):(await new Promise((u=>setTimeout(u,1e3))),this.waitUntilReady(u+1)))}getDockerRepositoryUrl(){return`https://bitbucket.org/atlassian-docker/docker-${"jira"===this.name?"atlassian-jira":"bamboo"===this.name?`${this.name}-server`:`atlassian-${this.name}-server`}.git`}async build(u){const t=this.getDockerRepositoryUrl(),d=l(z,this.name,"source");e(d)?await S({baseDir:d}).pull({"--recurse-submodule":null}):(i(l(z,this.name),{recursive:!0}),await S().clone(t,d,{"--recurse-submodule":null})),await new Promise(((t,n)=>{j("docker",["build","-t",`dcdx/${this.name}:${u}`,"--build-arg",`${this.name.toUpperCase()}_VERSION=${u}`,"."],{cwd:d,stdio:"inherit"}).on("exit",(u=>0===u?t():n(new Error(`Docker exited with code ${u}`))))}))}async tailApplicationLogs(){const u=await this.getServiceState();u&&u.state.toLowerCase().startsWith("up")&&await this.showApplicationLogs(u.name).catch((()=>null))}async showDockerLogs(u){return new Promise(((t,d)=>{j("docker",["logs","-f","-n","5000",u],{cwd:a(),stdio:"inherit"}).on("exit",(u=>0===u?t():d(new Error(`Docker exited with code ${u}`))))}))}async showApplicationLogs(u){return new Promise(((t,d)=>{j("docker",["exec","-i",u,"tail","-F","-n","5000",this.logFilePath],{cwd:a(),stdio:"inherit"}).on("exit",(u=>0===u?t():d(new Error(`Docker exited with code ${u}`))))}))}}class Jira extends Base{name=O.JIRA;database;logFilePath="/var/atlassian/application-data/jira/log/atlassian-jira.log";constructor(u){super(u),this.database=this.getDatabaseEngine(u.database)}getService(){const u=this.getVolumes(),t=this.getEnvironmentVariables();return{build:{context:toAbsolutePath("../../assets"),dockerfile_inline:`\nFROM dcdx/${this.name}:${this.options.version}\nCOPY ./jira-data-generator-5.0.0.jar /var/atlassian/application-data/jira/plugins/installed-plugins/jira-data-generator-5.0.0.jar\nCOPY ./mysql-connector-j-8.3.0.jar /opt/atlassian/jira/lib/mysql-connector-j-8.3.0.jar\nCOPY ./quickreload-5.0.2.jar /var/atlassian/application-data/jira/plugins/installed-plugins/quickreload-5.0.2.jar\nRUN echo "/opt/quickreload" > /var/atlassian/application-data/jira/quickreload.properties; mkdir -p /opt/quickreload; chown -R jira:jira /opt/quickreload;\n\nRUN chown -R jira:jira /var/atlassian/application-data/jira`},ports:[`${this.options.port||80}:8080`,...this.options.debug?["5005:5005"]:[]],environment:Object.keys(t).length>0?t:void 0,volumes:u.length>0?u:void 0,networks:["shared"]}}getEnvironmentVariables(){const u="postgresql"===this.database.name?"postgres72":this.database.name;return{...this.options.contextPath?{ATL_TOMCAT_CONTEXTPATH:this.options.contextPath}:"",...this.options.debug?{JVM_SUPPORT_RECOMMENDED_ARGS:this.getJVMArgs()}:"",ATL_LICENSE_KEY:this.options.license||$,ATL_JDBC_URL:this.database.url,ATL_JDBC_USER:this.database.options.username,ATL_JDBC_PASSWORD:this.database.options.password,ATL_DB_DRIVER:this.database.driver,ATL_DB_TYPE:u,JIRA_SETUP_LICENSE:this.options.license||N}}getJVMArgs(){const u=[];return this.options.debug&&(u.push("-Dupm.plugin.upload.enabled=true"),u.push("-Xdebug"),u.push("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005")),this.options.quickReload&&u.push("-Dquickreload.dirs=/opt/quickreload"),u.join(" ")}getVolumes(){return[...this.options.quickReload?[`${this.options.quickReload}:/opt/quickreload`]:""]}}const J=AMPS.getApplicationVersion()||"latest";(async()=>{const d=u.showHelpAfterError(!0).addOption(new t("-v, --version <version>","The version of the host application").choices(L).default(J)).addOption(new t("-d, --database <name>","The database engine to remove data from").choices(["postgresql","mysql","mssql"]).default("postgresql")).parse(process.argv).opts(),n=new Jira({version:d.version,database:d.database});await n.reset()})(),process.on("SIGINT",(()=>{console.log("Received term signal, trying to stop gracefully 💪"),d()}));
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{program as t,Option as e}from"commander";import{gracefulExit as s,asyncExitHook as o}from"exit-hook";import a from"axios";import{dirname as n,join as i}from"path";import{spawn as r}from"child_process";import{stop as u,downAll as d,ps as c,execCompose as p,upAll as l}from"docker-compose/dist/v2.js";import h from"events";import{existsSync as b,mkdirSync as m}from"fs";import{dump as k}from"js-yaml";import{homedir as g}from"os";import{cwd as w}from"process";import j from"simple-git";import{upAll as S}from"docker-compose";import{Sequelize as v,ConnectionError as A,TimeoutError as f,ConnectionTimedOutError as D,ConnectionRefusedError as y,ConnectionAcquireTimeoutError as E}from"sequelize";var T=["latest","9.4-ubuntu","9.4-jdk11","9.4.3-ubuntu","9.4","9.4.3","9.4.3-jdk11","ubuntu","jdk11","9-ubuntu","9-jdk11","9.5-ubuntu","9.5-jdk11","9.5.1-ubuntu","9.5.1-jdk11","9.5.1","9.5","9","9.2-ubuntu","9.2-jdk11","9.2","9.2.11-jdk11","9.2.11-ubuntu","9.2.11","9.3.3-ubuntu","9.3.3-jdk11","9.3.3","9.2.4-ubuntu","9.2.4-jdk11","9.3.2-ubuntu","9.3.2-jdk11","9.0-ubuntu","9.2.4","9.3.2","9.0-jdk11","9.0.4-ubuntu","9.0.4-jdk11","9.0.4","9.0","8.2.6-ubuntu","8.2.6","8.2.6-jdk11","8.1.11-ubuntu","8.1.11-jdk11","8.1.11","8.0.0-jdk11","8.0.0-ubuntu","8.1.8-ubuntu","9.3.4-ubuntu","8.1.8-jdk11","9.3.4-jdk11","8.1.8","8.0.0","8.0.4-ubuntu","9.3.4","8.0.4-jdk11","9.2.5-ubuntu","9.2.5-jdk11","8.0.4","9.2.5","9.1.0-ubuntu","9.1.0-jdk11","9.1.0","8.2.7-ubuntu","8.2.7-jdk11","8.2.7","8.1-ubuntu","8.1-jdk11","8.1.12-ubuntu","8.1.12-jdk11","8.1","8.1.12","8.0.5-ubuntu","8.0.5-jdk11","8.0.1-ubuntu","9.1.1-jdk11","8.1.9-ubuntu","8.0.1-jdk11","8.0.1","8.1.9-jdk11","9.1.1","8.1.9","8.2.8-ubuntu","8.2.8-jdk11","8.0.5","8.2.8","8.1.2-ubuntu","8.1.2-jdk11","8.1.2","8.0.10-ubuntu","9.3.5-ubuntu","8.0.10-jdk11","9.3.5-jdk11","8.0.10","9.3.5","9.2.6-jdk11","9.2.6-ubuntu","9.2.6","9.1.1-ubuntu","8.2.0-ubuntu","8.2.0-jdk11","9.1.2-ubuntu","8.2.0","9.1.2-jdk11","8.0.6-ubuntu","8.0.6-jdk11","9.1.2","8.0.6","8-ubuntu","8-jdk11","8.2-ubuntu","8.2-jdk11","8.2.9-ubuntu","8.2.9-jdk11","8.2.9","8.2","8.1.3-ubuntu","8.1.3-jdk11","8.1.3","8.0.11-jdk11","8.0.11-ubuntu","8.0.11","9.3-ubuntu","8","9.3-jdk11","9.3.6-ubuntu","9.3.6-jdk11","9.3.6","9.3","9.2.7-ubuntu","9.2.7-jdk11","9.2.7","8.2.1-ubuntu","8.2.1-jdk11","8.2.1","8.0.7-ubuntu","9.4.0-jdk11","8.0.7-jdk11","9.2.8-ubuntu","8.0.7","9.2.8-jdk11","9.2.8","9.1-ubuntu","9.1-jdk11","9.1.3-ubuntu","9.1.3-jdk11","9.1.3","9.1","9.0.0-jdk11","9.0.0-ubuntu","9.0.0","8.1.4-ubuntu","8.1.4-jdk11","8.1.4","8.0.8-ubuntu","8.0.8-jdk11","8.0.8","8.0.12-ubuntu","8.0.12","8.0.12-jdk11","8.2.2-ubuntu","8.2.2-jdk11","8.1.5-jdk11","8.2.2","8.1.5-ubuntu","8.1.5","8.0-ubuntu","8.0-jdk11","8.0.13-jdk11","8.0.13-ubuntu","8.0.13","9.4.1-ubuntu","8.0","9.4.1-jdk11","9.4.1","9.2.9-ubuntu","9.2.9","9.2.9-jdk11","9.2.1-ubuntu","9.2.1-jdk11","9.2.1","9.0.1-ubuntu","9.0.1-jdk11","9.0.1","8.2.3-ubuntu","8.2.3-jdk11","8.2.3","9.4.2-jdk11","8.0.9-ubuntu","8.0.9-jdk11","9.0.2-ubuntu","8.0.9","9.0.2-jdk11","9.0.2","8.1.6-ubuntu","8.1.6-jdk11","8.1.6","8.0.2-ubuntu","8.0.2-jdk11","8.0.2","7-ubuntu","7-jdk8","7.2-ubuntu","7.2-jdk8","7.2.7-jdk8","7.2.7-ubuntu","7.2.7","7.2.5-ubuntu","7.2.5-jdk8","7.2.5","7.2.3-ubuntu","7.2.3-jdk8","7.2.3","7.2.10-ubuntu","7.2.10-jdk8","7.2.10","7.2.0-ubuntu","7.2.0-jdk8","7.2.0","7.2","7.1.3-ubuntu","7.1.3-jdk8","7.1.3","7","9.3.0-ubuntu","9.3.0-jdk11","9.3.0","9.2.10-ubuntu","9.2.10-jdk11","9.2.10","8.2.4-ubuntu","8.2.4-jdk11","8.2.4","8.1.1-ubuntu","8.1.1-jdk11","8.1.1","8.1.7-ubuntu","8.1.7-jdk11","8.1.7","8.0.3-ubuntu","8.0.3-jdk11","8.0.3","jdk17","9-jdk17","9.5-jdk17","9.5.0-ubuntu","9.5.0-jdk17","9.5.0-jdk11","9.5.0","9.4-jdk17","9.4.2-ubuntu","9.4.0-ubuntu","9.4.2-jdk17","9.4.2","9.4.0","9.4.0-jdk17","9.3.1-ubuntu","9.3.1-jdk11","9.3.1","9.2.3-ubuntu","9.2.3-jdk11","9.2.3","9.0.3-ubuntu","9.0.3-jdk11","9.0.3","8.2.5-ubuntu","8.2.5-jdk11","8.2.5","8.1.10-ubuntu","8.1.10-jdk11","8.1.10","7.2.9-ubuntu","7.2.9","7.2.9-jdk8","7.2.6-ubuntu","7.2.6-jdk8","7.2.6","7.2.4-ubuntu","7.2.4-jdk8","7.2.4","7.2.2-ubuntu","7.2.2-jdk8","7.2.2","7.2.1-ubuntu","7.2.1-jdk8","7.2.1","7.1-ubuntu","7.1-jdk8","7.1.4-ubuntu","7.1.4-jdk8","7.1.4","7.1.2-ubuntu","7.1.2-jdk8","7.1.2","7.1.1-ubuntu","7.1.1-jdk8","7.1.1","7.1","9.4.1-jdk17","eap-jdk8","9.0.0-rc1-ubuntu","9.0.0-rc1-jdk11","9.0.0-rc1","eap-jdk11","eap-ubuntu","9.0.0-rc1-jdk8","eap","8.0.0-rc4","8.0.0-rc1","7.0.6","7.0","7.1.0-rc1","7.0.4","6.10","6.10.6","7.0.3","6.10.5","7.0.2","7.0.1","7.0.0-rc2","7.0.0-rc1","6.10.4","6.10.3","6.10.2","6.9.2","6.9","6.8.3","6.8","6.9.1","6.8.2","6.9.0","6.9.0-rc1","6.7","6.7.3","6.8.1","6.8.0","6.7.2","6.7.1","6.6.3","6.6","6.7.0-rc2","6.6.2","6.6.1","6.6.0"];const R="AAAB3w0ODAoPeNp9Ultr2zAYffevEOwtoMR10qYLGJbYWsno7GA7g90eZPlrotWWjCSnzX79FF8IYWkfDPJ3Oedwzvch2zdoWSvkzpF7v5jdLrwpCkiaIc/1POeRMxAasmMNEa3Az2xnHT04gQJquBQhNeB77vQGuzPs3jk5rXIpx5QZfgDfqAaGUtRUOaj4adX+PkpGy+UOhNE+vnGG5laDags9L3mtuToOJF5Pkja5ZorXJwEXHG+pJQdaNvS/cYtLAysBVFfu19ehvxXPQr4IJwV1AGULKzIneBb+8PBd/GWOH6Yf751No9ieaujleYMHKYl8++Fb13VGo1EUZ/hznOBNEofbIFvHEd6mxDb81kQoUH5EZg+op0dEMFmAQrWSf4AZ9HNvTP1rMZnsrLGmpFpzKsZMVpOy28DQbfweo1AiIQ0quDaK540Bi8w1MhKxRhtZWXvHTghn+zLQBvU46Ela1rLZcYEKOEApazvvfKXceiSoYG/kcTXhTUlFG+XVbgKVNHA+gF7BN8t3UuU5sdpRwXUXGnmlVV0CCmRVU3G8Evf5MKUw9vqIFV36tX7moNjfo7CPTxfenZIJErLMSIhX309pvDd8SUgK3smKMpJsknVKBtr26t4D+gd3AC5qMCwCFHOaTWfFvLCLJPft3qktVo3FafmZAhRojb9IAxj8KEqPDQy0stos394SQQ==X02mq",toAbsolutePath=t=>{const[,e]=process.argv,s=n(e),o=s.substring(0,s.indexOf("dcdx")+4);return i(o,t.replaceAll("../",""))};var C;!function(t){t.JIRA="jira",t.CONFLUENCE="confluence",t.BITBUCKET="bitbucket",t.BAMBOO="bamboo"}(C||(C={}));const O={name:"shared",driver:"bridge"};let x=class Base extends h{options;sequelize=null;constructor(t){super(),this.options=t}async run(t,e){try{if(!this.sequelize)throw new Error("Database connection does not exist");await this.sequelize.query(t,{logging:e})}catch(e){console.error("An error occurred while trying to run the following SQL query:",t,e),s()}return null}async start(t=this.options.clean){console.log(`Starting instance of ${this.name} ⏳`),t&&await this.down(),await this.up(),this.emit(`${this.name}:up`);if(await this.waitUntilReady()){if(console.log(`Database is ready and accepting connections on localhost:${this.options.port} 🗄️`),await this.onDatabaseReady(),this.emit("db:ready"),this.options.logging){const t=await this.getServiceState();t&&await this.showDockerLogs(t.name)}}else console.log(`Failed to start database ${this.name} ⛔`),s(0)}async stop(t=this.options.prune){if(t)await this.down();else{const t=k(this.getDockerComposeConfig());await u({cwd:w(),configAsString:t,log:!0})}this.emit("db:stopped")}async onDatabaseReady(){}getDockerComposeConfig(){return{version:"3.8",services:{db:this.getService()},networks:{shared:O}}}async up(){const t=k(this.getDockerComposeConfig());return S({cwd:w(),configAsString:t,log:!0})}async down(){const t=k(this.getDockerComposeConfig());return d({cwd:w(),configAsString:t,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async waitUntilReady(){try{const t="mssql"===this.name?"master":this.options.database;return this.sequelize=new v(t,this.options.username,this.options.password,{host:"localhost",port:this.options.port,dialect:this.name.replace("postgresql","postgres"),retry:{max:30,match:[A,f,D,y,E],backoffBase:1e3,backoffExponent:1},logging:!1}),this.sequelize.authenticate().then((()=>!0)).catch((t=>(console.log(t),!1)))}catch(t){return!1}}async getServiceState(){const t=k(this.getDockerComposeConfig());return(await c({configAsString:t,log:!1,commandOptions:["--all"]})).data.services.find((t=>t.name.includes(this.name)))}async showDockerLogs(t){return new Promise(((e,s)=>{r("docker",["logs","-f","-n","5000",t],{cwd:w(),stdio:"inherit"}).on("exit",(t=>0===t?e():s(new Error(`Docker exited with code ${t}`))))}))}};const L={port:1433,database:"dcdx",username:"sa",password:"DataCenterDX!",edition:"Developer",version:"2022"};class MSSQL extends x{name="mssql";driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";options=L;version="2022";get url(){return`jdbc:sqlserver://db:${this.options.port};databaseName=${this.options.database};trustServerCertificate=true`}constructor(t=L){super({...L,...t})}async onDatabaseReady(){await this.run(`CREATE DATABASE ${this.options.database}`),await this.run(`ALTER DATABASE ${this.options.database} COLLATE SQL_Latin1_General_CP1_CS_AS`),await this.run(`ALTER DATABASE ${this.options.database} SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;`)}getService=()=>({image:`mcr.microsoft.com/mssql/server:${this.version}-latest`,ports:[`${this.options.port||1433}:1433`],environment:{ACCEPT_EULA:"y",MSSQL_SA_PASSWORD:this.options.password||"dcdx",MSSQL_PID:this.options.edition},networks:{shared:{aliases:["db","database"]}}})}const q={port:3306,database:"dcdx",username:"dcdx",password:"dcdx",version:"8.0"};class MySQL extends x{name="mysql";driver="com.mysql.jdbc.Driver";options=q;version="8.0";get url(){return`jdbc:mysql://db:${this.options.port}/${this.options.database}?sessionVariables=transaction_isolation='READ-COMMITTED'`}constructor(t=q){super({...q,...t})}async onDatabaseReady(){await this.run(`ALTER DATABASE ${this.options.database} CHARACTER SET 'utf8mb4' COLLATE utf8mb4_bin`)}getService=()=>({image:`mysql:${this.version}`,ports:[`${this.options.port||3306}:3306`],environment:{MYSQL_ROOT_PASSWORD:this.options.password||"dcdx",MYSQL_USER:this.options.username||"dcdx",MYSQL_PASSWORD:this.options.password||"dcdx",MYSQL_DATABASE:this.options.database||"dcdx"},command:["--log_bin_trust_function_creators=1"],networks:{shared:{aliases:["db","database"]}}})}const _={version:"15",database:"dcdx",port:5432,username:"dcdx",password:"dcdx"};class Postgres extends x{name="postgresql";driver="org.postgresql.Driver";options=_;version="15";get url(){return`jdbc:postgresql://db:${this.options.port}/${this.options.database}`}constructor(t=_){super({..._,...t})}getService=()=>({image:`postgres:${this.version}`,ports:[`${this.options.port||5432}:5432`],environment:{POSTGRES_USER:this.options.username||"dcdx",POSTGRES_PASSWORD:this.options.password||"dcdx",POSTGRES_DB:this.options.database||"dcdx",POSTGRES_HOST_AUTH_METHOD:"md5",POSTGRES_INITDB_ARGS:"--encoding=UTF-8 --lc-collate=C --lc-ctype=C"},networks:{shared:{aliases:["db","database"]}}})}const $=i(g(),".dcdx");class Base extends h{options;constructor(t){super(),this.options=t}get baseUrl(){let t="http://localhost";return this.options.port&&(t+=`:${this.options.port}`),this.options.contextPath?`${t}/${this.options.contextPath}`:t}getDatabaseEngine(t){switch(t){case"postgresql":return new Postgres;case"mssql":return new MSSQL;case"mysql":return new MySQL}}async start(){this.options.clean&&await this.down(),await this.build(this.options.version),await this.database.start(this.options.clean),await this.up()}async stop(){if(await this.database.stop(this.options.prune),this.options.prune)await this.down();else{const t=k(this.getDockerComposeConfig());await u({cwd:w(),configAsString:t,log:!0})}this.emit(`${this.name}:stopped`)}async reset(){await this.database.stop(!0),await this.down()}async cp(t){const e=await this.getServiceState();if(e&&e.state.toLowerCase().startsWith("up")){const e=this.getDockerComposeConfig(),s=k(e);await p("cp",[t,`${this.name}:/opt/quickreload/`],{cwd:w(),configAsString:s,log:!1})}}async isApplicationReady(){try{const t=await a.get(`${this.baseUrl}/status`,{validateStatus:()=>!0}).catch((()=>null));if(t&&200===t.status){const{data:e}=t;if("FIRST_RUN"===e.state)return console.log(`The application ${this.name} is ready on ${this.baseUrl} 🎉`),!0}return!1}catch(t){return!1}}getDockerComposeConfig(){return{version:"3.8",services:{[this.name]:this.getService()},networks:{shared:O}}}async up(){const t=this.getDockerComposeConfig(),e=k(t);await l({cwd:w(),configAsString:e,log:!0}),this.emit(`${this.name}:up`);await this.waitUntilReady()?(this.emit(`${this.name}:ready`),await this.tailApplicationLogs()):console.log(`Failed to start ${this.name} ⛔`),s(0)}async down(){const t=k(this.getDockerComposeConfig());await d({cwd:w(),configAsString:t,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async getServiceState(){const t=k(this.getDockerComposeConfig());return(await c({configAsString:t,log:!1,commandOptions:["--all"]})).data.services.find((t=>t.name.includes(this.name)))}async waitUntilReady(t=0){console.log(`Waiting for ${this.name} to become available... ${t}s`);const e=await this.getServiceState();return!!(e&&e.state.toLowerCase().startsWith("up")&&await this.isApplicationReady())||(t>=300?(console.error(`A timeout occurred while waiting for ${this.name} to become available ⛔`),e&&await this.showDockerLogs(e.name),!1):(await new Promise((t=>setTimeout(t,1e3))),this.waitUntilReady(t+1)))}getDockerRepositoryUrl(){return`https://bitbucket.org/atlassian-docker/docker-${"jira"===this.name?"atlassian-jira":"bamboo"===this.name?`${this.name}-server`:`atlassian-${this.name}-server`}.git`}async build(t){const e=this.getDockerRepositoryUrl(),s=i($,this.name,"source");b(s)?await j({baseDir:s}).pull({"--recurse-submodule":null}):(m(i($,this.name),{recursive:!0}),await j().clone(e,s,{"--recurse-submodule":null})),await new Promise(((e,o)=>{r("docker",["build","-t",`dcdx/${this.name}:${t}`,"--build-arg",`${this.name.toUpperCase()}_VERSION=${t}`,"."],{cwd:s,stdio:"inherit"}).on("exit",(t=>0===t?e():o(new Error(`Docker exited with code ${t}`))))}))}async tailApplicationLogs(){const t=await this.getServiceState();t&&t.state.toLowerCase().startsWith("up")&&await this.showApplicationLogs(t.name).catch((()=>null))}async showDockerLogs(t){return new Promise(((e,s)=>{r("docker",["logs","-f","-n","5000",t],{cwd:w(),stdio:"inherit"}).on("exit",(t=>0===t?e():s(new Error(`Docker exited with code ${t}`))))}))}async showApplicationLogs(t){return new Promise(((e,s)=>{r("docker",["exec","-i",t,"tail","-F","-n","5000",this.logFilePath],{cwd:w(),stdio:"inherit"}).on("exit",(t=>0===t?e():s(new Error(`Docker exited with code ${t}`))))}))}}class Bamboo extends Base{name=C.BAMBOO;database;logFilePath="/var/atlassian/application-data/bamboo/logs/atlassian-bamboo.log";constructor(t){super(t),this.database=this.getDatabaseEngine(t.database)}getService(){const t=this.getVolumes(),e=this.getEnvironmentVariables();return{build:{context:toAbsolutePath("../../assets"),dockerfile_inline:`\nFROM dcdx/${this.name}:${this.options.version}\nCOPY ./mysql-connector-j-8.3.0.jar /opt/atlassian/bamboo/lib/mysql-connector-j-8.3.0.jar\nCOPY ./quickreload-5.0.2.jar /var/atlassian/application-data/bamboo/shared/plugins/quickreload-5.0.2.jar\nRUN echo "/opt/quickreload" > /var/atlassian/application-data/bamboo/quickreload.properties; mkdir -p /opt/quickreload; chown -R bamboo:bamboo /opt/quickreload;\n\nRUN chown -R bamboo:bamboo /var/atlassian/application-data/bamboo`},ports:[`${this.options.port||80}:8085`,...this.options.debug?["5005:5005"]:[]],environment:Object.keys(e).length>0?e:void 0,volumes:t.length>0?t:void 0,networks:["shared"]}}async isApplicationReady(){try{const t=await a.get(`${this.baseUrl}/setup/setupGeneralConfiguration.action`,{validateStatus:()=>!0}).catch((()=>null));return 200===t?.status}catch(t){return!1}}getEnvironmentVariables(){return{...this.options.contextPath?{ATL_TOMCAT_CONTEXTPATH:this.options.contextPath}:"",...this.options.debug?{JVM_SUPPORT_RECOMMENDED_ARGS:this.getJVMArgs()}:"",ATL_BAMBOO_ENABLE_UNATTENDED_SETUP:"true",ATL_LICENSE:this.options.license||R,ATL_JDBC_URL:this.database.url,ATL_JDBC_USER:this.database.options.username,ATL_JDBC_PASSWORD:this.database.options.password,ATL_DB_TYPE:`${this.database.name}`}}getJVMArgs(){const t=[];return this.options.debug&&(t.push("-Dupm.plugin.upload.enabled=true"),t.push("-Xdebug"),t.push("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005")),this.options.quickReload&&t.push("-Dquickreload.dirs=/opt/quickreload"),t.join(" ")}getVolumes(){return[...this.options.quickReload?[`${this.options.quickReload}:/opt/quickreload`]:""]}}(async()=>{const s=t.showHelpAfterError(!0).addOption(new e("-v, --version <version>","The version of the host application").choices(T).default("latest")).addOption(new e("-d, --database <name>","The database engine on which the host application will run").choices(["postgresql","mysql","mssql"]).default("postgresql")).addOption(new e("-p, --port <port>","The HTTP port on which the host application will be accessible").default("80")).addOption(new e("-c, --contextPath <contextPath>","The context path on which the host application will be accessible")).addOption(new e("-qr, --quickReload <path_to_watch>","Add support for QuickReload and add the provided path to the watch list")).addOption(new e("--clean","Remove data files before starting the database").default(!1)).addOption(new e("--prune","Remove data files when stopping the database").default(!1)).addOption(new e("--debug","Add support for JVM debugger on port 5005")).parse(process.argv).opts(),a=new Bamboo({version:s.version,database:s.database,port:Number(s.port),contextPath:s.contextPath,quickReload:s.qr,clean:s.clean,prune:s.prune,debug:s.debug});o((async()=>{console.log(`Stopping ${a.name}... ⏳`),await a.stop(),console.log(`Stopped ${a.name} 💪`)}),{wait:3e4}),await a.start()})(),process.on("SIGINT",(()=>{console.log("Received term signal, trying to stop gracefully 💪"),s()}));
2
+ import{program as t,Option as e}from"commander";import{gracefulExit as s,asyncExitHook as o}from"exit-hook";import a from"axios";import{dirname as n,join as i}from"path";import{spawn as r}from"child_process";import{stop as u,downAll as d,ps as c,execCompose as p,upAll as l}from"docker-compose/dist/v2.js";import h from"events";import{existsSync as b,mkdirSync as m}from"fs";import{dump as k}from"js-yaml";import{homedir as g}from"os";import{cwd as w}from"process";import j from"simple-git";import{upAll as S}from"docker-compose";import{Sequelize as v,ConnectionError as A,TimeoutError as f,ConnectionTimedOutError as D,ConnectionRefusedError as y,ConnectionAcquireTimeoutError as E}from"sequelize";var T=["latest","9.4-ubuntu","9.4-jdk11","9.4.3-ubuntu","9.4","9.4.3","9.4.3-jdk11","ubuntu","jdk11","9-ubuntu","9-jdk11","9.5-ubuntu","9.5-jdk11","9.5.1-ubuntu","9.5.1-jdk11","9.5.1","9.5","9","9.2-ubuntu","9.2-jdk11","9.2","9.2.11-jdk11","9.2.11-ubuntu","9.2.11","9.3.3-ubuntu","9.3.3-jdk11","9.3.3","9.2.4-ubuntu","9.2.4-jdk11","9.3.2-ubuntu","9.3.2-jdk11","9.0-ubuntu","9.2.4","9.3.2","9.0-jdk11","9.0.4-ubuntu","9.0.4-jdk11","9.0.4","9.0","8.2.6-ubuntu","8.2.6","8.2.6-jdk11","8.1.11-ubuntu","8.1.11-jdk11","8.1.11","8.0.0-jdk11","8.0.0-ubuntu","8.1.8-ubuntu","9.3.4-ubuntu","8.1.8-jdk11","9.3.4-jdk11","8.1.8","8.0.0","8.0.4-ubuntu","9.3.4","8.0.4-jdk11","9.2.5-ubuntu","9.2.5-jdk11","8.0.4","9.2.5","9.1.0-ubuntu","9.1.0-jdk11","9.1.0","8.2.7-ubuntu","8.2.7-jdk11","8.2.7","8.1-ubuntu","8.1-jdk11","8.1.12-ubuntu","8.1.12-jdk11","8.1","8.1.12","8.0.5-ubuntu","8.0.5-jdk11","8.0.1-ubuntu","9.1.1-jdk11","8.1.9-ubuntu","8.0.1-jdk11","8.0.1","8.1.9-jdk11","9.1.1","8.1.9","8.2.8-ubuntu","8.2.8-jdk11","8.0.5","8.2.8","8.1.2-ubuntu","8.1.2-jdk11","8.1.2","8.0.10-ubuntu","9.3.5-ubuntu","8.0.10-jdk11","9.3.5-jdk11","8.0.10","9.3.5","9.2.6-jdk11","9.2.6-ubuntu","9.2.6","9.1.1-ubuntu","8.2.0-ubuntu","8.2.0-jdk11","9.1.2-ubuntu","8.2.0","9.1.2-jdk11","8.0.6-ubuntu","8.0.6-jdk11","9.1.2","8.0.6","8-ubuntu","8-jdk11","8.2-ubuntu","8.2-jdk11","8.2.9-ubuntu","8.2.9-jdk11","8.2.9","8.2","8.1.3-ubuntu","8.1.3-jdk11","8.1.3","8.0.11-jdk11","8.0.11-ubuntu","8.0.11","9.3-ubuntu","8","9.3-jdk11","9.3.6-ubuntu","9.3.6-jdk11","9.3.6","9.3","9.2.7-ubuntu","9.2.7-jdk11","9.2.7","8.2.1-ubuntu","8.2.1-jdk11","8.2.1","8.0.7-ubuntu","9.4.0-jdk11","8.0.7-jdk11","9.2.8-ubuntu","8.0.7","9.2.8-jdk11","9.2.8","9.1-ubuntu","9.1-jdk11","9.1.3-ubuntu","9.1.3-jdk11","9.1.3","9.1","9.0.0-jdk11","9.0.0-ubuntu","9.0.0","8.1.4-ubuntu","8.1.4-jdk11","8.1.4","8.0.8-ubuntu","8.0.8-jdk11","8.0.8","8.0.12-ubuntu","8.0.12","8.0.12-jdk11","8.2.2-ubuntu","8.2.2-jdk11","8.1.5-jdk11","8.2.2","8.1.5-ubuntu","8.1.5","8.0-ubuntu","8.0-jdk11","8.0.13-jdk11","8.0.13-ubuntu","8.0.13","9.4.1-ubuntu","8.0","9.4.1-jdk11","9.4.1","9.2.9-ubuntu","9.2.9","9.2.9-jdk11","9.2.1-ubuntu","9.2.1-jdk11","9.2.1","9.0.1-ubuntu","9.0.1-jdk11","9.0.1","8.2.3-ubuntu","8.2.3-jdk11","8.2.3","9.4.2-jdk11","8.0.9-ubuntu","8.0.9-jdk11","9.0.2-ubuntu","8.0.9","9.0.2-jdk11","9.0.2","8.1.6-ubuntu","8.1.6-jdk11","8.1.6","8.0.2-ubuntu","8.0.2-jdk11","8.0.2","7-ubuntu","7-jdk8","7.2-ubuntu","7.2-jdk8","7.2.7-jdk8","7.2.7-ubuntu","7.2.7","7.2.5-ubuntu","7.2.5-jdk8","7.2.5","7.2.3-ubuntu","7.2.3-jdk8","7.2.3","7.2.10-ubuntu","7.2.10-jdk8","7.2.10","7.2.0-ubuntu","7.2.0-jdk8","7.2.0","7.2","7.1.3-ubuntu","7.1.3-jdk8","7.1.3","7","9.3.0-ubuntu","9.3.0-jdk11","9.3.0","9.2.10-ubuntu","9.2.10-jdk11","9.2.10","8.2.4-ubuntu","8.2.4-jdk11","8.2.4","8.1.1-ubuntu","8.1.1-jdk11","8.1.1","8.1.7-ubuntu","8.1.7-jdk11","8.1.7","8.0.3-ubuntu","8.0.3-jdk11","8.0.3","jdk17","9-jdk17","9.5-jdk17","9.5.0-ubuntu","9.5.0-jdk17","9.5.0-jdk11","9.5.0","9.4-jdk17","9.4.2-ubuntu","9.4.0-ubuntu","9.4.2-jdk17","9.4.2","9.4.0","9.4.0-jdk17","9.3.1-ubuntu","9.3.1-jdk11","9.3.1","9.2.3-ubuntu","9.2.3-jdk11","9.2.3","9.0.3-ubuntu","9.0.3-jdk11","9.0.3","8.2.5-ubuntu","8.2.5-jdk11","8.2.5","8.1.10-ubuntu","8.1.10-jdk11","8.1.10","7.2.9-ubuntu","7.2.9","7.2.9-jdk8","7.2.6-ubuntu","7.2.6-jdk8","7.2.6","7.2.4-ubuntu","7.2.4-jdk8","7.2.4","7.2.2-ubuntu","7.2.2-jdk8","7.2.2","7.2.1-ubuntu","7.2.1-jdk8","7.2.1","7.1-ubuntu","7.1-jdk8","7.1.4-ubuntu","7.1.4-jdk8","7.1.4","7.1.2-ubuntu","7.1.2-jdk8","7.1.2","7.1.1-ubuntu","7.1.1-jdk8","7.1.1","7.1","9.4.1-jdk17","eap-jdk8","9.0.0-rc1-ubuntu","9.0.0-rc1-jdk11","9.0.0-rc1","eap-jdk11","eap-ubuntu","9.0.0-rc1-jdk8","eap","8.0.0-rc4","8.0.0-rc1","7.0.6","7.0","7.1.0-rc1","7.0.4","6.10","6.10.6","7.0.3","6.10.5","7.0.2","7.0.1","7.0.0-rc2","7.0.0-rc1","6.10.4","6.10.3","6.10.2","6.9.2","6.9","6.8.3","6.8","6.9.1","6.8.2","6.9.0","6.9.0-rc1","6.7","6.7.3","6.8.1","6.8.0","6.7.2","6.7.1","6.6.3","6.6","6.7.0-rc2","6.6.2","6.6.1","6.6.0"];const R="AAAB3w0ODAoPeNp9Ultr2zAYffevEOwtoMR10qYLGJbYWsno7GA7g90eZPlrotWWjCSnzX79FF8IYWkfDPJ3Oedwzvch2zdoWSvkzpF7v5jdLrwpCkiaIc/1POeRMxAasmMNEa3Az2xnHT04gQJquBQhNeB77vQGuzPs3jk5rXIpx5QZfgDfqAaGUtRUOaj4adX+PkpGy+UOhNE+vnGG5laDags9L3mtuToOJF5Pkja5ZorXJwEXHG+pJQdaNvS/cYtLAysBVFfu19ehvxXPQr4IJwV1AGULKzIneBb+8PBd/GWOH6Yf751No9ieaujleYMHKYl8++Fb13VGo1EUZ/hznOBNEofbIFvHEd6mxDb81kQoUH5EZg+op0dEMFmAQrWSf4AZ9HNvTP1rMZnsrLGmpFpzKsZMVpOy28DQbfweo1AiIQ0quDaK540Bi8w1MhKxRhtZWXvHTghn+zLQBvU46Ela1rLZcYEKOEApazvvfKXceiSoYG/kcTXhTUlFG+XVbgKVNHA+gF7BN8t3UuU5sdpRwXUXGnmlVV0CCmRVU3G8Evf5MKUw9vqIFV36tX7moNjfo7CPTxfenZIJErLMSIhX309pvDd8SUgK3smKMpJsknVKBtr26t4D+gd3AC5qMCwCFHOaTWfFvLCLJPft3qktVo3FafmZAhRojb9IAxj8KEqPDQy0stos394SQQ==X02mq",toAbsolutePath=t=>{const[,e]=process.argv,s=n(e),o=s.substring(0,s.indexOf("dcdx")+4);return i(o,t.replaceAll("../",""))};var C;!function(t){t.JIRA="jira",t.CONFLUENCE="confluence",t.BITBUCKET="bitbucket",t.BAMBOO="bamboo"}(C||(C={}));const O={name:"shared",driver:"bridge"};let x=class Base extends h{options;sequelize=null;constructor(t){super(),this.options=t}async run(t,e){try{if(!this.sequelize)throw new Error("Database connection does not exist");await this.sequelize.query(t,{logging:e})}catch(e){console.error("An error occurred while trying to run the following SQL query:",t,e),s()}return null}async start(t=this.options.clean){console.log(`Starting instance of ${this.name} ⏳`),t&&await this.down(),await this.up(),this.emit(`${this.name}:up`);if(await this.waitUntilReady()){if(console.log(`Database is ready and accepting connections on localhost:${this.options.port} 🗄️`),await this.onDatabaseReady(),this.emit("db:ready"),this.options.logging){const t=await this.getServiceState();t&&await this.showDockerLogs(t.name)}}else console.log(`Failed to start database ${this.name} ⛔`),s(0)}async stop(t=this.options.prune){if(t)await this.down();else{const t=k(this.getDockerComposeConfig());await u({cwd:w(),configAsString:t,log:!0})}this.emit("db:stopped")}async onDatabaseReady(){}getDockerComposeConfig(){return{version:"3.8",services:{db:this.getService()},networks:{shared:O}}}async up(){const t=k(this.getDockerComposeConfig());return S({cwd:w(),configAsString:t,log:!0})}async down(){const t=k(this.getDockerComposeConfig());return d({cwd:w(),configAsString:t,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async waitUntilReady(){try{const t="mssql"===this.name?"master":this.options.database;return this.sequelize=new v(t,this.options.username,this.options.password,{host:"localhost",port:this.options.port,dialect:this.name.replace("postgresql","postgres"),retry:{max:30,match:[A,f,D,y,E],backoffBase:1e3,backoffExponent:1},logging:!1}),this.sequelize.authenticate().then((()=>!0)).catch((t=>(console.log(t),!1)))}catch(t){return!1}}async getServiceState(){const t=k(this.getDockerComposeConfig());return(await c({configAsString:t,log:!1,commandOptions:["--all"]})).data.services.find((t=>t.name.includes(this.name)))}async showDockerLogs(t){return new Promise(((e,s)=>{r("docker",["logs","-f","-n","5000",t],{cwd:w(),stdio:"inherit"}).on("exit",(t=>0===t?e():s(new Error(`Docker exited with code ${t}`))))}))}};const L={port:1433,database:"dcdx",username:"sa",password:"DataCenterDX!",edition:"Developer",version:"2022"};class MSSQL extends x{name="mssql";driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";options=L;version="2022";get url(){return`jdbc:sqlserver://db:${this.options.port};databaseName=${this.options.database};trustServerCertificate=true`}constructor(t=L){super({...L,...t})}async onDatabaseReady(){await this.run(`CREATE DATABASE ${this.options.database}`),await this.run(`ALTER DATABASE ${this.options.database} COLLATE SQL_Latin1_General_CP1_CS_AS`),await this.run(`ALTER DATABASE ${this.options.database} SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;`)}getService=()=>({image:`mcr.microsoft.com/mssql/server:${this.version}-latest`,ports:[`${this.options.port||1433}:1433`],environment:{ACCEPT_EULA:"y",MSSQL_SA_PASSWORD:this.options.password||"dcdx",MSSQL_PID:this.options.edition},networks:{shared:{aliases:["db","database"]}}})}const q={port:3306,database:"dcdx",username:"dcdx",password:"dcdx",version:"8.0"};class MySQL extends x{name="mysql";driver="com.mysql.jdbc.Driver";options=q;version="8.0";get url(){return`jdbc:mysql://db:${this.options.port}/${this.options.database}?sessionVariables=transaction_isolation='READ-COMMITTED'`}constructor(t=q){super({...q,...t})}async onDatabaseReady(){await this.run(`ALTER DATABASE ${this.options.database} CHARACTER SET 'utf8mb4' COLLATE utf8mb4_bin`)}getService=()=>({image:`mysql:${this.version}`,ports:[`${this.options.port||3306}:3306`],environment:{MYSQL_ROOT_PASSWORD:this.options.password||"dcdx",MYSQL_USER:this.options.username||"dcdx",MYSQL_PASSWORD:this.options.password||"dcdx",MYSQL_DATABASE:this.options.database||"dcdx"},command:["--log_bin_trust_function_creators=1"],networks:{shared:{aliases:["db","database"]}}})}const _={version:"15",database:"dcdx",port:5432,username:"dcdx",password:"dcdx"};class Postgres extends x{name="postgresql";driver="org.postgresql.Driver";options=_;version="15";get url(){return`jdbc:postgresql://db:${this.options.port}/${this.options.database}`}constructor(t=_){super({..._,...t})}getService=()=>({image:`postgres:${this.version}`,ports:[`${this.options.port||5432}:5432`],environment:{POSTGRES_USER:this.options.username||"dcdx",POSTGRES_PASSWORD:this.options.password||"dcdx",POSTGRES_DB:this.options.database||"dcdx",POSTGRES_HOST_AUTH_METHOD:"md5",POSTGRES_INITDB_ARGS:"--encoding=UTF-8 --lc-collate=C --lc-ctype=C"},networks:{shared:{aliases:["db","database"]}}})}const $=i(g(),".dcdx");class Base extends h{options;constructor(t){super(),this.options=t}get baseUrl(){let t="http://localhost";return this.options.port&&(t+=`:${this.options.port}`),this.options.contextPath?`${t}/${this.options.contextPath}`:t}getDatabaseEngine(t){switch(t){case"postgresql":return new Postgres;case"mssql":return new MSSQL;case"mysql":return new MySQL}}async start(){this.options.clean&&await this.down(),await this.build(this.options.version),await this.database.start(this.options.clean),await this.up()}async stop(){if(await this.database.stop(this.options.prune),this.options.prune)await this.down();else{const t=k(this.getDockerComposeConfig());await u({cwd:w(),configAsString:t,log:!0})}this.emit(`${this.name}:stopped`)}async reset(){await this.database.stop(!0),await this.down()}async cp(t){const e=await this.getServiceState();if(e&&e.state.toLowerCase().startsWith("up")){const e=this.getDockerComposeConfig(),s=k(e);await p("cp",[t,`${this.name}:/opt/quickreload/`],{cwd:w(),configAsString:s,log:!1})}}async isApplicationReady(){try{const t=await a.get(`${this.baseUrl}/status`,{validateStatus:()=>!0}).catch((()=>null));if(t&&200===t.status){const{data:e}=t;if("FIRST_RUN"===e.state||"RUNNING"===e.state)return console.log(`The application ${this.name} is ready on ${this.baseUrl} 🎉`),!0}return!1}catch(t){return!1}}getDockerComposeConfig(){return{version:"3.8",services:{[this.name]:this.getService()},networks:{shared:O}}}async up(){const t=this.getDockerComposeConfig(),e=k(t);await l({cwd:w(),configAsString:e,log:!0}),this.emit(`${this.name}:up`);await this.waitUntilReady()?(this.emit(`${this.name}:ready`),await this.tailApplicationLogs()):console.log(`Failed to start ${this.name} ⛔`),s(0)}async down(){const t=k(this.getDockerComposeConfig());await d({cwd:w(),configAsString:t,commandOptions:["-v","--remove-orphans","--rmi","local"],log:!0})}async getServiceState(){const t=k(this.getDockerComposeConfig());return(await c({configAsString:t,log:!1,commandOptions:["--all"]})).data.services.find((t=>t.name.includes(this.name)))}async waitUntilReady(t=0){console.log(`Waiting for ${this.name} to become available... ${t}s`);const e=await this.getServiceState();return!!(e&&e.state.toLowerCase().startsWith("up")&&await this.isApplicationReady())||(t>=300?(console.error(`A timeout occurred while waiting for ${this.name} to become available ⛔`),e&&await this.showDockerLogs(e.name),!1):(await new Promise((t=>setTimeout(t,1e3))),this.waitUntilReady(t+1)))}getDockerRepositoryUrl(){return`https://bitbucket.org/atlassian-docker/docker-${"jira"===this.name?"atlassian-jira":"bamboo"===this.name?`${this.name}-server`:`atlassian-${this.name}-server`}.git`}async build(t){const e=this.getDockerRepositoryUrl(),s=i($,this.name,"source");b(s)?await j({baseDir:s}).pull({"--recurse-submodule":null}):(m(i($,this.name),{recursive:!0}),await j().clone(e,s,{"--recurse-submodule":null})),await new Promise(((e,o)=>{r("docker",["build","-t",`dcdx/${this.name}:${t}`,"--build-arg",`${this.name.toUpperCase()}_VERSION=${t}`,"."],{cwd:s,stdio:"inherit"}).on("exit",(t=>0===t?e():o(new Error(`Docker exited with code ${t}`))))}))}async tailApplicationLogs(){const t=await this.getServiceState();t&&t.state.toLowerCase().startsWith("up")&&await this.showApplicationLogs(t.name).catch((()=>null))}async showDockerLogs(t){return new Promise(((e,s)=>{r("docker",["logs","-f","-n","5000",t],{cwd:w(),stdio:"inherit"}).on("exit",(t=>0===t?e():s(new Error(`Docker exited with code ${t}`))))}))}async showApplicationLogs(t){return new Promise(((e,s)=>{r("docker",["exec","-i",t,"tail","-F","-n","5000",this.logFilePath],{cwd:w(),stdio:"inherit"}).on("exit",(t=>0===t?e():s(new Error(`Docker exited with code ${t}`))))}))}}class Bamboo extends Base{name=C.BAMBOO;database;logFilePath="/var/atlassian/application-data/bamboo/logs/atlassian-bamboo.log";constructor(t){super(t),this.database=this.getDatabaseEngine(t.database)}getService(){const t=this.getVolumes(),e=this.getEnvironmentVariables();return{build:{context:toAbsolutePath("../../assets"),dockerfile_inline:`\nFROM dcdx/${this.name}:${this.options.version}\nCOPY ./mysql-connector-j-8.3.0.jar /opt/atlassian/bamboo/lib/mysql-connector-j-8.3.0.jar\nCOPY ./quickreload-5.0.2.jar /var/atlassian/application-data/bamboo/shared/plugins/quickreload-5.0.2.jar\nRUN echo "/opt/quickreload" > /var/atlassian/application-data/bamboo/quickreload.properties; mkdir -p /opt/quickreload; chown -R bamboo:bamboo /opt/quickreload;\n\nRUN chown -R bamboo:bamboo /var/atlassian/application-data/bamboo`},ports:[`${this.options.port||80}:8085`,...this.options.debug?["5005:5005"]:[]],environment:Object.keys(e).length>0?e:void 0,volumes:t.length>0?t:void 0,networks:["shared"]}}async isApplicationReady(){try{const t=await a.get(`${this.baseUrl}/setup/setupGeneralConfiguration.action`,{validateStatus:()=>!0}).catch((()=>null));return 200===t?.status}catch(t){return!1}}getEnvironmentVariables(){return{...this.options.contextPath?{ATL_TOMCAT_CONTEXTPATH:this.options.contextPath}:"",...this.options.debug?{JVM_SUPPORT_RECOMMENDED_ARGS:this.getJVMArgs()}:"",ATL_BAMBOO_ENABLE_UNATTENDED_SETUP:"true",ATL_LICENSE:this.options.license||R,ATL_JDBC_URL:this.database.url,ATL_JDBC_USER:this.database.options.username,ATL_JDBC_PASSWORD:this.database.options.password,ATL_DB_TYPE:`${this.database.name}`}}getJVMArgs(){const t=[];return this.options.debug&&(t.push("-Dupm.plugin.upload.enabled=true"),t.push("-Xdebug"),t.push("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005")),this.options.quickReload&&t.push("-Dquickreload.dirs=/opt/quickreload"),t.join(" ")}getVolumes(){return[...this.options.quickReload?[`${this.options.quickReload}:/opt/quickreload`]:""]}}(async()=>{const s=t.showHelpAfterError(!0).addOption(new e("-v, --version <version>","The version of the host application").choices(T).default("latest")).addOption(new e("-d, --database <name>","The database engine on which the host application will run").choices(["postgresql","mysql","mssql"]).default("postgresql")).addOption(new e("-p, --port <port>","The HTTP port on which the host application will be accessible").default("80")).addOption(new e("-c, --contextPath <contextPath>","The context path on which the host application will be accessible")).addOption(new e("-qr, --quickReload <path_to_watch>","Add support for QuickReload and add the provided path to the watch list")).addOption(new e("--clean","Remove data files before starting the database").default(!1)).addOption(new e("--prune","Remove data files when stopping the database").default(!1)).addOption(new e("--debug","Add support for JVM debugger on port 5005")).parse(process.argv).opts(),a=new Bamboo({version:s.version,database:s.database,port:Number(s.port),contextPath:s.contextPath,quickReload:s.qr,clean:s.clean,prune:s.prune,debug:s.debug});o((async()=>{console.log(`Stopping ${a.name}... ⏳`),await a.stop(),console.log(`Stopped ${a.name} 💪`)}),{wait:3e4}),await a.start()})(),process.on("SIGINT",(()=>{console.log("Received term signal, trying to stop gracefully 💪"),s()}));