Skip to content

Commit 88c0c16

Browse files
authored
add versioned plugin (#75)
1 parent e1d08f5 commit 88c0c16

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

core/src/main/java/com/segment/analytics/kotlin/core/platform/Plugin.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ interface Plugin {
4444
}
4545
}
4646

47+
interface VersionedPlugin {
48+
fun version(): String
49+
}
50+
4751
// Advanced plugin that can act on specific event payloads
4852
interface EventPlugin : Plugin {
4953
fun track(payload: TrackEvent): BaseEvent? {

core/src/main/java/com/segment/analytics/kotlin/core/platform/plugins/SegmentDestination.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,11 @@
11
package com.segment.analytics.kotlin.core.platform.plugins
22

3-
import com.segment.analytics.kotlin.core.AliasEvent
4-
import com.segment.analytics.kotlin.core.Analytics
5-
import com.segment.analytics.kotlin.core.BaseEvent
3+
import com.segment.analytics.kotlin.core.*
64
import com.segment.analytics.kotlin.core.Constants.DEFAULT_API_HOST
7-
import com.segment.analytics.kotlin.core.GroupEvent
8-
import com.segment.analytics.kotlin.core.IdentifyEvent
9-
import com.segment.analytics.kotlin.core.ScreenEvent
10-
import com.segment.analytics.kotlin.core.Settings
11-
import com.segment.analytics.kotlin.core.TrackEvent
12-
import com.segment.analytics.kotlin.core.emptyJsonObject
135
import com.segment.analytics.kotlin.core.platform.DestinationPlugin
146
import com.segment.analytics.kotlin.core.platform.EventPipeline
157
import com.segment.analytics.kotlin.core.platform.Plugin
8+
import com.segment.analytics.kotlin.core.platform.VersionedPlugin
169
import com.segment.analytics.kotlin.core.platform.plugins.logger.log
1710
import com.segment.analytics.kotlin.core.utilities.EncodeDefaultsJson
1811
import kotlinx.serialization.Serializable
@@ -35,7 +28,7 @@ data class SegmentSettings(
3528
* - We store events into a file with the batch api format (@link {https://segment.com/docs/connections/sources/catalog/libraries/server/http-api/#batch})
3629
* - We upload events on a dedicated thread using the batch api
3730
*/
38-
class SegmentDestination : DestinationPlugin() {
31+
class SegmentDestination : DestinationPlugin(), VersionedPlugin {
3932

4033
private lateinit var pipeline: EventPipeline
4134

@@ -111,4 +104,8 @@ class SegmentDestination : DestinationPlugin() {
111104
override fun flush() {
112105
pipeline.flush()
113106
}
107+
108+
override fun version(): String {
109+
return Constants.LIBRARY_VERSION
110+
}
114111
}

0 commit comments

Comments
 (0)