API Changes in 2316

This is a backwards incompatible change. As a result, the minimum supported client version has been bumped to 2316.

Summary

  1. TypedValue has been deprecated. Use Value instead.

    • All APIs previously available in TypedValue have also been made available in Value.

  2. Previously deprecated APIs have been removed.

  3. APIs that expected a Value as a key, have now been changed to expect a Key instead.

    • Additionally, APIs that returned or used TypedValue have been changed to return or use Value.

    • Find you more information for this in the API level changes section.

  4. Value.toString() will now print out a human readable String.

Removed Deprecated APIs

  1. GrainContext.mapGetRange(int mapId, Value startSubkey, Value endSubkey)

  2. GrainContext.mapGetRange(String mapName, Value startSubkey, Value endSubkey)

  3. GrainView.mapGetRange(int mapId, Value startSubkey, Value endSubkey)

  4. GrainView.mapGetRange(String mapName, Value startSubkey, Value endSubkey)

  5. Grain.mapGetRangeAsync(String mapName, Value startKey, Value endKey, Callback<Iterator<KeyValue>> callback)

  6. Grain.mapGetRange(String mapName, Value startKey, Value endKey)

  7. Grain.mapGetRangeAsync(String mapName, Cursor cursor)

  8. Grain.mapGetRange(String mapName, Cursor cursor)

  9. Gain.mapGetRangeAsync(int mapId, Value startKey, Value endKey, Callback<Iterator<KeyValue>> callback)

  10. Grain.mapGetRangeAsync(int mapId, Value startKey, Value endKey)

  11. Grain.mapGetRange(int mapId, Value startKey, Value endKey)

  12. Grain.mapGetRangeAsync(int mapId, Cursor cursor)

  13. Grain.mapGetRange(int mapId, Cursor cursor)

  14. MapQuery.startsWith(Value key)

  15. MapQuery.startsAfter(Value key)

  16. MapQuery.endsWith(Value key)

  17. MapQuery.endsBefore(Value key)

Here are a few examples showing how the mapGetRange API calls (and other deprecated range queries) translate into mapQuery()

Deprecated Range QueriesmapQuery Equivalent

g.mapGetRange(0, Cursor.getMapScanCursor(Value.of(0), Value.of(100)));

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .setRange(Key.of(0), true, Key.of(100), false) .build());

g.mapQuery(MapQuery.newBuilder().setMapId(0).startsWith(Value.of("100")).build());

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .setRange(Key.of("100"), true, Key.maxKey(), false) .build());

g.mapQuery(MapQuery.newBuilder().setMapId(0).startsAfter(Value.of("100")).build());

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .setRange(Key.of("100"), false, Key.maxKey(), false) .build());

g.mapQuery(MapQuery.newBuilder().setMapId(0).endsWith(Value.of("100")).build());

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .setRange(Key.minKey(), false, Key.of("070"), true) .build());

g.mapQuery(MapQuery.newBuilder().setMapId(0).endsBefore(Value.of("055")).build());

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .setRange(Key.minKey(), false, Key.of("055"), false) .build());

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .startsWith(Value.of("0")) .endsWith(Value.of("100")) .build());

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .setRange(Key.of("0"), true, Key.of("100"), true) .build());

g.mapGetRange(0, Cursor.getMapScanCursor(Value.of(0), Value.of(100 )));

g.mapQuery(MapQuery.newBuilder() .setMapId(0) .setRange(Key.of(0), true, Key.of(100), false) .build());

API level changes

The following APIs now use Key instead of Value. The Value counterpart for these APIs have now been deprecated.

NOTE: The following table shows only the sync API deprecations, but the same applies to the async counterparts.

Cursor.java

Deprecated APIsNew APIs

Cursor getMapScanCursor(Value startKey, Value endKey)

Cursor getMapScanCursor(Key startKey, Key endKey)

Event.java

Deprecated APIsNew APIs

Event(Value key, Value payload)

Event(Key key, Value payload)

Event(Value key, Value payload, Value dedupId)

Event(Key key, Value payload, Value dedupId)

Value getKey()

Key getKey()

Grain.java

Deprecated APIsNew APIs

Value getKey()

Key getKey()

Boolean mapKeyExistsAsync(String mapName, Value subKey)

mapKeyExistsAsync(String mapName, Key subKey)

Value mapGet(String mapName, Value subKey)

Value mapGet(String mapName, Key subKey)

Status mapPut(String mapName, Value subKey, Value subValue)

Status mapPut(String mapName, Key subKey, Value subValue)

Status mapDelete(String mapName, Value subKey)

Status mapDelete(String mapName, Key subKey)

Status mapDeleteRange(String mapName, Value startSubKey, Value endSubKey)

Status mapDeleteRange(String mapName, Key startSubKey, Key endSubKey)

Boolean mapKeyExists(int mapId, Value subKey)

Boolean mapKeyExists(int mapId, Key subKey)

Value mapGet(int mapId, Value subKey)

Value mapGet(int mapId, Key subKey)

Status mapPut(int mapId, Value subKey, Value subValue)

Status mapPut(int mapId, Key subKey, Value subValue)

Status mapDelete(int mapId, Value subKey)

Status mapDelete(int mapId, Key subKey)

Status mapDeleteRange(int mapId, Value startSubKey, Value endSubKey)

Status mapDeleteRange(int mapId, Key startSubKey, Key endSubKey)

Value.java

Deprecated APIsNew APIs

Value Value#minKey()

Key Key#minKey()

Value Value#maxKey()

Key Key#maxKey()

Value Value#nextKey()

Key Key#nextKey()

Value Value#lastKeyForPrefix()

Key Key#lastKeyForPrefix()

KeyValue.java

Deprecated APIsNew APIs

KeyValue(Value key, Value value)

KeyValue(Key key, Value value)

Value getKey()

Key getKey()

MapQuery.java

Deprecated APIsNew APIs

Value getStartKey()

Key getStartKey()

Value getEndKey()

Key getEndKey()

Builder setRange(Value startKey, boolean isStartInclusive, Value endKey, boolean isEndInclusive)

Builder setRange(Key startKey, boolean isStartInclusive, Key endKey, boolean isEndInclusive)

Builder startsWith(Value key)

Builder startsAfter(Value key)

Builder endsWith(Value key)

Builder endsBefore(Value key)

QueryExpression.java

Deprecated APIsNew APIs

TypedValue getProperty()

Value getProperty()

TypedValue getValue()

Value getValue()

Builder setParameters(TypedValue property, TypedValue value)

Builder setParameters(Value property, Value value)

TypedValue getStartValue()

Value getStartValue()

Builder setParameters(TypedValue property, TypedValue startValue, boolean isStartInclusive, TypedValue endValue, boolean isEndInclusive)

Builder setParameters(Value property, Value startValue, boolean isStartInclusive, Value endValue, boolean isEndInclusive)

Table.java

Deprecated APIsNew APIs

boolean hasGrain(Value key)

boolean hasGrain(Key key)

Grain getGrain(Value key, boolean createIfNotExist)

Grain getGrain(Key key, boolean createIfNotExist)

Grain getGrain(Value key)

Grain getGrain(Key key)

Status deleteGrain(Value key)

Status deleteGrain(Key key)

Topic.java

Deprecated APIsNew APIs

TopicReadCursor newReadCursor( String cursorName, List<Value> keys, int consumerIndex, int numConsumers, boolean stopAtEol)

TopicReadCursor newTopicReadCursor(String cursorName, List<Key> keys, int consumerIndex, int numConsumers, boolean stopAtEol)

GrainContext.java

Deprecated APIsNew APIs

boolean mapKeyExists(int mapId, Value subkey)

boolean mapKeyExists(int mapId, Key subkey)

Value mapGet(int mapId, Value subkey)

Value mapGet(int mapId, Key subkey)

mapPut(int mapId, Value subkey, Value value)

mapPut(int mapId, Key subkey, Value value)

mapDelete(int mapId, Value subKey)

mapDelete(int mapId, Key subKey)

mapDeleteRange(int mapId, Value startSubkey, Value endSubkey)

mapDeleteRange(int mapId, Key startSubkey, Key endSubkey)

boolean mapKeyExists(String mapName, Value subkey)

boolean mapKeyExists(String mapName, Key subkey)

Value mapGet(String mapName, Value subkey)

Value mapGet(String mapName, Key subkey)

mapPut(String mapName, Value subkey, Value value)

mapPut(String mapName, Key subkey, Value value)

mapDelete(String mapName, Value subKey)

mapDelete(String mapName, Key subKey)

mapDeleteRange(String mapName, Value startSubkey, Value endSubkey)

mapDeleteRange(String mapName, Key startSubkey, Key endSubkey)

GrainView lookupGrain(String appName, String tableName, Value key)

GrainView lookupGrain(String appName, String tableName, Key key)

GrainView lookupGrain(String tableName, Value key)

GrainView lookupGrain(String tableName, Key key)

sendToGrain(String tableName, Value key, GrainOp operation, ExpectGrainResponse expectResponse)

sendToGrain(String tableName, Key key, GrainOp operation, @Nullable ExpectGrainResponse expectResponse)

sendToGrain(String appName, String tableName, Value key, GrainOp operation, ExpectGrainResponse expectResponse

sendToGrain(String appName, String tableName, Key key, GrainOp operation, @Nullable ExpectGrainResponse expectResponse)

sendToTopic(String topicName, Value key, Value event, ExpectAppendResponse expectResponse)

sendToTopic(String topicName, Key key, Value event, @Nullable ExpectAppendResponse expectResponse)

sendToTopic(String appName, String topicName, Value key, Value event, ExpectAppendResponse expectResponse)

sendToTopic(String appName, String topicName, Key key, Value event, @Nullable ExpectAppendResponse expectResponse)

insertIndexEntry(Key key, TypedValue value)

insertIndexEntry(Key key, Value value)

updateIndexEntry(Key key, TypedValue oldValue, TypedValue newValue)

updateIndexEntry(Key key, Value oldValue, Value newValue)

deleteIndexEntry(Key key, TypedValue oldValue)

deleteIndexEntry(Key key, Value oldValue)

GrainOp.java

Deprecated APIsNew APIs

public MapPut(int mapId, Value key, Value value)

public MapPut(int mapId, Key key, Value value)

public MapPut(String mapName, Value key, Value value)

public MapPut(String mapName, Key key, Value value)

public MapDelete(int mapId, Value key)

public MapDelete(int mapId, Key key)

public MapDelete(String mapName, Value key)

public MapDelete(String mapName, Key key)

public MapDeleteRange(int mapId, Value startKey, Value endKey)

public MapDeleteRange(int mapId, Key startKey, Key endKey)

public MapDeleteRange(String mapName, Value startKey, Value endKey)

public MapDeleteRange(String mapName, Key startKey, Key endKey)

GrainView.java

Deprecated APIsNew APIs

boolean mapKeyExists(int mapId, Value subKey)

boolean mapKeyExists(int mapId, Key subKey)

Value mapGet(int mapId, Value subKey)

Value mapGet(int mapId, Key subKey)

boolean mapKeyExists(String mapName, Value subKey)

boolean mapKeyExists(String mapName, Key subKey)

Value mapGet(String mapName, Value subKey)

Value mapGet(String mapName, Key subKey)

Iterator<KeyValue> mapGetRange(int mapId, Value startSubkey, Value endSubkey)

Iterator<KeyValue> mapQuery(MapQuery query)

Iterator<KeyValue> mapGetRange(String mapName, Value startSubkey, Value endSubkey)

Last updated