From 4c02add6f3ba7b0604a12c63867c23fbe9c26404 Mon Sep 17 00:00:00 2001 From: Werner Date: Tue, 14 Jun 2022 20:46:34 -0300 Subject: [PATCH] Migrate bindings to scala --- gradle/wrapper/gradle-wrapper.properties | 5 +- library/build.gradle | 21 ++-- .../main/kotlin/com/tribufu/sdk/TribuFu.kt | 13 --- .../kotlin/com/tribufu/sdk/models/Email.kt | 10 -- .../kotlin/com/tribufu/sdk/models/User.kt | 65 ----------- .../main/scala/com/tribufu/sdk/Library.scala | 102 ++++++++++++++++++ .../test/kotlin/library/kotlin/TribuFuTest.kt | 13 --- .../scala/library/kotlin/LibrarySuite.scala | 15 +++ settings.gradle | 2 +- 9 files changed, 131 insertions(+), 115 deletions(-) delete mode 100644 library/src/main/kotlin/com/tribufu/sdk/TribuFu.kt delete mode 100644 library/src/main/kotlin/com/tribufu/sdk/models/Email.kt delete mode 100644 library/src/main/kotlin/com/tribufu/sdk/models/User.kt create mode 100644 library/src/main/scala/com/tribufu/sdk/Library.scala delete mode 100644 library/src/test/kotlin/library/kotlin/TribuFuTest.kt create mode 100644 library/src/test/scala/library/kotlin/LibrarySuite.scala diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 12d38de..8711c99 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Tue Jun 14 20:30:35 BRT 2022 distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/library/build.gradle b/library/build.gradle index 0594fdc..220f7cd 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,6 +1,6 @@ plugins { - // Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin. - id "org.jetbrains.kotlin.jvm" + // Apply the scala Plugin to add support for Scala. + id "scala" // Apply the java-library plugin for API and implementation separation. id "java-library" @@ -15,20 +15,19 @@ repositories { } dependencies { - // Align versions of all Kotlin components - implementation platform("org.jetbrains.kotlin:kotlin-bom") - - // Use the Kotlin JDK 8 standard library. - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" + // Use Scala 2.13 in our library project + implementation "org.scala-lang:scala-library:2.13.3" // This dependency is used internally, and not exposed to consumers on their own compile classpath. implementation "com.google.guava:guava:30.0-jre" - // Use the Kotlin test library. - testImplementation "org.jetbrains.kotlin:kotlin-test" + // Use Scalatest for testing our library + testImplementation "junit:junit:4.13.1" + testImplementation "org.scalatest:scalatest_2.13:3.2.3" + testImplementation "org.scalatestplus:junit-4-13_2.13:3.2.2.0" - // Use the Kotlin JUnit integration. - testImplementation "org.jetbrains.kotlin:kotlin-test-junit" + // Need scala-xml at test runtime + testRuntimeOnly "org.scala-lang.modules:scala-xml_2.13:1.2.0" // This dependency is exported to consumers, that is to say found on their compile classpath. api "org.apache.commons:commons-math3:3.6.1" diff --git a/library/src/main/kotlin/com/tribufu/sdk/TribuFu.kt b/library/src/main/kotlin/com/tribufu/sdk/TribuFu.kt deleted file mode 100644 index e1f0b87..0000000 --- a/library/src/main/kotlin/com/tribufu/sdk/TribuFu.kt +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) TribuFu. All Rights Reserved - -package com.tribufu.sdk - -class TribuFu { - // Used to load the 'TribuFu' library on application startup. - init { - System.loadLibrary("TribuFu_Jvm") - } - - /** A native method that is implemented by the 'TribuFu' native library. */ - external fun getVersion(): String -} diff --git a/library/src/main/kotlin/com/tribufu/sdk/models/Email.kt b/library/src/main/kotlin/com/tribufu/sdk/models/Email.kt deleted file mode 100644 index 94d879d..0000000 --- a/library/src/main/kotlin/com/tribufu/sdk/models/Email.kt +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) TribuFu. All Rights Reserved - -package com.tribufu.sdk.models - -class Email { - var address = "" - var user_id = "1" - var confirmed = false - var primary = true -} diff --git a/library/src/main/kotlin/com/tribufu/sdk/models/User.kt b/library/src/main/kotlin/com/tribufu/sdk/models/User.kt deleted file mode 100644 index cc528f6..0000000 --- a/library/src/main/kotlin/com/tribufu/sdk/models/User.kt +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) TribuFu. All Rights Reserved - -package com.tribufu.sdk.models - -class User { - var id = "" - var name = "" - var display_name = "" - var password_hash = "" - var role = Role.User - var confirmed = false - var two_factor_enabled = false - var first_name = "" - var last_name = "" - var verified = false - var parental_control = false - var profile_url = "" - var public_birthday = false - var Birthday = "" - var location = "" - var timezone = "" - var language = "" - var currency = "" - var theme = Theme.Light - var ip_address = "" - var registration_ip_address = "" - var Joined = "" - var Updated = "" - var failed_logins = 0 - var about = "" - var profile_views = 0 - var content = 0 - var avatar_url = "" - var background_url = "" - var status = Status.Offline - var LastOnline = "" - var LastActivity = "" - var LastPost = "" - var warnings = 0 - var LastWarn = "" -} - -enum class Role { - User, - Bot, - Helper, - Tester, - Developer, - Moderator, - Admin, - Root -} - -enum class Theme { - Light, - Dark -} - -enum class Status { - Offline, - Away, - Disturb, - Online, - Playing -} diff --git a/library/src/main/scala/com/tribufu/sdk/Library.scala b/library/src/main/scala/com/tribufu/sdk/Library.scala new file mode 100644 index 0000000..c3ffd4f --- /dev/null +++ b/library/src/main/scala/com/tribufu/sdk/Library.scala @@ -0,0 +1,102 @@ +// Copyright (c) TribuFu. All Rights Reserved + +package com.tribufu.sdk + +class Library { + def alive(): Boolean = true +} + +/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +*/ diff --git a/library/src/test/kotlin/library/kotlin/TribuFuTest.kt b/library/src/test/kotlin/library/kotlin/TribuFuTest.kt deleted file mode 100644 index 387df36..0000000 --- a/library/src/test/kotlin/library/kotlin/TribuFuTest.kt +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) TribuFu. All Rights Reserved - -package com.tribufu.sdk - -import kotlin.test.Test -import kotlin.test.assertTrue - -class TribuFuTest { - @Test fun testSomeLibraryMethod() { - //val library = TribuFu() - assertTrue(true, "someLibraryMethod should return 'true'") - } -} diff --git a/library/src/test/scala/library/kotlin/LibrarySuite.scala b/library/src/test/scala/library/kotlin/LibrarySuite.scala new file mode 100644 index 0000000..5f23bd6 --- /dev/null +++ b/library/src/test/scala/library/kotlin/LibrarySuite.scala @@ -0,0 +1,15 @@ +// Copyright (c) TribuFu. All Rights Reserved + +package com.tribufu.sdk + +import org.scalatest.funsuite.AnyFunSuite +import org.junit.runner.RunWith +import org.scalatestplus.junit.JUnitRunner + +@RunWith(classOf[JUnitRunner]) +class LibrarySuite extends AnyFunSuite { + test("someLibraryMethod is always true") { + def library = new Library() + assert(library.alive()) + } +} diff --git a/settings.gradle b/settings.gradle index 0fc0ebb..f7fd9d4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,3 @@ include("library") -include("android") +//include("android") rootProject.name = "DevKit"