Skip to content

Commit 55d197c

Browse files
committed
Merge branch 'dev' into master
# Conflicts: # gradle.properties
2 parents ca8627e + 1e092de commit 55d197c

File tree

59 files changed

+867
-1036
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+867
-1036
lines changed

.idea/codeStyles/Project.xml

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

+20-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/kotlinc.xml

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ allprojects {
4747

4848
maven("https://kotlin.bintray.com/kotlinx")
4949

50-
maven("https://dl.bintray.com/jetbrains/spek")
5150
maven("https://dl.bintray.com/kotlin/kotlin-eap")
5251
}
5352
/*

buildSrc/build.gradle.kts

+5-2
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,15 @@ run {
3737
}
3838
}
3939

40+
kotlin {
41+
42+
}
43+
4044
val bintrayVersion: String by project
41-
val kotlin_version: String by project
4245

4346
dependencies {
4447
implementation("com.jfrog.bintray.gradle:gradle-bintray-plugin:$bintrayVersion")
45-
compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
48+
compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin:$embeddedKotlinVersion")
4649
}
4750

4851
configurations.all {

core/build.gradle.kts

+28-22
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ kotlin {
6969
tasks.named<KotlinCompile>(compileKotlinTaskName) {
7070
kotlinOptions {
7171
jvmTarget = "1.8"
72-
freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn")
7372
}
7473
}
7574
tasks.named<Test>("${target.name}Test") {
@@ -82,7 +81,6 @@ kotlin {
8281
attributes("Automatic-Module-Name" to moduleName)
8382
}
8483
}
85-
// tasks.named<Jar>()
8684
}
8785
}
8886
jvm("android") {
@@ -94,7 +92,6 @@ kotlin {
9492
compilations.all {
9593
tasks.getByName<KotlinCompile>(compileKotlinTaskName).kotlinOptions {
9694
jvmTarget = "1.6"
97-
freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn")
9895
}
9996
tasks.getByName<Test>("${target.name}Test") {
10097
useJUnitPlatform ()
@@ -103,7 +100,7 @@ kotlin {
103100
cleanTestTask.dependsOn(tasks.getByName("clean${target.name[0].toUpperCase()}${target.name.substring(1)}Test"))
104101
}
105102
}
106-
js {
103+
js(BOTH) {
107104
browser()
108105
compilations.all {
109106
tasks.getByName<KotlinJsCompile>(compileKotlinTaskName).kotlinOptions {
@@ -114,48 +111,49 @@ kotlin {
114111
metaInfo = true
115112
moduleKind = "umd"
116113
main = "call"
117-
freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn")
118114
}
119115
}
120116
}
121117
}
122118

123119
targets.forEach { target ->
120+
target.compilations.all {
121+
kotlinOptions {
122+
languageVersion = "1.4"
123+
apiVersion = "1.4"
124+
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
125+
}
126+
}
127+
124128
target.mavenPublication {
125129
groupId = "net.devrieze"
126-
artifactId = "xmlutil-${target.targetName}"
130+
artifactId = artifactId.replace("core-", "xmlutil-")
127131
version = xmlutil_version
128132
}
129133
}
130134

131135
sourceSets {
132136
val commonMain by getting {
133137
dependencies {
134-
implementation(kotlin("stdlib"))
135-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serializationVersion")
136-
implementation(project(":serialutil"))
138+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$serializationVersion")
137139
}
138140
}
141+
139142
val commonTest by getting {
140143
dependencies {
141144
implementation(kotlin("test"))
142145
implementation(kotlin("test-annotations-common"))
143-
// implementation("org.spekframework.spek2:spek-dsl-common:$spek2Version")
144146
}
145147
}
148+
146149
val javaShared by creating {
147150
dependsOn(commonMain)
148-
dependencies {
149-
implementation(kotlin("stdlib-jdk7"))
150-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion")
151-
}
152151
}
152+
153153
val jvmMain by getting {
154154
dependsOn(javaShared)
155-
dependencies {
156-
implementation(kotlin("stdlib-jdk7"))
157-
}
158155
}
156+
159157
val jvmTest by getting {
160158
dependencies {
161159
dependsOn(commonTest)
@@ -166,18 +164,21 @@ kotlin {
166164
runtimeOnly("com.fasterxml.woodstox:woodstox-core:5.0.3")
167165
}
168166
}
167+
169168
val androidMain by getting {
170169
dependsOn(javaShared)
170+
171171
dependencies {
172172
compileOnly("net.sf.kxml:kxml2:2.3.0")
173173
}
174174
}
175+
175176
val androidTest by getting {
176177
dependencies {
177178
dependsOn(commonTest)
179+
178180
implementation(kotlin("test-junit5"))
179181
implementation("org.junit.jupiter:junit-jupiter-api:$jupiterVersion")
180-
implementation(kotlin("stdlib-jdk8"))
181182

182183
runtimeOnly("org.junit.jupiter:junit-jupiter-engine:$jupiterVersion")
183184
runtimeOnly("net.sf.kxml:kxml2:2.3.0")
@@ -186,11 +187,8 @@ kotlin {
186187

187188
val jsMain by getting {
188189
dependsOn(commonMain)
189-
dependencies {
190-
implementation("org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version")
191-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serializationVersion")
192-
}
193190
}
191+
194192
val jsTest by getting {
195193
dependsOn(commonTest)
196194
dependencies {
@@ -199,6 +197,14 @@ kotlin {
199197
}
200198

201199
}
200+
sourceSets.all {
201+
languageSettings.apply {
202+
progressiveMode = true
203+
apiVersion="1.4"
204+
languageVersion="1.4"
205+
useExperimentalAnnotation("kotlin.RequiresOptIn")
206+
}
207+
}
202208

203209
}
204210

core/src/androidMain/kotlin/nl/adaptivity/xmlutil/AndroidXmlWriter.kt

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package nl.adaptivity.xmlutil
2222

23+
import nl.adaptivity.xmlutil.core.XmlUtilInternal
2324
import nl.adaptivity.xmlutil.core.impl.BetterXmlSerializer
2425
import nl.adaptivity.xmlutil.core.impl.NamespaceHolder
2526
import nl.adaptivity.xmlutil.core.impl.PlatformXmlWriterBase
@@ -37,6 +38,7 @@ actual typealias PlatformXmlWriter = AndroidXmlWriter
3738
* An android implementation of XmlWriter.
3839
* Created by pdvrieze on 15/11/15.
3940
*/
41+
@OptIn(XmlUtilInternal::class)
4042
class AndroidXmlWriter : PlatformXmlWriterBase, XmlWriter {
4143

4244
private val namespaceHolder = NamespaceHolder()

core/src/commonMain/kotlin/nl/adaptivity/xmlutil/Namespace.kt

+16-10
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@
2020

2121
package nl.adaptivity.xmlutil
2222

23-
import kotlinx.serialization.*
23+
import kotlinx.serialization.ExperimentalSerializationApi
24+
import kotlinx.serialization.KSerializer
25+
import kotlinx.serialization.Serializer
2426
import kotlinx.serialization.builtins.serializer
25-
import nl.adaptivity.serialutil.decodeElements
26-
import kotlinx.serialization.decodeStructure
27-
import nl.adaptivity.serialutil.simpleSerialClassDesc
28-
import kotlinx.serialization.encodeStructure
27+
import kotlinx.serialization.descriptors.SerialDescriptor
28+
import kotlinx.serialization.descriptors.buildClassSerialDescriptor
29+
import kotlinx.serialization.descriptors.serialDescriptor
30+
import kotlinx.serialization.encoding.*
2931

30-
//@Serializable
3132
interface Namespace {
3233

3334
/**
@@ -45,20 +46,25 @@ interface Namespace {
4546

4647
operator fun component2() = namespaceURI
4748

48-
@Serializer(forClass = Namespace::class)
4949
companion object : KSerializer<Namespace> {
50-
override val descriptor: SerialDescriptor =
51-
simpleSerialClassDesc<Namespace>("prefix" to String.serializer(), "namespaceURI" to String.serializer())
50+
override val descriptor: SerialDescriptor = buildClassSerialDescriptor(Namespace::class.simpleName!!) {
51+
element("prefix", serialDescriptor<String>())
52+
element("namespaceURI", serialDescriptor<String>())
53+
}
5254

5355
override fun deserialize(decoder: Decoder): Namespace {
5456
lateinit var prefix: String
5557
lateinit var namespaceUri: String
5658
decoder.decodeStructure(descriptor) {
57-
decodeElements(this) {
59+
var index = decodeElementIndex(descriptor)
60+
while (index!=CompositeDecoder.DECODE_DONE) {
61+
val it = index
5862
when (it) {
5963
0 -> prefix = decodeStringElement(descriptor, it)
6064
1 -> namespaceUri = decodeStringElement(descriptor, it)
6165
}
66+
67+
index = decodeElementIndex(descriptor)
6268
}
6369
}
6470
return XmlEvent.NamespaceImpl(prefix, namespaceUri)

core/src/commonMain/kotlin/nl/adaptivity/xmlutil/SimpleNamespaceContext.kt

+15-11
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,19 @@
2121
package nl.adaptivity.xmlutil
2222

2323
import kotlinx.serialization.*
24-
import kotlinx.serialization.builtins.list
25-
import nl.adaptivity.serialutil.withName
24+
import kotlinx.serialization.builtins.ListSerializer
25+
import kotlinx.serialization.descriptors.SerialDescriptor
26+
import kotlinx.serialization.encoding.Decoder
27+
import kotlinx.serialization.encoding.Encoder
2628
import nl.adaptivity.xmlutil.XMLConstants.DEFAULT_NS_PREFIX
2729
import nl.adaptivity.xmlutil.XMLConstants.NULL_NS_URI
2830
import nl.adaptivity.xmlutil.XMLConstants.XMLNS_ATTRIBUTE
2931
import nl.adaptivity.xmlutil.XMLConstants.XMLNS_ATTRIBUTE_NS_URI
3032
import nl.adaptivity.xmlutil.XMLConstants.XML_NS_PREFIX
3133
import nl.adaptivity.xmlutil.XMLConstants.XML_NS_URI
34+
import nl.adaptivity.xmlutil.core.XmlUtilInternal
3235
import nl.adaptivity.xmlutil.core.impl.multiplatform.name
36+
import kotlin.collections.set
3337
import kotlin.jvm.JvmName
3438

3539

@@ -38,13 +42,12 @@ import kotlin.jvm.JvmName
3842
* Created by pdvrieze on 24/08/15.
3943
*/
4044
@Serializable
45+
@OptIn(XmlUtilInternal::class)
4146
open class SimpleNamespaceContext internal constructor(val buffer: Array<out String>) : IterableNamespaceContext {
4247

43-
@Transient
4448
val indices: IntRange
4549
get() = 0..(size - 1)
4650

47-
@Transient
4851
@get:JvmName("size")
4952
val size: Int
5053
get() = buffer.size / 2
@@ -211,13 +214,16 @@ open class SimpleNamespaceContext internal constructor(val buffer: Array<out Str
211214
return buffer.contentHashCode()
212215
}
213216

214-
@Serializer(forClass = SimpleNamespaceContext::class)
217+
@ExperimentalSerializationApi
218+
private class RenameDesc(val delegate: SerialDescriptor, override val serialName: String) : SerialDescriptor by delegate
219+
220+
215221
companion object : KSerializer<SimpleNamespaceContext> {
216222

217-
private val actualSerializer = Namespace.list
223+
private val actualSerializer = ListSerializer(Namespace)
218224

219-
override val descriptor: SerialDescriptor =
220-
actualSerializer.descriptor.withName(SimpleNamespaceContext::class.name)
225+
@ExperimentalSerializationApi
226+
override val descriptor: SerialDescriptor = RenameDesc(actualSerializer.descriptor, SimpleNamespaceContext::class.name)
221227

222228
fun from(originalNSContext: Iterable<Namespace>): SimpleNamespaceContext = when (originalNSContext) {
223229
is SimpleNamespaceContext -> originalNSContext
@@ -227,9 +233,7 @@ open class SimpleNamespaceContext internal constructor(val buffer: Array<out Str
227233
}
228234

229235
override fun deserialize(decoder: Decoder): SimpleNamespaceContext {
230-
return SimpleNamespaceContext(
231-
actualSerializer.deserialize(decoder)
232-
)
236+
return SimpleNamespaceContext(actualSerializer.deserialize(decoder))
233237
}
234238

235239
override fun serialize(encoder: Encoder, value: SimpleNamespaceContext) {

core/src/commonMain/kotlin/nl/adaptivity/xmlutil/XmlBufferedReader.kt

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package nl.adaptivity.xmlutil
2222

23+
import nl.adaptivity.xmlutil.core.XmlUtilInternal
2324
import nl.adaptivity.xmlutil.core.impl.multiplatform.SimpleQueue
2425
import nl.adaptivity.xmlutil.core.impl.multiplatform.addAll
2526
import nl.adaptivity.xmlutil.core.impl.multiplatform.isNotEmpty
@@ -29,6 +30,7 @@ import nl.adaptivity.xmlutil.core.impl.multiplatform.isNotEmpty
2930
* this class does not do any validation of the xml. If injecting/removing elements into/from the buffer you can create
3031
* invalid XML.
3132
*/
33+
@OptIn(XmlUtilInternal::class)
3234
open class XmlBufferedReader constructor(delegate: XmlReader) : XmlBufferedReaderBase(delegate) {
3335

3436
override val namespaceContext: NamespaceContext

core/src/commonMain/kotlin/nl/adaptivity/xmlutil/XmlDeserializable.kt

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
package nl.adaptivity.xmlutil
2424

2525
import kotlinx.serialization.Transient
26+
import nl.adaptivity.xmlutil.core.XmlUtilInternal
2627
import nl.adaptivity.xmlutil.core.impl.multiplatform.assert
2728
import nl.adaptivity.xmlutil.util.ExtXmlDeserializable
2829
import nl.adaptivity.xmlutil.util.SimpleXmlDeserializable
@@ -34,6 +35,7 @@ import kotlin.jvm.JvmName
3435
* Created by pdvrieze on 04/11/15.
3536
*/
3637
@Deprecated("Use kotlinx.serialization instead")
38+
@OptIn(XmlUtilInternal::class)
3739
interface XmlDeserializable {
3840

3941
/**
@@ -63,6 +65,7 @@ interface XmlDeserializable {
6365

6466
@Suppress("DEPRECATION")
6567
@Deprecated("Use kotlinx.serialization instead")
68+
@OptIn(XmlUtilInternal::class)
6669
fun <T : XmlDeserializable> T.deserializeHelper(reader: XmlReader): T {
6770
reader.skipPreamble()
6871

core/src/commonMain/kotlin/nl/adaptivity/xmlutil/XmlWriter.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,27 @@
1818
* under the License.
1919
*/
2020
@file:JvmName("XmlWriterUtilCore")
21+
@file:OptIn(XmlUtilInternal::class)
2122

2223
package nl.adaptivity.xmlutil
2324

2425
import nl.adaptivity.xmlutil.XMLConstants.DEFAULT_NS_PREFIX
2526
import nl.adaptivity.xmlutil.XMLConstants.NULL_NS_URI
27+
import nl.adaptivity.xmlutil.core.XmlUtilInternal
2628
import nl.adaptivity.xmlutil.core.impl.multiplatform.Closeable
2729
import nl.adaptivity.xmlutil.core.impl.multiplatform.assert
2830
import nl.adaptivity.xmlutil.core.internal.countLength
2931
import kotlin.jvm.JvmName
3032
import kotlin.jvm.JvmOverloads
3133

3234
/**
33-
* Created by pdvrieze on 15/11/15.
35+
* Interface representing the (wrapper) type that allows generating xml documents.
3436
*/
3537
interface XmlWriter : Closeable {
3638

39+
/**
40+
* The current depth into the tree.
41+
*/
3742
val depth: Int
3843

3944
/** The indentation string to use for autoindenting the output */

0 commit comments

Comments
 (0)