diff --git a/.project b/.project
index e4c3ce9..211a366 100644
--- a/.project
+++ b/.project
@@ -5,6 +5,11 @@
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
org.eclipse.m2e.core.maven2Builder
@@ -12,6 +17,18 @@
+ org.eclipse.jdt.core.javanature
org.eclipse.m2e.core.maven2Nature
+
+
+ 1742539507100
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/maven_dependency_tree.gv b/maven_dependency_tree.gv
new file mode 100644
index 0000000..e15cb2a
--- /dev/null
+++ b/maven_dependency_tree.gv
@@ -0,0 +1,558 @@
+digraph "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" {
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "com.atlassian.plugin:atlassian-spring-scanner-annotation:jar:1.2.13:provided" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "javax.inject:javax.inject:jar:1:provided" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "junit:junit:jar:4.10:test" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "com.atlassian.sal:sal-api:jar:3.0.8:provided" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "com.atlassian.plugins:atlassian-plugins-osgi-testrunner:jar:2.0.2:test" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "javax.ws.rs:jsr311-api:jar:1.1.1:provided" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "com.google.code.gson:gson:jar:2.2.2-atlassian-1:provided" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "org.asynchttpclient:async-http-client:jar:3.0.1:compile" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "io.netty:netty-common:jar:4.1.119.Final:compile" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "io.netty:netty-handler:jar:4.1.119.Final:compile" ;
+ "com.leapwork:leapwork-integration-for-bamboo:atlassian-plugin:5.0.1-SNAPSHOT" -> "com.atlassian.bamboo.plugins.testresultparser:atlassian-bamboo-plugin-testresultparser:jar:6.6.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-persistence:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-migration:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.security.serialblocklist:serialblocklist:jar:2.0.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.security.objectfilter:java11-objectfilter:jar:1.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-language:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-charts:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-upgrader:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-license:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-classserver:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-local:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-elastic-server:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-import-export:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian:webwork-compat:jar:1.33:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.applinks:applinks-api:jar:10.0.15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.applinks:applinks-host:jar:10.0.15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.applinks:applinks-spi:jar:10.0.15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.beehive:beehive-api:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.beehive:beehive-single-node:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.beehive:beehive-db:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.core:atlassian-core:jar:9.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.html:atlassian-html-encoder:jar:1.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.velocity.htmlsafe:velocity-htmlsafe:jar:5.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "commons-pool:commons-pool:jar:1.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.fugue:fugue:jar:2.7.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.http:atlassian-http:jar:4.1.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.json:atlassian-json-api:jar:1.1.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.johnson:atlassian-johnson-core:jar:5.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.oauth:atlassian-oauth-api:jar:6.0.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-plugins-schema:jar:8.0.15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-whitelist-api-plugin:jar:6.1.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.profiling:atlassian-profiling:jar:5.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.sal:sal-spi:jar:6.0.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.sal:sal-spring:jar:6.0.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.sal:sal-trust-api:jar:6.0.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.scheduler:atlassian-scheduler-api:jar:5.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.scheduler:atlassian-scheduler-core:jar:5.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.scheduler:atlassian-scheduler-quartz2:jar:5.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.security:atlassian-secure-utils:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.xwork:atlassian-xwork-12:jar:2.5.32-struts-4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "io.atlassian.util.concurrent:atlassian-util-concurrent:jar:4.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.oauth2:oauth2-client-api:jar:4.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.oauth2:oauth2-provider-api:jar:4.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.oauth2:oauth2-scopes-api:jar:4.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian:atlassian-localhost:jar:1.2.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.atlassian.ip:atlassian-ip:jar:3.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.hibernate:hibernate-hikaricp:jar:5.6.15.Final:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.zaxxer:HikariCP:jar:4.0.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.hibernate:hibernate-ehcache:jar:5.6.15.Final:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.slf4j:jul-to-slf4j:jar:2.0.13:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.apache.logging.log4j:log4j-slf4j2-impl:jar:2.23.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.springframework:spring-beans:jar:5.3.38-atlassian-2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.springframework:spring-context:jar:5.3.37:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.springframework:spring-core:jar:5.3.38-atlassian-2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.rometools:rome:jar:2.1.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "de.schlichtherle.truezip:truezip-file:jar:7.7.10:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "de.schlichtherle.truezip:truezip-driver-zip:jar:7.7.10:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.jdom:jdom2:jar:2.0.6.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.dom4j:dom4j:jar:2.1.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "javax.transaction:jta:jar:1.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.github.ziplet:ziplet:jar:2.4.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.apache.struts:struts2-core:jar:2.5.33-atlassian-1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.freemarker:freemarker:jar:2.3.31-atlassian-2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "opensymphony:sitemesh:jar:2.5-atlassian-11:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.tuckey:urlrewritefilter:jar:4.0.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.hamcrest:hamcrest-all:jar:1.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "javax.xml.stream:stax-api:jar:1.0-2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.apache.maven:maven-embedder:jar:3.9.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.apache.maven:maven-model:jar:3.9.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.octo.captcha:jcaptcha:jar:2.0-alpha-1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.octo.captcha:jcaptcha-api:jar:2.0-alpha-1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.jhlabs:filters:jar:2.0.235:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.apache.struts:struts2-sitemesh-plugin:jar:2.1.8.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.apache.httpcomponents:httpmime:jar:4.5.14:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.reflections:reflections:jar:0.9.11:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.apache.felix:org.apache.felix.framework:jar:7.0.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "biz.aQute.bnd:biz.aQute.bndlib:jar:3.5.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "jakarta.ws.rs:jakarta.ws.rs-api:jar:2.1.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.glassfish.jersey.core:jersey-server:jar:2.42:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.glassfish.jersey.core:jersey-common:jar:2.42:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.glassfish.jersey.containers:jersey-container-servlet:jar:2.42:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.glassfish.jersey.inject:jersey-hk2:jar:2.42:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.42:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.glassfish.jersey.core:jersey-client:jar:2.42:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.glassfish.jersey.media:jersey-media-jaxb:jar:2.42:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.core:jackson-core:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.core:jackson-databind:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.core:jackson-annotations:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.17.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.17.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.datatype:jackson-datatype-joda:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.17.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.17.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "org.ow2.asm:asm:jar:9.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "net.bytebuddy:byte-buddy:jar:1.14.18:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-web:jar:10.0.0:provided" -> "xerces:xercesImpl:jar:2.12.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-crypto:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-deployments-api:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo:bamboo-specs:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-core-agent-bootstrap:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-utils:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-xml-utils:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.analytics:analytics-api:jar:9.0.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.diagnostics:atlassian-diagnostics-api:jar:4.0.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.audit:atlassian-audit-api:jar:2.0.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.audit:atlassian-audit-spi:jar:2.0.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.audit:atlassian-audit-core:jar:2.0.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.bamboo.security.classlist:security-classlist-api:jar:1.0.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.cache:atlassian-cache-ehcache:jar:7.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.cache:atlassian-cache-memory:jar:7.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-plugins-spring:jar:8.0.15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-plugins-webfragment:jar:7.0.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.security:atlassian-secure-random:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.security:atlassian-secure-xml:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.security.auth.trustedapps:atlassian-trusted-apps-seraph-integration:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.security.auth.trustedapps:atlassian-trusted-apps-core:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.spring:atlassian-spring:jar:3.0.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.utils:atlassian-processutils:jar:1.8.7:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.velocity:velocity:jar:1.6.4-atlassian-36:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.velocity:atlassian-velocity:jar:1.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.config:atlassian-config-internal:jar:2.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.util.concurrent:atlassian-util-concurrent:jar:3.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "javax.xml.bind:jaxb-api:jar:2.3.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "javax.annotation:javax.annotation-api:jar:1.3.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "javax.activation:javax.activation-api:jar:1.2.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.sun.activation:javax.activation:jar:1.2.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.glassfish.jaxb:jaxb-runtime:jar:2.3.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.commons:commons-collections4:jar:4.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "commons-lang:commons-lang:jar:2.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "commons-codec:commons-codec:jar:1.16.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "commons-validator:commons-validator:jar:1.7:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "jaxen:jaxen:jar:1.1.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.commons:commons-lang3:jar:3.14.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.springframework:spring-jms:jar:5.3.37:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.springframework:spring-context-support:jar:5.3.38-atlassian-2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "commons-digester:commons-digester:jar:2.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.aspectj:aspectjrt:jar:1.9.19:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.aspectj:aspectjweaver:jar:1.9.19:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.hibernate:hibernate-jpamodelgen:jar:5.6.15.Final:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "cglib:cglib-nodep:jar:2.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.sun.mail:javax.mail:jar:1.6.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "joda-time:joda-time:jar:2.12.7:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.logging.log4j:log4j-1.2-api:jar:2.23.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.logging.log4j:log4j-api:jar:2.23.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.logging.log4j:log4j-core:jar:2.23.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.quartz-scheduler:quartz:jar:2.3.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.thoughtworks.xstream:xstream:jar:1.4.20:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.thoughtworks.xstream:xstream-hibernate:jar:1.4.20:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.mail:atlassian-mail:jar:7.0.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.activemq:activemq-broker:jar:5.18.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.xbean:xbean-spring:jar:3.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.slf4j:slf4j-api:jar:2.0.13:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.apache.sshd:sshd-core:jar:2.12.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "net.i2p.crypto:eddsa:jar:0.3.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.botocss:botocss:jar:3.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.scala-lang:scala-library:jar:2.10.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.tdunning:t-digest:jar:3.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-plugins-webresource:jar:7.1.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-plugins-webresource-common:jar:8.0.15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "org.codehaus.jackson:jackson-mapper-asl:jar:1.9.14-atlassian-6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.crowd:embedded-crowd-spi:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.crowd:embedded-crowd-api:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.crowd:embedded-crowd-core:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.profiling:atlassian-profiling-api:jar:5.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.google.protobuf:protobuf-java:jar:3.24.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "io.grpc:grpc-netty-shaded:jar:1.58.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "io.grpc:grpc-protobuf:jar:1.58.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "io.grpc:grpc-stub:jar:1.58.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.squareup:tape:jar:1.2.3-atlassian-5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-core:jar:10.0.0:provided" -> "com.atlassian.atlassian-stats:atlassian-stats:jar:1.11:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-api-agent-bootstrap:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.extras:atlassian-extras-api:jar:3.4.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "opensymphony:oscore:jar:2.3.0-atlassian-5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-plugins-servlet:jar:8.0.15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.plugins:atlassian-plugins-webfragment-api:jar:7.0.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.bandana:atlassian-bandana:jar:3.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.cache:atlassian-cache-api:jar:7.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "org.apache.ant:ant:jar:1.10.12:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "org.apache.commons:commons-text:jar:1.11.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "org.apache.commons:commons-pool2:jar:2.11.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "commons-configuration:commons-configuration:jar:1.4-atlassian-1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "commons-beanutils:commons-beanutils:jar:1.9.4:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.seraph:atlassian-seraph:jar:4.2.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "org.acegisecurity:acegi-security:jar:1.0.7:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "com.atlassian.soy:soy-template-renderer-plugin-api:jar:7.0.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "org.fusesource.jansi:jansi:jar:1.18:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-api:jar:10.0.0:provided" -> "org.bouncycastle:bcprov-jdk18on:jar:1.78:provided" ;
+ "opensymphony:oscore:jar:2.3.0-atlassian-5:provided" -> "javax.ejb:ejb-api:jar:3.0:provided" ;
+ "opensymphony:oscore:jar:2.3.0-atlassian-5:provided" -> "xalan:xalan:jar:2.7.3:provided" ;
+ "opensymphony:oscore:jar:2.3.0-atlassian-5:provided" -> "xalan:serializer:jar:2.7.3:provided" ;
+ "org.apache.ant:ant:jar:1.10.12:provided" -> "org.apache.ant:ant-launcher:jar:1.10.12:provided" ;
+ "commons-configuration:commons-configuration:jar:1.4-atlassian-1:provided" -> "commons-jxpath:commons-jxpath:jar:1.2:provided" ;
+ "com.atlassian.soy:soy-template-renderer-plugin-api:jar:7.0.5:provided" -> "com.atlassian.soy:soy-template-renderer-api:jar:7.0.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-crypto:jar:10.0.0:provided" -> "org.bouncycastle:bcpkix-jdk18on:jar:1.78:provided" ;
+ "org.bouncycastle:bcpkix-jdk18on:jar:1.78:provided" -> "org.bouncycastle:bcutil-jdk18on:jar:1.78:provided" ;
+ "com.atlassian.bamboo:bamboo-specs:jar:10.0.0:provided" -> "com.google.code.findbugs:jsr305:jar:3.0.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-utils:jar:10.0.0:provided" -> "org.jsoup:jsoup:jar:1.17.2:provided" ;
+ "com.atlassian.audit:atlassian-audit-core:jar:2.0.3:provided" -> "net.sf.supercsv:super-csv:jar:2.1.0:provided" ;
+ "com.atlassian.cache:atlassian-cache-ehcache:jar:7.0.1:provided" -> "com.atlassian.cache:atlassian-cache-common-impl:jar:7.0.1:provided" ;
+ "com.atlassian.cache:atlassian-cache-memory:jar:7.0.1:provided" -> "com.atlassian.instrumentation:atlassian-instrumentation-core:jar:4.0.0:provided" ;
+ "com.atlassian.spring:atlassian-spring:jar:3.0.2:provided" -> "org.springframework:spring-jdbc:jar:2.0.6:provided" ;
+ "com.atlassian.spring:atlassian-spring:jar:3.0.2:provided" -> "commons-logging:commons-logging:jar:1.3.1:provided" ;
+ "org.springframework:spring-jdbc:jar:2.0.6:provided" -> "org.springframework:spring-dao:jar:2.0.6:provided" ;
+ "com.atlassian.utils:atlassian-processutils:jar:1.8.7:provided" -> "org.jvnet.winp:winp:jar:1.28:provided" ;
+ "org.apache.velocity:velocity:jar:1.6.4-atlassian-36:provided" -> "commons-collections:commons-collections:jar:3.2.2:provided" ;
+ "org.apache.velocity:velocity:jar:1.6.4-atlassian-36:provided" -> "oro:oro:jar:2.0.8:provided" ;
+ "com.atlassian.config:atlassian-config-internal:jar:2.0.0:provided" -> "com.atlassian.config:atlassian-config:jar:2.0.0:provided" ;
+ "com.atlassian.config:atlassian-config-internal:jar:2.0.0:provided" -> "net.jcip:jcip-annotations:jar:1.0:provided" ;
+ "org.glassfish.jaxb:jaxb-runtime:jar:2.3.6:provided" -> "org.glassfish.jaxb:txw2:jar:2.3.6:provided" ;
+ "org.glassfish.jaxb:jaxb-runtime:jar:2.3.6:provided" -> "com.sun.istack:istack-commons-runtime:jar:3.0.12:provided" ;
+ "org.springframework:spring-jms:jar:5.3.37:provided" -> "org.springframework:spring-messaging:jar:5.3.37:provided" ;
+ "org.springframework:spring-jms:jar:5.3.37:provided" -> "org.springframework:spring-tx:jar:5.3.37:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-bosh:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-debug:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-experimental:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-extensions:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-java8:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-legacy:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-omemo:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-openpgp:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-resolver-minidns:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-resolver-minidns-dox:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8-full:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-tcp:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-bosh:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-core:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-bosh:jar:4.4.4:provided" -> "org.igniterealtime.jbosh:jbosh:jar:0.9.2:provided" ;
+ "org.igniterealtime.smack:smack-core:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-xmlparser:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-core:jar:4.4.4:provided" -> "org.jxmpp:jxmpp-core:jar:1.0.3:provided" ;
+ "org.igniterealtime.smack:smack-core:jar:4.4.4:provided" -> "org.jxmpp:jxmpp-jid:jar:1.0.3:provided" ;
+ "org.igniterealtime.smack:smack-core:jar:4.4.4:provided" -> "org.minidns:minidns-core:jar:1.0.5:provided" ;
+ "org.igniterealtime.jbosh:jbosh:jar:0.9.2:provided" -> "xpp3:xpp3:jar:1.1.4c:provided" ;
+ "org.igniterealtime.smack:smack-experimental:jar:4.4.4:provided" -> "org.hsluv:hsluv:jar:0.2:provided" ;
+ "org.igniterealtime.smack:smack-extensions:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-im:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-resolver-javax:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-sasl-javax:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-java8:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-xmlparser-stax:jar:4.4.4:provided" ;
+ "org.igniterealtime.smack:smack-openpgp:jar:4.4.4:provided" -> "org.pgpainless:pgpainless-core:jar:0.1.0:provided" ;
+ "org.igniterealtime.smack:smack-resolver-minidns:jar:4.4.4:provided" -> "org.minidns:minidns-hla:jar:1.0.5:provided" ;
+ "org.igniterealtime.smack:smack-resolver-minidns:jar:4.4.4:provided" -> "org.jxmpp:jxmpp-util-cache:jar:1.0.3:provided" ;
+ "org.minidns:minidns-hla:jar:1.0.5:provided" -> "org.minidns:minidns-dnssec:jar:1.0.5:provided" ;
+ "org.minidns:minidns-dnssec:jar:1.0.5:provided" -> "org.minidns:minidns-client:jar:1.0.5:provided" ;
+ "org.minidns:minidns-dnssec:jar:1.0.5:provided" -> "org.minidns:minidns-iterative-resolver:jar:1.0.5:provided" ;
+ "org.igniterealtime.smack:smack-tcp:jar:4.4.4:provided" -> "org.igniterealtime.smack:smack-streammanagement:jar:4.4.4:provided" ;
+ "org.quartz-scheduler:quartz:jar:2.3.2:provided" -> "com.mchange:mchange-commons-java:jar:0.2.15:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "de.regnis.q.sequence:sequence-library:jar:1.0.4:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "org.tmatesoft.sqljet:sqljet:jar:1.1.15:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "net.java.dev.jna:jna:jar:5.6.0:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "net.java.dev.jna:jna-platform:jar:5.6.0:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "com.trilead:trilead-ssh2:jar:1.0.0-build222:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "com.jcraft:jsch.agentproxy.connector-factory:jar:0.0.9:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "com.jcraft:jsch.agentproxy.svnkit-trilead-ssh2:jar:0.0.9:provided" ;
+ "org.tmatesoft.svnkit:svnkit:jar:1.10.11:provided" -> "org.lz4:lz4-java:jar:1.4.1:provided" ;
+ "com.jcraft:jsch.agentproxy.connector-factory:jar:0.0.9:provided" -> "com.jcraft:jsch.agentproxy.core:jar:0.0.9:provided" ;
+ "com.jcraft:jsch.agentproxy.connector-factory:jar:0.0.9:provided" -> "com.jcraft:jsch.agentproxy.usocket-jna:jar:0.0.9:provided" ;
+ "com.jcraft:jsch.agentproxy.connector-factory:jar:0.0.9:provided" -> "com.jcraft:jsch.agentproxy.usocket-nc:jar:0.0.9:provided" ;
+ "com.jcraft:jsch.agentproxy.connector-factory:jar:0.0.9:provided" -> "com.jcraft:jsch.agentproxy.sshagent:jar:0.0.9:provided" ;
+ "com.jcraft:jsch.agentproxy.connector-factory:jar:0.0.9:provided" -> "com.jcraft:jsch.agentproxy.pageant:jar:0.0.9:provided" ;
+ "com.thoughtworks.xstream:xstream:jar:1.4.20:provided" -> "io.github.x-stream:mxparser:jar:1.2.2:provided" ;
+ "io.github.x-stream:mxparser:jar:1.2.2:provided" -> "xmlpull:xmlpull:jar:1.1.3.1:provided" ;
+ "com.atlassian.mail:atlassian-mail:jar:7.0.2:provided" -> "jakarta.mail:jakarta.mail-api:jar:1.6.7:provided" ;
+ "org.apache.activemq:activemq-broker:jar:5.18.3:provided" -> "org.apache.activemq:activemq-client:jar:5.18.3:provided" ;
+ "org.apache.activemq:activemq-broker:jar:5.18.3:provided" -> "org.apache.activemq:activemq-openwire-legacy:jar:5.18.3:provided" ;
+ "org.apache.activemq:activemq-client:jar:5.18.3:provided" -> "jakarta.jms:jakarta.jms-api:jar:2.0.3:provided" ;
+ "org.apache.activemq:activemq-client:jar:5.18.3:provided" -> "org.fusesource.hawtbuf:hawtbuf:jar:1.11:provided" ;
+ "org.apache.sshd:sshd-core:jar:2.12.1:provided" -> "org.apache.sshd:sshd-common:jar:2.12.1:provided" ;
+ "org.apache.sshd:sshd-core:jar:2.12.1:provided" -> "org.slf4j:jcl-over-slf4j:jar:1.7.32:provided" ;
+ "com.atlassian.botocss:botocss:jar:3.0:provided" -> "org.antlr:antlr-runtime:jar:3.4:provided" ;
+ "org.antlr:antlr-runtime:jar:3.4:provided" -> "org.antlr:stringtemplate:jar:3.2.1:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-webresource:jar:7.1.1:provided" -> "com.atlassian.plugins:atlassian-plugins-webresource-api:jar:7.1.1:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-webresource:jar:7.1.1:provided" -> "com.atlassian.plugins:atlassian-plugins-webresource-spi:jar:7.0.2:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-webresource:jar:7.1.1:provided" -> "com.atlassian.sourcemap:sourcemap:jar:2.0.0:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-webresource:jar:7.1.1:provided" -> "org.jgrapht:jgrapht-core:jar:1.4.0:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-webresource:jar:7.1.1:provided" -> "org.jgrapht:jgrapht-io:jar:1.4.0:provided" ;
+ "org.jgrapht:jgrapht-core:jar:1.4.0:provided" -> "org.jheaps:jheaps:jar:0.11:provided" ;
+ "org.jgrapht:jgrapht-io:jar:1.4.0:provided" -> "org.antlr:antlr4-runtime:jar:4.7.2:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-webresource-common:jar:8.0.15:provided" -> "com.atlassian.plugins:atlassian-plugins-core:jar:8.0.15:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-core:jar:8.0.15:provided" -> "com.atlassian.plugins:atlassian-plugins-api:jar:8.0.15:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-core:jar:8.0.15:provided" -> "net.jcip:com.springsource.net.jcip.annotations:jar:1.0.0:provided" ;
+ "org.codehaus.jackson:jackson-mapper-asl:jar:1.9.14-atlassian-6:provided" -> "org.codehaus.jackson:jackson-core-asl:jar:1.9.14-atlassian-6:provided" ;
+ "com.atlassian.crowd:embedded-crowd-api:jar:6.0.0:provided" -> "com.atlassian.annotations:atlassian-annotations:jar:5.0.0:provided" ;
+ "com.atlassian.annotations:atlassian-annotations:jar:5.0.0:provided" -> "org.checkerframework:checker-qual:jar:3.28.0:provided" ;
+ "com.atlassian.crowd:embedded-crowd-core:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-events:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:embedded-crowd-core:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-ldap:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:embedded-crowd-core:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-azure-ad:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:embedded-crowd-core:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-remote:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:embedded-crowd-core:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-core-tiny:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:embedded-crowd-core:jar:6.0.0:provided" -> "opensymphony:propertyset:jar:1.3-21Nov03:provided" ;
+ "com.atlassian.crowd:crowd-ldap:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-common:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-ldap:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-synchronisation:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-ldap:jar:6.0.0:provided" -> "org.springframework.ldap:spring-ldap-core:jar:2.4.1:provided" ;
+ "com.atlassian.crowd:crowd-ldap:jar:6.0.0:provided" -> "com.atlassian.scheduler:atlassian-scheduler-caesium:jar:5.0.1:provided" ;
+ "com.atlassian.crowd:crowd-ldap:jar:6.0.0:provided" -> "com.github.ben-manes.caffeine:caffeine:jar:2.9.3:provided" ;
+ "com.atlassian.crowd:crowd-azure-ad:jar:6.0.0:provided" -> "com.microsoft.azure:msal4j:jar:1.15.0:provided" ;
+ "com.atlassian.crowd:crowd-azure-ad:jar:6.0.0:provided" -> "net.minidev:json-smart:jar:2.4.11:provided" ;
+ "com.atlassian.crowd:crowd-azure-ad:jar:6.0.0:provided" -> "org.springframework:spring-web:jar:5.3.36:provided" ;
+ "com.microsoft.azure:msal4j:jar:1.15.0:provided" -> "com.nimbusds:oauth2-oidc-sdk:jar:11.9.1:provided" ;
+ "com.nimbusds:oauth2-oidc-sdk:jar:11.9.1:provided" -> "com.nimbusds:content-type:jar:2.3:provided" ;
+ "com.nimbusds:oauth2-oidc-sdk:jar:11.9.1:provided" -> "com.nimbusds:lang-tag:jar:1.7:provided" ;
+ "com.nimbusds:oauth2-oidc-sdk:jar:11.9.1:provided" -> "com.nimbusds:nimbus-jose-jwt:jar:9.37.3:provided" ;
+ "net.minidev:json-smart:jar:2.4.11:provided" -> "net.minidev:accessors-smart:jar:2.4.11:provided" ;
+ "com.atlassian.crowd:crowd-remote:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-integration-client-rest:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-integration-client-rest:jar:6.0.0:provided" -> "org.apache.httpcomponents:httpclient-cache:jar:4.5.14:provided" ;
+ "io.grpc:grpc-netty-shaded:jar:1.58.0:provided" -> "com.google.errorprone:error_prone_annotations:jar:2.20.0:provided" ;
+ "io.grpc:grpc-netty-shaded:jar:1.58.0:provided" -> "io.perfmark:perfmark-api:jar:0.26.0:provided" ;
+ "io.grpc:grpc-netty-shaded:jar:1.58.0:provided" -> "io.grpc:grpc-core:jar:1.58.0:provided" ;
+ "io.grpc:grpc-core:jar:1.58.0:provided" -> "io.grpc:grpc-context:jar:1.58.0:provided" ;
+ "io.grpc:grpc-core:jar:1.58.0:provided" -> "io.grpc:grpc-util:jar:1.58.0:provided" ;
+ "io.grpc:grpc-protobuf:jar:1.58.0:provided" -> "io.grpc:grpc-api:jar:1.58.0:provided" ;
+ "io.grpc:grpc-protobuf:jar:1.58.0:provided" -> "com.google.api.grpc:proto-google-common-protos:jar:2.22.0:provided" ;
+ "io.grpc:grpc-protobuf:jar:1.58.0:provided" -> "io.grpc:grpc-protobuf-lite:jar:1.58.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-persistence:jar:10.0.0:provided" -> "com.atlassian.user:atlassian-user-hibernate3:jar:5.5.10:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-persistence:jar:10.0.0:provided" -> "org.springframework:spring-orm:jar:5.3.38-atlassian-2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-persistence:jar:10.0.0:provided" -> "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-persistence:jar:10.0.0:provided" -> "com.atlassian.secrets:atlassian-secrets-api:jar:3.2.5:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-persistence:jar:10.0.0:provided" -> "com.atlassian.secrets:atlassian-secrets-store:jar:3.2.5:provided" ;
+ "com.atlassian.user:atlassian-user-hibernate3:jar:5.5.10:provided" -> "com.atlassian.security:atlassian-password-encoder:jar:3.0:provided" ;
+ "com.atlassian.user:atlassian-user-hibernate3:jar:5.5.10:provided" -> "com.opensymphony.propertyset:core:jar:1.6.0-atlassian-8:provided" ;
+ "com.atlassian.user:atlassian-user-hibernate3:jar:5.5.10:provided" -> "com.opensymphony.propertyset.providers:hibernate5:jar:1.6.0-atlassian-8:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-persistence:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "org.liquibase:liquibase-core:jar:4.16.1:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-server-api:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-hibernate5-dialects:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "com.atlassian.db.config:password-cipher-api:jar:1.4.1:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "com.google.code.findbugs:findbugs-annotations:jar:3.0.1:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "org.hibernate:hibernate-c3p0:jar:5.4.33.Final:provided" ;
+ "com.atlassian.crowd:crowd-persistence-hibernate5:jar:6.0.0:provided" -> "com.atlassian.hibernate:atlassian-hibernate5.2-extras:jar:6.1.1:provided" ;
+ "org.liquibase:liquibase-core:jar:4.16.1:provided" -> "com.opencsv:opencsv:jar:5.6:provided" ;
+ "com.atlassian.crowd:crowd-server-api:jar:6.0.0:provided" -> "jakarta.servlet:jakarta.servlet-api:jar:4.0.4:provided" ;
+ "com.atlassian.crowd:crowd-server-api:jar:6.0.0:provided" -> "org.springframework.security:spring-security-core:jar:5.8.12:provided" ;
+ "org.springframework.security:spring-security-core:jar:5.8.12:provided" -> "org.springframework.security:spring-security-crypto:jar:5.8.12:provided" ;
+ "org.hibernate:hibernate-c3p0:jar:5.4.33.Final:provided" -> "com.mchange:c3p0:jar:0.9.5.5:provided" ;
+ "com.atlassian.secrets:atlassian-secrets-store:jar:3.2.5:provided" -> "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" ;
+ "com.atlassian.secrets:atlassian-secrets-store:jar:3.2.5:provided" -> "org.springframework.vault:spring-vault-core:jar:2.3.4:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:aws-json-protocol:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:protocol-core:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:http-auth-aws:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:sdk-core:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:auth:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:http-auth-spi:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:http-auth:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:identity-spi:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:http-client-spi:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:regions:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:annotations:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:utils:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:aws-core:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:metrics-spi:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:json-utils:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:endpoints-spi:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:apache-client:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:secretsmanager:jar:2.25.28:provided" -> "software.amazon.awssdk:netty-nio-client:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:aws-json-protocol:jar:2.25.28:provided" -> "software.amazon.awssdk:third-party-jackson-core:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:http-auth-aws:jar:2.25.28:provided" -> "software.amazon.awssdk:checksums-spi:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:http-auth-aws:jar:2.25.28:provided" -> "software.amazon.awssdk:checksums:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:sdk-core:jar:2.25.28:provided" -> "software.amazon.awssdk:profiles:jar:2.25.28:provided" ;
+ "software.amazon.awssdk:sdk-core:jar:2.25.28:provided" -> "org.reactivestreams:reactive-streams:jar:1.0.4:provided" ;
+ "software.amazon.awssdk:auth:jar:2.25.28:provided" -> "software.amazon.eventstream:eventstream:jar:1.0.1:provided" ;
+ "software.amazon.awssdk:netty-nio-client:jar:2.25.28:provided" -> "io.netty:netty-codec-http2:jar:4.1.108.Final:provided" ;
+ "software.amazon.awssdk:netty-nio-client:jar:2.25.28:provided" -> "io.netty:netty-transport-classes-epoll:jar:4.1.108.Final:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-migration:jar:10.0.0:provided" -> "com.atlassian.activeobjects:activeobjects-spi:jar:6.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-migration:jar:10.0.0:provided" -> "com.fasterxml.woodstox:woodstox-core:jar:6.6.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-migration:jar:10.0.0:provided" -> "com.fasterxml.staxmate:staxmate:jar:2.4.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-charts:jar:10.0.0:provided" -> "jfree:jfreechart:jar:1.0.9:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-charts:jar:10.0.0:provided" -> "jfree:jcommon:jar:1.0.12:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-license:jar:10.0.0:provided" -> "com.atlassian.extras:atlassian-extras-core:jar:3.4.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-license:jar:10.0.0:provided" -> "com.atlassian.extras:atlassian-extras-common:jar:3.4.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-license:jar:10.0.0:provided" -> "com.atlassian.extras:atlassian-extras-legacy:jar:3.4.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-license:jar:10.0.0:provided" -> "io.atlassian.fugue:fugue:jar:6.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-license:jar:10.0.0:provided" -> "xpp3:xpp3_min:jar:1.1.4c:provided" ;
+ "com.atlassian.extras:atlassian-extras-core:jar:3.4.6:provided" -> "com.atlassian.extras:atlassian-extras-decoder-v2:jar:3.4.6:provided" ;
+ "com.atlassian.extras:atlassian-extras-decoder-v2:jar:3.4.6:provided" -> "com.atlassian.extras:atlassian-extras-key-manager:jar:3.4.6:provided" ;
+ "com.atlassian.extras:atlassian-extras-legacy:jar:3.4.6:provided" -> "com.atlassian.extras:atlassian-extras-decoder-api:jar:3.4.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-classserver:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-remote:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-classserver:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-bootstrap:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-classserver:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-elastic:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-remote:jar:10.0.0:provided" -> "org.apache.activemq:activemq-pool:jar:5.18.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-remote:jar:10.0.0:provided" -> "com.esotericsoftware:kryo:jar:3.0.3:provided" ;
+ "org.apache.activemq:activemq-pool:jar:5.18.3:provided" -> "org.apache.activemq:activemq-jms-pool:jar:5.18.3:provided" ;
+ "org.apache.activemq:activemq-pool:jar:5.18.3:provided" -> "org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:provided" ;
+ "com.esotericsoftware:kryo:jar:3.0.3:provided" -> "com.esotericsoftware:reflectasm:jar:1.10.1:provided" ;
+ "com.esotericsoftware:kryo:jar:3.0.3:provided" -> "com.esotericsoftware:minlog:jar:1.3.0:provided" ;
+ "com.esotericsoftware:kryo:jar:3.0.3:provided" -> "org.objenesis:objenesis:jar:2.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-elastic:jar:10.0.0:provided" -> "com.atlassian.aws:atlassian-aws-bootstrap:jar:1.0.201:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-elastic:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-bootstrap-shared:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-local:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-core:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-core:jar:10.0.0:provided" -> "com.atlassian.bamboo.plugins:atlassian-bamboo-plugin-ssh:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-core:jar:10.0.0:provided" -> "org.apache.activemq:activemq-ra:jar:5.18.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-core:jar:10.0.0:provided" -> "org.apache.activemq:activemq-http:jar:5.18.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-core:jar:10.0.0:provided" -> "org.apache.geronimo.components:geronimo-transaction:jar:3.1.5:provided" ;
+ "org.apache.activemq:activemq-ra:jar:5.18.3:provided" -> "org.apache.activemq:activemq-kahadb-store:jar:5.18.3:provided" ;
+ "org.apache.activemq:activemq-ra:jar:5.18.3:provided" -> "org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:2.0.0:provided" ;
+ "org.apache.activemq:activemq-kahadb-store:jar:5.18.3:provided" -> "org.apache.activemq.protobuf:activemq-protobuf:jar:1.1:provided" ;
+ "org.apache.activemq:activemq-http:jar:5.18.3:provided" -> "org.apache.activemq:activemq-spring:jar:5.18.3:provided" ;
+ "org.apache.geronimo.components:geronimo-transaction:jar:3.1.5:provided" -> "org.apache.geronimo.specs:geronimo-j2ee-connector_1.6_spec:jar:1.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-elastic-server:jar:10.0.0:provided" -> "com.atlassian.aws:atlassian-aws:jar:1.0.201:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-elastic-server:jar:10.0.0:provided" -> "com.atlassian.bamboo:atlassian-bamboo-agent-elastic-shared:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-agent-elastic-server:jar:10.0.0:provided" -> "com.atlassian.tunnel:atlassian-tunnel:jar:1.8.8:provided" ;
+ "com.atlassian.aws:atlassian-aws:jar:1.0.201:provided" -> "com.amazonaws:aws-java-sdk-core:jar:1.12.696:provided" ;
+ "com.atlassian.aws:atlassian-aws:jar:1.0.201:provided" -> "com.amazonaws:aws-java-sdk-ec2:jar:1.12.696:provided" ;
+ "com.atlassian.aws:atlassian-aws:jar:1.0.201:provided" -> "com.amazonaws:aws-java-sdk-s3:jar:1.12.696:provided" ;
+ "com.atlassian.aws:atlassian-aws:jar:1.0.201:provided" -> "com.amazonaws:aws-java-sdk-codedeploy:jar:1.12.696:provided" ;
+ "com.atlassian.aws:atlassian-aws:jar:1.0.201:provided" -> "com.amazonaws:aws-java-sdk-iam:jar:1.12.696:provided" ;
+ "com.amazonaws:aws-java-sdk-ec2:jar:1.12.696:provided" -> "com.amazonaws:jmespath-java:jar:1.12.696:provided" ;
+ "com.amazonaws:aws-java-sdk-s3:jar:1.12.696:provided" -> "com.amazonaws:aws-java-sdk-kms:jar:1.12.696:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "org.apache.maven:maven-core:jar:3.9.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "org.apache.maven:maven-compat:jar:3.9.6:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "com.google.inject:guice:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "jakarta.inject:jakarta.inject-api:jar:2.0.1:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "org.apache.maven.wagon:wagon-provider-api:jar:3.5.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "org.apache.maven.wagon:wagon-file:jar:3.5.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "org.apache.maven.wagon:wagon-http:jar:3.5.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.9.18:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-maven-embedder:jar:10.0.0:provided" -> "org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.9.18:provided" ;
+ "org.apache.maven:maven-core:jar:3.9.6:provided" -> "org.apache.maven:maven-repository-metadata:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-core:jar:3.9.6:provided" -> "org.apache.maven:maven-artifact:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-core:jar:3.9.6:provided" -> "org.apache.maven:maven-resolver-provider:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-core:jar:3.9.6:provided" -> "org.apache.maven.resolver:maven-resolver-impl:jar:1.9.18:provided" ;
+ "org.apache.maven:maven-core:jar:3.9.6:provided" -> "org.apache.maven.resolver:maven-resolver-spi:jar:1.9.18:provided" ;
+ "org.apache.maven:maven-core:jar:3.9.6:provided" -> "org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.9.0.M2:provided" ;
+ "org.apache.maven:maven-core:jar:3.9.6:provided" -> "org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:provided" ;
+ "org.apache.maven.resolver:maven-resolver-impl:jar:1.9.18:provided" -> "org.apache.maven.resolver:maven-resolver-named-locks:jar:1.9.18:provided" ;
+ "com.google.inject:guice:jar:6.0.0:provided" -> "aopalliance:aopalliance:jar:1.0:provided" ;
+ "org.apache.maven.wagon:wagon-http:jar:3.5.3:provided" -> "org.apache.maven.wagon:wagon-http-shared:jar:3.5.3:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-import-export:jar:10.0.0:provided" -> "org.yaml:snakeyaml:jar:2.2:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-import-export:jar:10.0.0:provided" -> "com.atlassian.bamboo:bamboo-specs-api:jar:10.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-import-export:jar:10.0.0:provided" -> "com.spotify:docker-client:jar:shaded:8.16.1-atlassian-15:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-import-export:jar:10.0.0:provided" -> "com.github.jnr:jffi:jar:1.3.11:provided" ;
+ "com.atlassian.bamboo:atlassian-bamboo-import-export:jar:10.0.0:provided" -> "com.github.jnr:jnr-ffi:jar:2.2.14:provided" ;
+ "com.github.jnr:jnr-ffi:jar:2.2.14:provided" -> "com.github.jnr:jffi:jar:native:1.3.11:provided" ;
+ "com.github.jnr:jnr-ffi:jar:2.2.14:provided" -> "org.ow2.asm:asm-commons:jar:9.2:provided" ;
+ "com.github.jnr:jnr-ffi:jar:2.2.14:provided" -> "org.ow2.asm:asm-analysis:jar:9.2:provided" ;
+ "com.github.jnr:jnr-ffi:jar:2.2.14:provided" -> "org.ow2.asm:asm-tree:jar:9.2:provided" ;
+ "com.github.jnr:jnr-ffi:jar:2.2.14:provided" -> "org.ow2.asm:asm-util:jar:9.2:provided" ;
+ "com.github.jnr:jnr-ffi:jar:2.2.14:provided" -> "com.github.jnr:jnr-a64asm:jar:1.0.0:provided" ;
+ "com.github.jnr:jnr-ffi:jar:2.2.14:provided" -> "com.github.jnr:jnr-x86asm:jar:1.0.2:provided" ;
+ "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" -> "com.atlassian.bucket:atlassian-bucket:jar:5.2.6:provided" ;
+ "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" -> "com.atlassian.crowd:crowd-integration-seraph:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" -> "com.atlassian.crowd:crowd-api:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" -> "com.atlassian.crowd:crowd-core:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" -> "com.atlassian.crowd:crowd-integration-api:jar:6.0.0:provided" ;
+ "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" -> "com.atlassian.user:atlassian-user-api:jar:5.5.10:provided" ;
+ "com.atlassian.bamboo:atlassian-embedded-crowd-atlassian-user:jar:10.0.0:provided" -> "com.atlassian.user:atlassian-user-core:jar:5.5.10:provided" ;
+ "com.atlassian.crowd:crowd-integration-seraph:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-integration-client-common:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-core:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-password-encoders:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-core:jar:6.0.0:provided" -> "com.atlassian.crowd:crowd-server-common:jar:6.0.0:provided" ;
+ "com.atlassian.crowd:crowd-core:jar:6.0.0:provided" -> "com.atlassian.sal:sal-core:jar:6.0.1:provided" ;
+ "com.atlassian.crowd:crowd-core:jar:6.0.0:provided" -> "com.atlassian.plugins:panopticon-api:jar:2.0.1:provided" ;
+ "com.atlassian.crowd:crowd-core:jar:6.0.0:provided" -> "com.atlassian.ccev:cloud-compatible-email-validation:jar:1.0.2:provided" ;
+ "com.atlassian.crowd:crowd-core:jar:6.0.0:provided" -> "com.sun.mail:jakarta.mail:jar:1.6.7:provided" ;
+ "com.atlassian.user:atlassian-user-api:jar:5.5.10:provided" -> "com.opensymphony.propertyset:api:jar:1.6.0-atlassian-8:provided" ;
+ "com.atlassian:webwork-compat:jar:1.33:provided" -> "javax.servlet:javax.servlet-api:jar:3.0.1:provided" ;
+ "com.atlassian.beehive:beehive-single-node:jar:6.0.0:provided" -> "com.atlassian.beehive:beehive-core:jar:6.0.0:provided" ;
+ "com.atlassian.http:atlassian-http:jar:4.1.0:provided" -> "org.apache.tika:tika-core:jar:2.9.1:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-schema:jar:8.0.15:provided" -> "com.atlassian.plugins:atlassian-plugins-osgi:jar:8.0.15:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-osgi:jar:8.0.15:provided" -> "com.atlassian.plugins:atlassian-plugins-osgi-events:jar:8.0.15:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-osgi:jar:8.0.15:provided" -> "io.github.classgraph:classgraph:jar:4.8.143:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-osgi:jar:8.0.15:provided" -> "org.twdata.pkgscanner:package-scanner:jar:0.9.5:provided" ;
+ "com.atlassian.xwork:atlassian-xwork-12:jar:2.5.32-struts-4:provided" -> "com.atlassian.xwork:atlassian-xwork-core:jar:2.5.32-struts-4:provided" ;
+ "com.atlassian.oauth2:oauth2-provider-api:jar:4.0.1:provided" -> "com.atlassian.event:atlassian-event:jar:6.0.0-m02:provided" ;
+ "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" -> "org.jboss.logging:jboss-logging:jar:3.4.3.Final:provided" ;
+ "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" -> "javax.persistence:javax.persistence-api:jar:2.2:provided" ;
+ "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" -> "antlr:antlr:jar:2.7.7:provided" ;
+ "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" -> "org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.1.1.Final:provided" ;
+ "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" -> "org.jboss:jandex:jar:2.4.2.Final:provided" ;
+ "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" -> "com.fasterxml:classmate:jar:1.5.1:provided" ;
+ "org.hibernate:hibernate-core:jar:5.6.15.Final-atlassian-2:provided" -> "org.hibernate.common:hibernate-commons-annotations:jar:5.1.2.Final:provided" ;
+ "org.hibernate:hibernate-ehcache:jar:5.6.15.Final:provided" -> "net.sf.ehcache:ehcache:jar:2.10.6:provided" ;
+ "org.springframework:spring-context:jar:5.3.37:provided" -> "org.springframework:spring-aop:jar:5.3.37:provided" ;
+ "org.springframework:spring-context:jar:5.3.37:provided" -> "org.springframework:spring-expression:jar:5.3.37:provided" ;
+ "org.springframework:spring-core:jar:5.3.38-atlassian-2:provided" -> "org.springframework:spring-jcl:jar:5.3.38-atlassian-2:provided" ;
+ "com.rometools:rome:jar:2.1.0:provided" -> "com.rometools:rome-utils:jar:2.1.0:provided" ;
+ "de.schlichtherle.truezip:truezip-file:jar:7.7.10:provided" -> "de.schlichtherle.truezip:truezip-driver-file:jar:7.7.10:provided" ;
+ "de.schlichtherle.truezip:truezip-file:jar:7.7.10:provided" -> "de.schlichtherle.truezip:truezip-kernel:jar:7.7.10:provided" ;
+ "de.schlichtherle.truezip:truezip-driver-zip:jar:7.7.10:provided" -> "de.schlichtherle.truezip:truezip-swing:jar:7.7.10:provided" ;
+ "de.schlichtherle.truezip:truezip-driver-zip:jar:7.7.10:provided" -> "org.apache.commons:commons-compress:jar:1.9:provided" ;
+ "org.apache.struts:struts2-core:jar:2.5.33-atlassian-1:provided" -> "ognl:ognl:jar:3.1.29:provided" ;
+ "org.apache.struts:struts2-core:jar:2.5.33-atlassian-1:provided" -> "commons-fileupload:commons-fileupload:jar:1.4:provided" ;
+ "org.freemarker:freemarker:jar:2.3.31-atlassian-2:provided" -> "logkit:logkit:jar:1.2:provided" ;
+ "org.freemarker:freemarker:jar:2.3.31-atlassian-2:provided" -> "com.google.code.findbugs:annotations:jar:3.0.0:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven:maven-settings:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven:maven-settings-builder:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven:maven-plugin-api:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven:maven-model-builder:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven:maven-builder-support:jar:3.9.6:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven.resolver:maven-resolver-api:jar:1.9.18:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven.resolver:maven-resolver-util:jar:1.9.18:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.apache.maven.shared:maven-shared-utils:jar:3.3.4:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "com.google.guava:guava:jar:32.0.1-jre:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "com.google.guava:failureaccess:jar:1.0.1:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.codehaus.plexus:plexus-utils:jar:3.5.1:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.codehaus.plexus:plexus-classworlds:jar:2.7.0:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.9.0.M2:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.codehaus.plexus:plexus-sec-dispatcher:jar:2.0:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.codehaus.plexus:plexus-cipher:jar:2.0:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "org.codehaus.plexus:plexus-interpolation:jar:1.26:provided" ;
+ "org.apache.maven:maven-embedder:jar:3.9.6:provided" -> "commons-cli:commons-cli:jar:1.5.0:provided" ;
+ "org.apache.httpcomponents:httpmime:jar:4.5.14:provided" -> "org.apache.httpcomponents:httpclient:jar:4.5.14:provided" ;
+ "org.apache.httpcomponents:httpclient:jar:4.5.14:provided" -> "org.apache.httpcomponents:httpcore:jar:4.4.16:provided" ;
+ "org.reflections:reflections:jar:0.9.11:provided" -> "org.javassist:javassist:jar:3.21.0-GA:provided" ;
+ "org.apache.felix:org.apache.felix.framework:jar:7.0.5:provided" -> "org.codehaus.mojo:animal-sniffer-annotations:jar:1.9:provided" ;
+ "org.glassfish.jersey.core:jersey-server:jar:2.42:provided" -> "jakarta.annotation:jakarta.annotation-api:jar:1.3.5:provided" ;
+ "org.glassfish.jersey.core:jersey-server:jar:2.42:provided" -> "jakarta.validation:jakarta.validation-api:jar:2.0.2:provided" ;
+ "org.glassfish.jersey.core:jersey-common:jar:2.42:provided" -> "org.glassfish.hk2:osgi-resource-locator:jar:1.0.3:provided" ;
+ "org.glassfish.jersey.containers:jersey-container-servlet:jar:2.42:provided" -> "org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.42:provided" ;
+ "org.glassfish.jersey.inject:jersey-hk2:jar:2.42:provided" -> "org.glassfish.hk2:hk2-locator:jar:2.6.1:provided" ;
+ "org.glassfish.hk2:hk2-locator:jar:2.6.1:provided" -> "org.glassfish.hk2.external:aopalliance-repackaged:jar:2.6.1:provided" ;
+ "org.glassfish.hk2:hk2-locator:jar:2.6.1:provided" -> "org.glassfish.hk2:hk2-api:jar:2.6.1:provided" ;
+ "org.glassfish.hk2:hk2-locator:jar:2.6.1:provided" -> "org.glassfish.hk2:hk2-utils:jar:2.6.1:provided" ;
+ "org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.42:provided" -> "org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.42:provided" ;
+ "org.glassfish.jersey.core:jersey-client:jar:2.42:provided" -> "org.glassfish.hk2.external:jakarta.inject:jar:2.6.1:provided" ;
+ "com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.16.1:provided" -> "jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:provided" ;
+ "com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.16.1:provided" -> "jakarta.activation:jakarta.activation-api:jar:1.2.2:provided" ;
+ "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.17.2:provided" -> "org.codehaus.woodstox:stax2-api:jar:4.2.2:provided" ;
+ "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.16.1:provided" -> "com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.16.1:provided" ;
+ "xerces:xercesImpl:jar:2.12.2:provided" -> "xml-apis:xml-apis:jar:1.4.01:provided" ;
+ "junit:junit:jar:4.10:test" -> "org.hamcrest:hamcrest-core:jar:1.1:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-osgi-testrunner:jar:2.0.2:test" -> "org.apache.wink:wink-client:jar:1.1.3-incubating:test" ;
+ "com.atlassian.plugins:atlassian-plugins-osgi-testrunner:jar:2.0.2:test" -> "commons-io:commons-io:jar:1.4:provided" ;
+ "com.atlassian.plugins:atlassian-plugins-osgi-testrunner:jar:2.0.2:test" -> "com.atlassian.upm:upm-api:jar:2.15:test" ;
+ "org.apache.wink:wink-client:jar:1.1.3-incubating:test" -> "org.apache.wink:wink-common:jar:1.1.3-incubating:test" ;
+ "org.apache.wink:wink-client:jar:1.1.3-incubating:test" -> "com.sun.xml.bind:jaxb-impl:jar:2.2.1.1:test" ;
+ "org.apache.wink:wink-client:jar:1.1.3-incubating:test" -> "javax.activation:activation:jar:1.1:test" ;
+ "org.apache.wink:wink-common:jar:1.1.3-incubating:test" -> "org.apache.geronimo.specs:geronimo-annotation_1.1_spec:jar:1.0:test" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "io.netty:netty-buffer:jar:4.1.115.Final:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "io.netty:netty-codec-http:jar:4.1.115.Final:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "io.netty:netty-codec:jar:4.1.115.Final:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "io.netty:netty-codec-socks:jar:4.1.115.Final:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "io.netty:netty-handler-proxy:jar:4.1.115.Final:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "io.netty:netty-transport:jar:4.1.115.Final:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "io.netty:netty-resolver-dns:jar:4.1.115.Final:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "com.sun.activation:jakarta.activation:jar:2.0.1:compile" ;
+ "org.asynchttpclient:async-http-client:jar:3.0.1:compile" -> "org.jetbrains:annotations:jar:26.0.1:compile" ;
+ "io.netty:netty-resolver-dns:jar:4.1.115.Final:compile" -> "io.netty:netty-codec-dns:jar:4.1.115.Final:compile" ;
+ "io.netty:netty-handler:jar:4.1.119.Final:compile" -> "io.netty:netty-resolver:jar:4.1.119.Final:compile" ;
+ "io.netty:netty-handler:jar:4.1.119.Final:compile" -> "io.netty:netty-transport-native-unix-common:jar:4.1.119.Final:compile" ;
+ }
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 83b1e8c..71451d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,11 @@
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.leapwork
leapwork-integration-for-bamboo
- 1.0.0-SNAPSHOT
+ 5.0.2-SNAPSHOT
Leapwork
@@ -18,8 +17,8 @@
atlassian-plugin
- 6.8.0
- 6.8.0
+ 10.0.0
+ 10.0.0
8.1.2
2.0.2
1.2.13
@@ -31,6 +30,23 @@
1.8
+
+
+ atlassian-public
+ https://maven.atlassian.com/repository/public
+
+ true
+
+
+
+
+
+
+ atlassian-public
+ https://maven.atlassian.com/repository/public
+
+
+
com.atlassian.bamboo
@@ -44,7 +60,7 @@
atlassian-spring-scanner-annotation
${atlassian.spring.scanner.version}
provided
-
+
javax.inject
@@ -64,7 +80,7 @@
com.atlassian.sal
sal-api
3.0.8
- provided
+ provided
@@ -87,10 +103,37 @@
provided
- com.ning
+ org.asynchttpclient
async-http-client
- 1.4.0
- compile
+ 3.0.1
+
+
+ org.slf4j
+ slf4j-api
+
+
+ com.ning
+ async-http-client
+
+
+ io.netty
+ netty-common
+
+
+ io.netty
+ netty-handler
+
+
+
+
+ io.netty
+ netty-common
+ 4.1.119.Final
+
+
+ io.netty
+ netty-handler
+ 4.1.119.Final
com.atlassian.bamboo.plugins.testresultparser
@@ -103,7 +146,7 @@
-
+
com.atlassian.maven.plugins
bamboo-maven-plugin
${amps.version}
@@ -117,20 +160,19 @@
- ${atlassian.plugin.key}
+ ${atlassian.plugin.key}
+
+ *
-
- org.springframework.osgi.*;resolution:="optional",
- com.ning.http.client.*;resolution:="optional",
- com.google.code.gson.*;resolution:="optional",
- com.google.protobuf.*;resolution:="optional",
- org.glassfish.grizzly.*;resolution:="optional",
- org.osgi.service.log;resolution:="optional",
- com.sun.org.apache.xerces.internal.dom;resolution:="optional",
- com.atlassian.util.concurrent.NotNull;resolution:="optional",
- org.eclipse.gemini.blueprint.*;resolution:="optional",
- *
+
+ com.google.*;resolution:="optional",
+ com.sun.org.apache.*;resolution:="optional",
+ com.atlassian.*;resolution:="optional",
+ com.leapwork.leapwork_integration_for_bamboo.*;resolution:="optional",
+ javax.*;resolution:="optional",
+ org.*;resolution:="optional",
+ *;resolution="optional"
@@ -172,4 +214,4 @@
-
+
\ No newline at end of file
diff --git a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTask.java b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTask.java
index ea903e3..5d50dac 100644
--- a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTask.java
+++ b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTask.java
@@ -8,10 +8,11 @@
import com.atlassian.bamboo.task.*;
import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
-import com.ning.http.client.AsyncHttpClient;
-import com.sun.javafx.scene.layout.region.Margins;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.Dsl;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.File;
+import java.io.IOException;
import java.util.*;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@@ -27,10 +28,9 @@ public class LeapworkBambooBridgeTask implements TaskType {
private final TestCollationService testCollationService;
@Autowired
- public LeapworkBambooBridgeTask(@ComponentImport TestCollationService testCollationService)
- {
- this.testCollationService = testCollationService;
- }
+ public LeapworkBambooBridgeTask(@ComponentImport TestCollationService testCollationService) {
+ this.testCollationService = testCollationService;
+ }
@Override
public TaskResult execute(final TaskContext taskContext) throws TaskException {
@@ -40,6 +40,7 @@ public TaskResult execute(final TaskContext taskContext) throws TaskException {
// get fields value
final String leapworkHostname = taskContext.getConfigurationMap().get("leapworkHostname");
+ final String leapworkHttps = taskContext.getConfigurationMap().get("leapworkHttps");
final String leapworkPort = taskContext.getConfigurationMap().get("leapworkPort");
final String leapworkAccessKey = taskContext.getConfigurationMap().get("leapworkAccessKey");
final String leapworkDelay = taskContext.getConfigurationMap().get("leapworkDelay");
@@ -59,12 +60,14 @@ public TaskResult execute(final TaskContext taskContext) throws TaskException {
final LinkedHashMap repeatedNameMapCounter = new LinkedHashMap<>();
ArrayList rawScheduleList = pluginHandler.getRawScheduleList(leapworkSchIds, leapworkSchNames);
- printPluginInputs(leapworkHostname, leapworkPort, leapworkDelay, leapworkDoneStatusAs, leapworkReport,
+ printPluginInputs(leapworkHostname, leapworkHttps, leapworkPort, leapworkDelay, leapworkDoneStatusAs,
+ leapworkReport,
leapworkSchNames, leapworkSchIds, leapworkScheduleVariables,
String.valueOf(leapworkWritePassedFlowKeyFrames), buildLogger);
- String controllerApiHttpAddress = pluginHandler.getControllerApiHttpAdderess(leapworkHostname, leapworkPort,
- buildLogger);
+ boolean isHttpsEnabled = Utils.defaultBooleanIfNull(leapworkHttps, false);
+ String controllerApiHttpAddress = pluginHandler.getControllerApiHttpAdderess(leapworkHostname, isHttpsEnabled,
+ leapworkPort, buildLogger);
int timeDelay = pluginHandler.getTimeDelay(leapworkDelay, buildLogger);
boolean isAutoReportEnabled = Utils.defaultBooleanIfNull(leapworkAutoReport, false);
@@ -75,7 +78,7 @@ public TaskResult execute(final TaskContext taskContext) throws TaskException {
String scheduleVariablesRequestPart = pluginHandler.getScheduleVariablesRequestPart(leapworkScheduleVariables,
buildLogger);
- AsyncHttpClient mainClient = new AsyncHttpClient();
+ AsyncHttpClient mainClient = Dsl.asyncHttpClient();
try {
// Get schedule titles (or/and ids in case of pipeline)
LinkedHashMap schedulesIdTitleHashMap = pluginHandler.getSchedulesIdTitleHashMap(mainClient,
@@ -183,7 +186,11 @@ public TaskResult execute(final TaskContext taskContext) throws TaskException {
buildLogger.addErrorLogEntry("FAILURE");
result = taskResultBuilder.failedWithError().build();
} finally {
- mainClient.close();
+ try {
+ mainClient.close();
+ } catch (IOException closeException) {
+ buildLogger.addErrorLogEntry("Error closing HTTP client: " + closeException.getMessage());
+ }
return result;
}
}
@@ -195,7 +202,7 @@ private static void CollectScheduleRunResults(String controllerApiHttpAddress, S
List runItemsId = new ArrayList<>();
Object waiter = new Object();
// get statuses
- AsyncHttpClient client = new AsyncHttpClient();
+ AsyncHttpClient client = Dsl.asyncHttpClient();
try {
boolean isStillRunning = true;
@@ -218,50 +225,50 @@ private static void CollectScheduleRunResults(String controllerApiHttpAddress, S
resultRun.addTime(runItem.getElapsedTime());
switch (status) {
- case "NoStatus":
- case "Initializing":
- case "Connecting":
- case "Connected":
- case "Running":
- case "IsProcessing":
- iter.remove();
- break;
- case "Passed":
-
- runItem.setCaseName(
- pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
- resultRun.incPassed();
- resultRun.runItems.add(runItem);
- resultRun.incTotal();
- break;
- case "Failed":
-
- runItem.setCaseName(
- pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
- resultRun.incFailed();
- resultRun.runItems.add(runItem);
- resultRun.incTotal();
- break;
- case "Error":
- case "Inconclusive":
- case "Timeout":
- case "Cancelled":
- runItem.setCaseName(
- pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
- resultRun.incErrors();
- resultRun.runItems.add(runItem);
- resultRun.incTotal();
- break;
- case "Done":
- runItem.setCaseName(
- pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
- resultRun.runItems.add(runItem);
- if (isDoneStatusAsSuccess)
+ case "NoStatus":
+ case "Initializing":
+ case "Connecting":
+ case "Connected":
+ case "Running":
+ case "IsProcessing":
+ iter.remove();
+ break;
+ case "Passed":
+
+ runItem.setCaseName(
+ pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
resultRun.incPassed();
- else
+ resultRun.runItems.add(runItem);
+ resultRun.incTotal();
+ break;
+ case "Failed":
+
+ runItem.setCaseName(
+ pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
resultRun.incFailed();
- resultRun.incTotal();
- break;
+ resultRun.runItems.add(runItem);
+ resultRun.incTotal();
+ break;
+ case "Error":
+ case "Inconclusive":
+ case "Timeout":
+ case "Cancelled":
+ runItem.setCaseName(
+ pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
+ resultRun.incErrors();
+ resultRun.runItems.add(runItem);
+ resultRun.incTotal();
+ break;
+ case "Done":
+ runItem.setCaseName(
+ pluginHandler.correctRepeatedTitles(repeatedNameMapCounter, runItem.getCaseName()));
+ resultRun.runItems.add(runItem);
+ if (isDoneStatusAsSuccess)
+ resultRun.incPassed();
+ else
+ resultRun.incFailed();
+ resultRun.incTotal();
+ break;
}
@@ -302,11 +309,18 @@ private static void CollectScheduleRunResults(String controllerApiHttpAddress, S
resultRun.incErrors();
resultRun.runItems.add(invalidItem);
} finally {
- client.close();
+ if (client != null) {
+ try {
+ client.close();
+ } catch (IOException e) {
+ buildLogger.addErrorLogEntry("Error while closing client: " + e.getMessage());
+ }
+ }
}
}
- private void printPluginInputs(String leapworkHostname, String leapworkPort, String leapworkDelay,
+ private void printPluginInputs(String leapworkHostname, String leapworkHttps, String leapworkPort,
+ String leapworkDelay,
String leapworkDoneStatusAs, String leapworkReport, String leapworkSchNames, String leapworkSchIds,
String leapworkScheduleVariables, String leapworkWritePassedFlowKeyFrames, final BuildLogger buildLogger) {
String[] Names = leapworkSchNames.split(PluginHandler.scheduleSeparatorRegex);
@@ -315,6 +329,7 @@ private void printPluginInputs(String leapworkHostname, String leapworkPort, Str
buildLogger.addBuildLogEntry(Messages.INPUT_VALUES_MESSAGE);
buildLogger.addBuildLogEntry(Messages.CASE_CONSOLE_LOG_SEPARATOR);
buildLogger.addBuildLogEntry(String.format(Messages.INPUT_HOSTNAME_VALUE, leapworkHostname));
+ buildLogger.addBuildLogEntry(String.format(Messages.INPUT_HTTPS, leapworkHttps));
buildLogger.addBuildLogEntry(String.format(Messages.INPUT_PORT_VALUE, leapworkPort));
buildLogger.addBuildLogEntry(String.format(Messages.INPUT_REPORT_VALUE, leapworkReport));
buildLogger.addBuildLogEntry(Messages.INPUT_SCHEDULE_NAMES_VALUE);
@@ -327,7 +342,5 @@ private void printPluginInputs(String leapworkHostname, String leapworkPort, Str
buildLogger.addBuildLogEntry(String.format(Messages.INPUT_DONE_VALUE, leapworkDoneStatusAs));
buildLogger.addBuildLogEntry(String.format(Messages.INPUT_WRITE_PASSED, leapworkWritePassedFlowKeyFrames));
buildLogger.addBuildLogEntry(String.format(Messages.INPUT_VARIABLES, leapworkScheduleVariables));
-
}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTaskConfigurator.java b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTaskConfigurator.java
index d90d898..731056f 100644
--- a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTaskConfigurator.java
+++ b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/LeapworkBambooBridgeTaskConfigurator.java
@@ -4,9 +4,7 @@
import com.atlassian.bamboo.task.AbstractTaskConfigurator;
import com.atlassian.bamboo.task.TaskDefinition;
import com.atlassian.bamboo.util.TextProviderUtils;
-import com.atlassian.util.concurrent.NotNull;
-
-
+import org.jetbrains.annotations.NotNull; //import com.atlassian.util.concurrent.NotNull;
import java.util.ArrayList;
import java.util.Map;
@@ -20,6 +18,7 @@ public Map generateTaskConfigMap(@NotNull final ActionParameters
final Map config = super.generateTaskConfigMap(params, previousTaskDefinition);
config.put("leapworkHostname", params.getString("leapworkHostname"));
+ config.put("leapworkHttps", Boolean.toString(params.getBoolean("leapworkHttps")));
config.put("leapworkPort", params.getString("leapworkPort"));
config.put("leapworkAccessKey", params.getString("leapworkAccessKey"));
config.put("leapworkDelay", params.getString("leapworkDelay"));
@@ -58,6 +57,7 @@ public void populateContextForEdit(@NotNull final Map context, @
Map config = taskDefinition.getConfiguration();
context.put("leapworkHostname", config.get("leapworkHostname"));
+ context.put("leapworkHttps", Boolean.valueOf(config.get("leapworkHttps")));
context.put("leapworkPort",config.get("leapworkPort"));
context.put("leapworkAccessKey", config.get("leapworkAccessKey"));
context.put("leapworkDelay", config.get("leapworkDelay"));
diff --git a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Messages.java b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Messages.java
index 78b7dfb..e9f91b6 100644
--- a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Messages.java
+++ b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Messages.java
@@ -84,6 +84,7 @@ public final class Messages {
public static final String INPUT_VALUES_MESSAGE = "LeapWork Plugin input parameters:";
public static final String INPUT_HOSTNAME_VALUE = "LEAPWORK controller hostname: %1$s";
public static final String INPUT_PORT_VALUE = "LEAPWORK controller port: %1$s";
+ public static final String INPUT_HTTPS = "Leapwork Https port is enabled: %1$s";
public static final String INPUT_REPORT_VALUE = "JUnit report file name: %1$s";
public static final String INPUT_SCHEDULE_NAMES_VALUE = "Schedule names: ";
public static final String INPUT_SCHEDULE_IDS_VALUE = "Schedule ids: ";
diff --git a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/PluginHandler.java b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/PluginHandler.java
index 87c70de..6fe69bc 100644
--- a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/PluginHandler.java
+++ b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/PluginHandler.java
@@ -8,9 +8,9 @@
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.Response;
-
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.Response;
+import org.asynchttpclient.Dsl;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
@@ -108,23 +108,41 @@ public boolean isDoneStatusAsSuccess(String doneStatusAs) {
return doneStatusAs.contentEquals("Success");
}
- public String getControllerApiHttpAdderess(String hostname, String rawPort, final BuildLogger buildLogger) {
+ public String getControllerApiHttpAdderess(String hostname, boolean isHttpsEnabled, String rawPort,
+ final BuildLogger buildLogger) {
StringBuilder stringBuilder = new StringBuilder();
- int port = getPortNumber(rawPort, buildLogger);
- stringBuilder.append("http://").append(hostname).append(":").append(port);
+ int port = getPortNumber(rawPort, isHttpsEnabled, buildLogger);
+ if (isHttpsEnabled) {
+ stringBuilder.append("https://").append(hostname).append(":").append(port);
+ } else {
+ stringBuilder.append("http://").append(hostname).append(":").append(port);
+ }
+
return stringBuilder.toString();
}
- private int getPortNumber(String rawPortStr, final BuildLogger buildLogger) {
- int defaultPortNumber = 9001;
+ private int getPortNumber(String rawPortStr, boolean isHttpsEnabled, final BuildLogger buildLogger) {
+ int defaultPortNumber;
+ int defaultHttpPortNumber = 9001;
+ int defaultHttpsPortNumber = 9002;
try {
if (!rawPortStr.isEmpty() || !"".equals(rawPortStr))
return Integer.parseInt(rawPortStr);
else {
+ if (isHttpsEnabled) {
+ defaultPortNumber = defaultHttpsPortNumber;
+ } else {
+ defaultPortNumber = defaultHttpPortNumber;
+ }
buildLogger.addErrorLogEntry(String.format(Messages.PORT_NUMBER_IS_INVALID, defaultPortNumber));
return defaultPortNumber;
}
} catch (Exception e) {
+ if (isHttpsEnabled) {
+ defaultPortNumber = defaultHttpsPortNumber;
+ } else {
+ defaultPortNumber = defaultHttpPortNumber;
+ }
buildLogger.addErrorLogEntry(String.format(Messages.PORT_NUMBER_IS_INVALID, defaultPortNumber));
return defaultPortNumber;
}
@@ -142,87 +160,91 @@ public LinkedHashMap getSchedulesIdTitleHashMap(AsyncHttpClient cl
Response response = client.prepareGet(scheduleListUri).setHeader("AccessKey", accessKey).execute().get();
switch (response.getStatusCode()) {
- case 200:
- JsonParser parser = new JsonParser();
- JsonArray jsonScheduleList = parser.parse(response.getResponseBody()).getAsJsonArray();
-
- for (String rawSchedule : rawScheduleList) {
- boolean successfullyMapped = false;
- for (JsonElement jsonScheduleElement : jsonScheduleList) {
- JsonObject jsonSchedule = jsonScheduleElement.getAsJsonObject();
-
- if (jsonSchedule.get("Type").getAsString().contentEquals("TemporaryScheduleInfo"))
- continue;
-
- UUID Id = Utils.defaultUuidIfNull(jsonSchedule.get("Id"), UUID.randomUUID());
- String Title = Utils.defaultStringIfNull(jsonSchedule.get("Title"), "null Title");
-
- boolean isEnabled = Utils.defaultBooleanIfNull(jsonSchedule.get("IsEnabled"), false);
-
- if (Id.toString().contentEquals(rawSchedule)) {
- if (!schedulesIdTitleHashMap.containsValue(Title)) {
- if (tempRawScheduleList.contains(Id.toString())) {
- tempRawScheduleList.remove(Id.toString());
- tempRawScheduleList.remove(Title);
- if (isEnabled) {
- schedulesIdTitleHashMap.put(Id, Title);
- buildLogger.addBuildLogEntry(
- String.format(Messages.SCHEDULE_DETECTED, Title, rawSchedule));
- } else {
- invalidSchedules.add(new InvalidSchedule(rawSchedule,
- String.format(Messages.SCHEDULE_DISABLED, Title, Id)));
- buildLogger
- .addBuildLogEntry(String.format(Messages.SCHEDULE_DISABLED, Title, Id));
+ case 200:
+ JsonParser parser = new JsonParser();
+ JsonArray jsonScheduleList = parser.parse(response.getResponseBody()).getAsJsonArray();
+
+ for (String rawSchedule : rawScheduleList) {
+ boolean successfullyMapped = false;
+ for (JsonElement jsonScheduleElement : jsonScheduleList) {
+ JsonObject jsonSchedule = jsonScheduleElement.getAsJsonObject();
+
+ if (jsonSchedule.get("Type").getAsString().contentEquals("TemporaryScheduleInfo"))
+ continue;
+
+ UUID Id = Utils.defaultUuidIfNull(jsonSchedule.get("Id"), UUID.randomUUID());
+ String Title = Utils.defaultStringIfNull(jsonSchedule.get("Title"), "null Title");
+
+ boolean isEnabled = Utils.defaultBooleanIfNull(jsonSchedule.get("IsEnabled"), false);
+
+ if (Id.toString().contentEquals(rawSchedule)) {
+ if (!schedulesIdTitleHashMap.containsValue(Title)) {
+ if (tempRawScheduleList.contains(Id.toString())) {
+ tempRawScheduleList.remove(Id.toString());
+ tempRawScheduleList.remove(Title);
+ if (isEnabled) {
+ schedulesIdTitleHashMap.put(Id, Title);
+ buildLogger.addBuildLogEntry(
+ String.format(Messages.SCHEDULE_DETECTED, Title, rawSchedule));
+ } else {
+ invalidSchedules.add(new InvalidSchedule(rawSchedule,
+ String.format(Messages.SCHEDULE_DISABLED, Title, Id)));
+ buildLogger
+ .addBuildLogEntry(
+ String.format(Messages.SCHEDULE_DISABLED, Title, Id));
+ }
}
}
- }
- successfullyMapped = true;
- }
+ successfullyMapped = true;
+ }
- if (Title.contentEquals(rawSchedule)) {
- if (!schedulesIdTitleHashMap.containsKey(Id)) {
- if (tempRawScheduleList.contains(Title)) {
- tempRawScheduleList.remove(Id.toString());
- tempRawScheduleList.remove(Title);
- if (isEnabled) {
- schedulesIdTitleHashMap.put(Id, Title);
- buildLogger.addBuildLogEntry(
- String.format(Messages.SCHEDULE_DETECTED, Title, rawSchedule));
-
- } else {
- invalidSchedules.add(new InvalidSchedule(rawSchedule,
- String.format(Messages.SCHEDULE_DISABLED, Title, Id)));
+ if (Title.contentEquals(rawSchedule)) {
+ if (!schedulesIdTitleHashMap.containsKey(Id)) {
+ if (tempRawScheduleList.contains(Title)) {
+ tempRawScheduleList.remove(Id.toString());
+ tempRawScheduleList.remove(Title);
+ if (isEnabled) {
+ schedulesIdTitleHashMap.put(Id, Title);
+ buildLogger.addBuildLogEntry(
+ String.format(Messages.SCHEDULE_DETECTED, Title, rawSchedule));
+
+ } else {
+ invalidSchedules.add(new InvalidSchedule(rawSchedule,
+ String.format(Messages.SCHEDULE_DISABLED, Title, Id)));
+ }
}
}
+
+ successfullyMapped = true;
}
- successfullyMapped = true;
}
+ if (!successfullyMapped)
+ invalidSchedules.add(new InvalidSchedule(rawSchedule, Messages.NO_SUCH_SCHEDULE));
}
-
- if (!successfullyMapped)
- invalidSchedules.add(new InvalidSchedule(rawSchedule, Messages.NO_SUCH_SCHEDULE));
- }
- break;
-
- case 401:
- StringBuilder errorMessage401 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
- OnFailedToGetScheduleTitleIdMap(null, errorMessage401.toString(), buildLogger);
-
- case 500:
- StringBuilder errorMessage500 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
- OnFailedToGetScheduleTitleIdMap(null, errorMessage500.toString(), buildLogger);
-
- default:
- StringBuilder errorMessage = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- OnFailedToGetScheduleTitleIdMap(null, errorMessage.toString(), buildLogger);
+ break;
+
+ case 401:
+ StringBuilder errorMessage401 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
+ OnFailedToGetScheduleTitleIdMap(null, errorMessage401.toString(), buildLogger);
+
+ case 500:
+ StringBuilder errorMessage500 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
+ OnFailedToGetScheduleTitleIdMap(null, errorMessage500.toString(), buildLogger);
+
+ default:
+ StringBuilder errorMessage = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ OnFailedToGetScheduleTitleIdMap(null, errorMessage.toString(), buildLogger);
}
} catch (ConnectException | UnknownHostException e) {
@@ -269,61 +291,66 @@ public UUID runSchedule(AsyncHttpClient client, String controllerApiHttpAddress,
Response response = client.preparePut(uri).setHeader("AccessKey", accessKey).setBody("").execute().get();
switch (response.getStatusCode()) {
- case 200:
- String successMessage = String.format(Messages.SCHEDULE_RUN_SUCCESS, scheduleTitle, scheduleId);
- buildLogger.addBuildLogEntry(Messages.SCHEDULE_CONSOLE_LOG_SEPARATOR);
- buildLogger.addBuildLogEntry(successMessage);
- JsonParser parser = new JsonParser();
- JsonObject jsonRunObject = parser.parse(response.getResponseBody()).getAsJsonObject();
- JsonElement jsonRunId = jsonRunObject.get("RunId");
- String runIdStr = Utils.defaultStringIfNull(jsonRunId);
- UUID runId = UUID.fromString(runIdStr);
- return runId;
-
- case 400:
- StringBuilder errorMessage400 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage400, Messages.INVALID_VARIABLE_KEY_NAME);
- return OnScheduleRunFailure(errorMessage400, run, scheduleId, buildLogger);
-
- case 401:
- StringBuilder errorMessage401 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
- return OnScheduleRunFailure(errorMessage401, run, scheduleId, buildLogger);
-
- case 404:
- StringBuilder errorMessage404 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage404,
- String.format(Messages.NO_SUCH_SCHEDULE_WAS_FOUND, scheduleTitle, scheduleId));
- return OnScheduleRunFailure(errorMessage404, run, scheduleId, buildLogger);
-
- case 446:
- StringBuilder errorMessage446 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage446, Messages.NO_DISK_SPACE);
- return OnScheduleRunFailure(errorMessage446, run, scheduleId, buildLogger);
-
- case 455:
- StringBuilder errorMessage455 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
- return OnScheduleRunFailure(errorMessage455, run, scheduleId, buildLogger);
-
- case 500:
- StringBuilder errorMessage500 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
- return OnScheduleRunFailure(errorMessage500, run, scheduleId, buildLogger);
-
- default:
- StringBuilder errorMessage = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- return OnScheduleRunFailure(errorMessage, run, scheduleId, buildLogger);
+ case 200:
+ String successMessage = String.format(Messages.SCHEDULE_RUN_SUCCESS, scheduleTitle, scheduleId);
+ buildLogger.addBuildLogEntry(Messages.SCHEDULE_CONSOLE_LOG_SEPARATOR);
+ buildLogger.addBuildLogEntry(successMessage);
+ JsonParser parser = new JsonParser();
+ JsonObject jsonRunObject = parser.parse(response.getResponseBody()).getAsJsonObject();
+ JsonElement jsonRunId = jsonRunObject.get("RunId");
+ String runIdStr = Utils.defaultStringIfNull(jsonRunId);
+ UUID runId = UUID.fromString(runIdStr);
+ return runId;
+
+ case 400:
+ StringBuilder errorMessage400 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage400, Messages.INVALID_VARIABLE_KEY_NAME);
+ return OnScheduleRunFailure(errorMessage400, run, scheduleId, buildLogger);
+
+ case 401:
+ StringBuilder errorMessage401 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
+ return OnScheduleRunFailure(errorMessage401, run, scheduleId, buildLogger);
+
+ case 404:
+ StringBuilder errorMessage404 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage404,
+ String.format(Messages.NO_SUCH_SCHEDULE_WAS_FOUND, scheduleTitle, scheduleId));
+ return OnScheduleRunFailure(errorMessage404, run, scheduleId, buildLogger);
+
+ case 446:
+ StringBuilder errorMessage446 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage446, Messages.NO_DISK_SPACE);
+ return OnScheduleRunFailure(errorMessage446, run, scheduleId, buildLogger);
+
+ case 455:
+ StringBuilder errorMessage455 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
+ return OnScheduleRunFailure(errorMessage455, run, scheduleId, buildLogger);
+
+ case 500:
+ StringBuilder errorMessage500 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
+ return OnScheduleRunFailure(errorMessage500, run, scheduleId, buildLogger);
+
+ default:
+ StringBuilder errorMessage = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ return OnScheduleRunFailure(errorMessage, run, scheduleId, buildLogger);
}
- } catch (ConnectException | UnknownHostException e) {
- OnScheduleRunConnectionFailure(e, buildLogger);
} catch (ExecutionException e) {
if (e.getCause() instanceof ConnectException || e.getCause() instanceof UnknownHostException) {
OnScheduleRunConnectionFailure(e, buildLogger);
@@ -331,7 +358,6 @@ public UUID runSchedule(AsyncHttpClient client, String controllerApiHttpAddress,
throw e;
}
return null;
-
}
private static UUID OnScheduleRunFailure(StringBuilder errorMessage, LeapworkRun failedRun, UUID scheduleId,
@@ -355,66 +381,85 @@ public boolean stopRun(String controllerApiHttpAddress, UUID runId, String sched
buildLogger.addErrorLogEntry(String.format(Messages.STOPPING_RUN, scheduleTitle, runId));
String uri = String.format(Messages.STOP_RUN_URI, controllerApiHttpAddress, runId.toString());
- AsyncHttpClient client = new AsyncHttpClient();
+ AsyncHttpClient client = Dsl.asyncHttpClient();
try {
Response response = client.preparePut(uri).setBody("").setHeader("AccessKey", accessKey).execute().get();
client.close();
switch (response.getStatusCode()) {
- case 200:
- JsonParser parser = new JsonParser();
- JsonObject jsonStopRunObject = parser.parse(response.getResponseBody()).getAsJsonObject();
- JsonElement jsonStopSuccessfull = jsonStopRunObject.get("OperationCompleted");
- isSuccessfullyStopped = Utils.defaultBooleanIfNull(jsonStopSuccessfull, false);
- if (isSuccessfullyStopped)
+ case 200:
+ JsonParser parser = new JsonParser();
+ JsonObject jsonStopRunObject = parser.parse(response.getResponseBody()).getAsJsonObject();
+ JsonElement jsonStopSuccessfull = jsonStopRunObject.get("OperationCompleted");
+ isSuccessfullyStopped = Utils.defaultBooleanIfNull(jsonStopSuccessfull, false);
+ if (isSuccessfullyStopped)
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.STOP_RUN_SUCCESS, scheduleTitle, runId.toString()));
+ else
+ buildLogger
+ .addErrorLogEntry(
+ String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
+ break;
+
+ case 401:
buildLogger.addErrorLogEntry(
- String.format(Messages.STOP_RUN_SUCCESS, scheduleTitle, runId.toString()));
- else
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.INVALID_ACCESS_KEY);
buildLogger
.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
- break;
- case 401:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.INVALID_ACCESS_KEY);
- buildLogger.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
-
- case 404:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(String.format(Messages.NO_SUCH_RUN_WAS_FOUND, runId, scheduleTitle));
- buildLogger.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
+ case 404:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ buildLogger.addErrorLogEntry(String.format(Messages.NO_SUCH_RUN_WAS_FOUND, runId, scheduleTitle));
+ buildLogger
+ .addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
- case 446:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.NO_DISK_SPACE);
- buildLogger.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
+ case 446:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.NO_DISK_SPACE);
+ buildLogger
+ .addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
- case 455:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.DATABASE_NOT_RESPONDING);
- buildLogger.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
+ case 455:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.DATABASE_NOT_RESPONDING);
+ buildLogger
+ .addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
- case 500:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
- buildLogger.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
- default:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
+ case 500:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
+ buildLogger
+ .addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
+ default:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText()));
+ buildLogger
+ .addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
}
} catch (Exception e) {
buildLogger.addErrorLogEntry(String.format(Messages.STOP_RUN_FAIL, scheduleTitle, runId.toString()));
buildLogger.addErrorLogEntry(e.getMessage());
} finally {
- client.close();
+ if (client != null) {
+ try {
+ client.close();
+ } catch (IOException e) {
+ buildLogger.addErrorLogEntry("Error while closing client: " + e.getMessage());
+ }
+ }
return isSuccessfullyStopped;
}
}
@@ -496,41 +541,41 @@ public String getRunStatus(AsyncHttpClient client, String controllerApiHttpAddre
Response response = client.prepareGet(uri).setHeader("AccessKey", accessKey).execute().get();
switch (response.getStatusCode()) {
- case 200:
- JsonParser parser = new JsonParser();
- JsonObject runStatusObject = parser.parse(response.getResponseBody()).getAsJsonObject();
- JsonElement jsonRunStatus = runStatusObject.get("Status");
- String runStatus = Utils.defaultStringIfNull(jsonRunStatus, "Queued");
- return runStatus;
-
- case 401:
- StringBuilder errorMessage401 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
- throw new Exception(errorMessage401.toString());
-
- case 404:
- StringBuilder errorMessage404 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage404, String.format(Messages.NO_SUCH_RUN, runId));
- throw new Exception(errorMessage404.toString());
-
- case 455:
- StringBuilder errorMessage455 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
- throw new Exception(errorMessage455.toString());
-
- case 500:
- StringBuilder errorMessage500 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
- throw new Exception(errorMessage500.toString());
-
- default:
- String errorMessage = String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
- response.getStatusText());
- throw new Exception(errorMessage);
+ case 200:
+ JsonParser parser = new JsonParser();
+ JsonObject runStatusObject = parser.parse(response.getResponseBody()).getAsJsonObject();
+ JsonElement jsonRunStatus = runStatusObject.get("Status");
+ String runStatus = Utils.defaultStringIfNull(jsonRunStatus, "Queued");
+ return runStatus;
+
+ case 401:
+ StringBuilder errorMessage401 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
+ throw new Exception(errorMessage401.toString());
+
+ case 404:
+ StringBuilder errorMessage404 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage404, String.format(Messages.NO_SUCH_RUN, runId));
+ throw new Exception(errorMessage404.toString());
+
+ case 455:
+ StringBuilder errorMessage455 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
+ throw new Exception(errorMessage455.toString());
+
+ case 500:
+ StringBuilder errorMessage500 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
+ throw new Exception(errorMessage500.toString());
+
+ default:
+ String errorMessage = String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText());
+ throw new Exception(errorMessage);
}
}
@@ -542,58 +587,58 @@ public List getRunRunItems(AsyncHttpClient client, String controllerApiHtt
Response response = client.prepareGet(uri).setHeader("AccessKey", accessKey).execute().get();
switch (response.getStatusCode()) {
- case 200:
+ case 200:
- JsonParser parser = new JsonParser();
- JsonObject jsonRunItemsObject = parser.parse(response.getResponseBody()).getAsJsonObject();
- JsonElement jsonRunItemsElement = jsonRunItemsObject.get("RunItemIds");
+ JsonParser parser = new JsonParser();
+ JsonObject jsonRunItemsObject = parser.parse(response.getResponseBody()).getAsJsonObject();
+ JsonElement jsonRunItemsElement = jsonRunItemsObject.get("RunItemIds");
- List runItems = new ArrayList<>();
+ List runItems = new ArrayList<>();
- if (jsonRunItemsElement != null) {
- JsonArray jsonRunItems = jsonRunItemsElement.getAsJsonArray();
- for (int i = 0; i < jsonRunItems.size(); i++) {
- UUID runItemId = UUID.fromString(jsonRunItems.get(i).getAsString());
- runItems.add(runItemId);
+ if (jsonRunItemsElement != null) {
+ JsonArray jsonRunItems = jsonRunItemsElement.getAsJsonArray();
+ for (int i = 0; i < jsonRunItems.size(); i++) {
+ UUID runItemId = UUID.fromString(jsonRunItems.get(i).getAsString());
+ runItems.add(runItemId);
+ }
}
- }
- return runItems;
-
- case 401:
- StringBuilder errorMessage401 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
- throw new Exception(errorMessage401.toString());
-
- case 404:
- StringBuilder errorMessage404 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage404, String.format(Messages.NO_SUCH_RUN, runId));
- throw new Exception(errorMessage404.toString());
-
- case 446:
- StringBuilder errorMessage446 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage446, Messages.NO_DISK_SPACE);
- throw new Exception(errorMessage446.toString());
-
- case 455:
- StringBuilder errorMessage455 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
- throw new Exception(errorMessage455.toString());
-
- case 500:
- StringBuilder errorMessage500 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
- throw new Exception(errorMessage500.toString());
-
- default:
- String errorMessage = String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
- response.getStatusText());
- throw new Exception(errorMessage);
+ return runItems;
+
+ case 401:
+ StringBuilder errorMessage401 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
+ throw new Exception(errorMessage401.toString());
+
+ case 404:
+ StringBuilder errorMessage404 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage404, String.format(Messages.NO_SUCH_RUN, runId));
+ throw new Exception(errorMessage404.toString());
+
+ case 446:
+ StringBuilder errorMessage446 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage446, Messages.NO_DISK_SPACE);
+ throw new Exception(errorMessage446.toString());
+
+ case 455:
+ StringBuilder errorMessage455 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
+ throw new Exception(errorMessage455.toString());
+
+ case 500:
+ StringBuilder errorMessage500 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
+ throw new Exception(errorMessage500.toString());
+
+ default:
+ String errorMessage = String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText());
+ throw new Exception(errorMessage);
}
}
@@ -606,87 +651,90 @@ public RunItem getRunItem(AsyncHttpClient client, String controllerApiHttpAddres
Response response = client.prepareGet(uri).setHeader("AccessKey", accessKey).execute().get();
switch (response.getStatusCode()) {
- case 200:
-
- JsonParser parser = new JsonParser();
- JsonObject jsonRunItem = parser.parse(response.getResponseBody()).getAsJsonObject();
- parser = null;
-
- // FlowInfo
- JsonElement jsonFlowInfo = jsonRunItem.get("FlowInfo");
- JsonObject flowInfo = jsonFlowInfo.getAsJsonObject();
- JsonElement jsonFlowId = flowInfo.get("FlowId");
- UUID flowId = Utils.defaultUuidIfNull(jsonFlowId, UUID.randomUUID());
- JsonElement jsonFlowTitle = flowInfo.get("FlowTitle");
- String flowTitle = Utils.defaultStringIfNull(jsonFlowTitle);
- JsonElement jsonFlowStatus = flowInfo.get("Status");
- String flowStatus = Utils.defaultStringIfNull(jsonFlowStatus, "NoStatus");
-
- // AgentInfo
- JsonElement jsonEnvironmentInfo = jsonRunItem.get("AgentInfo");
- JsonObject environmentInfo = jsonEnvironmentInfo.getAsJsonObject();
- JsonElement jsonEnvironmentId = environmentInfo.get("AgentId");
- UUID environmentId = Utils.defaultUuidIfNull(jsonEnvironmentId, UUID.randomUUID());
- JsonElement jsonEnvironmentTitle = environmentInfo.get("AgentTitle");
- String environmentTitle = Utils.defaultStringIfNull(jsonEnvironmentTitle);
- JsonElement jsonEnvironmentConnectionType = environmentInfo.get("ConnectionType");
- String environmentConnectionType = Utils.defaultStringIfNull(jsonEnvironmentConnectionType, "Not defined");
-
- JsonElement jsonRunId = jsonRunItem.get("AutomationRunId");
- UUID runId = Utils.defaultUuidIfNull(jsonRunId, UUID.randomUUID());
-
- String elapsed = Utils.defaultElapsedIfNull(jsonRunItem.get("Elapsed"));
- double milliseconds = Utils.defaultDoubleIfNull(jsonRunItem.get("ElapsedMilliseconds"), 0);
-
- RunItem runItem = new RunItem(flowTitle, flowStatus, milliseconds, scheduleTitle);
-
- if (flowStatus.contentEquals("Initializing") || flowStatus.contentEquals("Connecting")
- || flowStatus.contentEquals("Connected") || flowStatus.contentEquals("Running")
- || flowStatus.contentEquals("IsProcessing") || flowStatus.contentEquals("NoStatus")
- || (flowStatus.contentEquals("Passed") && !writePassedKeyframes)
- || (flowStatus.contentEquals("Done") && doneStatusAsSuccess && !writePassedKeyframes)) {
- return runItem;
- } else {
- Failure keyframes = getRunItemKeyFrames(client, controllerApiHttpAddress, accessKey, runItemId, runItem,
- scheduleTitle, environmentTitle, buildLogger);
- runItem.failure = keyframes;
- return runItem;
- }
+ case 200:
+
+ JsonParser parser = new JsonParser();
+ JsonObject jsonRunItem = parser.parse(response.getResponseBody()).getAsJsonObject();
+ parser = null;
+
+ // FlowInfo
+ JsonElement jsonFlowInfo = jsonRunItem.get("FlowInfo");
+ JsonObject flowInfo = jsonFlowInfo.getAsJsonObject();
+ JsonElement jsonFlowId = flowInfo.get("FlowId");
+ UUID flowId = Utils.defaultUuidIfNull(jsonFlowId, UUID.randomUUID());
+ JsonElement jsonFlowTitle = flowInfo.get("FlowTitle");
+ String flowTitle = Utils.defaultStringIfNull(jsonFlowTitle);
+ JsonElement jsonFlowStatus = flowInfo.get("Status");
+ String flowStatus = Utils.defaultStringIfNull(jsonFlowStatus, "NoStatus");
+
+ // AgentInfo
+ JsonElement jsonEnvironmentInfo = jsonRunItem.get("AgentInfo");
+ JsonObject environmentInfo = jsonEnvironmentInfo.getAsJsonObject();
+ JsonElement jsonEnvironmentId = environmentInfo.get("AgentId");
+ UUID environmentId = Utils.defaultUuidIfNull(jsonEnvironmentId, UUID.randomUUID());
+ JsonElement jsonEnvironmentTitle = environmentInfo.get("AgentTitle");
+ String environmentTitle = Utils.defaultStringIfNull(jsonEnvironmentTitle);
+ JsonElement jsonEnvironmentConnectionType = environmentInfo.get("ConnectionType");
+ String environmentConnectionType = Utils.defaultStringIfNull(jsonEnvironmentConnectionType,
+ "Not defined");
+
+ JsonElement jsonRunId = jsonRunItem.get("AutomationRunId");
+ UUID runId = Utils.defaultUuidIfNull(jsonRunId, UUID.randomUUID());
+
+ String elapsed = Utils.defaultElapsedIfNull(jsonRunItem.get("Elapsed"));
+ double milliseconds = Utils.defaultDoubleIfNull(jsonRunItem.get("ElapsedMilliseconds"), 0);
+
+ RunItem runItem = new RunItem(flowTitle, flowStatus, milliseconds, scheduleTitle);
+
+ if (flowStatus.contentEquals("Initializing") || flowStatus.contentEquals("Connecting")
+ || flowStatus.contentEquals("Connected") || flowStatus.contentEquals("Running")
+ || flowStatus.contentEquals("IsProcessing") || flowStatus.contentEquals("NoStatus")
+ || (flowStatus.contentEquals("Passed") && !writePassedKeyframes)
+ || (flowStatus.contentEquals("Done") && doneStatusAsSuccess && !writePassedKeyframes)) {
+ return runItem;
+ } else {
+ Failure keyframes = getRunItemKeyFrames(client, controllerApiHttpAddress, accessKey, runItemId,
+ runItem,
+ scheduleTitle, environmentTitle, buildLogger);
+ runItem.failure = keyframes;
+ return runItem;
+ }
+
+ case 401:
+ StringBuilder errorMessage401 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
+ throw new Exception(errorMessage401.toString());
- case 401:
- StringBuilder errorMessage401 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage401, Messages.INVALID_ACCESS_KEY);
- throw new Exception(errorMessage401.toString());
-
- case 404:
- StringBuilder errorMessage404 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage404, String.format(Messages.NO_SUCH_RUN_ITEM_WAS_FOUND, runItemId, scheduleTitle));
- throw new Exception(errorMessage404.toString());
-
- case 446:
- StringBuilder errorMessage446 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage446, Messages.NO_DISK_SPACE);
- throw new Exception(errorMessage446.toString());
-
- case 455:
- StringBuilder errorMessage455 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
- throw new Exception(errorMessage455.toString());
-
- case 500:
- StringBuilder errorMessage500 = new StringBuilder(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
- throw new Exception(errorMessage500.toString());
-
- default:
- String errorMessage = String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
- response.getStatusText());
- throw new Exception(errorMessage);
+ case 404:
+ StringBuilder errorMessage404 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage404,
+ String.format(Messages.NO_SUCH_RUN_ITEM_WAS_FOUND, runItemId, scheduleTitle));
+ throw new Exception(errorMessage404.toString());
+
+ case 446:
+ StringBuilder errorMessage446 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage446, Messages.NO_DISK_SPACE);
+ throw new Exception(errorMessage446.toString());
+
+ case 455:
+ StringBuilder errorMessage455 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage455, Messages.DATABASE_NOT_RESPONDING);
+ throw new Exception(errorMessage455.toString());
+
+ case 500:
+ StringBuilder errorMessage500 = new StringBuilder(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ appendLine(errorMessage500, Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
+ throw new Exception(errorMessage500.toString());
+
+ default:
+ String errorMessage = String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(),
+ response.getStatusText());
+ throw new Exception(errorMessage);
}
}
@@ -697,72 +745,73 @@ public Failure getRunItemKeyFrames(AsyncHttpClient client, String controllerApiH
Response response = client.prepareGet(uri).setHeader("AccessKey", accessKey).execute().get();
switch (response.getStatusCode()) {
- case 200:
- JsonArray jsonKeyframes = TryParseKeyframeJson(response.getResponseBody(), buildLogger);
-
- if (jsonKeyframes != null) {
- buildLogger.addBuildLogEntry(Messages.CASE_CONSOLE_LOG_SEPARATOR);
- buildLogger.addBuildLogEntry(String.format(Messages.CASE_INFORMATION, runItem.getCaseName(),
- runItem.getCaseStatus(), runItem.getElapsedTime()));
- StringBuilder fullKeyframes = new StringBuilder("");
-
- for (JsonElement jsonKeyFrame : jsonKeyframes) {
- String level = Utils.defaultStringIfNull(jsonKeyFrame.getAsJsonObject().get("Level"), "Trace");
- if (!level.contentEquals("") && !level.contentEquals("Trace")) {
- String keyFrameTimeStamp = jsonKeyFrame.getAsJsonObject().get("Timestamp").getAsJsonObject()
- .get("Value").getAsString();
- String keyFrameLogMessage = jsonKeyFrame.getAsJsonObject().get("LogMessage").getAsString();
- String keyFrame = String.format(Messages.CASE_STACKTRACE_FORMAT, keyFrameTimeStamp,
- keyFrameLogMessage);
- buildLogger.addBuildLogEntry(keyFrame);
- fullKeyframes.append(keyFrame);
- fullKeyframes.append("
");
+ case 200:
+ JsonArray jsonKeyframes = TryParseKeyframeJson(response.getResponseBody(), buildLogger);
+
+ if (jsonKeyframes != null) {
+ buildLogger.addBuildLogEntry(Messages.CASE_CONSOLE_LOG_SEPARATOR);
+ buildLogger.addBuildLogEntry(String.format(Messages.CASE_INFORMATION, runItem.getCaseName(),
+ runItem.getCaseStatus(), runItem.getElapsedTime()));
+ StringBuilder fullKeyframes = new StringBuilder("");
+
+ for (JsonElement jsonKeyFrame : jsonKeyframes) {
+ String level = Utils.defaultStringIfNull(jsonKeyFrame.getAsJsonObject().get("Level"), "Trace");
+ if (!level.contentEquals("") && !level.contentEquals("Trace")) {
+ String keyFrameTimeStamp = jsonKeyFrame.getAsJsonObject().get("Timestamp").getAsJsonObject()
+ .get("Value").getAsString();
+ String keyFrameLogMessage = jsonKeyFrame.getAsJsonObject().get("LogMessage").getAsString();
+ String keyFrame = String.format(Messages.CASE_STACKTRACE_FORMAT, keyFrameTimeStamp,
+ keyFrameLogMessage);
+ buildLogger.addBuildLogEntry(keyFrame);
+ fullKeyframes.append(keyFrame);
+ fullKeyframes.append("
");
+ }
}
+
+ fullKeyframes.append("Environment: ").append(environmentTitle).append("
");
+ fullKeyframes.append("Schedule: ").append(scheduleTitle);
+ buildLogger.addBuildLogEntry("Environment: " + environmentTitle);
+ buildLogger.addBuildLogEntry("Schedule: " + scheduleTitle);
+
+ return new Failure(fullKeyframes.toString());
+ } else {
+ buildLogger.addBuildLogEntry(String.format(Messages.FAILED_TO_PARSE_RESPONSE_KEYFRAME_JSON_ARRAY));
+ return new Failure(Messages.FAILED_TO_PARSE_RESPONSE_KEYFRAME_JSON_ARRAY);
}
+ case 401:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.INVALID_ACCESS_KEY);
+ break;
+ case 404:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ buildLogger
+ .addErrorLogEntry(String.format(Messages.NO_SUCH_RUN_ITEM_WAS_FOUND, runItemId, scheduleTitle));
+ break;
- fullKeyframes.append("Environment: ").append(environmentTitle).append("
");
- fullKeyframes.append("Schedule: ").append(scheduleTitle);
- buildLogger.addBuildLogEntry("Environment: " + environmentTitle);
- buildLogger.addBuildLogEntry("Schedule: " + scheduleTitle);
+ case 446:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.NO_DISK_SPACE);
+ break;
- return new Failure(fullKeyframes.toString());
- } else {
- buildLogger.addBuildLogEntry(String.format(Messages.FAILED_TO_PARSE_RESPONSE_KEYFRAME_JSON_ARRAY));
- return new Failure(Messages.FAILED_TO_PARSE_RESPONSE_KEYFRAME_JSON_ARRAY);
- }
- case 401:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.INVALID_ACCESS_KEY);
- break;
- case 404:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(String.format(Messages.NO_SUCH_RUN_ITEM_WAS_FOUND, runItemId, scheduleTitle));
- break;
-
- case 446:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.NO_DISK_SPACE);
- break;
-
- case 455:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.DATABASE_NOT_RESPONDING);
- break;
-
- case 500:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- buildLogger.addErrorLogEntry(Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
- break;
-
- default:
- buildLogger.addErrorLogEntry(
- String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
- break;
+ case 455:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.DATABASE_NOT_RESPONDING);
+ break;
+
+ case 500:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ buildLogger.addErrorLogEntry(Messages.CONTROLLER_RESPONDED_WITH_ERRORS);
+ break;
+
+ default:
+ buildLogger.addErrorLogEntry(
+ String.format(Messages.ERROR_CODE_MESSAGE, response.getStatusCode(), response.getStatusText()));
+ break;
}
return null;
}
@@ -800,4 +849,4 @@ public String correctRepeatedTitles(HashMap repeatedNameMapCoun
public boolean isLeapworkWritePassedFlowKeyFrames(boolean leapworkWritePassedFlowKeyFrames) {
return leapworkWritePassedFlowKeyFrames;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Utils.java b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Utils.java
index dd5c34b..593f339 100644
--- a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Utils.java
+++ b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/impl/Utils.java
@@ -1,7 +1,6 @@
package com.leapwork.leapwork_integration_for_bamboo.impl;
import com.google.gson.JsonElement;
-
import java.util.Map;
import java.util.UUID;
diff --git a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/model/RunCollection.java b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/model/RunCollection.java
index 54c2462..54e7ba4 100644
--- a/src/main/java/com/leapwork/leapwork_integration_for_bamboo/model/RunCollection.java
+++ b/src/main/java/com/leapwork/leapwork_integration_for_bamboo/model/RunCollection.java
@@ -1,8 +1,7 @@
package com.leapwork.leapwork_integration_for_bamboo.model;
-
import javax.xml.bind.annotation.*;
-;import java.util.ArrayList;
+import java.util.ArrayList;
@XmlRootElement(name = "testsuites")
@XmlAccessorType(XmlAccessType.NONE)
diff --git a/src/main/resources/atlassian-plugin-marketing.xml b/src/main/resources/atlassian-plugin-marketing.xml
index a961631..1e6561a 100644
--- a/src/main/resources/atlassian-plugin-marketing.xml
+++ b/src/main/resources/atlassian-plugin-marketing.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/src/main/resources/atlassian-plugin.xml b/src/main/resources/atlassian-plugin.xml
index e61c476..f77be2e 100644
--- a/src/main/resources/atlassian-plugin.xml
+++ b/src/main/resources/atlassian-plugin.xml
@@ -7,25 +7,22 @@
images/pluginLogo.png
images/vendorLogo.png
images/vendorIcon.png
+ compatible
+ true
+ data-center
- >
- Choose Schedules, Run and Get result
-
+
+ Choose Schedules, Run and Get result
-
-
-
+
+
+
-
\ No newline at end of file
diff --git a/src/main/resources/editLeapworkBambooBridgeTask.ftl b/src/main/resources/editLeapworkBambooBridgeTask.ftl
index 6d774cd..5c3df94 100644
--- a/src/main/resources/editLeapworkBambooBridgeTask.ftl
+++ b/src/main/resources/editLeapworkBambooBridgeTask.ftl
@@ -1,6 +1,6 @@
-
[@ww.textfield labelKey="leapwork.hostname.label" name="leapworkHostname" id="leapworkHostname" required=true style="max-width: 350px; "/]
[@ww.textfield labelKey="leapwork.port.label" name="leapworkPort" id="leapworkPort" required=true style="max-width: 80px; "/]
+[@ww.checkbox labelKey="leapwork.https.label" name="leapworkHttps" toggle="true" descriptionKey="leapwork.https.description" /]
[@ww.textfield labelKey="leapwork.accessKey.label" name="leapworkAccessKey" id="leapworkAccessKey" required=true style="max-width: 350px; "/]
[@ww.textfield labelKey="leapwork.delay.label" name="leapworkDelay" id="leapworkDelay" required=false style="width: 80px;"/]
[@ww.select cssClass="builderSelectWidget" labelKey='leapwork.doneStatusAs.label' name='leapworkDoneStatusAs' list="statuses" id="leapworkDoneStatusAs" emptyOption=false style="width: 80px;"/]
@@ -91,6 +91,7 @@ fieldArea_schIds.style.display='none';
function GetSch() {
const leapworkHostname = document.getElementById("leapworkHostname").value;
const leapworkPort = document.getElementById("leapworkPort").value;
+ const leapworkConnectionType = document.getElementById("leapworkHttps").checked ? "https" : "http";
if(!leapworkHostname || !leapworkPort)
{
@@ -98,7 +99,7 @@ fieldArea_schIds.style.display='none';
}
else
{
- const address = "http://" + leapworkHostname + ":" + leapworkPort;
+ const address = leapworkConnectionType + "://" + leapworkHostname + ":" + leapworkPort;
const accessKey = document.getElementById("leapworkAccessKey").value;
if(document.getElementById('LeapworkContainer').innerHTML == "")
@@ -113,7 +114,6 @@ fieldArea_schIds.style.display='none';
{
const container = document.getElementById("LeapworkContainer");
-
(jQuery)(document).click(function (event) {
if ((jQuery)(event.target).closest('#LeapworkContainer').length == 0 && (jQuery)(event.target).attr('id') != 'mainButton') {
(jQuery)("#LeapworkContainer input:checkbox").remove();
diff --git a/src/main/resources/leapwrok-integration-for-bamboo.properties b/src/main/resources/leapwork-integration-for-bamboo.properties
similarity index 67%
rename from src/main/resources/leapwrok-integration-for-bamboo.properties
rename to src/main/resources/leapwork-integration-for-bamboo.properties
index db60f64..558be00 100644
--- a/src/main/resources/leapwrok-integration-for-bamboo.properties
+++ b/src/main/resources/leapwork-integration-for-bamboo.properties
@@ -1,16 +1,18 @@
#put any key/value pairs here
my.plugin.name=MyPlugin
leapwork.hostname.label=Leapwork Controller Hostname
+leapwork.https.label=Enable Https Protocol?
+leapwork.https.description=This will enable Https protocol for APIs. Please ensure that Https protocol is enabled in Leapwork as well. Default port is 9002.
leapwork.port.label=Leapwork Controller Port
-leapwork.accessKey.label=Leapwork Key
-leapwork.scheduleVariables.label=Leapwork Schedule Variables
+leapwork.accessKey.label=Leapwork Access Key
leapwork.delay.label=Time delay (in sec)
leapwork.doneStatusAs.label=Flow Done status as
leapwork.report.label=JUnit report file path
+leapwork.scheduleVariables.label=Leapwork Schedule Variables
leapwork.autoReport.label=Enable automatic result publisher?
leapwork.autoReport.description=Do NOT require JUnit parser task.
leapwork.writePassedFlowKeyFrames.label=Write Passed Flow KeyFrames?
-leapwork.schNames.label=Schedules' names
-leapwork.schIds.label=Schedules' ids
+leapwork.schNames.label=Schedule names
+leapwork.schIds.label=Schedule ids
error.hostnameorport.empty=hostname or/and port is/are empty!
error.tests.empty=No schedules! Select schedules to run!
\ No newline at end of file
diff --git a/src/main/resources/viewLeapworkBambooBridgeTask.ftl b/src/main/resources/viewLeapworkBambooBridgeTask.ftl
index a013975..d5eb8ef 100644
--- a/src/main/resources/viewLeapworkBambooBridgeTask.ftl
+++ b/src/main/resources/viewLeapworkBambooBridgeTask.ftl
@@ -1,6 +1,6 @@
-
[@ww.textfield labelKey="leapwork.hostname.label" name="leapworkHostname" id="leapworkHostname" required='true' style="max-width: 350px; "/]
[@ww.textfield labelKey="leapwork.port.label" name="leapworkPort" id="leapworkPort" required='true' style="max-width: 80px; "/]
+[@ww.checkbox labelKey="leapwork.https.label" name="leapworkHttps" toggle="false" descriptionKey="leapwork.https.description" /]
[@ww.textfield labelKey="leapwork.accessKey.label" name="leapworkAccessKey" id="leapworkAccessKey" required='true' style="max-width: 350px; "/]
[@ww.textfield labelKey="leapwork.delay.label" name="leapworkDelay" id="leapworkDelay" required='false' style="width: 80px;"/]
[@ww.select cssClass="builderSelectWidget" labelKey='leapwork.doneStatusAs.label' name='leapworkDoneStatusAs' list="statuses" id="leapworkDoneStatusAs" emptyOption='false' style="width: 80px;"/]
@@ -9,5 +9,4 @@
[@ww.checkbox labelKey="leapwork.autoReport.label" name="leapworkAutoReport" toggle="true" descriptionKey="leapwork.autoReport.description" /]
[@ww.checkbox labelKey="leapwork.writePassedFlowKeyFrames.label" name="leapworkWritePassedFlowKeyFrames" toggle="false" /]
[@ww.textarea labelKey="leapwork.schNames.label" name="leapworkSchNames" id="schNames" readonly='false' required='true' style="max-width: 350px; height:80px;" emptyOption='false'/]
-[@ww.textarea labelKey="leapwork.schIds.label" name="leapworkSchIds" id="schIds" required='false' style="max-width: 350px;" readonly='true'/]
-
+[@ww.textarea labelKey="leapwork.schIds.label" name="leapworkSchIds" id="schIds" required='false' style="max-width: 350px;" readonly='true'/]
\ No newline at end of file