Skip to content

[AIT-1037] Refactored object package name to liveobjects#1220

Open
sacOO7 wants to merge 2 commits into
feature/path-based-liveobjects-implementationfrom
chore/refactor-object-package-name-to-liveobjects
Open

[AIT-1037] Refactored object package name to liveobjects#1220
sacOO7 wants to merge 2 commits into
feature/path-based-liveobjects-implementationfrom
chore/refactor-object-package-name-to-liveobjects

Conversation

@sacOO7

@sacOO7 sacOO7 commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Recommended Naming: liveobjects 🥇
Example: io.ably.liveobjects (or com.ably.liveobjects)
Why: It removes all ambiguity, exactly matches the Ably product name you are fetching from the docs, and completely avoids the java.lang.Object naming collision.

Summary by CodeRabbit

  • Refactor
    • LiveObjects APIs and related Kotlin/Java code were reorganized under a consistent liveobjects namespace.
    • Public types, serializers, and path/instance/value helpers now use the updated package structure.
  • Tests
    • Test packages and fixtures were aligned with the new namespace.
    • CI task names and matching test filters were updated so unit and integration checks run correctly.
  • Documentation
    • Package-level documentation was refreshed to reflect the updated LiveObjects organization.

@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

All LiveObjects public Java interfaces, Kotlin implementations, serialization helpers, test files, Gradle task registrations, and CI workflow commands are renamed from io.ably.lib.object.* to io.ably.lib.liveobjects.*. Reflective IMPLEMENTATION_CLASS constants in LiveObjectsPlugin, ObjectSerializer, LiveCounter, and LiveMap are updated to the new package paths. One behavioral change is included: ChannelBase now assigns this.object = liveObjectsPlugin.getInstance(name) instead of discarding the return value.

Changes

LiveObjects Package Rename and ChannelBase Wiring Fix

Layer / File(s) Summary
Gradle task renames and CI workflow updates
liveobjects/build.gradle.kts, .github/workflows/check.yml, .github/workflows/integration-test.yml
Test task names pluralized from runLiveObject* to runLiveObjects*; includeTestsMatching/excludeTestsMatching patterns updated to io.ably.lib.liveobjects.*; CI workflow steps updated to invoke renamed tasks.
Core Java public API types renamed
lib/src/main/java/io/ably/lib/liveobjects/LiveObjectsPlugin.java, RealtimeObject.java, Subscription.java, ValueType.java, adapter/..., state/..., package-info.java
Package declarations changed to io.ably.lib.liveobjects.*; LiveObjectsPlugin.Factory.IMPLEMENTATION_CLASS updated to load io.ably.lib.liveobjects.DefaultLiveObjectsPlugin; new top-level package-info.java added; old io.ably.lib.object.package-info.java emptied.
Message type interfaces renamed
lib/src/main/java/io/ably/lib/liveobjects/message/...
All 13 message interfaces/enums and package-info.java moved from io.ably.lib.object.message to io.ably.lib.liveobjects.message; Javadoc @link targets updated.
Serialization layer renamed
lib/src/main/java/io/ably/lib/liveobjects/serialization/..., liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/...
ObjectSerializer and ObjectJsonSerializer moved to io.ably.lib.liveobjects.serialization; Holder.IMPLEMENTATION_CLASS updated to DefaultObjectsSerializer new FQN; Kotlin DefaultSerialization, JsonSerialization, MsgpackSerialization packages and wire-type imports updated.
Path, Instance, and Value Java API types renamed
lib/src/main/java/io/ably/lib/liveobjects/path/..., instance/..., value/...
All path, instance, and value Java interfaces and package-info files moved to io.ably.lib.liveobjects.*; LiveCounter.IMPLEMENTATION_CLASS and LiveMap.IMPLEMENTATION_CLASS updated to the new liveobjects.value.* class names; new package-info.java files added for instance and path.
Realtime class wiring updated + ChannelBase behavioral fix
lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java, Channel.java, ChannelBase.java, Connection.java, lib/src/main/java/io/ably/lib/transport/ConnectionManager.java, lib/src/main/java/io/ably/lib/types/ProtocolMessage.java
LiveObjectsPlugin import updated to io.ably.lib.liveobjects across all realtime entry points; ChannelBase now assigns this.object = liveObjectsPlugin.getInstance(name) (previously discarded); ProtocolMessage imports serializers from new namespace.
Kotlin implementation classes renamed
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Default*.kt, Errors.kt, Helpers.kt, Utils.kt, message/..., path/..., value/...
All Kotlin Default* implementation files have package declarations and imports rewritten from backtick-quoted io.ably.lib.\object`.toio.ably.lib.liveobjects.`.
Test files namespace updated
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/...
All unit and integration test files, fixtures, and helpers migrated to io.ably.lib.liveobjects.*; TestHelpers.mockkStatic target updated to io.ably.lib.liveobjects.HelpersKt.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

