diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 5017a0732..c60db1d41 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -23,4 +23,4 @@ jobs: distribution: 'temurin' - name: Set up Gradle uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3 - - run: ./gradlew checkWithCodenarc checkstyleMain checkstyleTest runUnitTests runLiveObjectUnitTests :uts:test + - run: ./gradlew checkWithCodenarc checkstyleMain checkstyleTest runUnitTests runLiveObjectsUnitTests :uts:test diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 1c59f771a..8250c30aa 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -122,4 +122,4 @@ jobs: - name: Set up Gradle uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3 - - run: ./gradlew runLiveObjectIntegrationTests + - run: ./gradlew runLiveObjectsIntegrationTests diff --git a/android/src/main/java/io/ably/lib/realtime/Channel.java b/android/src/main/java/io/ably/lib/realtime/Channel.java index baf086cbc..c0677ba69 100644 --- a/android/src/main/java/io/ably/lib/realtime/Channel.java +++ b/android/src/main/java/io/ably/lib/realtime/Channel.java @@ -3,7 +3,7 @@ import io.ably.lib.types.AblyException; import io.ably.lib.types.ChannelOptions; import io.ably.lib.push.PushChannel; -import io.ably.lib.objects.LiveObjectsPlugin; +import io.ably.lib.liveobjects.LiveObjectsPlugin; public class Channel extends ChannelBase { diff --git a/java/src/main/java/io/ably/lib/realtime/Channel.java b/java/src/main/java/io/ably/lib/realtime/Channel.java index e3f21de54..f4100162f 100644 --- a/java/src/main/java/io/ably/lib/realtime/Channel.java +++ b/java/src/main/java/io/ably/lib/realtime/Channel.java @@ -1,6 +1,6 @@ package io.ably.lib.realtime; -import io.ably.lib.object.LiveObjectsPlugin; +import io.ably.lib.liveobjects.LiveObjectsPlugin; import io.ably.lib.types.AblyException; import io.ably.lib.types.ChannelOptions; import org.jetbrains.annotations.Nullable; diff --git a/lib/src/main/java/io/ably/lib/object/LiveObjectsPlugin.java b/lib/src/main/java/io/ably/lib/liveobjects/LiveObjectsPlugin.java similarity index 94% rename from lib/src/main/java/io/ably/lib/object/LiveObjectsPlugin.java rename to lib/src/main/java/io/ably/lib/liveobjects/LiveObjectsPlugin.java index 4c92d7692..41ab0622c 100644 --- a/lib/src/main/java/io/ably/lib/object/LiveObjectsPlugin.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/LiveObjectsPlugin.java @@ -1,7 +1,7 @@ -package io.ably.lib.object; +package io.ably.lib.liveobjects; -import io.ably.lib.object.adapter.AblyClientAdapter; -import io.ably.lib.object.adapter.Adapter; +import io.ably.lib.liveobjects.adapter.AblyClientAdapter; +import io.ably.lib.liveobjects.adapter.Adapter; import io.ably.lib.realtime.AblyRealtime; import io.ably.lib.realtime.ChannelState; import io.ably.lib.types.ProtocolMessage; @@ -81,12 +81,12 @@ static LiveObjectsPlugin tryInitialize(@NotNull AblyRealtime ablyRealtime) { /** * Reflectively constructs the LiveObjects plugin implementation. Lives in a nested class so the * implementation-class name stays {@code private} (interface fields are forced {@code public}), - * mirroring {@link io.ably.lib.object.serialization.ObjectSerializer.Holder}. Unlike {@code Holder} + * mirroring {@link io.ably.lib.liveobjects.serialization.ObjectSerializer.Holder}. Unlike {@code Holder} * this is stateless: {@link #create} returns a new instance on every call. */ final class Factory { private static final String TAG = LiveObjectsPlugin.Factory.class.getName(); - private static final String IMPLEMENTATION_CLASS = "io.ably.lib.object.DefaultLiveObjectsPlugin"; + private static final String IMPLEMENTATION_CLASS = "io.ably.lib.liveobjects.DefaultLiveObjectsPlugin"; private Factory() {} diff --git a/lib/src/main/java/io/ably/lib/object/RealtimeObject.java b/lib/src/main/java/io/ably/lib/liveobjects/RealtimeObject.java similarity index 94% rename from lib/src/main/java/io/ably/lib/object/RealtimeObject.java rename to lib/src/main/java/io/ably/lib/liveobjects/RealtimeObject.java index 013a4a649..e9dc90a7d 100644 --- a/lib/src/main/java/io/ably/lib/object/RealtimeObject.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/RealtimeObject.java @@ -1,8 +1,8 @@ -package io.ably.lib.object; +package io.ably.lib.liveobjects; -import io.ably.lib.object.path.types.LiveMapPathObject; -import io.ably.lib.object.state.ObjectStateChange; -import io.ably.lib.object.state.ObjectStateEvent; +import io.ably.lib.liveobjects.path.types.LiveMapPathObject; +import io.ably.lib.liveobjects.state.ObjectStateChange; +import io.ably.lib.liveobjects.state.ObjectStateEvent; import io.ably.lib.types.AblyException; import io.ably.lib.types.ErrorInfo; import org.jetbrains.annotations.NotNull; diff --git a/lib/src/main/java/io/ably/lib/object/Subscription.java b/lib/src/main/java/io/ably/lib/liveobjects/Subscription.java similarity index 95% rename from lib/src/main/java/io/ably/lib/object/Subscription.java rename to lib/src/main/java/io/ably/lib/liveobjects/Subscription.java index 0f74a907e..720bf9a79 100644 --- a/lib/src/main/java/io/ably/lib/object/Subscription.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/Subscription.java @@ -1,4 +1,4 @@ -package io.ably.lib.object; +package io.ably.lib.liveobjects; /** * Represents a registration for receiving events from a subscribe operation. diff --git a/lib/src/main/java/io/ably/lib/object/ValueType.java b/lib/src/main/java/io/ably/lib/liveobjects/ValueType.java similarity index 96% rename from lib/src/main/java/io/ably/lib/object/ValueType.java rename to lib/src/main/java/io/ably/lib/liveobjects/ValueType.java index 1491d9c36..ac050adf1 100644 --- a/lib/src/main/java/io/ably/lib/object/ValueType.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/ValueType.java @@ -1,4 +1,4 @@ -package io.ably.lib.object; +package io.ably.lib.liveobjects; /** * The type of a value resolved by a {@code PathObject} or wrapped by an diff --git a/lib/src/main/java/io/ably/lib/object/adapter/AblyClientAdapter.java b/lib/src/main/java/io/ably/lib/liveobjects/adapter/AblyClientAdapter.java similarity index 97% rename from lib/src/main/java/io/ably/lib/object/adapter/AblyClientAdapter.java rename to lib/src/main/java/io/ably/lib/liveobjects/adapter/AblyClientAdapter.java index 3204708b3..6a63a8783 100644 --- a/lib/src/main/java/io/ably/lib/object/adapter/AblyClientAdapter.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/adapter/AblyClientAdapter.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.adapter; +package io.ably.lib.liveobjects.adapter; import io.ably.lib.realtime.ChannelBase; import io.ably.lib.realtime.Connection; diff --git a/lib/src/main/java/io/ably/lib/object/adapter/Adapter.java b/lib/src/main/java/io/ably/lib/liveobjects/adapter/Adapter.java similarity index 97% rename from lib/src/main/java/io/ably/lib/object/adapter/Adapter.java rename to lib/src/main/java/io/ably/lib/liveobjects/adapter/Adapter.java index e16d9b306..a935f68bc 100644 --- a/lib/src/main/java/io/ably/lib/object/adapter/Adapter.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/adapter/Adapter.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.adapter; +package io.ably.lib.liveobjects.adapter; import io.ably.lib.realtime.AblyRealtime; import io.ably.lib.realtime.Channel; diff --git a/lib/src/main/java/io/ably/lib/object/adapter/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/adapter/package-info.java similarity index 56% rename from lib/src/main/java/io/ably/lib/object/adapter/package-info.java rename to lib/src/main/java/io/ably/lib/liveobjects/adapter/package-info.java index c1589741b..3539eba35 100644 --- a/lib/src/main/java/io/ably/lib/object/adapter/package-info.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/adapter/package-info.java @@ -1,10 +1,10 @@ /** * Adapter layer bridging the path-based LiveObjects implementation to the core Ably client. - * {@link io.ably.lib.object.adapter.AblyClientAdapter} is the abstraction the implementation - * depends on; {@link io.ably.lib.object.adapter.Adapter} is the default implementation backed + * {@link io.ably.lib.liveobjects.adapter.AblyClientAdapter} is the abstraction the implementation + * depends on; {@link io.ably.lib.liveobjects.adapter.Adapter} is the default implementation backed * by an {@link io.ably.lib.realtime.AblyRealtime} client. * *
This package is intentionally independent of the legacy {@code io.ably.lib.objects} * package so the path-based API can evolve on its own. */ -package io.ably.lib.object.adapter; +package io.ably.lib.liveobjects.adapter; diff --git a/lib/src/main/java/io/ably/lib/object/instance/Instance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/Instance.java similarity index 91% rename from lib/src/main/java/io/ably/lib/object/instance/Instance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/Instance.java index c29cadab4..a364e9b3b 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/Instance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/Instance.java @@ -1,15 +1,15 @@ -package io.ably.lib.object.instance; +package io.ably.lib.liveobjects.instance; import com.google.gson.JsonElement; -import io.ably.lib.object.ValueType; -import io.ably.lib.object.instance.types.BinaryInstance; -import io.ably.lib.object.instance.types.BooleanInstance; -import io.ably.lib.object.instance.types.JsonArrayInstance; -import io.ably.lib.object.instance.types.JsonObjectInstance; -import io.ably.lib.object.instance.types.LiveCounterInstance; -import io.ably.lib.object.instance.types.LiveMapInstance; -import io.ably.lib.object.instance.types.NumberInstance; -import io.ably.lib.object.instance.types.StringInstance; +import io.ably.lib.liveobjects.ValueType; +import io.ably.lib.liveobjects.instance.types.BinaryInstance; +import io.ably.lib.liveobjects.instance.types.BooleanInstance; +import io.ably.lib.liveobjects.instance.types.JsonArrayInstance; +import io.ably.lib.liveobjects.instance.types.JsonObjectInstance; +import io.ably.lib.liveobjects.instance.types.LiveCounterInstance; +import io.ably.lib.liveobjects.instance.types.LiveMapInstance; +import io.ably.lib.liveobjects.instance.types.NumberInstance; +import io.ably.lib.liveobjects.instance.types.StringInstance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/InstanceListener.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceListener.java similarity index 73% rename from lib/src/main/java/io/ably/lib/object/instance/InstanceListener.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceListener.java index fe069e7db..942c0635b 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/InstanceListener.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceListener.java @@ -1,7 +1,7 @@ -package io.ably.lib.object.instance; +package io.ably.lib.liveobjects.instance; -import io.ably.lib.object.instance.types.LiveCounterInstance; -import io.ably.lib.object.instance.types.LiveMapInstance; +import io.ably.lib.liveobjects.instance.types.LiveCounterInstance; +import io.ably.lib.liveobjects.instance.types.LiveMapInstance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/InstanceSubscriptionEvent.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceSubscriptionEvent.java similarity index 81% rename from lib/src/main/java/io/ably/lib/object/instance/InstanceSubscriptionEvent.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceSubscriptionEvent.java index c87526a9b..db460035b 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/InstanceSubscriptionEvent.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/InstanceSubscriptionEvent.java @@ -1,8 +1,8 @@ -package io.ably.lib.object.instance; +package io.ably.lib.liveobjects.instance; -import io.ably.lib.object.instance.types.LiveCounterInstance; -import io.ably.lib.object.instance.types.LiveMapInstance; -import io.ably.lib.object.message.ObjectMessage; +import io.ably.lib.liveobjects.instance.types.LiveCounterInstance; +import io.ably.lib.liveobjects.instance.types.LiveMapInstance; +import io.ably.lib.liveobjects.message.ObjectMessage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/lib/src/main/java/io/ably/lib/liveobjects/instance/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/package-info.java new file mode 100644 index 000000000..df272f592 --- /dev/null +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/package-info.java @@ -0,0 +1,12 @@ +/** + * The identity-addressed view of the LiveObjects graph. + * {@link io.ably.lib.liveobjects.instance.Instance} wraps a specific resolved + * LiveObject or primitive value and dereferences it in O(1), following the + * object wherever it sits in the graph. Type-specific operations live on the + * sub-types in {@link io.ably.lib.liveobjects.instance.types}; instance + * subscriptions use {@link io.ably.lib.liveobjects.instance.InstanceListener} and + * {@link io.ably.lib.liveobjects.instance.InstanceSubscriptionEvent}. + * + *
Spec: RTINS1-RTINS16, RTTS7-RTTS9 + */ +package io.ably.lib.liveobjects.instance; diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/BinaryInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/BinaryInstance.java similarity index 90% rename from lib/src/main/java/io/ably/lib/object/instance/types/BinaryInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/BinaryInstance.java index f4860d1ae..e7564df31 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/BinaryInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/BinaryInstance.java @@ -1,7 +1,7 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonPrimitive; -import io.ably.lib.object.instance.Instance; +import io.ably.lib.liveobjects.instance.Instance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/BooleanInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/BooleanInstance.java similarity index 90% rename from lib/src/main/java/io/ably/lib/object/instance/types/BooleanInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/BooleanInstance.java index 380a17812..90eebf425 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/BooleanInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/BooleanInstance.java @@ -1,7 +1,7 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonPrimitive; -import io.ably.lib.object.instance.Instance; +import io.ably.lib.liveobjects.instance.Instance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/JsonArrayInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonArrayInstance.java similarity index 90% rename from lib/src/main/java/io/ably/lib/object/instance/types/JsonArrayInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonArrayInstance.java index 7df1f929f..ce916e907 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/JsonArrayInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonArrayInstance.java @@ -1,7 +1,7 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonArray; -import io.ably.lib.object.instance.Instance; +import io.ably.lib.liveobjects.instance.Instance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/JsonObjectInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonObjectInstance.java similarity index 90% rename from lib/src/main/java/io/ably/lib/object/instance/types/JsonObjectInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonObjectInstance.java index 07222a11d..724fe5242 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/JsonObjectInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/JsonObjectInstance.java @@ -1,7 +1,7 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonObject; -import io.ably.lib.object.instance.Instance; +import io.ably.lib.liveobjects.instance.Instance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/LiveCounterInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveCounterInstance.java similarity index 94% rename from lib/src/main/java/io/ably/lib/object/instance/types/LiveCounterInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveCounterInstance.java index f5296ccf9..dd2ba8a51 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/LiveCounterInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveCounterInstance.java @@ -1,9 +1,9 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonPrimitive; -import io.ably.lib.object.instance.Instance; -import io.ably.lib.object.instance.InstanceListener; -import io.ably.lib.object.Subscription; +import io.ably.lib.liveobjects.instance.Instance; +import io.ably.lib.liveobjects.instance.InstanceListener; +import io.ably.lib.liveobjects.Subscription; import org.jetbrains.annotations.NonBlocking; import org.jetbrains.annotations.NotNull; diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/LiveMapInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveMapInstance.java similarity index 94% rename from lib/src/main/java/io/ably/lib/object/instance/types/LiveMapInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveMapInstance.java index c5b79bc1c..6e7c21e47 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/LiveMapInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/LiveMapInstance.java @@ -1,10 +1,10 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonObject; -import io.ably.lib.object.instance.Instance; -import io.ably.lib.object.instance.InstanceListener; -import io.ably.lib.object.Subscription; -import io.ably.lib.object.value.LiveMapValue; +import io.ably.lib.liveobjects.instance.Instance; +import io.ably.lib.liveobjects.instance.InstanceListener; +import io.ably.lib.liveobjects.Subscription; +import io.ably.lib.liveobjects.value.LiveMapValue; import org.jetbrains.annotations.NonBlocking; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/NumberInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/NumberInstance.java similarity index 90% rename from lib/src/main/java/io/ably/lib/object/instance/types/NumberInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/NumberInstance.java index 298fd59f5..f18cb3c74 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/NumberInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/NumberInstance.java @@ -1,7 +1,7 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonPrimitive; -import io.ably.lib.object.instance.Instance; +import io.ably.lib.liveobjects.instance.Instance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/StringInstance.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/StringInstance.java similarity index 90% rename from lib/src/main/java/io/ably/lib/object/instance/types/StringInstance.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/StringInstance.java index a7a06de15..680f0c3ae 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/StringInstance.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/StringInstance.java @@ -1,7 +1,7 @@ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; import com.google.gson.JsonPrimitive; -import io.ably.lib.object.instance.Instance; +import io.ably.lib.liveobjects.instance.Instance; import org.jetbrains.annotations.NotNull; /** diff --git a/lib/src/main/java/io/ably/lib/object/instance/types/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/package-info.java similarity index 60% rename from lib/src/main/java/io/ably/lib/object/instance/types/package-info.java rename to lib/src/main/java/io/ably/lib/liveobjects/instance/types/package-info.java index 2ec45e8fd..651f45669 100644 --- a/lib/src/main/java/io/ably/lib/object/instance/types/package-info.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/instance/types/package-info.java @@ -1,11 +1,11 @@ /** * Type-specific {@code Instance} sub-types: the typed-SDK partition of instance - * operations. {@link io.ably.lib.object.instance.types.LiveMapInstance} + * operations. {@link io.ably.lib.liveobjects.instance.types.LiveMapInstance} * (RTTS10a) carries map reads, writes and subscribe, - * {@link io.ably.lib.object.instance.types.LiveCounterInstance} (RTTS10b) + * {@link io.ably.lib.liveobjects.instance.types.LiveCounterInstance} (RTTS10b) * carries counter operations and subscribe, and the six primitive sub-types * (RTTS10c) expose only a type-narrowed, non-null {@code value()}. * *
Spec: RTTS10 */ -package io.ably.lib.object.instance.types; +package io.ably.lib.liveobjects.instance.types; diff --git a/lib/src/main/java/io/ably/lib/object/message/CounterCreate.java b/lib/src/main/java/io/ably/lib/liveobjects/message/CounterCreate.java similarity index 91% rename from lib/src/main/java/io/ably/lib/object/message/CounterCreate.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/CounterCreate.java index 2d8f5a203..ca05e0e28 100644 --- a/lib/src/main/java/io/ably/lib/object/message/CounterCreate.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/CounterCreate.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import org.jetbrains.annotations.NotNull; diff --git a/lib/src/main/java/io/ably/lib/object/message/CounterInc.java b/lib/src/main/java/io/ably/lib/liveobjects/message/CounterInc.java similarity index 92% rename from lib/src/main/java/io/ably/lib/object/message/CounterInc.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/CounterInc.java index fa1eeee82..88fe59174 100644 --- a/lib/src/main/java/io/ably/lib/object/message/CounterInc.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/CounterInc.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import org.jetbrains.annotations.NotNull; diff --git a/lib/src/main/java/io/ably/lib/object/message/MapClear.java b/lib/src/main/java/io/ably/lib/liveobjects/message/MapClear.java similarity index 88% rename from lib/src/main/java/io/ably/lib/object/message/MapClear.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/MapClear.java index 28609f247..29c9092dc 100644 --- a/lib/src/main/java/io/ably/lib/object/message/MapClear.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/MapClear.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; /** * Payload of a {@link ObjectOperationAction#MAP_CLEAR} operation. This type diff --git a/lib/src/main/java/io/ably/lib/object/message/MapCreate.java b/lib/src/main/java/io/ably/lib/liveobjects/message/MapCreate.java similarity index 95% rename from lib/src/main/java/io/ably/lib/object/message/MapCreate.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/MapCreate.java index 73103a92f..fcd7fc539 100644 --- a/lib/src/main/java/io/ably/lib/object/message/MapCreate.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/MapCreate.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Unmodifiable; diff --git a/lib/src/main/java/io/ably/lib/object/message/MapRemove.java b/lib/src/main/java/io/ably/lib/liveobjects/message/MapRemove.java similarity index 90% rename from lib/src/main/java/io/ably/lib/object/message/MapRemove.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/MapRemove.java index 51336eb5c..fccb67464 100644 --- a/lib/src/main/java/io/ably/lib/object/message/MapRemove.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/MapRemove.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import org.jetbrains.annotations.NotNull; diff --git a/lib/src/main/java/io/ably/lib/object/message/MapSet.java b/lib/src/main/java/io/ably/lib/liveobjects/message/MapSet.java similarity index 92% rename from lib/src/main/java/io/ably/lib/object/message/MapSet.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/MapSet.java index 742b5290f..6b63e88cf 100644 --- a/lib/src/main/java/io/ably/lib/object/message/MapSet.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/MapSet.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import org.jetbrains.annotations.NotNull; diff --git a/lib/src/main/java/io/ably/lib/object/message/ObjectData.java b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectData.java similarity index 97% rename from lib/src/main/java/io/ably/lib/object/message/ObjectData.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/ObjectData.java index 25fb22f34..b98e53920 100644 --- a/lib/src/main/java/io/ably/lib/object/message/ObjectData.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectData.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import com.google.gson.JsonElement; import org.jetbrains.annotations.Nullable; diff --git a/lib/src/main/java/io/ably/lib/object/message/ObjectDelete.java b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectDelete.java similarity index 89% rename from lib/src/main/java/io/ably/lib/object/message/ObjectDelete.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/ObjectDelete.java index 2ebd52cfa..1f8c8c671 100644 --- a/lib/src/main/java/io/ably/lib/object/message/ObjectDelete.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectDelete.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; /** * Payload of an {@link ObjectOperationAction#OBJECT_DELETE} operation. This type diff --git a/lib/src/main/java/io/ably/lib/object/message/ObjectMessage.java b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectMessage.java similarity index 95% rename from lib/src/main/java/io/ably/lib/object/message/ObjectMessage.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/ObjectMessage.java index 36b3f825d..3a2513643 100644 --- a/lib/src/main/java/io/ably/lib/object/message/ObjectMessage.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectMessage.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import com.google.gson.JsonObject; import org.jetbrains.annotations.NotNull; @@ -7,8 +7,8 @@ /** * The user-facing representation of an inbound object message that carried an operation. * It is delivered to subscription listeners (see - * {@link io.ably.lib.object.path.PathObjectSubscriptionEvent} and - * {@link io.ably.lib.object.instance.InstanceSubscriptionEvent}) so that user code can + * {@link io.ably.lib.liveobjects.path.PathObjectSubscriptionEvent} and + * {@link io.ably.lib.liveobjects.instance.InstanceSubscriptionEvent}) so that user code can * inspect the metadata of the message that triggered an object change. * *
An {@code ObjectMessage} always carries an {@link #getOperation() operation}; object diff --git a/lib/src/main/java/io/ably/lib/object/message/ObjectOperation.java b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperation.java similarity index 98% rename from lib/src/main/java/io/ably/lib/object/message/ObjectOperation.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperation.java index 52a2d2d1b..d4df9fb00 100644 --- a/lib/src/main/java/io/ably/lib/object/message/ObjectOperation.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperation.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/lib/src/main/java/io/ably/lib/object/message/ObjectOperationAction.java b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperationAction.java similarity index 95% rename from lib/src/main/java/io/ably/lib/object/message/ObjectOperationAction.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperationAction.java index 0d3730ea3..002f289d4 100644 --- a/lib/src/main/java/io/ably/lib/object/message/ObjectOperationAction.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectOperationAction.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; /** * The action of an {@link ObjectOperation}, defining the type of operation that was diff --git a/lib/src/main/java/io/ably/lib/object/message/ObjectsMapEntry.java b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapEntry.java similarity index 96% rename from lib/src/main/java/io/ably/lib/object/message/ObjectsMapEntry.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapEntry.java index 0da010f0a..09df91fbb 100644 --- a/lib/src/main/java/io/ably/lib/object/message/ObjectsMapEntry.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapEntry.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; import org.jetbrains.annotations.Nullable; diff --git a/lib/src/main/java/io/ably/lib/object/message/ObjectsMapSemantics.java b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapSemantics.java similarity index 89% rename from lib/src/main/java/io/ably/lib/object/message/ObjectsMapSemantics.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapSemantics.java index d5cae3f9b..1fcb7f2aa 100644 --- a/lib/src/main/java/io/ably/lib/object/message/ObjectsMapSemantics.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/ObjectsMapSemantics.java @@ -1,4 +1,4 @@ -package io.ably.lib.object.message; +package io.ably.lib.liveobjects.message; /** * The conflict-resolution semantics used by a {@code LiveMap} object. diff --git a/lib/src/main/java/io/ably/lib/object/message/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/message/package-info.java similarity index 89% rename from lib/src/main/java/io/ably/lib/object/message/package-info.java rename to lib/src/main/java/io/ably/lib/liveobjects/message/package-info.java index a90af7614..f3f7c246e 100644 --- a/lib/src/main/java/io/ably/lib/object/message/package-info.java +++ b/lib/src/main/java/io/ably/lib/liveobjects/message/package-info.java @@ -2,7 +2,7 @@ * User-facing object message metadata, delivered to subscription listeners so * that user code can inspect the operation that triggered an object change. * - *
{@link io.ably.lib.object.message.ObjectMessage} is the single entry point + *
{@link io.ably.lib.liveobjects.message.ObjectMessage} is the single entry point * of this package; every other type is reached by walking its properties: * *
{@code
@@ -23,4 +23,4 @@
*
* Spec: PAOM1-PAOM3, PAOOP1-PAOOP3
*/
-package io.ably.lib.object.message;
+package io.ably.lib.liveobjects.message;
diff --git a/lib/src/main/java/io/ably/lib/liveobjects/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/package-info.java
new file mode 100644
index 000000000..722ac3994
--- /dev/null
+++ b/lib/src/main/java/io/ably/lib/liveobjects/package-info.java
@@ -0,0 +1,17 @@
+/**
+ * The public, strongly-typed LiveObjects API: path-based and instance-based views
+ * over the objects graph on a channel.
+ *
+ *
This root package holds the types shared by both view hierarchies:
+ * {@link io.ably.lib.liveobjects.ValueType} (the categories a resolved value may have)
+ * and {@link io.ably.lib.liveobjects.Subscription} (the handle returned by every
+ * {@code subscribe} operation). The hierarchies themselves live in
+ * {@link io.ably.lib.liveobjects.path} (lazy, path-addressed references) and
+ * {@link io.ably.lib.liveobjects.instance} (O(1), identity-addressed references);
+ * message metadata delivered to subscription listeners lives in
+ * {@link io.ably.lib.liveobjects.message}, and write-side value types in
+ * {@link io.ably.lib.liveobjects.value}.
+ *
+ *
Spec: RTTS1-RTTS10 (typed-SDK public API partition)
+ */
+package io.ably.lib.liveobjects;
diff --git a/lib/src/main/java/io/ably/lib/object/path/PathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObject.java
similarity index 93%
rename from lib/src/main/java/io/ably/lib/object/path/PathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/PathObject.java
index 5e084e04d..36a2ec49d 100644
--- a/lib/src/main/java/io/ably/lib/object/path/PathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObject.java
@@ -1,17 +1,17 @@
-package io.ably.lib.object.path;
+package io.ably.lib.liveobjects.path;
import com.google.gson.JsonElement;
-import io.ably.lib.object.ValueType;
-import io.ably.lib.object.instance.Instance;
-import io.ably.lib.object.path.types.BinaryPathObject;
-import io.ably.lib.object.path.types.BooleanPathObject;
-import io.ably.lib.object.path.types.JsonArrayPathObject;
-import io.ably.lib.object.path.types.JsonObjectPathObject;
-import io.ably.lib.object.path.types.LiveCounterPathObject;
-import io.ably.lib.object.path.types.LiveMapPathObject;
-import io.ably.lib.object.path.types.NumberPathObject;
-import io.ably.lib.object.path.types.StringPathObject;
-import io.ably.lib.object.Subscription;
+import io.ably.lib.liveobjects.ValueType;
+import io.ably.lib.liveobjects.instance.Instance;
+import io.ably.lib.liveobjects.path.types.BinaryPathObject;
+import io.ably.lib.liveobjects.path.types.BooleanPathObject;
+import io.ably.lib.liveobjects.path.types.JsonArrayPathObject;
+import io.ably.lib.liveobjects.path.types.JsonObjectPathObject;
+import io.ably.lib.liveobjects.path.types.LiveCounterPathObject;
+import io.ably.lib.liveobjects.path.types.LiveMapPathObject;
+import io.ably.lib.liveobjects.path.types.NumberPathObject;
+import io.ably.lib.liveobjects.path.types.StringPathObject;
+import io.ably.lib.liveobjects.Subscription;
import org.jetbrains.annotations.NonBlocking;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/lib/src/main/java/io/ably/lib/object/path/PathObjectListener.java b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectListener.java
similarity index 94%
rename from lib/src/main/java/io/ably/lib/object/path/PathObjectListener.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectListener.java
index 895e4ad2f..48bca1c72 100644
--- a/lib/src/main/java/io/ably/lib/object/path/PathObjectListener.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectListener.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.path;
+package io.ably.lib.liveobjects.path;
import org.jetbrains.annotations.NotNull;
diff --git a/lib/src/main/java/io/ably/lib/object/path/PathObjectSubscriptionEvent.java b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionEvent.java
similarity index 91%
rename from lib/src/main/java/io/ably/lib/object/path/PathObjectSubscriptionEvent.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionEvent.java
index a8c753c70..7fd978de9 100644
--- a/lib/src/main/java/io/ably/lib/object/path/PathObjectSubscriptionEvent.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionEvent.java
@@ -1,6 +1,6 @@
-package io.ably.lib.object.path;
+package io.ably.lib.liveobjects.path;
-import io.ably.lib.object.message.ObjectMessage;
+import io.ably.lib.liveobjects.message.ObjectMessage;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/lib/src/main/java/io/ably/lib/object/path/PathObjectSubscriptionOptions.java b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionOptions.java
similarity index 97%
rename from lib/src/main/java/io/ably/lib/object/path/PathObjectSubscriptionOptions.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionOptions.java
index cf83c3ae4..df9b5a9fa 100644
--- a/lib/src/main/java/io/ably/lib/object/path/PathObjectSubscriptionOptions.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/PathObjectSubscriptionOptions.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.path;
+package io.ably.lib.liveobjects.path;
import io.ably.lib.types.AblyException;
import io.ably.lib.types.ErrorInfo;
diff --git a/lib/src/main/java/io/ably/lib/liveobjects/path/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/path/package-info.java
new file mode 100644
index 000000000..00471f2fe
--- /dev/null
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/package-info.java
@@ -0,0 +1,13 @@
+/**
+ * The path-addressed view of the LiveObjects graph.
+ * {@link io.ably.lib.liveobjects.path.PathObject} stores a path from the channel's
+ * root {@code LiveMap} and re-resolves it lazily on every call, so a reference
+ * survives object replacement at its path. Type-specific operations live on the
+ * sub-types in {@link io.ably.lib.liveobjects.path.types}; path-based subscriptions
+ * use {@link io.ably.lib.liveobjects.path.PathObjectListener},
+ * {@link io.ably.lib.liveobjects.path.PathObjectSubscriptionEvent} and
+ * {@link io.ably.lib.liveobjects.path.PathObjectSubscriptionOptions}.
+ *
+ *
Spec: RTPO1-RTPO19, RTTS3-RTTS5
+ */
+package io.ably.lib.liveobjects.path;
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/BinaryPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/BinaryPathObject.java
similarity index 90%
rename from lib/src/main/java/io/ably/lib/object/path/types/BinaryPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/BinaryPathObject.java
index f47765cea..e96ac7062 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/BinaryPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/BinaryPathObject.java
@@ -1,6 +1,6 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
-import io.ably.lib.object.path.PathObject;
+import io.ably.lib.liveobjects.path.PathObject;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/BooleanPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/BooleanPathObject.java
similarity index 90%
rename from lib/src/main/java/io/ably/lib/object/path/types/BooleanPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/BooleanPathObject.java
index b582227c8..c77c59f9e 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/BooleanPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/BooleanPathObject.java
@@ -1,6 +1,6 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
-import io.ably.lib.object.path.PathObject;
+import io.ably.lib.liveobjects.path.PathObject;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/JsonArrayPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonArrayPathObject.java
similarity index 90%
rename from lib/src/main/java/io/ably/lib/object/path/types/JsonArrayPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonArrayPathObject.java
index 585980bf8..52a89f016 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/JsonArrayPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonArrayPathObject.java
@@ -1,7 +1,7 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
import com.google.gson.JsonArray;
-import io.ably.lib.object.path.PathObject;
+import io.ably.lib.liveobjects.path.PathObject;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/JsonObjectPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonObjectPathObject.java
similarity index 90%
rename from lib/src/main/java/io/ably/lib/object/path/types/JsonObjectPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonObjectPathObject.java
index 681fcaa6e..b889ab521 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/JsonObjectPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/JsonObjectPathObject.java
@@ -1,7 +1,7 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
import com.google.gson.JsonObject;
-import io.ably.lib.object.path.PathObject;
+import io.ably.lib.liveobjects.path.PathObject;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/LiveCounterPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveCounterPathObject.java
similarity index 97%
rename from lib/src/main/java/io/ably/lib/object/path/types/LiveCounterPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveCounterPathObject.java
index bb2588213..fb8eb87d3 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/LiveCounterPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveCounterPathObject.java
@@ -1,6 +1,6 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
-import io.ably.lib.object.path.PathObject;
+import io.ably.lib.liveobjects.path.PathObject;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/LiveMapPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveMapPathObject.java
similarity index 97%
rename from lib/src/main/java/io/ably/lib/object/path/types/LiveMapPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveMapPathObject.java
index 6c4f0ab00..cf35e553f 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/LiveMapPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/LiveMapPathObject.java
@@ -1,7 +1,7 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
-import io.ably.lib.object.path.PathObject;
-import io.ably.lib.object.value.LiveMapValue;
+import io.ably.lib.liveobjects.path.PathObject;
+import io.ably.lib.liveobjects.value.LiveMapValue;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Unmodifiable;
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/NumberPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/NumberPathObject.java
similarity index 90%
rename from lib/src/main/java/io/ably/lib/object/path/types/NumberPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/NumberPathObject.java
index 3903004fa..6eadd3697 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/NumberPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/NumberPathObject.java
@@ -1,6 +1,6 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
-import io.ably.lib.object.path.PathObject;
+import io.ably.lib.liveobjects.path.PathObject;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/StringPathObject.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/StringPathObject.java
similarity index 90%
rename from lib/src/main/java/io/ably/lib/object/path/types/StringPathObject.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/StringPathObject.java
index 06c332994..18652dc03 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/StringPathObject.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/StringPathObject.java
@@ -1,6 +1,6 @@
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
-import io.ably.lib.object.path.PathObject;
+import io.ably.lib.liveobjects.path.PathObject;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/lib/src/main/java/io/ably/lib/object/path/types/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/path/types/package-info.java
similarity index 54%
rename from lib/src/main/java/io/ably/lib/object/path/types/package-info.java
rename to lib/src/main/java/io/ably/lib/liveobjects/path/types/package-info.java
index c97e152dc..1575cfabc 100644
--- a/lib/src/main/java/io/ably/lib/object/path/types/package-info.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/path/types/package-info.java
@@ -1,11 +1,11 @@
/**
* Type-specific {@code PathObject} sub-types: the typed-SDK partition of path
- * operations. {@link io.ably.lib.object.path.types.LiveMapPathObject} (RTTS6a)
+ * operations. {@link io.ably.lib.liveobjects.path.types.LiveMapPathObject} (RTTS6a)
* carries map navigation and writes,
- * {@link io.ably.lib.object.path.types.LiveCounterPathObject} (RTTS6b) carries
+ * {@link io.ably.lib.liveobjects.path.types.LiveCounterPathObject} (RTTS6b) carries
* counter operations, and the six primitive sub-types (RTTS6c) expose only a
* type-narrowed {@code value()}.
*
*
Spec: RTTS6
*/
-package io.ably.lib.object.path.types;
+package io.ably.lib.liveobjects.path.types;
diff --git a/lib/src/main/java/io/ably/lib/object/serialization/ObjectJsonSerializer.java b/lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectJsonSerializer.java
similarity index 97%
rename from lib/src/main/java/io/ably/lib/object/serialization/ObjectJsonSerializer.java
rename to lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectJsonSerializer.java
index 8c8566490..c6f95d200 100644
--- a/lib/src/main/java/io/ably/lib/object/serialization/ObjectJsonSerializer.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectJsonSerializer.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.serialization;
+package io.ably.lib.liveobjects.serialization;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
diff --git a/lib/src/main/java/io/ably/lib/object/serialization/ObjectSerializer.java b/lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectSerializer.java
similarity index 97%
rename from lib/src/main/java/io/ably/lib/object/serialization/ObjectSerializer.java
rename to lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectSerializer.java
index 78d237104..c5b6abcf3 100644
--- a/lib/src/main/java/io/ably/lib/object/serialization/ObjectSerializer.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/serialization/ObjectSerializer.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.serialization;
+package io.ably.lib.liveobjects.serialization;
import com.google.gson.JsonArray;
import io.ably.lib.util.Log;
@@ -70,7 +70,7 @@ static ObjectSerializer tryGet() {
*/
final class Holder {
private static final String TAG = ObjectSerializer.Holder.class.getName();
- private static final String IMPLEMENTATION_CLASS = "io.ably.lib.object.serialization.DefaultObjectsSerializer";
+ private static final String IMPLEMENTATION_CLASS = "io.ably.lib.liveobjects.serialization.DefaultObjectsSerializer";
private static volatile ObjectSerializer objectsSerializer;
private Holder() {}
diff --git a/lib/src/main/java/io/ably/lib/object/state/ObjectStateChange.java b/lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateChange.java
similarity index 96%
rename from lib/src/main/java/io/ably/lib/object/state/ObjectStateChange.java
rename to lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateChange.java
index bf457fddf..d6bb65385 100644
--- a/lib/src/main/java/io/ably/lib/object/state/ObjectStateChange.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateChange.java
@@ -1,6 +1,6 @@
-package io.ably.lib.object.state;
+package io.ably.lib.liveobjects.state;
-import io.ably.lib.object.Subscription;
+import io.ably.lib.liveobjects.Subscription;
import org.jetbrains.annotations.NonBlocking;
import org.jetbrains.annotations.NotNull;
diff --git a/lib/src/main/java/io/ably/lib/object/state/ObjectStateEvent.java b/lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateEvent.java
similarity index 93%
rename from lib/src/main/java/io/ably/lib/object/state/ObjectStateEvent.java
rename to lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateEvent.java
index 9c9a45045..053d26116 100644
--- a/lib/src/main/java/io/ably/lib/object/state/ObjectStateEvent.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/state/ObjectStateEvent.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.state;
+package io.ably.lib.liveobjects.state;
/**
* Represents the synchronization state of Ably Objects.
diff --git a/lib/src/main/java/io/ably/lib/object/value/LiveCounter.java b/lib/src/main/java/io/ably/lib/liveobjects/value/LiveCounter.java
similarity index 97%
rename from lib/src/main/java/io/ably/lib/object/value/LiveCounter.java
rename to lib/src/main/java/io/ably/lib/liveobjects/value/LiveCounter.java
index dfd3b785d..484c1be15 100644
--- a/lib/src/main/java/io/ably/lib/object/value/LiveCounter.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/value/LiveCounter.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.value;
+package io.ably.lib.liveobjects.value;
import org.jetbrains.annotations.NotNull;
@@ -23,7 +23,7 @@
*/
public abstract class LiveCounter {
- private static final String IMPLEMENTATION_CLASS = "io.ably.lib.object.value.DefaultLiveCounter";
+ private static final String IMPLEMENTATION_CLASS = "io.ably.lib.liveobjects.value.DefaultLiveCounter";
/**
* Extended by the LiveObjects implementation; not intended for
diff --git a/lib/src/main/java/io/ably/lib/object/value/LiveMap.java b/lib/src/main/java/io/ably/lib/liveobjects/value/LiveMap.java
similarity index 97%
rename from lib/src/main/java/io/ably/lib/object/value/LiveMap.java
rename to lib/src/main/java/io/ably/lib/liveobjects/value/LiveMap.java
index c43f76a96..022622d8b 100644
--- a/lib/src/main/java/io/ably/lib/object/value/LiveMap.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/value/LiveMap.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.value;
+package io.ably.lib.liveobjects.value;
import org.jetbrains.annotations.NotNull;
@@ -26,7 +26,7 @@
*/
public abstract class LiveMap {
- private static final String IMPLEMENTATION_CLASS = "io.ably.lib.object.value.DefaultLiveMap";
+ private static final String IMPLEMENTATION_CLASS = "io.ably.lib.liveobjects.value.DefaultLiveMap";
/**
* Extended by the LiveObjects implementation; not intended for
diff --git a/lib/src/main/java/io/ably/lib/object/value/LiveMapValue.java b/lib/src/main/java/io/ably/lib/liveobjects/value/LiveMapValue.java
similarity index 99%
rename from lib/src/main/java/io/ably/lib/object/value/LiveMapValue.java
rename to lib/src/main/java/io/ably/lib/liveobjects/value/LiveMapValue.java
index 5f80595a5..406e48d02 100644
--- a/lib/src/main/java/io/ably/lib/object/value/LiveMapValue.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/value/LiveMapValue.java
@@ -1,4 +1,4 @@
-package io.ably.lib.object.value;
+package io.ably.lib.liveobjects.value;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
diff --git a/lib/src/main/java/io/ably/lib/object/value/package-info.java b/lib/src/main/java/io/ably/lib/liveobjects/value/package-info.java
similarity index 68%
rename from lib/src/main/java/io/ably/lib/object/value/package-info.java
rename to lib/src/main/java/io/ably/lib/liveobjects/value/package-info.java
index 583baa039..6a4e798ec 100644
--- a/lib/src/main/java/io/ably/lib/object/value/package-info.java
+++ b/lib/src/main/java/io/ably/lib/liveobjects/value/package-info.java
@@ -1,9 +1,9 @@
/**
* Write-side value types for LiveObjects mutations.
- * {@link io.ably.lib.object.value.LiveMapValue} is the union of values
+ * {@link io.ably.lib.liveobjects.value.LiveMapValue} is the union of values
* assignable to a {@code LiveMap} key;
- * {@link io.ably.lib.object.value.LiveMap} and
- * {@link io.ably.lib.object.value.LiveCounter} are immutable initial-value
+ * {@link io.ably.lib.liveobjects.value.LiveMap} and
+ * {@link io.ably.lib.liveobjects.value.LiveCounter} are immutable initial-value
* holders describing new objects to be created by a mutation; they expose only
* the static {@code create} factories (RTLMV3 / RTLCV3), which delegate to the
* LiveObjects implementation extending these abstract classes. Their internal
@@ -13,4 +13,4 @@
*
Spec: RTLM20 / RTPO15a2 / RTINS12a2 (value union); RTLMV3 / RTLCV3
* (new-object value types)
*/
-package io.ably.lib.object.value;
+package io.ably.lib.liveobjects.value;
diff --git a/lib/src/main/java/io/ably/lib/object/instance/package-info.java b/lib/src/main/java/io/ably/lib/object/instance/package-info.java
deleted file mode 100644
index c99b3f05f..000000000
--- a/lib/src/main/java/io/ably/lib/object/instance/package-info.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The identity-addressed view of the LiveObjects graph.
- * {@link io.ably.lib.object.instance.Instance} wraps a specific resolved
- * LiveObject or primitive value and dereferences it in O(1), following the
- * object wherever it sits in the graph. Type-specific operations live on the
- * sub-types in {@link io.ably.lib.object.instance.types}; instance
- * subscriptions use {@link io.ably.lib.object.instance.InstanceListener} and
- * {@link io.ably.lib.object.instance.InstanceSubscriptionEvent}.
- *
- *
Spec: RTINS1-RTINS16, RTTS7-RTTS9
- */
-package io.ably.lib.object.instance;
diff --git a/lib/src/main/java/io/ably/lib/object/package-info.java b/lib/src/main/java/io/ably/lib/object/package-info.java
deleted file mode 100644
index 2a8719347..000000000
--- a/lib/src/main/java/io/ably/lib/object/package-info.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * The public, strongly-typed LiveObjects API: path-based and instance-based views
- * over the objects graph on a channel.
- *
- *
This root package holds the types shared by both view hierarchies:
- * {@link io.ably.lib.object.ValueType} (the categories a resolved value may have)
- * and {@link io.ably.lib.object.Subscription} (the handle returned by every
- * {@code subscribe} operation). The hierarchies themselves live in
- * {@link io.ably.lib.object.path} (lazy, path-addressed references) and
- * {@link io.ably.lib.object.instance} (O(1), identity-addressed references);
- * message metadata delivered to subscription listeners lives in
- * {@link io.ably.lib.object.message}, and write-side value types in
- * {@link io.ably.lib.object.value}.
- *
- *
Spec: RTTS1-RTTS10 (typed-SDK public API partition)
- */
-package io.ably.lib.object;
diff --git a/lib/src/main/java/io/ably/lib/object/path/package-info.java b/lib/src/main/java/io/ably/lib/object/path/package-info.java
deleted file mode 100644
index a2414cf6c..000000000
--- a/lib/src/main/java/io/ably/lib/object/path/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * The path-addressed view of the LiveObjects graph.
- * {@link io.ably.lib.object.path.PathObject} stores a path from the channel's
- * root {@code LiveMap} and re-resolves it lazily on every call, so a reference
- * survives object replacement at its path. Type-specific operations live on the
- * sub-types in {@link io.ably.lib.object.path.types}; path-based subscriptions
- * use {@link io.ably.lib.object.path.PathObjectListener},
- * {@link io.ably.lib.object.path.PathObjectSubscriptionEvent} and
- * {@link io.ably.lib.object.path.PathObjectSubscriptionOptions}.
- *
- *
Spec: RTPO1-RTPO19, RTTS3-RTTS5
- */
-package io.ably.lib.object.path;
diff --git a/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java b/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java
index 3d1c4a663..b991ed63b 100644
--- a/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java
+++ b/lib/src/main/java/io/ably/lib/realtime/AblyRealtime.java
@@ -5,7 +5,7 @@
import java.util.List;
import java.util.Map;
-import io.ably.lib.object.LiveObjectsPlugin;
+import io.ably.lib.liveobjects.LiveObjectsPlugin;
import io.ably.lib.rest.AblyRest;
import io.ably.lib.rest.Auth;
import io.ably.lib.transport.ConnectionManager;
diff --git a/lib/src/main/java/io/ably/lib/realtime/ChannelBase.java b/lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
index 3b9d4c41f..fe68a481d 100644
--- a/lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
+++ b/lib/src/main/java/io/ably/lib/realtime/ChannelBase.java
@@ -13,8 +13,8 @@
import io.ably.lib.http.Http;
import io.ably.lib.http.HttpCore;
import io.ably.lib.http.HttpUtils;
-import io.ably.lib.object.RealtimeObject;
-import io.ably.lib.object.LiveObjectsPlugin;
+import io.ably.lib.liveobjects.RealtimeObject;
+import io.ably.lib.liveobjects.LiveObjectsPlugin;
import io.ably.lib.rest.MessageEditsMixin;
import io.ably.lib.rest.RestAnnotations;
import io.ably.lib.transport.ConnectionManager;
@@ -1687,10 +1687,7 @@ else if(stateChange.current.equals(failureState)) {
this.decodingContext = new DecodingContext();
this.liveObjectsPlugin = liveObjectsPlugin;
if (liveObjectsPlugin != null) {
- liveObjectsPlugin.getInstance(name);
- // TODO(objects-migration): assign `this.object` to the real RealtimeObject once the
- // LiveObjects plugin exposes io.ably.lib.object.RealtimeObject (getInstance currently
- // returns the legacy io.ably.lib.objects.RealtimeObjects type).
+ this.object = liveObjectsPlugin.getInstance(name);
} else {
this.object = RealtimeObject.Unavailable.INSTANCE;
}
diff --git a/lib/src/main/java/io/ably/lib/realtime/Connection.java b/lib/src/main/java/io/ably/lib/realtime/Connection.java
index 8f0898550..dde9238d0 100644
--- a/lib/src/main/java/io/ably/lib/realtime/Connection.java
+++ b/lib/src/main/java/io/ably/lib/realtime/Connection.java
@@ -1,6 +1,6 @@
package io.ably.lib.realtime;
-import io.ably.lib.object.LiveObjectsPlugin;
+import io.ably.lib.liveobjects.LiveObjectsPlugin;
import io.ably.lib.realtime.ConnectionStateListener.ConnectionStateChange;
import io.ably.lib.transport.ConnectionManager;
import io.ably.lib.types.AblyException;
diff --git a/lib/src/main/java/io/ably/lib/transport/ConnectionManager.java b/lib/src/main/java/io/ably/lib/transport/ConnectionManager.java
index 9b76f628a..15f3b31ab 100644
--- a/lib/src/main/java/io/ably/lib/transport/ConnectionManager.java
+++ b/lib/src/main/java/io/ably/lib/transport/ConnectionManager.java
@@ -14,7 +14,7 @@
import io.ably.lib.debug.DebugOptions;
import io.ably.lib.debug.DebugOptions.RawProtocolListener;
import io.ably.lib.http.HttpHelpers;
-import io.ably.lib.object.LiveObjectsPlugin;
+import io.ably.lib.liveobjects.LiveObjectsPlugin;
import io.ably.lib.realtime.AblyRealtime;
import io.ably.lib.realtime.Channel;
import io.ably.lib.realtime.ChannelState;
diff --git a/lib/src/main/java/io/ably/lib/types/ProtocolMessage.java b/lib/src/main/java/io/ably/lib/types/ProtocolMessage.java
index ff86edd52..bab089c6e 100644
--- a/lib/src/main/java/io/ably/lib/types/ProtocolMessage.java
+++ b/lib/src/main/java/io/ably/lib/types/ProtocolMessage.java
@@ -5,8 +5,8 @@
import java.util.Map;
import com.google.gson.annotations.JsonAdapter;
-import io.ably.lib.object.serialization.ObjectJsonSerializer;
-import io.ably.lib.object.serialization.ObjectSerializer;
+import io.ably.lib.liveobjects.serialization.ObjectJsonSerializer;
+import io.ably.lib.liveobjects.serialization.ObjectSerializer;
import org.jetbrains.annotations.Nullable;
import org.msgpack.core.MessageFormat;
import org.msgpack.core.MessagePacker;
diff --git a/liveobjects/build.gradle.kts b/liveobjects/build.gradle.kts
index e8ef19da3..9d6ad9420 100644
--- a/liveobjects/build.gradle.kts
+++ b/liveobjects/build.gradle.kts
@@ -30,17 +30,17 @@ tasks.withType().configureEach {
outputs.upToDateWhen { false }
}
-tasks.register("runLiveObjectUnitTests") {
+tasks.register("runLiveObjectsUnitTests") {
filter {
- includeTestsMatching("io.ably.lib.object.unit.*")
+ includeTestsMatching("io.ably.lib.liveobjects.unit.*")
}
}
-tasks.register("runLiveObjectIntegrationTests") {
+tasks.register("runLiveObjectsIntegrationTests") {
filter {
- includeTestsMatching("io.ably.lib.object.integration.*")
+ includeTestsMatching("io.ably.lib.liveobjects.integration.*")
// Exclude the base integration test class
- excludeTestsMatching("io.ably.lib.object.integration.setup.IntegrationTest")
+ excludeTestsMatching("io.ably.lib.liveobjects.integration.setup.IntegrationTest")
}
}
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/DefaultRealtimeObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/DefaultRealtimeObject.kt
similarity index 84%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/DefaultRealtimeObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/DefaultRealtimeObject.kt
index 5e5bae61d..ff6dbb070 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/DefaultRealtimeObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/DefaultRealtimeObject.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`
+package io.ably.lib.liveobjects
-import io.ably.lib.`object`.adapter.AblyClientAdapter
-import io.ably.lib.`object`.path.types.LiveMapPathObject
-import io.ably.lib.`object`.state.ObjectStateChange
-import io.ably.lib.`object`.state.ObjectStateEvent
+import io.ably.lib.liveobjects.adapter.AblyClientAdapter
+import io.ably.lib.liveobjects.path.types.LiveMapPathObject
+import io.ably.lib.liveobjects.state.ObjectStateChange
+import io.ably.lib.liveobjects.state.ObjectStateEvent
import java.util.concurrent.CompletableFuture
/**
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/Errors.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Errors.kt
similarity index 98%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/Errors.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Errors.kt
index 8b2c3fcfd..98bd89691 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/Errors.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Errors.kt
@@ -1,4 +1,4 @@
-package io.ably.lib.`object`
+package io.ably.lib.liveobjects
import io.ably.lib.types.AblyException
import io.ably.lib.types.ErrorInfo
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/Helpers.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Helpers.kt
similarity index 97%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/Helpers.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Helpers.kt
index e450c0d49..e8859cc2b 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/Helpers.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Helpers.kt
@@ -1,8 +1,8 @@
-package io.ably.lib.`object`
+package io.ably.lib.liveobjects
-import io.ably.lib.`object`.adapter.AblyClientAdapter
-import io.ably.lib.`object`.message.WireObjectMessage
-import io.ably.lib.`object`.message.size
+import io.ably.lib.liveobjects.adapter.AblyClientAdapter
+import io.ably.lib.liveobjects.message.WireObjectMessage
+import io.ably.lib.liveobjects.message.size
import io.ably.lib.realtime.ChannelState
import io.ably.lib.realtime.CompletionListener
import io.ably.lib.realtime.ConnectionEvent
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/Utils.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Utils.kt
similarity index 98%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/Utils.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Utils.kt
index 4509140eb..8cc628a32 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/Utils.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/Utils.kt
@@ -1,4 +1,4 @@
-package io.ably.lib.`object`
+package io.ably.lib.liveobjects
import io.ably.lib.types.AblyException
import io.ably.lib.types.ErrorInfo
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/DefaultInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstance.kt
similarity index 73%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/DefaultInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstance.kt
index 151949b1b..0b710bbca 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/DefaultInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstance.kt
@@ -1,14 +1,14 @@
-package io.ably.lib.`object`.instance
-
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.instance.types.BinaryInstance
-import io.ably.lib.`object`.instance.types.BooleanInstance
-import io.ably.lib.`object`.instance.types.JsonArrayInstance
-import io.ably.lib.`object`.instance.types.JsonObjectInstance
-import io.ably.lib.`object`.instance.types.LiveCounterInstance
-import io.ably.lib.`object`.instance.types.LiveMapInstance
-import io.ably.lib.`object`.instance.types.NumberInstance
-import io.ably.lib.`object`.instance.types.StringInstance
+package io.ably.lib.liveobjects.instance
+
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.instance.types.BinaryInstance
+import io.ably.lib.liveobjects.instance.types.BooleanInstance
+import io.ably.lib.liveobjects.instance.types.JsonArrayInstance
+import io.ably.lib.liveobjects.instance.types.JsonObjectInstance
+import io.ably.lib.liveobjects.instance.types.LiveCounterInstance
+import io.ably.lib.liveobjects.instance.types.LiveMapInstance
+import io.ably.lib.liveobjects.instance.types.NumberInstance
+import io.ably.lib.liveobjects.instance.types.StringInstance
/**
* Default implementation of [Instance], the identity-addressed node in the LiveObjects graph.
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/DefaultInstanceSubscriptionEvent.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstanceSubscriptionEvent.kt
similarity index 84%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/DefaultInstanceSubscriptionEvent.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstanceSubscriptionEvent.kt
index 292eb5ad2..428a3b88f 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/DefaultInstanceSubscriptionEvent.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/DefaultInstanceSubscriptionEvent.kt
@@ -1,6 +1,6 @@
-package io.ably.lib.`object`.instance
+package io.ably.lib.liveobjects.instance
-import io.ably.lib.`object`.message.ObjectMessage
+import io.ably.lib.liveobjects.message.ObjectMessage
/**
* Default implementation of [InstanceSubscriptionEvent], the event delivered to an
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultBinaryInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBinaryInstance.kt
similarity index 78%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultBinaryInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBinaryInstance.kt
index 26a470a40..0abf41285 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultBinaryInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBinaryInstance.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonPrimitive
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
/**
* Default implementation of [BinaryInstance], a read-only primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultBooleanInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBooleanInstance.kt
similarity index 78%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultBooleanInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBooleanInstance.kt
index 3221ce1f4..ab5eeae4d 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultBooleanInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultBooleanInstance.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonPrimitive
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
/**
* Default implementation of [BooleanInstance], a read-only primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultJsonArrayInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonArrayInstance.kt
similarity index 79%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultJsonArrayInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonArrayInstance.kt
index 4e3ba7701..ecd755a32 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultJsonArrayInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonArrayInstance.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonArray
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
/**
* Default implementation of [JsonArrayInstance], a read-only primitive view that only adds
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultJsonObjectInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonObjectInstance.kt
similarity index 79%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultJsonObjectInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonObjectInstance.kt
index 02dc7c15c..3ce012fd6 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultJsonObjectInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultJsonObjectInstance.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonObject
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
/**
* Default implementation of [JsonObjectInstance], a read-only primitive view that only adds
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultLiveCounterInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveCounterInstance.kt
similarity index 83%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultLiveCounterInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveCounterInstance.kt
index c78db653f..60aae7cc4 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultLiveCounterInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveCounterInstance.kt
@@ -1,12 +1,12 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonPrimitive
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.Subscription
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
-import io.ably.lib.`object`.instance.InstanceListener
-import io.ably.lib.`object`.onceSubscription
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.Subscription
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
+import io.ably.lib.liveobjects.instance.InstanceListener
+import io.ably.lib.liveobjects.onceSubscription
import java.util.concurrent.CompletableFuture
/**
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultLiveMapInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveMapInstance.kt
similarity index 81%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultLiveMapInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveMapInstance.kt
index 7142dc98a..22d9c3f10 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultLiveMapInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultLiveMapInstance.kt
@@ -1,14 +1,14 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonObject
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.Subscription
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
-import io.ably.lib.`object`.instance.Instance
-import io.ably.lib.`object`.instance.InstanceListener
-import io.ably.lib.`object`.onceSubscription
-import io.ably.lib.`object`.value.LiveMapValue
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.Subscription
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
+import io.ably.lib.liveobjects.instance.Instance
+import io.ably.lib.liveobjects.instance.InstanceListener
+import io.ably.lib.liveobjects.onceSubscription
+import io.ably.lib.liveobjects.value.LiveMapValue
import java.util.concurrent.CompletableFuture
/**
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultNumberInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultNumberInstance.kt
similarity index 78%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultNumberInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultNumberInstance.kt
index 3e85ddade..27910de7b 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultNumberInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultNumberInstance.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonPrimitive
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
/**
* Default implementation of [NumberInstance], a read-only primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultStringInstance.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultStringInstance.kt
similarity index 78%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultStringInstance.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultStringInstance.kt
index 74465782c..998608e9b 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/instance/types/DefaultStringInstance.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/instance/types/DefaultStringInstance.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.instance.types
+package io.ably.lib.liveobjects.instance.types
import com.google.gson.JsonPrimitive
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.DefaultInstance
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.DefaultInstance
/**
* Default implementation of [StringInstance], a read-only primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/message/DefaultObjectMessage.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/DefaultObjectMessage.kt
similarity index 98%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/message/DefaultObjectMessage.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/DefaultObjectMessage.kt
index f75f2ef2c..d206b37fe 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/message/DefaultObjectMessage.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/DefaultObjectMessage.kt
@@ -1,8 +1,8 @@
-package io.ably.lib.`object`.message
+package io.ably.lib.liveobjects.message
import com.google.gson.JsonElement
import com.google.gson.JsonObject
-import io.ably.lib.`object`.objectStateError
+import io.ably.lib.liveobjects.objectStateError
import java.util.*
/**
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/message/WireObjectMessage.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/WireObjectMessage.kt
similarity index 97%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/message/WireObjectMessage.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/WireObjectMessage.kt
index 28b58d56e..e29b73533 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/message/WireObjectMessage.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/message/WireObjectMessage.kt
@@ -1,12 +1,12 @@
-package io.ably.lib.`object`.message
+package io.ably.lib.liveobjects.message
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.annotations.JsonAdapter
import com.google.gson.annotations.SerializedName
-import io.ably.lib.`object`.byteSize
-import io.ably.lib.`object`.serialization.WireObjectDataJsonSerializer
-import io.ably.lib.`object`.serialization.gson
+import io.ably.lib.liveobjects.byteSize
+import io.ably.lib.liveobjects.serialization.WireObjectDataJsonSerializer
+import io.ably.lib.liveobjects.serialization.gson
import java.util.Base64
/**
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/DefaultPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObject.kt
similarity index 69%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/DefaultPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObject.kt
index 69e25298e..4cc3a38c8 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/DefaultPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObject.kt
@@ -1,29 +1,29 @@
-package io.ably.lib.`object`.path
+package io.ably.lib.liveobjects.path
import com.google.gson.JsonElement
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.Subscription
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.instance.Instance
-import io.ably.lib.`object`.onceSubscription
-import io.ably.lib.`object`.path.types.BinaryPathObject
-import io.ably.lib.`object`.path.types.BooleanPathObject
-import io.ably.lib.`object`.path.types.DefaultBinaryPathObject
-import io.ably.lib.`object`.path.types.DefaultBooleanPathObject
-import io.ably.lib.`object`.path.types.DefaultJsonArrayPathObject
-import io.ably.lib.`object`.path.types.DefaultJsonObjectPathObject
-import io.ably.lib.`object`.path.types.DefaultLiveCounterPathObject
-import io.ably.lib.`object`.path.types.DefaultLiveMapPathObject
-import io.ably.lib.`object`.path.types.DefaultNumberPathObject
-import io.ably.lib.`object`.path.types.DefaultStringPathObject
-import io.ably.lib.`object`.path.types.JsonArrayPathObject
-import io.ably.lib.`object`.path.types.JsonObjectPathObject
-import io.ably.lib.`object`.path.types.LiveCounterPathObject
-import io.ably.lib.`object`.path.types.LiveMapPathObject
-import io.ably.lib.`object`.path.types.NumberPathObject
-import io.ably.lib.`object`.path.types.StringPathObject
-import io.ably.lib.`object`.value.ResolvedValue
-import io.ably.lib.`object`.value.valueType
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.Subscription
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.instance.Instance
+import io.ably.lib.liveobjects.onceSubscription
+import io.ably.lib.liveobjects.path.types.BinaryPathObject
+import io.ably.lib.liveobjects.path.types.BooleanPathObject
+import io.ably.lib.liveobjects.path.types.DefaultBinaryPathObject
+import io.ably.lib.liveobjects.path.types.DefaultBooleanPathObject
+import io.ably.lib.liveobjects.path.types.DefaultJsonArrayPathObject
+import io.ably.lib.liveobjects.path.types.DefaultJsonObjectPathObject
+import io.ably.lib.liveobjects.path.types.DefaultLiveCounterPathObject
+import io.ably.lib.liveobjects.path.types.DefaultLiveMapPathObject
+import io.ably.lib.liveobjects.path.types.DefaultNumberPathObject
+import io.ably.lib.liveobjects.path.types.DefaultStringPathObject
+import io.ably.lib.liveobjects.path.types.JsonArrayPathObject
+import io.ably.lib.liveobjects.path.types.JsonObjectPathObject
+import io.ably.lib.liveobjects.path.types.LiveCounterPathObject
+import io.ably.lib.liveobjects.path.types.LiveMapPathObject
+import io.ably.lib.liveobjects.path.types.NumberPathObject
+import io.ably.lib.liveobjects.path.types.StringPathObject
+import io.ably.lib.liveobjects.value.ResolvedValue
+import io.ably.lib.liveobjects.value.valueType
/**
* Default implementation of [PathObject], the untyped node in the path-addressed view of
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/DefaultPathObjectSubscriptionEvent.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObjectSubscriptionEvent.kt
similarity index 85%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/DefaultPathObjectSubscriptionEvent.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObjectSubscriptionEvent.kt
index 8a73882be..17e474807 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/DefaultPathObjectSubscriptionEvent.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/DefaultPathObjectSubscriptionEvent.kt
@@ -1,6 +1,6 @@
-package io.ably.lib.`object`.path
+package io.ably.lib.liveobjects.path
-import io.ably.lib.`object`.message.ObjectMessage
+import io.ably.lib.liveobjects.message.ObjectMessage
/**
* Default implementation of [PathObjectSubscriptionEvent], the event delivered to a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultBinaryPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBinaryPathObject.kt
similarity index 74%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultBinaryPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBinaryPathObject.kt
index d8e3e4980..35ac94c5d 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultBinaryPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBinaryPathObject.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.value.valueType
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.value.valueType
/**
* Default implementation of [BinaryPathObject], a terminal primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultBooleanPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBooleanPathObject.kt
similarity index 73%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultBooleanPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBooleanPathObject.kt
index 0ffdf3e7e..e8554f780 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultBooleanPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultBooleanPathObject.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.value.valueType
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.value.valueType
/**
* Default implementation of [BooleanPathObject], a terminal primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultJsonArrayPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonArrayPathObject.kt
similarity index 75%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultJsonArrayPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonArrayPathObject.kt
index 6a05091dd..fa40c460f 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultJsonArrayPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonArrayPathObject.kt
@@ -1,10 +1,10 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
import com.google.gson.JsonArray
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.value.valueType
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.value.valueType
/**
* Default implementation of [JsonArrayPathObject], a terminal primitive view that only adds
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultJsonObjectPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonObjectPathObject.kt
similarity index 75%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultJsonObjectPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonObjectPathObject.kt
index 197149718..e9362fcfe 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultJsonObjectPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultJsonObjectPathObject.kt
@@ -1,10 +1,10 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
import com.google.gson.JsonObject
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.value.valueType
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.value.valueType
/**
* Default implementation of [JsonObjectPathObject], a terminal primitive view that only adds
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultLiveCounterPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveCounterPathObject.kt
similarity index 89%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultLiveCounterPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveCounterPathObject.kt
index 7b5bb756c..6e4e320ca 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultLiveCounterPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveCounterPathObject.kt
@@ -1,10 +1,10 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.pathNotResolvedError
-import io.ably.lib.`object`.typeMismatchError
-import io.ably.lib.`object`.value.ResolvedValue
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.pathNotResolvedError
+import io.ably.lib.liveobjects.typeMismatchError
+import io.ably.lib.liveobjects.value.ResolvedValue
import java.util.concurrent.CompletableFuture
/**
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultLiveMapPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveMapPathObject.kt
similarity index 87%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultLiveMapPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveMapPathObject.kt
index 6e1cd050e..8c6a561d5 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultLiveMapPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultLiveMapPathObject.kt
@@ -1,12 +1,12 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.path.PathObject
-import io.ably.lib.`object`.pathNotResolvedError
-import io.ably.lib.`object`.typeMismatchError
-import io.ably.lib.`object`.value.LiveMapValue
-import io.ably.lib.`object`.value.ResolvedValue
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.path.PathObject
+import io.ably.lib.liveobjects.pathNotResolvedError
+import io.ably.lib.liveobjects.typeMismatchError
+import io.ably.lib.liveobjects.value.LiveMapValue
+import io.ably.lib.liveobjects.value.ResolvedValue
import java.util.concurrent.CompletableFuture
/**
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultNumberPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultNumberPathObject.kt
similarity index 73%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultNumberPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultNumberPathObject.kt
index 7f1498dab..bc64dd28c 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultNumberPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultNumberPathObject.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.value.valueType
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.value.valueType
/**
* Default implementation of [NumberPathObject], a terminal primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultStringPathObject.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultStringPathObject.kt
similarity index 73%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultStringPathObject.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultStringPathObject.kt
index af9fa6255..4275c84c4 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/path/types/DefaultStringPathObject.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/path/types/DefaultStringPathObject.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.path.types
+package io.ably.lib.liveobjects.path.types
-import io.ably.lib.`object`.DefaultRealtimeObject
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.path.DefaultPathObject
-import io.ably.lib.`object`.value.valueType
+import io.ably.lib.liveobjects.DefaultRealtimeObject
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.path.DefaultPathObject
+import io.ably.lib.liveobjects.value.valueType
/**
* Default implementation of [StringPathObject], a terminal primitive view that only adds a
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/serialization/DefaultSerialization.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/DefaultSerialization.kt
similarity index 93%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/serialization/DefaultSerialization.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/DefaultSerialization.kt
index f410999fd..7deb4fe24 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/serialization/DefaultSerialization.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/DefaultSerialization.kt
@@ -1,7 +1,7 @@
-package io.ably.lib.`object`.serialization
+package io.ably.lib.liveobjects.serialization
import com.google.gson.*
-import io.ably.lib.`object`.message.WireObjectMessage
+import io.ably.lib.liveobjects.message.WireObjectMessage
import org.msgpack.core.MessagePacker
import org.msgpack.core.MessageUnpacker
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/serialization/JsonSerialization.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/JsonSerialization.kt
similarity index 91%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/serialization/JsonSerialization.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/JsonSerialization.kt
index cc5098cc5..3620dfee9 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/serialization/JsonSerialization.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/JsonSerialization.kt
@@ -1,10 +1,10 @@
-package io.ably.lib.`object`.serialization
+package io.ably.lib.liveobjects.serialization
import com.google.gson.*
-import io.ably.lib.`object`.message.WireObjectData
-import io.ably.lib.`object`.message.WireObjectMessage
-import io.ably.lib.`object`.message.WireObjectOperationAction
-import io.ably.lib.`object`.message.WireObjectsMapSemantics
+import io.ably.lib.liveobjects.message.WireObjectData
+import io.ably.lib.liveobjects.message.WireObjectMessage
+import io.ably.lib.liveobjects.message.WireObjectOperationAction
+import io.ably.lib.liveobjects.message.WireObjectsMapSemantics
import java.lang.reflect.Type
import kotlin.enums.EnumEntries
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/serialization/MsgpackSerialization.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/MsgpackSerialization.kt
similarity index 95%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/serialization/MsgpackSerialization.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/MsgpackSerialization.kt
index 849f41a4e..18d5c0701 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/serialization/MsgpackSerialization.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/serialization/MsgpackSerialization.kt
@@ -1,27 +1,27 @@
-package io.ably.lib.`object`.serialization
+package io.ably.lib.liveobjects.serialization
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.JsonParser
-import io.ably.lib.`object`.message.WireCounterCreate
-import io.ably.lib.`object`.message.WireCounterCreateWithObjectId
-import io.ably.lib.`object`.message.WireCounterInc
-import io.ably.lib.`object`.message.WireMapClear
-import io.ably.lib.`object`.message.WireMapCreate
-import io.ably.lib.`object`.message.WireMapCreateWithObjectId
-import io.ably.lib.`object`.message.WireMapRemove
-import io.ably.lib.`object`.message.WireMapSet
-import io.ably.lib.`object`.message.WireObjectData
-import io.ably.lib.`object`.message.WireObjectDelete
-import io.ably.lib.`object`.message.WireObjectMessage
-import io.ably.lib.`object`.message.WireObjectOperation
-import io.ably.lib.`object`.message.WireObjectOperationAction
-import io.ably.lib.`object`.message.WireObjectState
-import io.ably.lib.`object`.message.WireObjectsCounter
-import io.ably.lib.`object`.message.WireObjectsMap
-import io.ably.lib.`object`.message.WireObjectsMapEntry
-import io.ably.lib.`object`.message.WireObjectsMapSemantics
-import io.ably.lib.`object`.objectStateError
+import io.ably.lib.liveobjects.message.WireCounterCreate
+import io.ably.lib.liveobjects.message.WireCounterCreateWithObjectId
+import io.ably.lib.liveobjects.message.WireCounterInc
+import io.ably.lib.liveobjects.message.WireMapClear
+import io.ably.lib.liveobjects.message.WireMapCreate
+import io.ably.lib.liveobjects.message.WireMapCreateWithObjectId
+import io.ably.lib.liveobjects.message.WireMapRemove
+import io.ably.lib.liveobjects.message.WireMapSet
+import io.ably.lib.liveobjects.message.WireObjectData
+import io.ably.lib.liveobjects.message.WireObjectDelete
+import io.ably.lib.liveobjects.message.WireObjectMessage
+import io.ably.lib.liveobjects.message.WireObjectOperation
+import io.ably.lib.liveobjects.message.WireObjectOperationAction
+import io.ably.lib.liveobjects.message.WireObjectState
+import io.ably.lib.liveobjects.message.WireObjectsCounter
+import io.ably.lib.liveobjects.message.WireObjectsMap
+import io.ably.lib.liveobjects.message.WireObjectsMapEntry
+import io.ably.lib.liveobjects.message.WireObjectsMapSemantics
+import io.ably.lib.liveobjects.objectStateError
import io.ably.lib.util.Serialisation
import java.util.Base64
import org.msgpack.core.MessageFormat
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/value/DefaultLiveCounter.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveCounter.kt
similarity index 95%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/value/DefaultLiveCounter.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveCounter.kt
index 43fec3909..bbeeb60ea 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/value/DefaultLiveCounter.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveCounter.kt
@@ -1,4 +1,4 @@
-package io.ably.lib.`object`.value
+package io.ably.lib.liveobjects.value
/**
* Default implementation of the [LiveCounter] value type - an immutable holder for
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/value/DefaultLiveMap.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveMap.kt
similarity index 96%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/value/DefaultLiveMap.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveMap.kt
index 4f6520b39..b0fcd9abb 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/value/DefaultLiveMap.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/DefaultLiveMap.kt
@@ -1,4 +1,4 @@
-package io.ably.lib.`object`.value
+package io.ably.lib.liveobjects.value
/**
* Default implementation of the [LiveMap] value type - an immutable holder for the
diff --git a/liveobjects/src/main/kotlin/io/ably/lib/object/value/ResolvedValue.kt b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/ResolvedValue.kt
similarity index 91%
rename from liveobjects/src/main/kotlin/io/ably/lib/object/value/ResolvedValue.kt
rename to liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/ResolvedValue.kt
index e74b44ff9..34002837d 100644
--- a/liveobjects/src/main/kotlin/io/ably/lib/object/value/ResolvedValue.kt
+++ b/liveobjects/src/main/kotlin/io/ably/lib/liveobjects/value/ResolvedValue.kt
@@ -1,7 +1,7 @@
-package io.ably.lib.`object`.value
+package io.ably.lib.liveobjects.value
-import io.ably.lib.`object`.ValueType
-import io.ably.lib.`object`.message.WireObjectData
+import io.ably.lib.liveobjects.ValueType
+import io.ably.lib.liveobjects.message.WireObjectData
/**
* The result of resolving a path segment / map entry against the objects
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/TestUtils.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/TestUtils.kt
similarity index 98%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/TestUtils.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/TestUtils.kt
index f71e21727..65c712463 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/TestUtils.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/TestUtils.kt
@@ -1,4 +1,4 @@
-package io.ably.lib.`object`
+package io.ably.lib.liveobjects
import java.lang.reflect.Field
import kotlinx.coroutines.Dispatchers
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/DefaultRealtimeObjectTest.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/DefaultRealtimeObjectTest.kt
similarity index 90%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/DefaultRealtimeObjectTest.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/DefaultRealtimeObjectTest.kt
index 1263cb1fb..7fc44f60a 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/DefaultRealtimeObjectTest.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/DefaultRealtimeObjectTest.kt
@@ -1,7 +1,7 @@
-package io.ably.lib.`object`.integration
+package io.ably.lib.liveobjects.integration
-import io.ably.lib.`object`.assertWaiter
-import io.ably.lib.`object`.integration.setup.IntegrationTest
+import io.ably.lib.liveobjects.assertWaiter
+import io.ably.lib.liveobjects.integration.setup.IntegrationTest
import io.ably.lib.realtime.ChannelState
import kotlinx.coroutines.test.runTest
import org.junit.Test
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/PayloadBuilder.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/PayloadBuilder.kt
similarity index 92%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/PayloadBuilder.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/PayloadBuilder.kt
index 6c6d30e48..2f025059c 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/PayloadBuilder.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/PayloadBuilder.kt
@@ -1,10 +1,10 @@
-package io.ably.lib.`object`.integration.helpers
+package io.ably.lib.liveobjects.integration.helpers
import com.google.gson.JsonObject
-import io.ably.lib.`object`.generateNonce
-import io.ably.lib.`object`.message.WireObjectData
-import io.ably.lib.`object`.message.WireObjectOperationAction
-import io.ably.lib.`object`.serialization.gson
+import io.ably.lib.liveobjects.generateNonce
+import io.ably.lib.liveobjects.message.WireObjectData
+import io.ably.lib.liveobjects.message.WireObjectOperationAction
+import io.ably.lib.liveobjects.serialization.gson
internal object PayloadBuilder {
/**
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/RestObjects.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/RestObjects.kt
similarity index 96%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/RestObjects.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/RestObjects.kt
index 32d76dac0..62ef8d7d5 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/RestObjects.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/RestObjects.kt
@@ -1,10 +1,10 @@
-package io.ably.lib.`object`.integration.helpers
+package io.ably.lib.liveobjects.integration.helpers
import com.google.gson.JsonObject
-import io.ably.lib.`object`.message.WireObjectData
+import io.ably.lib.liveobjects.message.WireObjectData
import io.ably.lib.rest.AblyRest
import io.ably.lib.http.HttpUtils
-import io.ably.lib.`object`.integration.helpers.fixtures.DataFixtures
+import io.ably.lib.liveobjects.integration.helpers.fixtures.DataFixtures
import io.ably.lib.types.ClientOptions
/**
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/CounterFixtures.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/CounterFixtures.kt
similarity index 96%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/CounterFixtures.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/CounterFixtures.kt
index 316cab07e..86f454d41 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/CounterFixtures.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/CounterFixtures.kt
@@ -1,6 +1,6 @@
-package io.ably.lib.`object`.integration.helpers.fixtures
+package io.ably.lib.liveobjects.integration.helpers.fixtures
-import io.ably.lib.`object`.integration.helpers.RestObjects
+import io.ably.lib.liveobjects.integration.helpers.RestObjects
/**
* Creates a comprehensive test fixture object tree focused on user-context counters.
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/DataFixtures.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/DataFixtures.kt
similarity index 96%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/DataFixtures.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/DataFixtures.kt
index 4b9783635..57227dc7e 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/DataFixtures.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/DataFixtures.kt
@@ -1,8 +1,8 @@
-package io.ably.lib.`object`.integration.helpers.fixtures
+package io.ably.lib.liveobjects.integration.helpers.fixtures
import com.google.gson.JsonArray
import com.google.gson.JsonObject
-import io.ably.lib.`object`.message.WireObjectData
+import io.ably.lib.liveobjects.message.WireObjectData
import java.util.Base64
internal object DataFixtures {
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/MapFixtures.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/MapFixtures.kt
similarity index 97%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/MapFixtures.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/MapFixtures.kt
index 79de1e288..2d92233e2 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/helpers/fixtures/MapFixtures.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/helpers/fixtures/MapFixtures.kt
@@ -1,7 +1,7 @@
-package io.ably.lib.`object`.integration.helpers.fixtures
+package io.ably.lib.liveobjects.integration.helpers.fixtures
-import io.ably.lib.`object`.message.WireObjectData
-import io.ably.lib.`object`.integration.helpers.RestObjects
+import io.ably.lib.liveobjects.message.WireObjectData
+import io.ably.lib.liveobjects.integration.helpers.RestObjects
/**
* Initializes a comprehensive test fixture object tree on the specified channel.
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/setup/IntegrationTest.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/IntegrationTest.kt
similarity index 96%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/setup/IntegrationTest.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/IntegrationTest.kt
index 80ab9347d..1f0a3dba1 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/setup/IntegrationTest.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/IntegrationTest.kt
@@ -1,6 +1,6 @@
-package io.ably.lib.`object`.integration.setup
+package io.ably.lib.liveobjects.integration.setup
-import io.ably.lib.`object`.integration.helpers.RestObjects
+import io.ably.lib.liveobjects.integration.helpers.RestObjects
import io.ably.lib.realtime.AblyRealtime
import io.ably.lib.realtime.Channel
import io.ably.lib.types.ChannelMode
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/setup/Sandbox.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/Sandbox.kt
similarity index 94%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/integration/setup/Sandbox.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/Sandbox.kt
index 05a7e3ce8..5cc2f9360 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/integration/setup/Sandbox.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/integration/setup/Sandbox.kt
@@ -1,9 +1,9 @@
-package io.ably.lib.`object`.integration.setup
+package io.ably.lib.liveobjects.integration.setup
import com.google.gson.JsonElement
import com.google.gson.JsonParser
-import io.ably.lib.`object`.ablyException
-import io.ably.lib.`object`.integration.helpers.RestObjects
+import io.ably.lib.liveobjects.ablyException
+import io.ably.lib.liveobjects.integration.helpers.RestObjects
import io.ably.lib.realtime.*
import io.ably.lib.types.ClientOptions
import io.ktor.client.*
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/HelpersTest.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/HelpersTest.kt
similarity index 98%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/unit/HelpersTest.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/HelpersTest.kt
index a8360d758..76c37d21d 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/HelpersTest.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/HelpersTest.kt
@@ -1,10 +1,10 @@
-package io.ably.lib.`object`.unit
+package io.ably.lib.liveobjects.unit
-import io.ably.lib.`object`.*
-import io.ably.lib.`object`.adapter.AblyClientAdapter
-import io.ably.lib.`object`.clientError
-import io.ably.lib.`object`.connectionManager
-import io.ably.lib.`object`.sendAsync
+import io.ably.lib.liveobjects.*
+import io.ably.lib.liveobjects.adapter.AblyClientAdapter
+import io.ably.lib.liveobjects.clientError
+import io.ably.lib.liveobjects.connectionManager
+import io.ably.lib.liveobjects.sendAsync
import io.ably.lib.realtime.Channel
import io.ably.lib.realtime.ChannelState
import io.ably.lib.realtime.ChannelStateListener
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/ObjectMessageSerializationTest.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSerializationTest.kt
similarity index 92%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/unit/ObjectMessageSerializationTest.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSerializationTest.kt
index f3e30b520..3a94be91d 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/ObjectMessageSerializationTest.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSerializationTest.kt
@@ -1,16 +1,16 @@
-package io.ably.lib.`object`.unit
+package io.ably.lib.liveobjects.unit
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.JsonElement
import com.google.gson.JsonNull
-import io.ably.lib.`object`.unit.fixtures.dummyObjectMessageWithBinaryData
-import io.ably.lib.`object`.unit.fixtures.dummyObjectMessageWithBooleanData
-import io.ably.lib.`object`.unit.fixtures.dummyObjectMessageWithJsonArrayData
-import io.ably.lib.`object`.unit.fixtures.dummyObjectMessageWithJsonObjectData
-import io.ably.lib.`object`.unit.fixtures.dummyObjectMessageWithNumberData
-import io.ably.lib.`object`.unit.fixtures.dummyObjectMessageWithStringData
-import io.ably.lib.`object`.message.WireObjectMessage
+import io.ably.lib.liveobjects.unit.fixtures.dummyObjectMessageWithBinaryData
+import io.ably.lib.liveobjects.unit.fixtures.dummyObjectMessageWithBooleanData
+import io.ably.lib.liveobjects.unit.fixtures.dummyObjectMessageWithJsonArrayData
+import io.ably.lib.liveobjects.unit.fixtures.dummyObjectMessageWithJsonObjectData
+import io.ably.lib.liveobjects.unit.fixtures.dummyObjectMessageWithNumberData
+import io.ably.lib.liveobjects.unit.fixtures.dummyObjectMessageWithStringData
+import io.ably.lib.liveobjects.message.WireObjectMessage
import io.ably.lib.types.ProtocolMessage
import io.ably.lib.types.ProtocolMessage.ActionSerializer
import io.ably.lib.types.ProtocolSerializer
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/ObjectMessageSizeTest.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSizeTest.kt
similarity index 87%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/unit/ObjectMessageSizeTest.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSizeTest.kt
index ba6ca11c9..8449a603c 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/ObjectMessageSizeTest.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/ObjectMessageSizeTest.kt
@@ -1,24 +1,24 @@
-package io.ably.lib.`object`.unit
+package io.ably.lib.liveobjects.unit
import com.google.gson.JsonObject
-import io.ably.lib.`object`.connectionManager
-import io.ably.lib.`object`.ensureMessageSizeWithinLimit
-import io.ably.lib.`object`.message.WireCounterCreate
-import io.ably.lib.`object`.message.WireCounterCreateWithObjectId
-import io.ably.lib.`object`.message.WireCounterInc
-import io.ably.lib.`object`.message.WireMapCreate
-import io.ably.lib.`object`.message.WireMapCreateWithObjectId
-import io.ably.lib.`object`.message.WireMapSet
-import io.ably.lib.`object`.message.WireObjectData
-import io.ably.lib.`object`.message.WireObjectMessage
-import io.ably.lib.`object`.message.WireObjectOperation
-import io.ably.lib.`object`.message.WireObjectOperationAction
-import io.ably.lib.`object`.message.WireObjectState
-import io.ably.lib.`object`.message.WireObjectsCounter
-import io.ably.lib.`object`.message.WireObjectsMap
-import io.ably.lib.`object`.message.WireObjectsMapEntry
-import io.ably.lib.`object`.message.WireObjectsMapSemantics
-import io.ably.lib.`object`.message.size
+import io.ably.lib.liveobjects.connectionManager
+import io.ably.lib.liveobjects.ensureMessageSizeWithinLimit
+import io.ably.lib.liveobjects.message.WireCounterCreate
+import io.ably.lib.liveobjects.message.WireCounterCreateWithObjectId
+import io.ably.lib.liveobjects.message.WireCounterInc
+import io.ably.lib.liveobjects.message.WireMapCreate
+import io.ably.lib.liveobjects.message.WireMapCreateWithObjectId
+import io.ably.lib.liveobjects.message.WireMapSet
+import io.ably.lib.liveobjects.message.WireObjectData
+import io.ably.lib.liveobjects.message.WireObjectMessage
+import io.ably.lib.liveobjects.message.WireObjectOperation
+import io.ably.lib.liveobjects.message.WireObjectOperationAction
+import io.ably.lib.liveobjects.message.WireObjectState
+import io.ably.lib.liveobjects.message.WireObjectsCounter
+import io.ably.lib.liveobjects.message.WireObjectsMap
+import io.ably.lib.liveobjects.message.WireObjectsMapEntry
+import io.ably.lib.liveobjects.message.WireObjectsMapSemantics
+import io.ably.lib.liveobjects.message.size
import io.ably.lib.transport.Defaults
import io.ably.lib.types.AblyException
import kotlinx.coroutines.test.runTest
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/TestHelpers.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/TestHelpers.kt
similarity index 89%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/unit/TestHelpers.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/TestHelpers.kt
index 3a12eef14..1ccfbc66e 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/TestHelpers.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/TestHelpers.kt
@@ -1,7 +1,7 @@
-package io.ably.lib.`object`.unit
+package io.ably.lib.liveobjects.unit
-import io.ably.lib.`object`.adapter.AblyClientAdapter
-import io.ably.lib.`object`.connectionManager
+import io.ably.lib.liveobjects.adapter.AblyClientAdapter
+import io.ably.lib.liveobjects.connectionManager
import io.ably.lib.realtime.AblyRealtime
import io.ably.lib.realtime.Channel
import io.ably.lib.realtime.ChannelState
@@ -41,7 +41,7 @@ internal fun getMockRealtimeChannel(
}
internal fun getMockAblyClientAdapter(): AblyClientAdapter {
- mockkStatic("io.ably.lib.object.HelpersKt")
+ mockkStatic("io.ably.lib.liveobjects.HelpersKt")
return mockk(relaxed = true) {
every { getChannel(any()) } returns getMockRealtimeChannel("testChannelName")
every { connectionManager } returns mockk(relaxed = true)
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/UtilsTest.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/UtilsTest.kt
similarity index 91%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/unit/UtilsTest.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/UtilsTest.kt
index 8a64d0987..169e72d9c 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/UtilsTest.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/UtilsTest.kt
@@ -1,11 +1,11 @@
-package io.ably.lib.`object`.unit
+package io.ably.lib.liveobjects.unit
-import io.ably.lib.`object`.*
-import io.ably.lib.`object`.ObjectErrorCode
-import io.ably.lib.`object`.ObjectHttpStatusCode
-import io.ably.lib.`object`.byteSize
-import io.ably.lib.`object`.clientError
-import io.ably.lib.`object`.generateNonce
+import io.ably.lib.liveobjects.*
+import io.ably.lib.liveobjects.ObjectErrorCode
+import io.ably.lib.liveobjects.ObjectHttpStatusCode
+import io.ably.lib.liveobjects.byteSize
+import io.ably.lib.liveobjects.clientError
+import io.ably.lib.liveobjects.generateNonce
import io.ably.lib.types.ErrorInfo
import org.junit.Test
import org.junit.Assert.*
diff --git a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/fixtures/ObjectMessageFixtures.kt b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/fixtures/ObjectMessageFixtures.kt
similarity index 88%
rename from liveobjects/src/test/kotlin/io/ably/lib/object/unit/fixtures/ObjectMessageFixtures.kt
rename to liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/fixtures/ObjectMessageFixtures.kt
index f31833b2f..5fcccf56d 100644
--- a/liveobjects/src/test/kotlin/io/ably/lib/object/unit/fixtures/ObjectMessageFixtures.kt
+++ b/liveobjects/src/test/kotlin/io/ably/lib/liveobjects/unit/fixtures/ObjectMessageFixtures.kt
@@ -1,19 +1,19 @@
-package io.ably.lib.`object`.unit.fixtures
+package io.ably.lib.liveobjects.unit.fixtures
import com.google.gson.JsonArray
import com.google.gson.JsonObject
-import io.ably.lib.`object`.message.WireMapCreate
-import io.ably.lib.`object`.message.WireMapCreateWithObjectId
-import io.ably.lib.`object`.message.WireMapSet
-import io.ably.lib.`object`.message.WireObjectData
-import io.ably.lib.`object`.message.WireObjectMessage
-import io.ably.lib.`object`.message.WireObjectOperation
-import io.ably.lib.`object`.message.WireObjectOperationAction
-import io.ably.lib.`object`.message.WireObjectState
-import io.ably.lib.`object`.message.WireObjectsCounter
-import io.ably.lib.`object`.message.WireObjectsMap
-import io.ably.lib.`object`.message.WireObjectsMapEntry
-import io.ably.lib.`object`.message.WireObjectsMapSemantics
+import io.ably.lib.liveobjects.message.WireMapCreate
+import io.ably.lib.liveobjects.message.WireMapCreateWithObjectId
+import io.ably.lib.liveobjects.message.WireMapSet
+import io.ably.lib.liveobjects.message.WireObjectData
+import io.ably.lib.liveobjects.message.WireObjectMessage
+import io.ably.lib.liveobjects.message.WireObjectOperation
+import io.ably.lib.liveobjects.message.WireObjectOperationAction
+import io.ably.lib.liveobjects.message.WireObjectState
+import io.ably.lib.liveobjects.message.WireObjectsCounter
+import io.ably.lib.liveobjects.message.WireObjectsMap
+import io.ably.lib.liveobjects.message.WireObjectsMapEntry
+import io.ably.lib.liveobjects.message.WireObjectsMapSemantics
import java.util.Base64
internal val dummyObjectDataStringValue = WireObjectData(objectId = "object-id", string = "dummy string")