Skip to content

Commit f81178b

Browse files
authored
Merge pull request #98 from Cognifide/instance-jar-name
Instance JAR file name constraint relaxed
2 parents 32b1971 + 1f2f661 commit f81178b

6 files changed

Lines changed: 47 additions & 17 deletions

File tree

gradle/wrapper/gradle-wrapper.jar

-402 Bytes
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-all.zip

src/main/kotlin/com/cognifide/gradle/aem/deploy/SyncTask.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ abstract class SyncTask : DefaultTask(), AemTask {
4646
}
4747

4848
protected fun awaitStableInstances() {
49-
InstanceActions.awaitStable(project, filterInstances())
49+
InstanceActions(project).awaitStable(filterInstances())
5050
}
5151

5252
protected fun awaitStableLocalInstances() {
53-
InstanceActions.awaitStable(project, Instance.locals(project))
53+
InstanceActions(project).awaitStable(Instance.locals(project))
5454
}
5555

5656
}

src/main/kotlin/com/cognifide/gradle/aem/instance/InstanceActions.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ import com.cognifide.gradle.aem.internal.Formats
66
import com.cognifide.gradle.aem.internal.ProgressLogger
77
import org.gradle.api.Project
88

9-
object InstanceActions {
9+
class InstanceActions(val project: Project) {
1010

11-
fun awaitStable(project: Project, instances: List<Instance> = Instance.locals(project)) {
12-
val config = AemConfig.of(project)
13-
val logger = project.logger
11+
val config = AemConfig.of(project)
1412

13+
val logger = project.logger
14+
15+
fun awaitStable(instances: List<Instance> = Instance.locals(project)) {
1516
val progressLogger = ProgressLogger(project, "Awaiting stable instance(s)")
1617

1718
progressLogger.started()

src/main/kotlin/com/cognifide/gradle/aem/instance/LocalHandle.kt

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ package com.cognifide.gradle.aem.instance
33
import com.cognifide.gradle.aem.AemConfig
44
import com.cognifide.gradle.aem.AemException
55
import com.cognifide.gradle.aem.AemInstancePlugin
6-
import com.cognifide.gradle.aem.internal.file.FileOperations
76
import com.cognifide.gradle.aem.internal.Formats
7+
import com.cognifide.gradle.aem.internal.Patterns
88
import com.cognifide.gradle.aem.internal.ProgressLogger
99
import com.cognifide.gradle.aem.internal.PropertyParser
10+
import com.cognifide.gradle.aem.internal.file.FileOperations
1011
import org.apache.commons.io.FileUtils
1112
import org.gradle.api.Project
1213
import org.gradle.api.logging.Logger
@@ -19,6 +20,13 @@ class LocalHandle(val project: Project, val sync: InstanceSync) {
1920

2021
companion object {
2122
val JAR_STATIC_FILES_PATH = "static/"
23+
24+
val JAR_NAME_PATTERNS = listOf(
25+
"*aem-quickstart*.jar",
26+
"*cq-quickstart*.jar",
27+
"*quickstart*.jar",
28+
"*.jar"
29+
)
2230
}
2331

2432
class Script(val wrapper: File, val bin: File, val command: List<String>) {
@@ -34,9 +42,7 @@ class LocalHandle(val project: Project, val sync: InstanceSync) {
3442

3543
val dir = File("${config.instancesPath}/${instance.name}")
3644

37-
val jar: File by lazy {
38-
FileOperations.find(dir, listOf("cq-quickstart*.jar")) ?: File(dir, "cq-quickstart.jar")
39-
}
45+
val jar = File(dir, "aem-quickstart.jar")
4046

4147
val lock = File(dir, "local-handle.lock")
4248

@@ -58,14 +64,13 @@ class LocalHandle(val project: Project, val sync: InstanceSync) {
5864
}
5965
}
6066

61-
fun create(files: List<File>) {
67+
fun create(resolvedFiles: List<File>) {
6268
cleanDir(true)
6369

6470
logger.info("Creating instance at path '${dir.absolutePath}'")
6571

66-
logger.info("Copying resolved instance files: ${files.map { it.absolutePath }}")
67-
GFileUtils.mkdirs(dir)
68-
files.forEach { FileUtils.copyFileToDirectory(it, dir) }
72+
logger.info("Copying resolved instance files: $resolvedFiles")
73+
copyFiles(resolvedFiles)
6974

7075
logger.info("Validating instance files")
7176
validateFiles()
@@ -97,13 +102,32 @@ class LocalHandle(val project: Project, val sync: InstanceSync) {
97102
logger.info("Created instance with success")
98103
}
99104

100-
fun validateFiles() {
105+
private fun copyFiles(resolvedFiles: List<File>) {
106+
GFileUtils.mkdirs(dir)
107+
val files = resolvedFiles.map {
108+
FileUtils.copyFileToDirectory(it, dir)
109+
File(dir, it.name)
110+
}
111+
findJar(files)?.let { FileUtils.moveFile(it, jar) }
112+
}
113+
114+
private fun findJar(files: List<File>): File? {
115+
JAR_NAME_PATTERNS.forEach { pattern ->
116+
files.asSequence()
117+
.filter { Patterns.wildcard(it.name, pattern) }
118+
.forEach { return it }
119+
}
120+
121+
return null
122+
}
123+
124+
private fun validateFiles() {
101125
if (!jar.exists()) {
102126
throw AemException("Instance JAR file not found at path: ${jar.absolutePath}. Is instance JAR URL configured?")
103127
}
104128

105129
if (!license.exists()) {
106-
throw AemException("License file not found at path: ${license.absolutePath}. Is instance license URL configured?" )
130+
throw AemException("License file not found at path: ${license.absolutePath}. Is instance license URL configured?")
107131
}
108132
}
109133

@@ -117,6 +141,7 @@ class LocalHandle(val project: Project, val sync: InstanceSync) {
117141
// Ensure that 'logs' directory exists
118142
GFileUtils.mkdirs(File(staticDir, "logs"))
119143
}
144+
120145
private fun extractStaticFiles() {
121146
val progressLogger = ProgressLogger(project, "Extracting static files from JAR '${jar.absolutePath}' to directory: $staticDir")
122147
progressLogger.started()

src/main/kotlin/com/cognifide/gradle/aem/internal/file/FileOperations.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ object FileOperations {
8181
).map { it(pathOrFileName) }.firstOrNull { it.exists() }
8282
}
8383

84+
fun find(dir: File, pattern: String): File? {
85+
return find(dir, listOf(pattern))
86+
}
87+
8488
fun find(dir: File, patterns: List<String>): File? {
8589
var result: File? = null
8690
val files = dir.listFiles({ _, name -> Patterns.wildcard(name, patterns) })

0 commit comments

Comments
 (0)