The change is high-volume but almost entirely homogeneous package-declaration and import-path substitutions. The only non-mechanical change requiring careful inspection is the ChannelBase assignment fix at line 1690 and the updated IMPLEMENTATION_CLASS string literals in LiveObjectsPlugin, ObjectSerializer, LiveCounter, and LiveMap.

Possibly related PRs

  • ably/ably-java#1213: Introduces the LiveObjects public API types (Subscription, ValueType, path.*, instance.*) that this PR renames from io.ably.lib.object.* to io.ably.lib.liveobjects.*.
  • ably/ably-java#1216: Adds RealtimeObject, ObjectStateChange, ObjectStateEvent, and ChannelBase.object wiring that this PR migrates to the new io.ably.lib.liveobjects namespace and fixes the assignment.
  • ably/ably-java#1218: Introduces the ObjectSerializer/ObjectJsonSerializer serialization plumbing whose reflective IMPLEMENTATION_CLASS constants this PR updates to io.ably.lib.liveobjects.serialization.*.

Suggested reviewers

  • lawrence-forooghian

Poem

🐇 Hopping through the package tree,
From object to liveobjects — finally free!
Each import swept with a tidy paw,
IMPLEMENTATION_CLASS fixed without a flaw.
And ChannelBase now stores what it found —
The LiveObjects world is all re-bound! 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: renaming the object package to liveobjects.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/refactor-object-package-name-to-liveobjects

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot temporarily deployed to staging/pull/1220/features June 24, 2026 12:14 Inactive
@github-actions github-actions Bot temporarily deployed to staging/pull/1220/javadoc June 24, 2026 12:15 Inactive
@sacOO7 sacOO7 marked this pull request as ready for review June 24, 2026 12:16

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
lib/src/main/java/io/ably/lib/liveobjects/Subscription.java (1)

1-1: 🗄️ Data Integrity & Integration | 🔵 Trivial

Call out this package move in the migration notes.

This changes the FQCN of a public interface, so downstream imports and any reflective lookups against io.ably.lib.object.* will break. Please make sure the release notes or migration guide spell out the old and new package names.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@lib/src/main/java/io/ably/lib/liveobjects/Subscription.java` at line 1, The
public interface Subscription has moved packages, changing its FQCN from
io.ably.lib.object.* to io.ably.lib.liveobjects.*, so update the
migration/release notes to explicitly call out the old and new package names.
Make sure the notes mention that downstream imports and any reflective lookups
using the old io.ably.lib.object path will need to be updated.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@lib/src/main/java/io/ably/lib/liveobjects/Subscription.java`:
- Line 1: The public interface Subscription has moved packages, changing its
FQCN from io.ably.lib.object.* to io.ably.lib.liveobjects.*, so update the
migration/release notes to explicitly call out the old and new package names.
Make sure the notes mention that downstream imports and any reflective lookups
using the old io.ably.lib.object path will need to be updated.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 71cef35f-339b-44e7-a166-3df32caa7086

