Skip to content

Commit 66a46c3

Browse files
committed
JsmContainer.groovy
* enableJvmDebug is now smarter and works with already created containers Something is borked, likely IntelliJ
1 parent a7aa388 commit 66a46c3

File tree

6 files changed

+114
-10
lines changed

6 files changed

+114
-10
lines changed

.idea/.gitignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.eficode</groupId>
88
<artifactId>devstack</artifactId>
9-
<version>2.3.22</version>
9+
<version>2.3.23</version>
1010
<packaging>jar</packaging>
1111

1212
<name>DevStack</name>
@@ -23,7 +23,7 @@
2323
<spock-core.version>2.3-groovy-${groovy.major.version}</spock-core.version>
2424
<jiraShortcuts.version>2.0.3-SNAPSHOT-groovy-3.0</jiraShortcuts.version>
2525
<bitbucketinstancemanager.version>0.0.3-SNAPSHOT-groovy-3.0</bitbucketinstancemanager.version>
26-
<jirainstancemanager.version>2.1.7</jirainstancemanager.version>
26+
<jirainstancemanager.version>2.1.8</jirainstancemanager.version>
2727
</properties>
2828

2929

@@ -114,13 +114,13 @@
114114
<dependency>
115115
<groupId>org.junit.jupiter</groupId>
116116
<artifactId>junit-jupiter-api</artifactId>
117-
<version>5.9.0</version>
117+
<version>5.10.2</version>
118118
<scope>test</scope>
119119
</dependency>
120120
<dependency>
121121
<groupId>org.junit.jupiter</groupId>
122122
<artifactId>junit-jupiter-engine</artifactId>
123-
<version>5.9.0</version>
123+
<version>5.10.2</version>
124124
<scope>test</scope>
125125
</dependency>
126126

src/main/groovy/com/eficode/devstack/container/impl/JsmContainer.groovy

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,32 @@ class JsmContainer implements Container {
3232
}
3333
}
3434

35+
3536
/**
3637
* Enables JVM debug of JIRA for port portNr
3738
* @param portNr
3839
*/
3940
void enableJvmDebug(String portNr = "5005") {
4041

41-
42-
assert !created: "Error, cant enable JVM Debug for a container that has already been created"
42+
log.info("Enabling JVM debug for port $portNr")
4343
debugPort = portNr
44+
if (jvmDebugEnabled) {
45+
log.debug("\tJVM Debug is already enabled")
46+
return
47+
}
48+
49+
4450
jvmSupportRecommendedArgs += ["-Xdebug", "-Xrunjdwp:transport=dt_socket,address=*:${debugPort},server=y,suspend=n"]
4551
}
4652

