From 7f95dcf02cbb27bd9e26e9675bdcc8d6e315ee3b Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 22 Jun 2019 15:33:33 +0300 Subject: [PATCH] Build fix for module deploy --- .../src/main/kotlin/ScientifikMPPlugin.kt | 23 +++++++++++++++++++ .../main/kotlin/ScientifikPublishPlugin.kt | 15 ++++-------- dataforge-context/build.gradle.kts | 3 --- .../kotlin/hep/dataforge/io/Binary.kt | 1 + .../hep/dataforge/io/TaggedEnvelopeFormat.kt | 1 + dataforge-meta/build.gradle.kts | 4 ---- .../kotlin/hep/dataforge/meta/Meta.kt | 2 +- .../kotlin/hep/dataforge/meta/Styled.kt | 2 +- .../kotlin/hep/dataforge/meta/DynamicMeta.kt | 8 +++---- 9 files changed, 36 insertions(+), 23 deletions(-) diff --git a/buildSrc/src/main/kotlin/ScientifikMPPlugin.kt b/buildSrc/src/main/kotlin/ScientifikMPPlugin.kt index 4cc366c7..0aef37be 100644 --- a/buildSrc/src/main/kotlin/ScientifikMPPlugin.kt +++ b/buildSrc/src/main/kotlin/ScientifikMPPlugin.kt @@ -1,10 +1,15 @@ +import com.jfrog.bintray.gradle.tasks.BintrayUploadTask import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.publish.PublishingExtension +import org.gradle.api.publish.maven.MavenPublication +import org.gradle.api.publish.maven.internal.artifact.FileBasedMavenArtifact import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.getValue import org.gradle.kotlin.dsl.getting import org.gradle.kotlin.dsl.invoke import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask open class ScientifikMPPlugin : Plugin { override fun apply(project: Project) { @@ -72,5 +77,23 @@ open class ScientifikMPPlugin : Plugin { } } + + project.tasks.filter { it is ArtifactoryTask || it is BintrayUploadTask }.forEach { + it.doFirst { + project.configure { + publications + .filterIsInstance() + .forEach { publication -> + val moduleFile = project.buildDir.resolve("publications/${publication.name}/module.json") + if (moduleFile.exists()) { + publication.artifact(object : FileBasedMavenArtifact(moduleFile) { + override fun getDefaultExtension() = "module" + }) + } + } + } + } + } + } } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/ScientifikPublishPlugin.kt b/buildSrc/src/main/kotlin/ScientifikPublishPlugin.kt index fe0631bf..81e56ad6 100644 --- a/buildSrc/src/main/kotlin/ScientifikPublishPlugin.kt +++ b/buildSrc/src/main/kotlin/ScientifikPublishPlugin.kt @@ -1,4 +1,5 @@ import com.jfrog.bintray.gradle.BintrayExtension +import com.jfrog.bintray.gradle.tasks.BintrayUploadTask import groovy.lang.GroovyObject import org.gradle.api.Plugin import org.gradle.api.Project @@ -14,6 +15,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jfrog.gradle.plugin.artifactory.dsl.ArtifactoryPluginConvention import org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig import org.jfrog.gradle.plugin.artifactory.dsl.ResolverConfig +import org.jfrog.gradle.plugin.artifactory.task.ArtifactoryTask open class ScientifikExtension { @@ -65,21 +67,14 @@ open class ScientifikPublishPlugin : Plugin { url.set(extension.vcs) } } - - val moduleFile = project.buildDir.resolve("publications/${publication.name}/module.json") - if (moduleFile.exists()) { - publication.artifact(object : FileBasedMavenArtifact(moduleFile) { - override fun getDefaultExtension() = "module" - }) - } } } - if(extension.dokka){ + if (extension.dokka) { project.plugins.apply("org.jetbrains.dokka") project.afterEvaluate { - extensions.findByType()?.apply{ + extensions.findByType()?.apply { val dokka by tasks.getting(DokkaTask::class) { outputFormat = "html" outputDirectory = "$buildDir/javadoc" @@ -122,7 +117,7 @@ open class ScientifikPublishPlugin : Plugin { } - extensions.findByType()?.apply{ + extensions.findByType()?.apply { val dokka by tasks.getting(DokkaTask::class) { outputFormat = "html" outputDirectory = "$buildDir/javadoc" diff --git a/dataforge-context/build.gradle.kts b/dataforge-context/build.gradle.kts index 75c74910..a4f8faba 100644 --- a/dataforge-context/build.gradle.kts +++ b/dataforge-context/build.gradle.kts @@ -7,9 +7,6 @@ description = "Context and provider definitions" val coroutinesVersion: String = Versions.coroutinesVersion kotlin { - jvm() - js() - sourceSets { val commonMain by getting { dependencies { diff --git a/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/Binary.kt b/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/Binary.kt index a0374968..75ef0422 100644 --- a/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/Binary.kt +++ b/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/Binary.kt @@ -7,6 +7,7 @@ import kotlinx.io.core.readBytes /** * A source of binary data */ + interface Binary { /** * The size of binary in bytes diff --git a/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/TaggedEnvelopeFormat.kt b/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/TaggedEnvelopeFormat.kt index ccb6e382..a993620e 100644 --- a/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/TaggedEnvelopeFormat.kt +++ b/dataforge-io/src/commonMain/kotlin/hep/dataforge/io/TaggedEnvelopeFormat.kt @@ -2,6 +2,7 @@ package hep.dataforge.io import kotlinx.io.core.* +@ExperimentalUnsignedTypes class TaggedEnvelopeFormat( val metaFormats: Collection, val outputMetaFormat: MetaFormat = metaFormats.first() diff --git a/dataforge-meta/build.gradle.kts b/dataforge-meta/build.gradle.kts index 40ddbb17..859c2ed6 100644 --- a/dataforge-meta/build.gradle.kts +++ b/dataforge-meta/build.gradle.kts @@ -4,7 +4,3 @@ plugins { description = "Meta definition and basic operations on meta" -kotlin { - jvm() - js() -} \ No newline at end of file diff --git a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Meta.kt b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Meta.kt index 81b31175..153beab1 100644 --- a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Meta.kt +++ b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Meta.kt @@ -197,7 +197,7 @@ fun Meta.seal(): SealedMeta = this as? SealedMeta ?: SealedMeta(items.mapValues @Suppress("UNCHECKED_CAST") fun MetaItem<*>.seal(): MetaItem = when (this) { - is ValueItem -> this as MetaItem + is ValueItem -> this is NodeItem -> NodeItem(node.seal()) } diff --git a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Styled.kt b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Styled.kt index bea41c5d..c34d933f 100644 --- a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Styled.kt +++ b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Styled.kt @@ -26,7 +26,7 @@ class Styled(val base: Meta, val style: Config = Config().empty()) : AbstractMut is MetaItem.NodeItem -> MetaItem.NodeItem(Styled(style.empty(), styleValue.node)) is MetaItem.ValueItem -> styleValue } - is MetaItem.ValueItem -> value as MetaItem + is MetaItem.ValueItem -> value is MetaItem.NodeItem -> MetaItem.NodeItem( Styled(value.node, styleValue?.node ?: Config.empty()) ) diff --git a/dataforge-meta/src/jsMain/kotlin/hep/dataforge/meta/DynamicMeta.kt b/dataforge-meta/src/jsMain/kotlin/hep/dataforge/meta/DynamicMeta.kt index 12b8db9e..57375125 100644 --- a/dataforge-meta/src/jsMain/kotlin/hep/dataforge/meta/DynamicMeta.kt +++ b/dataforge-meta/src/jsMain/kotlin/hep/dataforge/meta/DynamicMeta.kt @@ -37,11 +37,11 @@ class DynamicMeta(val obj: dynamic) : Meta { @Suppress("UNCHECKED_CAST") private fun asItem(obj: dynamic): MetaItem? { - if (obj == null) return MetaItem.ValueItem(Null) as MetaItem + if (obj == null) return MetaItem.ValueItem(Null) return when (jsTypeOf(obj as? Any)) { - "boolean" -> MetaItem.ValueItem(Value.of(obj as Boolean)) as MetaItem - "number" -> MetaItem.ValueItem(Value.of(obj as Number)) as MetaItem - "string" -> MetaItem.ValueItem(Value.of(obj as String)) as MetaItem + "boolean" -> MetaItem.ValueItem(Value.of(obj as Boolean)) + "number" -> MetaItem.ValueItem(Value.of(obj as Number)) + "string" -> MetaItem.ValueItem(Value.of(obj as String)) "object" -> MetaItem.NodeItem(DynamicMeta(obj)) else -> null }