📥 Commits

Reviewing files that changed from the base of the PR and between 0f52cca and 23efe82.

📒 Files selected for processing (116)
  • .github/workflows/check.yml
  • .github/workflows/integration-test.yml
  • java/src/main/java/io/ably/lib/realtime/Channel.java
  • lib/src/main/java/io/ably/lib/liveobjects/LiveObjectsPlugin.java
  • lib/src/main/java/io/ably/lib/liveobjects/RealtimeObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/Subscription.java
  • lib/src/main/java/io/ably/lib/liveobjects/ValueType.java
  • lib/src/main/java/io/ably/lib/liveobjects/adapter/AblyClientAdapter.java
  • lib/src/main/java/io/ably/lib/liveobjects/adapter/Adapter.java
  • lib/src/main/java/io/ably/lib/liveobjects/adapter/package-info.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/Instance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceListener.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceSubscriptionEvent.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/package-info.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/BinaryInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/BooleanInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonArrayInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonObjectInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveCounterInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveMapInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/NumberInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/StringInstance.java
  • lib/src/main/java/io/ably/lib/liveobjects/instance/types/package-info.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/CounterCreate.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/CounterInc.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/MapClear.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/MapCreate.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/MapRemove.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/MapSet.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/ObjectData.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/ObjectDelete.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/ObjectMessage.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperation.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperationAction.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapEntry.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapSemantics.java
  • lib/src/main/java/io/ably/lib/liveobjects/message/package-info.java
  • lib/src/main/java/io/ably/lib/liveobjects/package-info.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/PathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectListener.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionEvent.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionOptions.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/package-info.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/BinaryPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/BooleanPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonArrayPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonObjectPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveCounterPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveMapPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/NumberPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/StringPathObject.java
  • lib/src/main/java/io/ably/lib/liveobjects/path/types/package-info.java
  • lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectJsonSerializer.java
  • lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectSerializer.java
  • lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateChange.java
  • lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateEvent.java
  • lib/src/main/java/io/ably/lib/liveobjects/value/LiveCounter.java
  • lib/src/main/java/io/ably/lib/liveobjects/value/LiveMap.java
  • lib/src/main/java/io/ably/lib/liveobjects/value/LiveMapValue.java
  • lib/src/main/java/io/ably/lib/liveobjects/value/package-info.java
  • lib/src/main/java/io/ably/lib/object/instance/package-info.java
  • lib/src/main/java/io/ably/lib/object/package-info.java
  • lib/src/main/java/io/ably/lib/object/path/package-info.java
  • lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java
  • lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
  • lib/src/main/java/io/ably/lib/realtime/Connection.java
  • lib/src/main/java/io/ably/lib/transport/ConnectionManager.java
  • lib/src/main/java/io/ably/lib/types/ProtocolMessage.java
  • liveobjects/build.gradle.kts
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/DefaultRealtimeObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Errors.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Helpers.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Utils.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstanceSubscriptionEvent.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBinaryInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBooleanInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonArrayInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonObjectInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveCounterInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveMapInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultNumberInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultStringInstance.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/DefaultObjectMessage.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/WireObjectMessage.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObjectSubscriptionEvent.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBinaryPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBooleanPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonArrayPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonObjectPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveCounterPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveMapPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultNumberPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultStringPathObject.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/DefaultSerialization.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/JsonSerialization.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/MsgpackSerialization.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveCounter.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveMap.kt
  • liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/ResolvedValue.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/TestUtils.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/DefaultRealtimeObjectTest.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/PayloadBuilder.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/RestObjects.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/CounterFixtures.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/DataFixtures.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/MapFixtures.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/IntegrationTest.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/Sandbox.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/HelpersTest.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSerializationTest.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSizeTest.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/TestHelpers.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/UtilsTest.kt
  • liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/fixtures/ObjectMessageFixtures.kt