53+
/**
54+
* Checks if jvm debug is enabled for a container that has been created
55+
* @return
56+
*/
57+
boolean isJvmDebugEnabled() {
58+
hasEnv("-Xrunjdwp:transport=dt_socket,address=*:${debugPort},server=y,suspend=n")
59+
}
60+
4761
/**
4862
* Enables upload of Apps so that not only Marketplace apps can be installed
4963
* See: https://jira.atlassian.com/browse/JRASERVER-77129

src/main/groovy/com/eficode/devstack/deployment/impl/JsmDevDeployment.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import org.slf4j.Logger
1313
import org.slf4j.LoggerFactory
1414

1515

16+
//TODO override stop and remove
17+
//TODO override stop and remove
1618
class JsmDevDeployment implements Deployment {
1719

1820
Logger log = LoggerFactory.getLogger(this.class)

src/main/groovy/com/eficode/devstack/util/DirectorySyncer.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,12 @@ class DirectorySyncer implements Container {
170170
* @param destVolumeName A docker volume to sync to, if it does not exist it will be created
171171
* @param rsyncOptions Options to use when running rsync, ie: rsync $rsyncOptions /mnt/src/*\/ /mnt/dest/<p>
172172
* example: -avh --delete
173+
* @param containerName Optional, if not given, one will be made up.
173174
* @param dockerHost Docker host to run on
174175
* @param dockerCertPath Docker certs to use
175176
* @return
176177
*/
177-
static DirectorySyncer createSyncToVolume(ArrayList<String> hostAbsSourcePaths, String destVolumeName, String rsyncOptions = "-avh", String dockerHost = "", String dockerCertPath = "") {
178+
static DirectorySyncer createSyncToVolume(ArrayList<String> hostAbsSourcePaths, String destVolumeName, String rsyncOptions = "-avh", String containerName = "",String dockerHost = "", String dockerCertPath = "") {
178179

179180
DirectorySyncer container = new DirectorySyncer(dockerHost, dockerCertPath)
180181
Logger log = container.log
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package com.eficode.devstack.deployment.impl
2+
3+
import com.eficode.atlassian.jiraInstanceManager.JiraInstanceManagerRest
4+
import com.eficode.atlassian.jiraInstanceManager.beans.MarketplaceApp
5+
import com.eficode.devstack.DevStackSpec
6+
import de.gesellix.docker.remote.api.ContainerSummary
7+
import org.slf4j.LoggerFactory
8+
import spock.lang.Shared
9+
10+
class JsmDevDeploymentSpec extends DevStackSpec{
11+
12+
@Shared
13+
File srLicenseFile = new File(System.getProperty("user.home") + "/.licenses/jira/sr.license")
14+
@Shared
15+
File jsmLicenseFile = new File(System.getProperty("user.home") + "/.licenses/jira/jsm.license")
16+
17+
18+
19+
def setupSpec() {
20+
21+
22+
DevStackSpec.log = LoggerFactory.getLogger(JsmDevDeploymentSpec.class)
23+
24+
25+
cleanupContainerNames = []
26+
cleanupContainerPorts = []
27+
28+
disableCleanup = false
29+
30+
31+
}
32+
33+
ArrayList<ContainerSummary> getContainers() {
34+
35+
return dockerClient.ps(true).content
36+
}
37+
38+
39+
def "Test basics"(){
40+
41+
42+
setup:
43+
44+
File localSrcDir = File.createTempDir()
45+
localSrcDir.deleteOnExit()
46+
47+
String baseUrl = "http://spockdev.localhost"
48+
49+
JiraInstanceManagerRest jim = new JiraInstanceManagerRest(baseUrl)
50+
51+
52+
when:
53+
JsmDevDeployment jsmDevDep= new JsmDevDeployment.Builder(baseUrl ,jsmLicenseFile.text, [localSrcDir.canonicalPath])
54+
.setJsmJvmDebugPort("5005")
55+
.setJsmVersion("latest")
56+
.enableJsmDood()
57+
.addAppToInstall(MarketplaceApp.getScriptRunnerVersion().downloadUrl, srLicenseFile.text)
58+
.build()
59+
60+
jsmDevDep.stopAndRemoveDeployment()
61+
62+
ArrayList<ContainerSummary> containersBefore = getContainers()
63+
64+
jsmDevDep.setupDeployment()
65+
ArrayList<ContainerSummary> containersAfter = getContainers()
66+
67+
68+
then:
69+
containersAfter.size() - containersBefore.size() == 3
70+
71+
72+
when: "Creating a file in the local synced dir"
73+
File localTestFile = new File(localSrcDir, "testFile.groovy")
74+
localTestFile.text = System.currentTimeMillis()
75+
76+
then: "It should be available in the container"
77+
jim.getScriptrunnerFile("testFile.groovy") == localTestFile.text
78+
79+
expect:
80+
jsmDevDep.jsmContainer.appAppUploadEnabled
81+
jsmDevDep.jsmContainer.enableJvmDebug() == null
82+
83+
84+
cleanup:
85+
jsmDevDep.stopAndRemoveDeployment()
86+
87+
88+
89+
}
90+
}

0 commit comments

Comments
 (0)