Skip to content

Commit

Permalink
Merge pull request #2 from Liftric/fix/extension-storage
Browse files Browse the repository at this point in the history
Fix: Wrong key for additionals
  • Loading branch information
Ingwersaft authored Jul 6, 2022
2 parents a8614a8 + 933870a commit b675d5d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,20 @@ import org.gradle.api.plugins.ExtensionContainer

abstract class CodeArtifactRepositoryExtension(private val extensionContainer: ExtensionContainer) : CodeArtifact() {
fun additional(name: String, block: CodeArtifact.() -> Unit) {
if (name.isEmpty()) error("empty domain not supported!")
additional[name] = extensionContainer.create(
if (name.isEmpty()) error("Empty domain is not supported!")
store[name] = extensionContainer.create(
"${name}${CodeArtifactRepositoryPlugin.extensionName}",
CodeArtifactRepositoryExtension::class.java,
extensionContainer
)
.apply(block)
.apply {
region.convention(this@CodeArtifactRepositoryExtension.region)
profile.convention(this@CodeArtifactRepositoryExtension.profile)
tokenExpiresIn.convention(this@CodeArtifactRepositoryExtension.tokenExpiresIn)
}
).apply {
block.invoke(this)
region.convention(this@CodeArtifactRepositoryExtension.region)
profile.convention(this@CodeArtifactRepositoryExtension.profile)
tokenExpiresIn.convention(this@CodeArtifactRepositoryExtension.tokenExpiresIn)
}
}

companion object {
internal val additional = mutableMapOf<String, CodeArtifact>()
internal val store = mutableMapOf<String, CodeArtifact>()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,16 @@ abstract class CodeArtifactRepositoryPlugin : Plugin<Any> {
when (scope) {
is Settings -> {
scope.extensions.create(extensionName, CodeArtifactRepositoryExtension::class.java, scope.extensions)
.also {
CodeArtifactRepositoryExtension.store[""] = it
}
}

is Project -> {
scope.extensions.create(extensionName, CodeArtifactRepositoryExtension::class.java, scope.extensions)
.also {
CodeArtifactRepositoryExtension.store[""] = it
}
}

else -> {
Expand Down Expand Up @@ -52,15 +58,14 @@ fun RepositoryHandler.codeArtifact(domain: String, repository: String): MavenArt
* Use CodeArtifact by additional name
*/
fun RepositoryHandler.codeArtifact(additionalName: String, domain: String, repository: String) = maven {
val extensionName = "$additionalName${CodeArtifactRepositoryPlugin.extensionName}"
CodeArtifactRepositoryExtension.additional[extensionName]?.let {
name = listOf(extensionName, domain, repository).joinToString("") { it.capitalized() }
CodeArtifactRepositoryExtension.store[additionalName]?.let {
name = listOf(additionalName, domain, repository).joinToString("") { it.capitalized() }
url = URI.create(it.repositoryEndpointResponse(domain, repository).repositoryEndpoint())
credentials {
username = "aws"
password = it.authorizationTokenResponse(domain).authorizationToken()
}
} ?: throw GradleException("didn't find CodeArtifactRepositoryExtension with the name: $")
} ?: throw GradleException("Couldn't find CodeArtifactRepositoryExtension named '$additionalName'")
}

/**
Expand All @@ -81,8 +86,7 @@ fun codeArtifactUri(domain: String, repository: String, format: String): URI =
* the default extension
*/
fun codeArtifactToken(additionalName: String, domain: String): String {
val extensionName = "$additionalName${CodeArtifactRepositoryPlugin.extensionName}"
val settings = CodeArtifactRepositoryExtension.additional[extensionName]
val settings = CodeArtifactRepositoryExtension.store[additionalName]
?: throw GradleException("didn't find CodeArtifactRepositoryExtension with the name: $")
return settings.authorizationTokenResponse(domain).authorizationToken()
}
Expand All @@ -94,8 +98,7 @@ fun codeArtifactToken(additionalName: String, domain: String): String {
* the default extension
*/
fun codeArtifactUri(additionalName: String, domain: String, repository: String, format: String): URI {
val extensionName = "$additionalName${CodeArtifactRepositoryPlugin.extensionName}"
val settings = CodeArtifactRepositoryExtension.additional[extensionName]
val settings = CodeArtifactRepositoryExtension.store[additionalName]
?: throw GradleException("didn't find CodeArtifactRepositoryExtension with the name: $")
return settings.repositoryEndpointResponse(domain, repository, format).repositoryEndpoint().let { URI.create(it) }
}

0 comments on commit b675d5d

Please sign in to comment.