💤 Files with no reviewable changes (3)
  • lib/src/main/java/io/ably/lib/object/instance/package-info.java
  • lib/src/main/java/io/ably/lib/object/path/package-info.java
  • lib/src/main/java/io/ably/lib/object/package-info.java

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the LiveObjects (typed Objects) API namespace across the codebase from io.ably.lib.object / Kotlin-escaped ``io.ably.lib.object``` to the domain-specific io.ably.lib.liveobjects`, updating production code, tests, Gradle test tasks, and CI workflows to match the new package structure and avoid `java.lang.Object` naming collisions.

Changes:

  • Renamed LiveObjects public API packages (path/instance/value/message/serialization/state) to io.ably.lib.liveobjects across Java and Kotlin sources.
  • Updated LiveObjects unit/integration test packages and Gradle test filters, and renamed Gradle tasks + CI workflow invocations accordingly.
  • Wired ChannelBase.object to the LiveObjects plugin instance when available (removing the prior TODO-style placeholder behavior).

Reviewed changes

Copilot reviewed 117 out of 117 changed files in this pull request and generated no comments.

Show a summary per file
File Description
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/UtilsTest.kt Update test package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/TestHelpers.kt Update test helpers imports + mockkStatic target to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSizeTest.kt Update message-size test imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSerializationTest.kt Update serialization test imports/fixtures to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/HelpersTest.kt Update helper test imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/fixtures/ObjectMessageFixtures.kt Update fixture package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/TestUtils.kt Update test utils package to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/Sandbox.kt Update integration setup package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/IntegrationTest.kt Update integration base test package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/RestObjects.kt Update integration helper package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/PayloadBuilder.kt Update payload builder imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/MapFixtures.kt Update fixture package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/DataFixtures.kt Update fixture package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/CounterFixtures.kt Update fixture package/imports to liveobjects.
liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/DefaultRealtimeObjectTest.kt Update integration test package/imports to liveobjects.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/ResolvedValue.kt Move value-resolution model under liveobjects.value.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveMap.kt Move DefaultLiveMap implementation package to liveobjects.value.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveCounter.kt Move DefaultLiveCounter implementation package to liveobjects.value.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Utils.kt Move utilities to io.ably.lib.liveobjects.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/MsgpackSerialization.kt Move msgpack serializers to liveobjects.serialization.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/JsonSerialization.kt Move JSON serializers to liveobjects.serialization.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/DefaultSerialization.kt Move default serializer implementation to liveobjects.serialization.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultStringPathObject.kt Move string path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultNumberPathObject.kt Move number path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveMapPathObject.kt Move map path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveCounterPathObject.kt Move counter path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonObjectPathObject.kt Move JSON object path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonArrayPathObject.kt Move JSON array path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBooleanPathObject.kt Move boolean path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBinaryPathObject.kt Move binary path object implementation to liveobjects.path.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObjectSubscriptionEvent.kt Move subscription event impl to liveobjects.path.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObject.kt Move path object implementation + imports to liveobjects.path.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/WireObjectMessage.kt Move wire message model to liveobjects.message.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/DefaultObjectMessage.kt Move default object message implementation to liveobjects.message.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultStringInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultNumberInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveMapInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveCounterInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonObjectInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonArrayInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBooleanInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBinaryInstance.kt Move instance implementations to liveobjects.instance.types.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstanceSubscriptionEvent.kt Move instance subscription event impl to liveobjects.instance.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstance.kt Move instance core implementation to liveobjects.instance.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Helpers.kt Move helper utilities to io.ably.lib.liveobjects.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Errors.kt Move error types/helpers to io.ably.lib.liveobjects.
liveobjects/src/main/kotlin/io/ably/lib/liveobjects/DefaultRealtimeObject.kt Move DefaultRealtimeObject implementation to io.ably.lib.liveobjects.
liveobjects/build.gradle.kts Rename test tasks and update test filters to io.ably.lib.liveobjects.*.
lib/src/main/java/io/ably/lib/types/ProtocolMessage.java Update serializer imports to io.ably.lib.liveobjects.serialization.
lib/src/main/java/io/ably/lib/transport/ConnectionManager.java Update LiveObjectsPlugin import to io.ably.lib.liveobjects.
lib/src/main/java/io/ably/lib/realtime/Connection.java Update LiveObjectsPlugin import to io.ably.lib.liveobjects.
lib/src/main/java/io/ably/lib/realtime/ChannelBase.java Update imports and set this.object from LiveObjectsPlugin instance when present.
lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java Update LiveObjectsPlugin import to io.ably.lib.liveobjects.
lib/src/main/java/io/ably/lib/object/path/package-info.java Remove old package-info (moved under io.ably.lib.liveobjects.path).
lib/src/main/java/io/ably/lib/object/package-info.java Remove old root package-info (moved under io.ably.lib.liveobjects).
lib/src/main/java/io/ably/lib/object/instance/package-info.java Remove old instance package-info (moved under io.ably.lib.liveobjects.instance).
lib/src/main/java/io/ably/lib/liveobjects/ValueType.java Move ValueType to io.ably.lib.liveobjects.
lib/src/main/java/io/ably/lib/liveobjects/value/package-info.java Update value package-info to io.ably.lib.liveobjects.value.
lib/src/main/java/io/ably/lib/liveobjects/value/LiveMapValue.java Move LiveMapValue to io.ably.lib.liveobjects.value.
lib/src/main/java/io/ably/lib/liveobjects/value/LiveMap.java Update reflection implementation class name to io.ably.lib.liveobjects.value.DefaultLiveMap.
lib/src/main/java/io/ably/lib/liveobjects/value/LiveCounter.java Update reflection implementation class name to io.ably.lib.liveobjects.value.DefaultLiveCounter.
lib/src/main/java/io/ably/lib/liveobjects/Subscription.java Move Subscription to io.ably.lib.liveobjects.
lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateEvent.java Move state event types to io.ably.lib.liveobjects.state.
lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateChange.java Move state change types to io.ably.lib.liveobjects.state.
lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectSerializer.java Move serializer interface + reflection target FQCN to io.ably.lib.liveobjects.serialization.
lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectJsonSerializer.java Move JSON adapter to io.ably.lib.liveobjects.serialization.
lib/src/main/java/io/ably/lib/liveobjects/RealtimeObject.java Move RealtimeObject to io.ably.lib.liveobjects.
lib/src/main/java/io/ably/lib/liveobjects/path/types/StringPathObject.java Move typed path API to io.ably.lib.liveobjects.path.types.
lib/src/main/java/io/ably/lib/liveobjects/path/types/package-info.java Update typed path package-info to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/path/types/NumberPathObject.java Move typed path API to io.ably.lib.liveobjects.path.types.
lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveMapPathObject.java Move typed path API + value imports to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveCounterPathObject.java Move typed path API to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonObjectPathObject.java Move typed path API to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonArrayPathObject.java Move typed path API to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/path/types/BooleanPathObject.java Move typed path API to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/path/types/BinaryPathObject.java Move typed path API to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionOptions.java Move path subscription options to io.ably.lib.liveobjects.path.
lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionEvent.java Move path subscription event to io.ably.lib.liveobjects.path.
lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectListener.java Move path listener to io.ably.lib.liveobjects.path.
lib/src/main/java/io/ably/lib/liveobjects/path/PathObject.java Move path root interface to io.ably.lib.liveobjects.path.
lib/src/main/java/io/ably/lib/liveobjects/path/package-info.java Add new path package-info under io.ably.lib.liveobjects.path.
lib/src/main/java/io/ably/lib/liveobjects/package-info.java Add new root package-info under io.ably.lib.liveobjects.
lib/src/main/java/io/ably/lib/liveobjects/message/package-info.java Update message package-info to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapSemantics.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapEntry.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperationAction.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperation.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/ObjectMessage.java Move message model and update subscription-event links.
lib/src/main/java/io/ably/lib/liveobjects/message/ObjectDelete.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/ObjectData.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/MapSet.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/MapRemove.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/MapCreate.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/MapClear.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/CounterInc.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/message/CounterCreate.java Move message model to io.ably.lib.liveobjects.message.
lib/src/main/java/io/ably/lib/liveobjects/LiveObjectsPlugin.java Move plugin interface to io.ably.lib.liveobjects and update reflection FQCN.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/StringInstance.java Move typed instance API to io.ably.lib.liveobjects.instance.types.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/package-info.java Update typed instance package-info to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/NumberInstance.java Move typed instance API to io.ably.lib.liveobjects.instance.types.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveMapInstance.java Move typed instance API + value imports to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveCounterInstance.java Move typed instance API to io.ably.lib.liveobjects.instance.types.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonObjectInstance.java Move typed instance API to io.ably.lib.liveobjects.instance.types.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonArrayInstance.java Move typed instance API to io.ably.lib.liveobjects.instance.types.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/BooleanInstance.java Move typed instance API to io.ably.lib.liveobjects.instance.types.
lib/src/main/java/io/ably/lib/liveobjects/instance/types/BinaryInstance.java Move typed instance API to io.ably.lib.liveobjects.instance.types.
lib/src/main/java/io/ably/lib/liveobjects/instance/package-info.java Add new instance package-info under io.ably.lib.liveobjects.instance.
lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceSubscriptionEvent.java Move instance subscription event to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceListener.java Move instance listener to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/instance/Instance.java Move instance root interface to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/adapter/package-info.java Update adapter package-info to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/adapter/Adapter.java Move adapter implementation to new namespace.
lib/src/main/java/io/ably/lib/liveobjects/adapter/AblyClientAdapter.java Move adapter interface to new namespace.
java/src/main/java/io/ably/lib/realtime/Channel.java Update LiveObjectsPlugin import for Java artifact.
android/src/main/java/io/ably/lib/realtime/Channel.java Update LiveObjectsPlugin import for Android artifact.
.github/workflows/integration-test.yml Update CI to call renamed Gradle integration test task.
.github/workflows/check.yml Update CI to call renamed Gradle unit test task.
Comments suppressed due to low confidence (4)

