Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JPERF-273 Switch to hooks preserving backwards compatibility #175

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
6 changes: 4 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ configurations.all {
"com.google.code.gson:gson" -> useVersion("2.8.2")
"org.jsoup:jsoup" -> useVersion("1.10.2")
"com.jcraft:jzlib" -> useVersion("1.1.3")
"commons-codec:commons-codec" -> useVersion("1.11")
}
when (requested.group) {
"org.jetbrains.kotlin" -> useVersion(kotlinVersion)
Expand All @@ -43,8 +44,9 @@ configurations.all {
}

dependencies {
api("com.atlassian.performance.tools:infrastructure:[4.19.0,5.0.0)")
api("com.atlassian.performance.tools:aws-resources:[1.10.1, 2.0.0)") // 1.10.1 gives Ami.Builder.amiProvider
api(fileTree(mapOf("dir" to "lib", "include" to "*.jar")))
api("com.atlassian.performance.tools:infrastructure:[4.12.2,5.0.0)")
api("com.atlassian.performance.tools:aws-resources:[1.1.1,2.0.0)")
api("com.atlassian.performance.tools:jira-actions:[2.0.0,4.0.0)")
api("com.atlassian.performance.tools:ssh:[2.4.1,3.0.0)")
api("com.atlassian.performance.tools:virtual-users:[3.3.0,4.0.0)")
Expand Down
Binary file added lib/infrastructure-4.26.2-SNAPSHOT.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import java.net.URI
import java.nio.file.Path
import java.util.concurrent.Executors

class Infrastructure<out T : VirtualUsers>(
val virtualUsers: T,
class Infrastructure<out V : VirtualUsers>(
val virtualUsers: V,
val jira: Jira,
private val resultsTransport: Storage,
val sshKey: SshKey
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.atlassian.performance.tools.awsinfrastructure.api.database

import com.atlassian.performance.tools.concurrency.api.submitWithLogContext
import com.atlassian.performance.tools.infrastructure.api.jira.install.HttpNode
import com.atlassian.performance.tools.infrastructure.api.jira.install.InstalledJira
import com.atlassian.performance.tools.infrastructure.api.jira.install.hook.PostInstallHook
import com.atlassian.performance.tools.infrastructure.api.jira.install.hook.PostInstallHooks
import com.atlassian.performance.tools.infrastructure.api.jira.install.hook.PreInstallHook
import com.atlassian.performance.tools.infrastructure.api.jira.install.hook.PreInstallHooks
import com.atlassian.performance.tools.infrastructure.api.jira.report.Reports
import com.atlassian.performance.tools.ssh.api.SshConnection
import java.util.concurrent.Executors
import java.util.concurrent.Future

/**
* Begins to run [hook] during [PreInstallHooks] and finishes during [PostInstallHooks]
*/
class AsyncInstallHook(
private val hook: PreInstallHook
) : PreInstallHook {

override fun call(ssh: SshConnection, http: HttpNode, hooks: PreInstallHooks, reports: Reports) {
val thread = Executors.newSingleThreadExecutor()
val future = thread.submitWithLogContext("async-hook") {
hook.call(ssh, http, hooks, reports)
}
hooks.postInstall.insert(FutureHook(future))
}
}

private class FutureHook(
private val future: Future<*>
) : PostInstallHook {

override fun call(ssh: SshConnection, jira: InstalledJira, hooks: PostInstallHooks, reports: Reports) {
future.get()
}
}
Loading