diff --git a/.github/workflows/emulate.yml b/.github/workflows/emulate.yml index a95d1386c..304ec070d 100644 --- a/.github/workflows/emulate.yml +++ b/.github/workflows/emulate.yml @@ -50,10 +50,10 @@ jobs: arch: ${{ steps.get-avd-arch.outputs.arch }} target: default # Print emulator logs if tests fail - script: ./gradlew :android:connectedAndroidTest ${{ matrix.android-api-level == 19 && '-PhttpURLConnection' || '' }} || (adb logcat -d System.out:I && exit 1) + script: ./gradlew :core-android:connectedAndroidTest ${{ matrix.android-api-level == 19 && '-PhttpURLConnection' || '' }} || (adb logcat -d System.out:I && exit 1) - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 if: always() with: name: android-build-reports-${{ matrix.android-api-level }} - path: android/build/reports/ + path: core-android/build/reports/ diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index df5e399a8..d8da65d6c 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -27,13 +27,13 @@ jobs: - name: Set up Gradle uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3 - - run: ./gradlew :java:testRestSuite -PhttpURLConnection + - run: ./gradlew :core:testRestSuite -PhttpURLConnection - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 if: always() with: name: java-build-reports-rest - path: java/build/reports/ + path: core/build/reports/ check-realtime-httpurlconnection: runs-on: ubuntu-latest @@ -54,13 +54,13 @@ jobs: - name: Set up Gradle uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3 - - run: ./gradlew :java:testRealtimeSuite -PhttpURLConnection + - run: ./gradlew :core:testRealtimeSuite -PhttpURLConnection - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 if: always() with: name: java-build-reports-realtime - path: java/build/reports/ + path: core/build/reports/ check-rest-okhttp: runs-on: ubuntu-latest permissions: @@ -80,7 +80,7 @@ jobs: - name: Set up Gradle uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3 - - run: ./gradlew :java:testRestSuite + - run: ./gradlew :core:testRestSuite check-realtime-okhttp: runs-on: ubuntu-latest @@ -101,7 +101,7 @@ jobs: - name: Set up Gradle uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3 - - run: ./gradlew :java:testRealtimeSuite + - run: ./gradlew :core:testRealtimeSuite check-liveobjects: runs-on: ubuntu-latest diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index 8876dbb11..f99b52fa8 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -39,6 +39,6 @@ jobs: - name: Upload Documentation uses: ably/sdk-upload-action@4e694297f208b72b5a9f6b1248a1556f19f821d6 # v2 with: - sourcePath: java/build/docs/javadoc + sourcePath: core/build/docs/javadoc githubToken: ${{ secrets.GITHUB_TOKEN }} artifactName: javadoc diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c8f7abb7..01a2fc671 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) -4. Ensure you have added suitable tests and the test suite is passing(`./gradlew java:testRestSuite java:testRealtimeSuite android:connectedAndroidTest`) +4. Ensure you have added suitable tests and the test suite is passing(`./gradlew core:testRestSuite core:testRealtimeSuite core-android:connectedAndroidTest`) 5. Push to the branch (`git push origin my-new-feature`) 6. Create a new Pull Request @@ -23,11 +23,11 @@ but on Windows there is a batch file: The JRE-specific library JAR is built with: - ./gradlew java:jar + ./gradlew core:jar The Android-specific library AAR is built with: - ./gradlew android:assemble + ./gradlew core-android:assemble (The `ANDROID_HOME` environment variable must be set appropriately.) @@ -186,9 +186,9 @@ but on Windows there is a batch file: Tests are based on JUnit, and there are separate suites for the REST and Realtime libraries, with gradle tasks for the JRE-specific library: - ./gradlew java:testRestSuite + ./gradlew core:testRestSuite - ./gradlew java:testRealtimeSuite + ./gradlew core:testRealtimeSuite To run tests against a specific host, specify in the environment: @@ -199,12 +199,12 @@ Tests will run against the sandbox environment by default. Tests can be run on the Android-specific library. An Android device must be connected, either a real device or the Android emulator. - ./gradlew android:connectedAndroidTest + ./gradlew core-android:connectedAndroidTest We also have a small, fledgling set of unit tests which do not communicate with Ably's servers. The plan is to expand this collection of tests in due course: - ./gradlew java:runUnitTests + ./gradlew core:runUnitTests ### Interactive push tests @@ -225,7 +225,7 @@ signing.keyId=XXXXXXXX signing.password=ably-debug-key signing.secretKeyRingFile=/Users/username/.ably/ably-java-secring.gpg ``` -- Run `./gradlew android:assembleRelease` or `./gradlew android:assembleDebug`. +- Run `./gradlew core-android:assembleRelease` or `./gradlew core-android:assembleDebug`. ## Using `ably-java` / `ably-android` locally in other projects @@ -262,7 +262,7 @@ This library uses [semantic versioning](http://semver.org/). For each release, t If you've not configured the signing key in your [Gradle properties](https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties) then release builds will complain: - Cannot perform signing task ':java:signArchives' because it has no configured signatory + Cannot perform signing task ':core:signArchives' because it has no configured signatory You need to [configure Signatory credentials](https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials), for example via the `gradle.properties` file in your `GRADLE_USER_HOME` folder (usually `~/.gradle`). diff --git a/android/gradle.properties b/android/gradle.properties deleted file mode 100644 index c08c36bea..000000000 --- a/android/gradle.properties +++ /dev/null @@ -1,4 +0,0 @@ -POM_ARTIFACT_ID=ably-android -POM_NAME=Ably Android client library SDK -POM_DESCRIPTION=An Android Realtime and REST client library SDK for the Ably platform. -POM_PACKAGING=aar diff --git a/android/.gitignore b/core-android/.gitignore similarity index 100% rename from android/.gitignore rename to core-android/.gitignore diff --git a/android/build.gradle.kts b/core-android/build.gradle.kts similarity index 100% rename from android/build.gradle.kts rename to core-android/build.gradle.kts diff --git a/core-android/gradle.properties b/core-android/gradle.properties new file mode 100644 index 000000000..09e1922d6 --- /dev/null +++ b/core-android/gradle.properties @@ -0,0 +1,4 @@ +POM_ARTIFACT_ID=core-android +POM_NAME=Ably Pub/Sub core (Android) +POM_DESCRIPTION=Internal implementation artifact for Ably's own Pub/Sub device/server packages. Not intended for direct use: depend on io.ably.pubsub:device instead. +POM_PACKAGING=aar diff --git a/android/proguard.txt b/core-android/proguard.txt similarity index 100% rename from android/proguard.txt rename to core-android/proguard.txt diff --git a/android/src/androidTest/java/io/ably/lib/push/LocalDeviceStorageTest.java b/core-android/src/androidTest/java/io/ably/lib/push/LocalDeviceStorageTest.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/push/LocalDeviceStorageTest.java rename to core-android/src/androidTest/java/io/ably/lib/push/LocalDeviceStorageTest.java diff --git a/android/src/androidTest/java/io/ably/lib/test/RetryTestRule.java b/core-android/src/androidTest/java/io/ably/lib/test/RetryTestRule.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/test/RetryTestRule.java rename to core-android/src/androidTest/java/io/ably/lib/test/RetryTestRule.java diff --git a/android/src/androidTest/java/io/ably/lib/test/android/AndroidPushTest.java b/core-android/src/androidTest/java/io/ably/lib/test/android/AndroidPushTest.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/test/android/AndroidPushTest.java rename to core-android/src/androidTest/java/io/ably/lib/test/android/AndroidPushTest.java diff --git a/android/src/androidTest/java/io/ably/lib/test/android/AndroidSuite.java b/core-android/src/androidTest/java/io/ably/lib/test/android/AndroidSuite.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/test/android/AndroidSuite.java rename to core-android/src/androidTest/java/io/ably/lib/test/android/AndroidSuite.java diff --git a/android/src/androidTest/java/io/ably/lib/test/android/EventTest.java b/core-android/src/androidTest/java/io/ably/lib/test/android/EventTest.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/test/android/EventTest.java rename to core-android/src/androidTest/java/io/ably/lib/test/android/EventTest.java diff --git a/android/src/androidTest/java/io/ably/lib/test/loader/ArgumentLoader.java b/core-android/src/androidTest/java/io/ably/lib/test/loader/ArgumentLoader.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/test/loader/ArgumentLoader.java rename to core-android/src/androidTest/java/io/ably/lib/test/loader/ArgumentLoader.java diff --git a/android/src/androidTest/java/io/ably/lib/test/loader/ResourceLoader.java b/core-android/src/androidTest/java/io/ably/lib/test/loader/ResourceLoader.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/test/loader/ResourceLoader.java rename to core-android/src/androidTest/java/io/ably/lib/test/loader/ResourceLoader.java diff --git a/android/src/androidTest/java/io/ably/lib/types/RegistrationTokenTypeTest.java b/core-android/src/androidTest/java/io/ably/lib/types/RegistrationTokenTypeTest.java similarity index 100% rename from android/src/androidTest/java/io/ably/lib/types/RegistrationTokenTypeTest.java rename to core-android/src/androidTest/java/io/ably/lib/types/RegistrationTokenTypeTest.java diff --git a/android/src/main/.gitignore b/core-android/src/main/.gitignore similarity index 100% rename from android/src/main/.gitignore rename to core-android/src/main/.gitignore diff --git a/android/src/main/AndroidManifest.xml b/core-android/src/main/AndroidManifest.xml similarity index 100% rename from android/src/main/AndroidManifest.xml rename to core-android/src/main/AndroidManifest.xml diff --git a/android/src/main/java/io/ably/lib/platform/AndroidNetworkConnectivity.java b/core-android/src/main/java/io/ably/lib/platform/AndroidNetworkConnectivity.java similarity index 100% rename from android/src/main/java/io/ably/lib/platform/AndroidNetworkConnectivity.java rename to core-android/src/main/java/io/ably/lib/platform/AndroidNetworkConnectivity.java diff --git a/android/src/main/java/io/ably/lib/platform/Platform.java b/core-android/src/main/java/io/ably/lib/platform/Platform.java similarity index 100% rename from android/src/main/java/io/ably/lib/platform/Platform.java rename to core-android/src/main/java/io/ably/lib/platform/Platform.java diff --git a/android/src/main/java/io/ably/lib/push/ActivationContext.java b/core-android/src/main/java/io/ably/lib/push/ActivationContext.java similarity index 100% rename from android/src/main/java/io/ably/lib/push/ActivationContext.java rename to core-android/src/main/java/io/ably/lib/push/ActivationContext.java diff --git a/android/src/main/java/io/ably/lib/push/ActivationStateMachine.java b/core-android/src/main/java/io/ably/lib/push/ActivationStateMachine.java similarity index 100% rename from android/src/main/java/io/ably/lib/push/ActivationStateMachine.java rename to core-android/src/main/java/io/ably/lib/push/ActivationStateMachine.java diff --git a/android/src/main/java/io/ably/lib/push/LocalDevice.java b/core-android/src/main/java/io/ably/lib/push/LocalDevice.java similarity index 100% rename from android/src/main/java/io/ably/lib/push/LocalDevice.java rename to core-android/src/main/java/io/ably/lib/push/LocalDevice.java diff --git a/android/src/main/java/io/ably/lib/push/Push.java b/core-android/src/main/java/io/ably/lib/push/Push.java similarity index 100% rename from android/src/main/java/io/ably/lib/push/Push.java rename to core-android/src/main/java/io/ably/lib/push/Push.java diff --git a/android/src/main/java/io/ably/lib/push/PushChannel.java b/core-android/src/main/java/io/ably/lib/push/PushChannel.java similarity index 100% rename from android/src/main/java/io/ably/lib/push/PushChannel.java rename to core-android/src/main/java/io/ably/lib/push/PushChannel.java diff --git a/android/src/main/java/io/ably/lib/push/SharedPreferenceStorage.java b/core-android/src/main/java/io/ably/lib/push/SharedPreferenceStorage.java similarity index 100% rename from android/src/main/java/io/ably/lib/push/SharedPreferenceStorage.java rename to core-android/src/main/java/io/ably/lib/push/SharedPreferenceStorage.java diff --git a/android/src/main/java/io/ably/lib/realtime/Channel.java b/core-android/src/main/java/io/ably/lib/realtime/Channel.java similarity index 100% rename from android/src/main/java/io/ably/lib/realtime/Channel.java rename to core-android/src/main/java/io/ably/lib/realtime/Channel.java diff --git a/android/src/main/java/io/ably/lib/rest/AblyRest.java b/core-android/src/main/java/io/ably/lib/rest/AblyRest.java similarity index 100% rename from android/src/main/java/io/ably/lib/rest/AblyRest.java rename to core-android/src/main/java/io/ably/lib/rest/AblyRest.java diff --git a/android/src/main/java/io/ably/lib/rest/Channel.java b/core-android/src/main/java/io/ably/lib/rest/Channel.java similarity index 100% rename from android/src/main/java/io/ably/lib/rest/Channel.java rename to core-android/src/main/java/io/ably/lib/rest/Channel.java diff --git a/android/src/main/java/io/ably/lib/types/RegistrationToken.java b/core-android/src/main/java/io/ably/lib/types/RegistrationToken.java similarity index 100% rename from android/src/main/java/io/ably/lib/types/RegistrationToken.java rename to core-android/src/main/java/io/ably/lib/types/RegistrationToken.java diff --git a/android/src/main/java/io/ably/lib/util/AndroidPlatformAgentProvider.java b/core-android/src/main/java/io/ably/lib/util/AndroidPlatformAgentProvider.java similarity index 100% rename from android/src/main/java/io/ably/lib/util/AndroidPlatformAgentProvider.java rename to core-android/src/main/java/io/ably/lib/util/AndroidPlatformAgentProvider.java diff --git a/android/src/main/java/io/ably/lib/util/IntentUtils.java b/core-android/src/main/java/io/ably/lib/util/IntentUtils.java similarity index 100% rename from android/src/main/java/io/ably/lib/util/IntentUtils.java rename to core-android/src/main/java/io/ably/lib/util/IntentUtils.java diff --git a/android/src/main/resources/META-INF/io/ably/ably-android/verification.properties b/core-android/src/main/resources/META-INF/io/ably/ably-android/verification.properties similarity index 100% rename from android/src/main/resources/META-INF/io/ably/ably-android/verification.properties rename to core-android/src/main/resources/META-INF/io/ably/ably-android/verification.properties diff --git a/java/build.gradle.kts b/core/build.gradle.kts similarity index 100% rename from java/build.gradle.kts rename to core/build.gradle.kts diff --git a/core/gradle.properties b/core/gradle.properties new file mode 100644 index 000000000..81fedc9be --- /dev/null +++ b/core/gradle.properties @@ -0,0 +1,4 @@ +POM_ARTIFACT_ID=core +POM_NAME=Ably Pub/Sub core (JVM) +POM_DESCRIPTION=Internal implementation artifact for Ably's own Pub/Sub device/server packages. Not intended for direct use: depend on io.ably.pubsub:server (JVM) or io.ably.pubsub:device (Android) instead. +POM_PACKAGING=jar diff --git a/java/src/main/java/io/ably/lib/platform/Platform.java b/core/src/main/java/io/ably/lib/platform/Platform.java similarity index 100% rename from java/src/main/java/io/ably/lib/platform/Platform.java rename to core/src/main/java/io/ably/lib/platform/Platform.java diff --git a/java/src/main/java/io/ably/lib/push/Push.java b/core/src/main/java/io/ably/lib/push/Push.java similarity index 100% rename from java/src/main/java/io/ably/lib/push/Push.java rename to core/src/main/java/io/ably/lib/push/Push.java diff --git a/java/src/main/java/io/ably/lib/realtime/Channel.java b/core/src/main/java/io/ably/lib/realtime/Channel.java similarity index 100% rename from java/src/main/java/io/ably/lib/realtime/Channel.java rename to core/src/main/java/io/ably/lib/realtime/Channel.java diff --git a/java/src/main/java/io/ably/lib/rest/AblyRest.java b/core/src/main/java/io/ably/lib/rest/AblyRest.java similarity index 100% rename from java/src/main/java/io/ably/lib/rest/AblyRest.java rename to core/src/main/java/io/ably/lib/rest/AblyRest.java diff --git a/java/src/main/java/io/ably/lib/rest/Channel.java b/core/src/main/java/io/ably/lib/rest/Channel.java similarity index 100% rename from java/src/main/java/io/ably/lib/rest/Channel.java rename to core/src/main/java/io/ably/lib/rest/Channel.java diff --git a/java/src/main/java/io/ably/lib/util/JavaPlatformAgentProvider.java b/core/src/main/java/io/ably/lib/util/JavaPlatformAgentProvider.java similarity index 100% rename from java/src/main/java/io/ably/lib/util/JavaPlatformAgentProvider.java rename to core/src/main/java/io/ably/lib/util/JavaPlatformAgentProvider.java diff --git a/java/src/test/java/io/ably/lib/test/loader/ArgumentLoader.java b/core/src/test/java/io/ably/lib/test/loader/ArgumentLoader.java similarity index 100% rename from java/src/test/java/io/ably/lib/test/loader/ArgumentLoader.java rename to core/src/test/java/io/ably/lib/test/loader/ArgumentLoader.java diff --git a/java/src/test/java/io/ably/lib/test/loader/ResourceLoader.java b/core/src/test/java/io/ably/lib/test/loader/ResourceLoader.java similarity index 100% rename from java/src/test/java/io/ably/lib/test/loader/ResourceLoader.java rename to core/src/test/java/io/ably/lib/test/loader/ResourceLoader.java diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts index f9c566cf6..472bc8316 100644 --- a/examples/build.gradle.kts +++ b/examples/build.gradle.kts @@ -68,7 +68,7 @@ dependencies { implementation(libs.ktor.client.cio) implementation(project(":liveobjects")) - implementation(project(":android")) + implementation(project(":core-android")) implementation(libs.navigation.compose) diff --git a/gradle.properties b/gradle.properties index 687397416..946d53943 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ -GROUP=io.ably -VERSION_NAME=1.8.0 +GROUP=io.ably.pubsub +VERSION_NAME=2.0.0 POM_INCEPTION_YEAR=2015 POM_URL=https://github.com/ably/ably-java POM_SCM_URL=https://github.com/ably/ably-java/ diff --git a/java/gradle.properties b/java/gradle.properties deleted file mode 100644 index bff480295..000000000 --- a/java/gradle.properties +++ /dev/null @@ -1,4 +0,0 @@ -POM_ARTIFACT_ID=ably-java -POM_NAME=Ably Java client library SDK -POM_DESCRIPTION=A Java Realtime and REST client library SDK for the Ably platform. -POM_PACKAGING=jar diff --git a/liveobjects/build.gradle.kts b/liveobjects/build.gradle.kts index 9d6ad9420..eb3d06203 100644 --- a/liveobjects/build.gradle.kts +++ b/liveobjects/build.gradle.kts @@ -11,11 +11,11 @@ repositories { } dependencies { - compileOnly(project(":java")) + compileOnly(project(":core")) implementation(libs.bundles.common) implementation(libs.coroutine.core) - testImplementation(project(":java")) + testImplementation(project(":core")) testImplementation(kotlin("test")) testImplementation(libs.bundles.kotlin.tests) } diff --git a/pubsub-adapter/build.gradle.kts b/pubsub-adapter/build.gradle.kts index 66ab1f09f..31a4e1a8c 100644 --- a/pubsub-adapter/build.gradle.kts +++ b/pubsub-adapter/build.gradle.kts @@ -9,9 +9,9 @@ kotlin { } dependencies { - compileOnly(project(":java")) + compileOnly(project(":core")) testImplementation(kotlin("test")) - testImplementation(project(":java")) + testImplementation(project(":core")) testImplementation(libs.nanohttpd) testImplementation(libs.coroutine.core) testImplementation(libs.coroutine.test) diff --git a/settings.gradle.kts b/settings.gradle.kts index dfd7150f4..ed2fc200d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,8 +8,8 @@ pluginManagement { rootProject.name = "ably-java" -include("java") -include("android") +include("core") +include("core-android") include("gradle-lint") include("network-client-core") include("network-client-default") diff --git a/uts/README.md b/uts/README.md index 462fd87a0..d2867a7eb 100644 --- a/uts/README.md +++ b/uts/README.md @@ -181,7 +181,7 @@ everything lives under `uts/src/test/`. plugins { alias(libs.plugins.kotlin.jvm) } dependencies { - testImplementation(project(":java")) // the SDK under test + testImplementation(project(":core")) // the SDK under test testImplementation(project(":network-client-core")) // HttpEngine / WebSocketEngine interfaces testImplementation(kotlin("test")) testImplementation("org.junit.jupiter:junit-jupiter-params") // @ParameterizedTest / @ValueSource (version from the JUnit BOM) diff --git a/uts/build.gradle.kts b/uts/build.gradle.kts index 4eca7f9c4..5b15d625e 100644 --- a/uts/build.gradle.kts +++ b/uts/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } dependencies { - testImplementation(project(":java")) + testImplementation(project(":core")) testImplementation(project(":network-client-core")) // Runtime-only so compile-time stays decoupled from the plugin internals; the LiveObjects test // helpers reach the internal wire/message classes (e.g. for build_public_object_message) by reflection.