lib/src/main/java/io/ably/lib/liveobjects/LiveObjectsPlugin.java:90

  • LiveObjects plugin initialization is hard-coded to reflectively load io.ably.lib.liveobjects.DefaultLiveObjectsPlugin, but there is no such implementation class in this repository (and switching the FQCN will also prevent loading older io.ably.lib.object.DefaultLiveObjectsPlugin implementations). This means LiveObjects will silently stay unavailable even when the LiveObjects implementation jar is present unless the implementation class name matches exactly; consider adding backwards-compatible fallback (and/or ensure the implementation class exists under the new package).
    lib/src/main/java/io/ably/lib/liveobjects/message/ObjectMessage.java:11
  • This Javadoc block was partially updated, but it still references the old io.ably.lib.object.message package later in the comment (now io.ably.lib.liveobjects.message).
    liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/WireObjectMessage.kt:1
  • The KDoc still references the old public API package name io.ably.lib.object.message (now io.ably.lib.liveobjects.message).
    lib/src/main/java/io/ably/lib/liveobjects/adapter/AblyClientAdapter.java:1
  • Javadoc still calls this the adapter for the io.ably.lib.object API; after the rename it should reference io.ably.lib.liveobjects.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@sacOO7 sacOO7 requested a review from ttypic June 24, 2026 13:36
@sacOO7 sacOO7 changed the title [AIT-1037] Refactored object package name to domain specific liveobjects [AIT-1037] Refactored object package name to liveobjects Jun 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants