Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,4 @@ jobs:
- name: Set up Gradle
uses: gradle/actions/setup-gradle@d9c87d481d55275bb5441eef3fe0e46805f9ef70 # v3

- run: ./gradlew runLiveObjectIntegrationTests
- run: ./gradlew runLiveObjectsIntegrationTests
2 changes: 1 addition & 1 deletion android/src/main/java/io/ably/lib/realtime/Channel.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion java/src/main/java/io/ably/lib/realtime/Channel.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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() {}

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.ably.lib.object;
package io.ably.lib.liveobjects;

/**
* Represents a registration for receiving events from a subscribe operation.
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
*
* <p>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;
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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}.
*
* <p>Spec: RTINS1-RTINS16, RTTS7-RTTS9
*/
package io.ably.lib.liveobjects.instance;
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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()}.
*
* <p>Spec: RTTS10
*/
package io.ably.lib.object.instance.types;
package io.ably.lib.liveobjects.instance.types;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.ably.lib.object.message;
package io.ably.lib.liveobjects.message;

import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.ably.lib.object.message;
package io.ably.lib.liveobjects.message;

import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.ably.lib.object.message;
package io.ably.lib.liveobjects.message;

import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.ably.lib.object.message;
package io.ably.lib.liveobjects.message;

import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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.
*
* <p>An {@code ObjectMessage} always carries an {@link #getOperation() operation}; object
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.ably.lib.object.message;
package io.ably.lib.liveobjects.message;

import org.jetbrains.annotations.Nullable;

Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
* <p>{@link io.ably.lib.object.message.ObjectMessage} is the single entry point
* <p>{@link io.ably.lib.liveobjects.message.ObjectMessage} is the single entry point
* of this package; every other type is reached by walking its properties:
*
* <pre>{@code
Expand All @@ -23,4 +23,4 @@
*
* <p>Spec: PAOM1-PAOM3, PAOOP1-PAOOP3
*/
package io.ably.lib.object.message;
package io.ably.lib.liveobjects.message;
17 changes: 17 additions & 0 deletions lib/src/main/java/io/ably/lib/liveobjects/package-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/**
* The public, strongly-typed LiveObjects API: path-based and instance-based views
* over the objects graph on a channel.
*
* <p>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}.
*
* <p>Spec: RTTS1-RTTS10 (typed-SDK public API partition)
*/
package io.ably.lib.liveobjects;
Loading
Loading