Skip to content

Commit

Permalink
🐛 Workaround for crashing with project plugin (KT-37435) (#67)
Browse files Browse the repository at this point in the history
* 🐛 Workaround for crashing with project plugin(KT-37435)

* 🔖 Release 0.0.7

* 🔖 Release 0.0.7

* ⬆️ Upgrade nebula plugins
  • Loading branch information
devkanro authored Aug 31, 2020
1 parent 73ab160 commit b7842f4
Show file tree
Hide file tree
Showing 14 changed files with 158 additions and 94 deletions.
2 changes: 1 addition & 1 deletion .gitmoji-changelogrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
"project": {
"name": "sisyphus",
"description": "Sisyphus is the way how we provide backend services.",
"version": "0.0.6"
"version": "0.0.7"
}
}
166 changes: 101 additions & 65 deletions CHANGELOG.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dependencies/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ dependencies {
api("org.springframework.boot:spring-boot-gradle-plugin:2.3.2.RELEASE")
api("org.jlleitschuh.gradle:ktlint-gradle:9.2.1")
api("com.github.ben-manes:gradle-versions-plugin:0.28.0")
api("com.netflix.nebula:nebula-publishing-plugin:17.3.0")
api("com.netflix.nebula:nebula-publishing-plugin:17.3.2")
api("com.netflix.nebula:gradle-contacts-plugin:5.1.0")
api("com.netflix.nebula:gradle-info-plugin:8.4.0")
api("com.netflix.nebula:gradle-info-plugin:9.1.1")
api("org.gradle.kotlin:plugins:1.3.6")
api("com.gradle.publish:plugin-publish-plugin:0.12.0")
api("org.eclipse.jgit:org.eclipse.jgit:5.8.1.202007141445-r")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ import java.net.URI
import org.gradle.api.Project
import org.gradle.api.artifacts.dsl.RepositoryHandler

internal fun Project.ensurePlugin(vararg ids: String, block: (Project) -> Unit): Boolean {
for (id in ids) {
if (!pluginManager.hasPlugin(id)) {
pluginManager.withPlugin(id) {
block(this)
}
return false
}
}

return true
}

internal inline fun Project.ensurePlugin(id: String, noinline block: (Project) -> Unit, returnBlock: () -> Unit) {
if (!pluginManager.hasPlugin(id)) {
pluginManager.withPlugin(id) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ import org.gradle.api.Project

class JavaBaseProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("java-base", ::apply) {
return
target.ensurePlugin("java-base") {
apply(it)
}.also {
if (!it) return
}

val extension = target.extensions.getByType(SisyphusExtension::class.java)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@ import org.gradle.api.Project

class JavaLibraryProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("java-library", ::apply) {
return
target.ensurePlugin("java-library") {
apply(it)
}.also {
if (!it) return
}

target.tryApplyPluginClass("nebula.plugin.publishing.maven.MavenPublishPlugin")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ import org.gradle.api.publish.maven.MavenPublication

class JavaPlatformProjectPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("java-platform", ::apply) {
return
target.ensurePlugin("java-platform") {
apply(it)
}.also {
if (!it) return
}

target.tryApplyPluginClass("nebula.plugin.publishing.maven.MavenPublishPlugin")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ import org.gradle.api.Project

class ProjectContactsPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("nebula.maven-base-publish", ::apply) {
return
target.ensurePlugin("nebula.maven-base-publish") {
apply(it)
}.also {
if (!it) return
}

try {
Class.forName("nebula.plugin.contacts.ContactsExtension")
} catch (ex: ClassNotFoundException) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@ import org.gradle.api.publish.maven.MavenPublication

class ProjectLicensePlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("nebula.maven-base-publish", ::apply) {
return
}
target.ensurePlugin("nebula.info-scm", ::apply) {
return
target.ensurePlugin("nebula.maven-base-publish", "nebula.info-scm") {
apply(it)
}.also {
if (!it) return
}

val file = detectLicenseFile(target) ?: return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import org.gradle.api.publish.PublishingExtension

class ProjectPublishingPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("nebula.maven-base-publish", ::apply) {
return
target.ensurePlugin("nebula.maven-base-publish") {
apply(it)
}.also {
if (!it) return
}

target.tryApplyPluginClass("nebula.plugin.info.InfoPlugin")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import org.gradle.plugins.signing.SigningPlugin

class ProjectSigningPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("nebula.maven-base-publish", ::apply) {
return
target.ensurePlugin("nebula.maven-base-publish") {
apply(it)
}.also {
if (!it) return
}

val sisyphus = target.extensions.getByType(SisyphusExtension::class.java)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@ import org.gradle.api.tasks.SourceSetContainer

class SisyphusAntlrKotlinPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("org.gradle.antlr", ::apply) {
return
}
target.ensurePlugin("kotlin", ::apply) {
return
target.ensurePlugin("org.gradle.antlr", "kotlin") {
apply(it)
}.also {
if (!it) return
}

val sourceSets = target.extensions.getByType(SourceSetContainer::class.java)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import org.gradle.api.tasks.bundling.AbstractArchiveTask

class SisyphusDockerPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("application", ::apply) {
return
target.ensurePlugin("application") {
apply(it)
}.also {
if (!it) return
}

val dockerFile = target.projectDir.resolve("Dockerfile")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import org.jlleitschuh.gradle.ktlint.reporter.ReporterType

class SisyphusKtlintPlugin : Plugin<Project> {
override fun apply(target: Project) {
target.ensurePlugin("org.jlleitschuh.gradle.ktlint", ::apply) {
return
target.ensurePlugin("org.jlleitschuh.gradle.ktlint") {
apply(it)
}.also {
if (!it) return
}

val extension = target.extensions.getByType(KtlintExtension::class.java)
Expand Down

0 comments on commit b7842f4

Please sign in to comment.