mirror of https://github.com/dapr/java-sdk.git
Update sdk to use configuration dictionaries (#769)
* Update sdk to use configuration maps Signed-off-by: addjuarez <addiajuarez@gmail.com> * add ref Signed-off-by: addjuarez <addiajuarez@gmail.com> * add ref validate Signed-off-by: addjuarez <addiajuarez@gmail.com> * go 1.19 Signed-off-by: addjuarez <addiajuarez@gmail.com> * fix it test Signed-off-by: addjuarez <addiajuarez@gmail.com> * update comments Signed-off-by: addjuarez <addiajuarez@gmail.com> * use immutable maps Signed-off-by: addjuarez <addiajuarez@gmail.com> Signed-off-by: addjuarez <addiajuarez@gmail.com>
This commit is contained in:
parent
997c86d526
commit
2cc9e536c8
|
@ -20,7 +20,7 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
java: [ 11, 13, 15, 16 ]
|
java: [ 11, 13, 15, 16 ]
|
||||||
env:
|
env:
|
||||||
GOVER: 1.17.7
|
GOVER: 1.19
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
GOARCH: amd64
|
GOARCH: amd64
|
||||||
GOPROXY: https://proxy.golang.org
|
GOPROXY: https://proxy.golang.org
|
||||||
|
@ -29,7 +29,7 @@ jobs:
|
||||||
DAPR_RUNTIME_VER: 1.8.0-rc.3
|
DAPR_RUNTIME_VER: 1.8.0-rc.3
|
||||||
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.8.0-rc.1/install/install.sh
|
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.8.0-rc.1/install/install.sh
|
||||||
DAPR_CLI_REF:
|
DAPR_CLI_REF:
|
||||||
DAPR_REF:
|
DAPR_REF: 683a436ff1367e4ff2d27da2d79069c04ec2c46d
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Set up OpenJDK ${{ env.JDK_VER }}
|
- name: Set up OpenJDK ${{ env.JDK_VER }}
|
||||||
|
|
|
@ -31,7 +31,7 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
java: [ 11, 13, 15, 16 ]
|
java: [ 11, 13, 15, 16 ]
|
||||||
env:
|
env:
|
||||||
GOVER: 1.17.7
|
GOVER: 1.19
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
GOARCH: amd64
|
GOARCH: amd64
|
||||||
GOPROXY: https://proxy.golang.org
|
GOPROXY: https://proxy.golang.org
|
||||||
|
@ -40,7 +40,7 @@ jobs:
|
||||||
DAPR_RUNTIME_VER: 1.8.0-rc.3
|
DAPR_RUNTIME_VER: 1.8.0-rc.3
|
||||||
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.8.0-rc.1/install/install.sh
|
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.8.0-rc.1/install/install.sh
|
||||||
DAPR_CLI_REF:
|
DAPR_CLI_REF:
|
||||||
DAPR_REF:
|
DAPR_REF: 683a436ff1367e4ff2d27da2d79069c04ec2c46d
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Set up OpenJDK ${{ env.JDK_VER }}
|
- name: Set up OpenJDK ${{ env.JDK_VER }}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
public class ConfigurationClient {
|
public class ConfigurationClient {
|
||||||
|
@ -72,9 +73,9 @@ public class ConfigurationClient {
|
||||||
public static void getConfigurationsUsingVarargs(DaprPreviewClient client) {
|
public static void getConfigurationsUsingVarargs(DaprPreviewClient client) {
|
||||||
System.out.println("*******trying to retrieve configurations for a variable no. of keys********");
|
System.out.println("*******trying to retrieve configurations for a variable no. of keys********");
|
||||||
try {
|
try {
|
||||||
Mono<List<ConfigurationItem>> items =
|
Mono<Map<String, ConfigurationItem>> items =
|
||||||
client.getConfiguration(CONFIG_STORE_NAME, "myconfig1", "myconfig3");
|
client.getConfiguration(CONFIG_STORE_NAME, "myconfig1", "myconfig3");
|
||||||
items.block().forEach(ConfigurationClient::print);
|
items.block().forEach((k,v) -> print(v, k));
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
System.out.println(ex.getMessage());
|
System.out.println(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -93,8 +94,8 @@ public class ConfigurationClient {
|
||||||
keys.add("myconfig3");
|
keys.add("myconfig3");
|
||||||
GetConfigurationRequest req = new GetConfigurationRequest(CONFIG_STORE_NAME, keys);
|
GetConfigurationRequest req = new GetConfigurationRequest(CONFIG_STORE_NAME, keys);
|
||||||
try {
|
try {
|
||||||
Mono<List<ConfigurationItem>> items = client.getConfiguration(req);
|
Mono<Map<String, ConfigurationItem>> items = client.getConfiguration(req);
|
||||||
items.block().forEach(ConfigurationClient::print);
|
items.block().forEach((k,v) -> print(v, k));
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
System.out.println(ex.getMessage());
|
System.out.println(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -110,10 +111,10 @@ public class ConfigurationClient {
|
||||||
AtomicReference<Disposable> disposableAtomicReference = new AtomicReference<>();
|
AtomicReference<Disposable> disposableAtomicReference = new AtomicReference<>();
|
||||||
SubscribeConfigurationRequest req = new SubscribeConfigurationRequest(CONFIG_STORE_NAME, keys);
|
SubscribeConfigurationRequest req = new SubscribeConfigurationRequest(CONFIG_STORE_NAME, keys);
|
||||||
Runnable subscribeTask = () -> {
|
Runnable subscribeTask = () -> {
|
||||||
Flux<List<ConfigurationItem>> outFlux = client.subscribeToConfiguration(req);
|
Flux<Map<String, ConfigurationItem>> outFlux = client.subscribeToConfiguration(req);
|
||||||
disposableAtomicReference.set(outFlux
|
disposableAtomicReference.set(outFlux
|
||||||
.subscribe(
|
.subscribe(
|
||||||
cis -> cis.forEach(ConfigurationClient::print)
|
cis -> cis.forEach((k,v) -> print(v, k))
|
||||||
));
|
));
|
||||||
};
|
};
|
||||||
new Thread(subscribeTask).start();
|
new Thread(subscribeTask).start();
|
||||||
|
@ -140,8 +141,8 @@ public class ConfigurationClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void print(ConfigurationItem item) {
|
private static void print(ConfigurationItem item, String key) {
|
||||||
System.out.println(item.getValue() + " : key ->" + item.getKey());
|
System.out.println(item.getValue() + " : key ->" + key);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void executeDockerCommand(int postfix) {
|
private static void executeDockerCommand(int postfix) {
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -16,7 +16,7 @@
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<grpc.version>1.42.1</grpc.version>
|
<grpc.version>1.42.1</grpc.version>
|
||||||
<protobuf.version>3.17.3</protobuf.version>
|
<protobuf.version>3.17.3</protobuf.version>
|
||||||
<dapr.proto.baseurl>https://raw.githubusercontent.com/dapr/dapr/v1.7.0-rc.2/dapr/proto</dapr.proto.baseurl>
|
<dapr.proto.baseurl>https://raw.githubusercontent.com/dapr/dapr/683a436ff1367e4ff2d27da2d79069c04ec2c46d/dapr/proto</dapr.proto.baseurl>
|
||||||
<os-maven-plugin.version>1.6.2</os-maven-plugin.version>
|
<os-maven-plugin.version>1.6.2</os-maven-plugin.version>
|
||||||
<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
|
<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
|
||||||
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
|
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
|
||||||
|
|
|
@ -78,7 +78,6 @@ public class ConfigurationClientIT extends BaseIT {
|
||||||
@Test
|
@Test
|
||||||
public void getConfiguration() {
|
public void getConfiguration() {
|
||||||
ConfigurationItem ci = daprPreviewClient.getConfiguration(CONFIG_STORE_NAME, "myconfigkey1").block();
|
ConfigurationItem ci = daprPreviewClient.getConfiguration(CONFIG_STORE_NAME, "myconfigkey1").block();
|
||||||
assertEquals(ci.getKey(), "myconfigkey1");
|
|
||||||
assertEquals(ci.getValue(), "myconfigvalue1");
|
assertEquals(ci.getValue(), "myconfigvalue1");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,10 +90,11 @@ public class ConfigurationClientIT extends BaseIT {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getConfigurations() {
|
public void getConfigurations() {
|
||||||
List<ConfigurationItem> cis = daprPreviewClient.getConfiguration(CONFIG_STORE_NAME, "myconfigkey1", "myconfigkey2").block();
|
Map<String, ConfigurationItem> cis = daprPreviewClient.getConfiguration(CONFIG_STORE_NAME, "myconfigkey1", "myconfigkey2").block();
|
||||||
assertTrue(cis.size() == 2);
|
assertTrue(cis.size() == 2);
|
||||||
assertEquals(cis.get(0).getKey(), "myconfigkey1");
|
assertTrue(cis.containsKey("myconfigkey1"));
|
||||||
assertEquals(cis.get(1).getValue(), "myconfigvalue2");
|
assertTrue(cis.containsKey("myconfigkey2"));
|
||||||
|
assertEquals(cis.get("myconfigkey2").getValue(), "myconfigvalue2");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -111,10 +111,13 @@ public class ConfigurationClientIT extends BaseIT {
|
||||||
List<String> updatedValues = new ArrayList<>();
|
List<String> updatedValues = new ArrayList<>();
|
||||||
AtomicReference<Disposable> disposable = new AtomicReference<>();
|
AtomicReference<Disposable> disposable = new AtomicReference<>();
|
||||||
Runnable subscribeTask = () -> {
|
Runnable subscribeTask = () -> {
|
||||||
Flux<List<ConfigurationItem>> outFlux = daprPreviewClient
|
Flux<Map<String, ConfigurationItem>> outFlux = daprPreviewClient
|
||||||
.subscribeToConfiguration(CONFIG_STORE_NAME, "myconfigkey1", "myconfigkey2");
|
.subscribeToConfiguration(CONFIG_STORE_NAME, "myconfigkey1", "myconfigkey2");
|
||||||
disposable.set(outFlux.subscribe(update -> {
|
disposable.set(outFlux.subscribe(update -> {
|
||||||
updatedValues.add(update.get(0).getValue());
|
updatedValues.add(update.entrySet()
|
||||||
|
.stream()
|
||||||
|
.findFirst()
|
||||||
|
.get().getValue().getValue());
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
Thread subscribeThread = new Thread(subscribeTask);
|
Thread subscribeThread = new Thread(subscribeTask);
|
||||||
|
|
|
@ -504,7 +504,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient {
|
||||||
@Override
|
@Override
|
||||||
public Mono<ConfigurationItem> getConfiguration(String storeName, String key) {
|
public Mono<ConfigurationItem> getConfiguration(String storeName, String key) {
|
||||||
GetConfigurationRequest request = new GetConfigurationRequest(storeName, filterEmptyKeys(key));
|
GetConfigurationRequest request = new GetConfigurationRequest(storeName, filterEmptyKeys(key));
|
||||||
return this.getConfiguration(request).map(data -> data.get(0));
|
return this.getConfiguration(request).map(data -> data.get(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -514,14 +514,14 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient {
|
||||||
public Mono<ConfigurationItem> getConfiguration(String storeName, String key, Map<String, String> metadata) {
|
public Mono<ConfigurationItem> getConfiguration(String storeName, String key, Map<String, String> metadata) {
|
||||||
GetConfigurationRequest request = new GetConfigurationRequest(storeName, filterEmptyKeys(key));
|
GetConfigurationRequest request = new GetConfigurationRequest(storeName, filterEmptyKeys(key));
|
||||||
request.setMetadata(metadata);
|
request.setMetadata(metadata);
|
||||||
return this.getConfiguration(request).map(data -> data.get(0));
|
return this.getConfiguration(request).map(data -> data.get(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<List<ConfigurationItem>> getConfiguration(String storeName, String... keys) {
|
public Mono<Map<String, ConfigurationItem>> getConfiguration(String storeName, String... keys) {
|
||||||
List<String> listOfKeys = filterEmptyKeys(keys);
|
List<String> listOfKeys = filterEmptyKeys(keys);
|
||||||
GetConfigurationRequest request = new GetConfigurationRequest(storeName, listOfKeys);
|
GetConfigurationRequest request = new GetConfigurationRequest(storeName, listOfKeys);
|
||||||
return this.getConfiguration(request);
|
return this.getConfiguration(request);
|
||||||
|
@ -531,7 +531,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<List<ConfigurationItem>> getConfiguration(
|
public Mono<Map<String, ConfigurationItem>> getConfiguration(
|
||||||
String storeName,
|
String storeName,
|
||||||
List<String> keys,
|
List<String> keys,
|
||||||
Map<String, String> metadata) {
|
Map<String, String> metadata) {
|
||||||
|
@ -543,7 +543,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient {
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
public Flux<List<ConfigurationItem>> subscribeToConfiguration(String storeName, String... keys) {
|
public Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(String storeName, String... keys) {
|
||||||
List<String> listOfKeys = filterEmptyKeys(keys);
|
List<String> listOfKeys = filterEmptyKeys(keys);
|
||||||
SubscribeConfigurationRequest request = new SubscribeConfigurationRequest(storeName, listOfKeys);
|
SubscribeConfigurationRequest request = new SubscribeConfigurationRequest(storeName, listOfKeys);
|
||||||
return this.subscribeToConfiguration(request);
|
return this.subscribeToConfiguration(request);
|
||||||
|
@ -552,7 +552,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient {
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
public Flux<List<ConfigurationItem>> subscribeToConfiguration(
|
public Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(
|
||||||
String storeName,
|
String storeName,
|
||||||
List<String> keys,
|
List<String> keys,
|
||||||
Map<String, String> metadata) {
|
Map<String, String> metadata) {
|
||||||
|
|
|
@ -63,6 +63,8 @@ import reactor.util.context.Context;
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
@ -766,7 +768,7 @@ public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<List<ConfigurationItem>> getConfiguration(GetConfigurationRequest request) {
|
public Mono<Map<String, ConfigurationItem>> getConfiguration(GetConfigurationRequest request) {
|
||||||
try {
|
try {
|
||||||
final String configurationStoreName = request.getStoreName();
|
final String configurationStoreName = request.getStoreName();
|
||||||
final Map<String, String> metadata = request.getMetadata();
|
final Map<String, String> metadata = request.getMetadata();
|
||||||
|
@ -791,16 +793,22 @@ public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Mono<List<ConfigurationItem>> getConfigurationAlpha1(DaprProtos.GetConfigurationRequest envelope) {
|
private Mono<Map<String, ConfigurationItem>> getConfigurationAlpha1(DaprProtos.GetConfigurationRequest envelope) {
|
||||||
return Mono.subscriberContext().flatMap(
|
return Mono.subscriberContext().flatMap(
|
||||||
context ->
|
context ->
|
||||||
this.<DaprProtos.GetConfigurationResponse>createMono(
|
this.<DaprProtos.GetConfigurationResponse>createMono(
|
||||||
it -> intercept(context, asyncStub).getConfigurationAlpha1(envelope, it)
|
it -> intercept(context, asyncStub).getConfigurationAlpha1(envelope, it)
|
||||||
)
|
)
|
||||||
).map(
|
).map(
|
||||||
it ->
|
it -> {
|
||||||
it.getItemsList().stream()
|
Map<String, ConfigurationItem> configMap = new HashMap<>();
|
||||||
.map(this::buildConfigurationItem).collect(Collectors.toList())
|
Iterator<Map.Entry<String, CommonProtos.ConfigurationItem>> itr = it.getItems().entrySet().iterator();
|
||||||
|
while (itr.hasNext()) {
|
||||||
|
Map.Entry<String, CommonProtos.ConfigurationItem> entry = itr.next();
|
||||||
|
configMap.put(entry.getKey(), buildConfigurationItem(entry.getValue(), entry.getKey()));
|
||||||
|
}
|
||||||
|
return Collections.unmodifiableMap(configMap);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -808,7 +816,7 @@ public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Flux<List<ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) {
|
public Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) {
|
||||||
try {
|
try {
|
||||||
final String configurationStoreName = request.getStoreName();
|
final String configurationStoreName = request.getStoreName();
|
||||||
final List<String> keys = request.getKeys();
|
final List<String> keys = request.getKeys();
|
||||||
|
@ -831,9 +839,15 @@ public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
return this.<DaprProtos.SubscribeConfigurationResponse>createFlux(
|
return this.<DaprProtos.SubscribeConfigurationResponse>createFlux(
|
||||||
it -> intercept(asyncStub).subscribeConfigurationAlpha1(envelope, it)
|
it -> intercept(asyncStub).subscribeConfigurationAlpha1(envelope, it)
|
||||||
).map(
|
).map(
|
||||||
it ->
|
it -> {
|
||||||
it.getItemsList().stream()
|
Map<String, ConfigurationItem> configMap = new HashMap<>();
|
||||||
.map(this::buildConfigurationItem).collect(Collectors.toList())
|
Iterator<Map.Entry<String, CommonProtos.ConfigurationItem>> itr = it.getItems().entrySet().iterator();
|
||||||
|
while (itr.hasNext()) {
|
||||||
|
Map.Entry<String, CommonProtos.ConfigurationItem> entry = itr.next();
|
||||||
|
configMap.put(entry.getKey(), buildConfigurationItem(entry.getValue(), entry.getKey()));
|
||||||
|
}
|
||||||
|
return Collections.unmodifiableMap(configMap);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
return DaprException.wrapFlux(ex);
|
return DaprException.wrapFlux(ex);
|
||||||
|
@ -847,9 +861,9 @@ public class DaprClientGrpc extends AbstractDaprClient {
|
||||||
* @return io.dapr.client.domain.ConfigurationItem
|
* @return io.dapr.client.domain.ConfigurationItem
|
||||||
*/
|
*/
|
||||||
private ConfigurationItem buildConfigurationItem(
|
private ConfigurationItem buildConfigurationItem(
|
||||||
CommonProtos.ConfigurationItem configurationItem) {
|
CommonProtos.ConfigurationItem configurationItem, String key) {
|
||||||
return new ConfigurationItem(
|
return new ConfigurationItem(
|
||||||
configurationItem.getKey(),
|
key,
|
||||||
configurationItem.getValue(),
|
configurationItem.getValue(),
|
||||||
configurationItem.getVersion(),
|
configurationItem.getVersion(),
|
||||||
configurationItem.getMetadataMap()
|
configurationItem.getMetadataMap()
|
||||||
|
|
|
@ -767,7 +767,7 @@ public class DaprClientHttp extends AbstractDaprClient {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<List<ConfigurationItem>> getConfiguration(GetConfigurationRequest request) {
|
public Mono<Map<String, ConfigurationItem>> getConfiguration(GetConfigurationRequest request) {
|
||||||
return DaprException.wrapMono(new UnsupportedOperationException());
|
return DaprException.wrapMono(new UnsupportedOperationException());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -775,7 +775,7 @@ public class DaprClientHttp extends AbstractDaprClient {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Flux<List<ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) {
|
public Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) {
|
||||||
return DaprException.wrapFlux(new UnsupportedOperationException());
|
return DaprException.wrapFlux(new UnsupportedOperationException());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,41 +53,42 @@ public interface DaprPreviewClient extends AutoCloseable {
|
||||||
Mono<ConfigurationItem> getConfiguration(String storeName, String key, Map<String, String> metadata);
|
Mono<ConfigurationItem> getConfiguration(String storeName, String key, Map<String, String> metadata);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve List of configurations based on a provided variable number of keys.
|
* Retrieve Map of configurations based on a provided variable number of keys.
|
||||||
*
|
*
|
||||||
* @param storeName Name of the configuration store
|
* @param storeName Name of the configuration store
|
||||||
* @param keys keys of the configurations which are to be retrieved
|
* @param keys keys of the configurations which are to be retrieved
|
||||||
* @return Mono of List of ConfigurationItems
|
* @return Mono of Map of ConfigurationItems
|
||||||
*/
|
*/
|
||||||
Mono<List<ConfigurationItem>> getConfiguration(String storeName, String... keys);
|
Mono<Map<String, ConfigurationItem>> getConfiguration(String storeName, String... keys);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve List of configurations based on a provided variable number of keys.
|
* Retrieve Map of configurations based on a provided variable number of keys.
|
||||||
*
|
*
|
||||||
* @param storeName Name of the configuration store
|
* @param storeName Name of the configuration store
|
||||||
* @param keys keys of the configurations which are to be retrieved
|
* @param keys keys of the configurations which are to be retrieved
|
||||||
* @param metadata optional metadata
|
* @param metadata optional metadata
|
||||||
* @return Mono of List of ConfigurationItems
|
* @return Mono of Map of ConfigurationItems
|
||||||
*/
|
*/
|
||||||
Mono<List<ConfigurationItem>> getConfiguration(String storeName, List<String> keys, Map<String, String> metadata);
|
Mono<Map<String, ConfigurationItem>> getConfiguration(String storeName, List<String> keys,
|
||||||
|
Map<String, String> metadata);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve List of configurations based on a provided configuration request object.
|
* Retrieve Map of configurations based on a provided configuration request object.
|
||||||
*
|
*
|
||||||
* @param request request for retrieving Configurations for a list keys
|
* @param request request for retrieving Configurations for a list keys
|
||||||
* @return Mono of List of ConfigurationItems
|
* @return Mono of Map of ConfigurationItems
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Mono<List<ConfigurationItem>> getConfiguration(GetConfigurationRequest request);
|
Mono<Map<String, ConfigurationItem>> getConfiguration(GetConfigurationRequest request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subscribe to the keys for any change.
|
* Subscribe to the keys for any change.
|
||||||
*
|
*
|
||||||
* @param storeName Name of the configuration store
|
* @param storeName Name of the configuration store
|
||||||
* @param keys keys of the configurations which are to be subscribed
|
* @param keys keys of the configurations which are to be subscribed
|
||||||
* @return Flux of List of configuration items
|
* @return Flux of Map of configuration items
|
||||||
*/
|
*/
|
||||||
Flux<List<ConfigurationItem>> subscribeToConfiguration(String storeName, String... keys);
|
Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(String storeName, String... keys);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subscribe to the keys for any change.
|
* Subscribe to the keys for any change.
|
||||||
|
@ -95,18 +96,18 @@ public interface DaprPreviewClient extends AutoCloseable {
|
||||||
* @param storeName Name of the configuration store
|
* @param storeName Name of the configuration store
|
||||||
* @param keys keys of the configurations which are to be subscribed
|
* @param keys keys of the configurations which are to be subscribed
|
||||||
* @param metadata optional metadata
|
* @param metadata optional metadata
|
||||||
* @return Flux of List of configuration items
|
* @return Flux of Map of configuration items
|
||||||
*/
|
*/
|
||||||
Flux<List<ConfigurationItem>> subscribeToConfiguration(String storeName, List<String> keys,
|
Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(String storeName, List<String> keys,
|
||||||
Map<String, String> metadata);
|
Map<String, String> metadata);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subscribe to the keys for any change.
|
* Subscribe to the keys for any change.
|
||||||
*
|
*
|
||||||
* @param request request for subscribing to any change for the given keys in request
|
* @param request request for subscribing to any change for the given keys in request
|
||||||
* @return Flux of List of configuration items
|
* @return Flux of Map of configuration items
|
||||||
*/
|
*/
|
||||||
Flux<List<ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request);
|
Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Query for states using a query string.
|
* Query for states using a query string.
|
||||||
|
|
|
@ -110,7 +110,6 @@ public class DaprPreviewClientGrpcTest {
|
||||||
}).when(daprStub).getConfigurationAlpha1(any(DaprProtos.GetConfigurationRequest.class), any());
|
}).when(daprStub).getConfigurationAlpha1(any(DaprProtos.GetConfigurationRequest.class), any());
|
||||||
|
|
||||||
ConfigurationItem ci = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1").block();
|
ConfigurationItem ci = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1").block();
|
||||||
assertEquals("configkey1", ci.getKey());
|
|
||||||
assertEquals("configvalue1", ci.getValue());
|
assertEquals("configvalue1", ci.getValue());
|
||||||
assertEquals("1", ci.getVersion());
|
assertEquals("1", ci.getVersion());
|
||||||
}
|
}
|
||||||
|
@ -128,7 +127,6 @@ public class DaprPreviewClientGrpcTest {
|
||||||
Map<String, String> reqMetadata = new HashMap<>();
|
Map<String, String> reqMetadata = new HashMap<>();
|
||||||
reqMetadata.put("meta1", "value1");
|
reqMetadata.put("meta1", "value1");
|
||||||
ConfigurationItem ci = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1", reqMetadata).block();
|
ConfigurationItem ci = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1", reqMetadata).block();
|
||||||
assertEquals("configkey1", ci.getKey());
|
|
||||||
assertEquals("configvalue1", ci.getValue());
|
assertEquals("configvalue1", ci.getValue());
|
||||||
assertEquals("1", ci.getVersion());
|
assertEquals("1", ci.getVersion());
|
||||||
}
|
}
|
||||||
|
@ -143,15 +141,14 @@ public class DaprPreviewClientGrpcTest {
|
||||||
return null;
|
return null;
|
||||||
}).when(daprStub).getConfigurationAlpha1(any(DaprProtos.GetConfigurationRequest.class), any());
|
}).when(daprStub).getConfigurationAlpha1(any(DaprProtos.GetConfigurationRequest.class), any());
|
||||||
|
|
||||||
List<ConfigurationItem> cis = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1","configkey2").block();
|
Map<String, ConfigurationItem> cis = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1","configkey2").block();
|
||||||
assertEquals(2, cis.size());
|
assertEquals(2, cis.size());
|
||||||
assertEquals("configkey1", cis.stream().findFirst().get().getKey());
|
assertTrue("configkey1", cis.containsKey("configkey1"));
|
||||||
assertEquals("configvalue1", cis.stream().findFirst().get().getValue());
|
assertEquals("configvalue1", cis.get("configkey1").getValue());
|
||||||
assertEquals("1", cis.stream().findFirst().get().getVersion());
|
assertEquals("1", cis.get("configkey1").getVersion());
|
||||||
|
assertTrue("configkey2", cis.containsKey("configkey2"));
|
||||||
assertEquals("configkey2", cis.stream().skip(1).findFirst().get().getKey());
|
assertEquals("configvalue2", cis.get("configkey2").getValue());
|
||||||
assertEquals("configvalue2", cis.stream().skip(1).findFirst().get().getValue());
|
assertEquals("1", cis.get("configkey2").getVersion());
|
||||||
assertEquals("1", cis.stream().skip(1).findFirst().get().getVersion());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -167,23 +164,24 @@ public class DaprPreviewClientGrpcTest {
|
||||||
Map<String, String> reqMetadata = new HashMap<>();
|
Map<String, String> reqMetadata = new HashMap<>();
|
||||||
reqMetadata.put("meta1", "value1");
|
reqMetadata.put("meta1", "value1");
|
||||||
List<String> keys = Arrays.asList("configkey1","configkey2");
|
List<String> keys = Arrays.asList("configkey1","configkey2");
|
||||||
List<ConfigurationItem> cis = previewClient.getConfiguration(CONFIG_STORE_NAME, keys, reqMetadata).block();
|
Map<String, ConfigurationItem> cis = previewClient.getConfiguration(CONFIG_STORE_NAME, keys, reqMetadata).block();
|
||||||
assertEquals(2, cis.size());
|
assertEquals(2, cis.size());
|
||||||
assertEquals("configkey1", cis.stream().findFirst().get().getKey());
|
assertTrue("configkey1", cis.containsKey("configkey1"));
|
||||||
assertEquals("configvalue1", cis.stream().findFirst().get().getValue());
|
assertEquals("configvalue1", cis.get("configkey1").getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void subscribeConfigurationTest() {
|
public void subscribeConfigurationTest() {
|
||||||
Map<String, String> metadata = new HashMap<>();
|
Map<String, String> metadata = new HashMap<>();
|
||||||
metadata.put("meta1", "value1");
|
metadata.put("meta1", "value1");
|
||||||
DaprProtos.SubscribeConfigurationResponse responseEnvelope = DaprProtos.SubscribeConfigurationResponse.newBuilder()
|
Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>();
|
||||||
.addItems(CommonProtos.ConfigurationItem.newBuilder()
|
configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder()
|
||||||
.setKey("configkey1")
|
|
||||||
.setValue("configvalue1")
|
.setValue("configvalue1")
|
||||||
.setVersion("1")
|
.setVersion("1")
|
||||||
.putAllMetadata(metadata)
|
.putAllMetadata(metadata)
|
||||||
.build())
|
.build());
|
||||||
|
DaprProtos.SubscribeConfigurationResponse responseEnvelope = DaprProtos.SubscribeConfigurationResponse.newBuilder()
|
||||||
|
.putAllItems(configs)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
doAnswer((Answer<Void>) invocation -> {
|
doAnswer((Answer<Void>) invocation -> {
|
||||||
|
@ -194,9 +192,9 @@ public class DaprPreviewClientGrpcTest {
|
||||||
return null;
|
return null;
|
||||||
}).when(daprStub).subscribeConfigurationAlpha1(any(DaprProtos.SubscribeConfigurationRequest.class), any());
|
}).when(daprStub).subscribeConfigurationAlpha1(any(DaprProtos.SubscribeConfigurationRequest.class), any());
|
||||||
|
|
||||||
Iterator<List<ConfigurationItem>> itr = previewClient.subscribeToConfiguration(CONFIG_STORE_NAME, "configkey1").toIterable().iterator();
|
Iterator<Map<String, ConfigurationItem>> itr = previewClient.subscribeToConfiguration(CONFIG_STORE_NAME, "configkey1").toIterable().iterator();
|
||||||
assertTrue(itr.hasNext());
|
assertTrue(itr.hasNext());
|
||||||
assertEquals("configkey1", itr.next().get(0).getKey());
|
assertTrue(itr.next().containsKey("configkey1"));
|
||||||
assertFalse(itr.hasNext());
|
assertFalse(itr.hasNext());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,13 +202,14 @@ public class DaprPreviewClientGrpcTest {
|
||||||
public void subscribeConfigurationTestWithMetadata() {
|
public void subscribeConfigurationTestWithMetadata() {
|
||||||
Map<String, String> metadata = new HashMap<>();
|
Map<String, String> metadata = new HashMap<>();
|
||||||
metadata.put("meta1", "value1");
|
metadata.put("meta1", "value1");
|
||||||
DaprProtos.SubscribeConfigurationResponse responseEnvelope = DaprProtos.SubscribeConfigurationResponse.newBuilder()
|
Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>();
|
||||||
.addItems(CommonProtos.ConfigurationItem.newBuilder()
|
configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder()
|
||||||
.setKey("configkey1")
|
|
||||||
.setValue("configvalue1")
|
.setValue("configvalue1")
|
||||||
.setVersion("1")
|
.setVersion("1")
|
||||||
.putAllMetadata(metadata)
|
.putAllMetadata(metadata)
|
||||||
.build())
|
.build());
|
||||||
|
DaprProtos.SubscribeConfigurationResponse responseEnvelope = DaprProtos.SubscribeConfigurationResponse.newBuilder()
|
||||||
|
.putAllItems(configs)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
doAnswer((Answer<Void>) invocation -> {
|
doAnswer((Answer<Void>) invocation -> {
|
||||||
|
@ -224,9 +223,9 @@ public class DaprPreviewClientGrpcTest {
|
||||||
Map<String, String> reqMetadata = new HashMap<>();
|
Map<String, String> reqMetadata = new HashMap<>();
|
||||||
List<String> keys = Arrays.asList("configkey1");
|
List<String> keys = Arrays.asList("configkey1");
|
||||||
|
|
||||||
Iterator<List<ConfigurationItem>> itr = previewClient.subscribeToConfiguration(CONFIG_STORE_NAME, keys, reqMetadata).toIterable().iterator();
|
Iterator<Map<String, ConfigurationItem>> itr = previewClient.subscribeToConfiguration(CONFIG_STORE_NAME, "configkey1").toIterable().iterator();
|
||||||
assertTrue(itr.hasNext());
|
assertTrue(itr.hasNext());
|
||||||
assertEquals("configkey1", itr.next().get(0).getKey());
|
assertTrue(itr.next().containsKey("configkey1"));
|
||||||
assertFalse(itr.hasNext());
|
assertFalse(itr.hasNext());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -257,33 +256,34 @@ public class DaprPreviewClientGrpcTest {
|
||||||
private DaprProtos.GetConfigurationResponse getSingleMockResponse() {
|
private DaprProtos.GetConfigurationResponse getSingleMockResponse() {
|
||||||
Map<String, String> metadata = new HashMap<>();
|
Map<String, String> metadata = new HashMap<>();
|
||||||
metadata.put("meta1", "value1");
|
metadata.put("meta1", "value1");
|
||||||
DaprProtos.GetConfigurationResponse responseEnvelope = DaprProtos.GetConfigurationResponse.newBuilder()
|
Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>();
|
||||||
.addItems(CommonProtos.ConfigurationItem.newBuilder()
|
configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder()
|
||||||
.setKey("configkey1")
|
|
||||||
.setValue("configvalue1")
|
.setValue("configvalue1")
|
||||||
.setVersion("1")
|
.setVersion("1")
|
||||||
.putAllMetadata(metadata)
|
.putAllMetadata(metadata)
|
||||||
.build()
|
.build());
|
||||||
).build();
|
DaprProtos.GetConfigurationResponse responseEnvelope = DaprProtos.GetConfigurationResponse.newBuilder()
|
||||||
|
.putAllItems(configs)
|
||||||
|
.build();
|
||||||
return responseEnvelope;
|
return responseEnvelope;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DaprProtos.GetConfigurationResponse getMultipleMockResponse() {
|
private DaprProtos.GetConfigurationResponse getMultipleMockResponse() {
|
||||||
Map<String, String> metadata = new HashMap<>();
|
Map<String, String> metadata = new HashMap<>();
|
||||||
metadata.put("meta1", "value1");
|
metadata.put("meta1", "value1");
|
||||||
DaprProtos.GetConfigurationResponse responseEnvelope = DaprProtos.GetConfigurationResponse.newBuilder()
|
Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>();
|
||||||
.addItems(CommonProtos.ConfigurationItem.newBuilder()
|
configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder()
|
||||||
.setKey("configkey1")
|
|
||||||
.setValue("configvalue1")
|
.setValue("configvalue1")
|
||||||
.setVersion("1")
|
.setVersion("1")
|
||||||
.putAllMetadata(metadata)
|
.putAllMetadata(metadata)
|
||||||
.build())
|
.build());
|
||||||
.addItems(CommonProtos.ConfigurationItem.newBuilder()
|
configs.put("configkey2", CommonProtos.ConfigurationItem.newBuilder()
|
||||||
.setKey("configkey2")
|
|
||||||
.setValue("configvalue2")
|
.setValue("configvalue2")
|
||||||
.setVersion("1")
|
.setVersion("1")
|
||||||
.putAllMetadata(metadata)
|
.putAllMetadata(metadata)
|
||||||
.build())
|
.build());
|
||||||
|
DaprProtos.GetConfigurationResponse responseEnvelope = DaprProtos.GetConfigurationResponse.newBuilder()
|
||||||
|
.putAllItems(configs)
|
||||||
.build();
|
.build();
|
||||||
return responseEnvelope;
|
return responseEnvelope;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue