JitPack-only publishing conflicts with FAIL_ON_PROJECT_REPOS, artifacts are unsigned and not immutable, and upstream shipped two breaking majors 19 days apart. 2.2.1 is the last OkHttp release: 3.0.0 moved to Ktor and 4.x needs Java 21, and SYNC.md's whole auth section is written in OkHttp terms, so 4.x would have invalidated it. A plain JVM module, not an Android library — the tree has no Android imports and keeping it that way keeps the floret-kit extraction a file move. Four changes from upstream, all in dav/PROVENANCE.md: - commons-lang3 dropped (one import, one call). The replacement requires the whole string to be consumed, as DateUtils did: pattern 1 ends in a literal 'GMT', so SimpleDateFormat would match "...GMT+02:00" as a prefix and throw the offset away. - HTTP dates were parsed and formatted in the device's local zone — the GMT in the format string is a quoted literal and timeZone was never set, so every getlastmodified was out by the local UTC offset. Upstream tests dates nowhere. The formatter is also no longer shared and mutable. - dav4jvm#209: permanent redirects now reach the caller via DavResource.permanentLocation, cleared per request so it never describes an earlier one. - xpp3 is compileOnly; Android supplies org.xmlpull.v1. SYNC.md's other claimed defect, "does not follow 303", is not true of 2.2.1 — pinned by a test rather than removed from the notes. CI names :dav:test explicitly; testDebugUnitTest is Android-only and would have run none of the vendored suite. lintDebug added to the per-chunk checks after it caught a literal byte-order mark left by chunk 1.
32 lines
876 B
Kotlin
32 lines
876 B
Kotlin
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
package at.bitfire.dav4jvm.property
|
|
|
|
import at.bitfire.dav4jvm.Property
|
|
import at.bitfire.dav4jvm.PropertyFactory
|
|
import at.bitfire.dav4jvm.XmlUtils
|
|
import org.xmlpull.v1.XmlPullParser
|
|
|
|
data class CreationDate(
|
|
var creationDate: String
|
|
): Property {
|
|
companion object {
|
|
@JvmField
|
|
val NAME = Property.Name(XmlUtils.NS_WEBDAV, "creationdate")
|
|
}
|
|
|
|
object Factory: PropertyFactory {
|
|
override fun getName() = NAME
|
|
|
|
override fun create(parser: XmlPullParser): CreationDate? {
|
|
XmlUtils.readText(parser)?.let { it ->
|
|
return CreationDate(it)
|
|
}
|
|
return null
|
|
}
|
|
}
|
|
} |