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: | ||||
|         java: [ 11, 13, 15, 16 ] | ||||
|     env: | ||||
|       GOVER: 1.17.7 | ||||
|       GOVER: 1.19 | ||||
|       GOOS: linux | ||||
|       GOARCH: amd64 | ||||
|       GOPROXY: https://proxy.golang.org | ||||
|  | @ -29,7 +29,7 @@ jobs: | |||
|       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_CLI_REF: | ||||
|       DAPR_REF: | ||||
|       DAPR_REF: 683a436ff1367e4ff2d27da2d79069c04ec2c46d | ||||
|     steps: | ||||
|     - uses: actions/checkout@v3 | ||||
|     - name: Set up OpenJDK ${{ env.JDK_VER }} | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ jobs: | |||
|       matrix: | ||||
|         java: [ 11, 13, 15, 16 ] | ||||
|     env: | ||||
|       GOVER: 1.17.7 | ||||
|       GOVER: 1.19 | ||||
|       GOOS: linux | ||||
|       GOARCH: amd64 | ||||
|       GOPROXY: https://proxy.golang.org | ||||
|  | @ -40,7 +40,7 @@ jobs: | |||
|       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_CLI_REF: | ||||
|       DAPR_REF: | ||||
|       DAPR_REF: 683a436ff1367e4ff2d27da2d79069c04ec2c46d | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Set up OpenJDK ${{ env.JDK_VER }} | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ import java.io.IOException; | |||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.concurrent.atomic.AtomicReference; | ||||
| 
 | ||||
| public class ConfigurationClient { | ||||
|  | @ -72,9 +73,9 @@ public class ConfigurationClient { | |||
|   public static void getConfigurationsUsingVarargs(DaprPreviewClient client) { | ||||
|     System.out.println("*******trying to retrieve configurations for a variable no. of keys********"); | ||||
|     try { | ||||
|       Mono<List<ConfigurationItem>> items = | ||||
|       Mono<Map<String, ConfigurationItem>> items = | ||||
|           client.getConfiguration(CONFIG_STORE_NAME, "myconfig1", "myconfig3"); | ||||
|       items.block().forEach(ConfigurationClient::print); | ||||
|       items.block().forEach((k,v) -> print(v, k)); | ||||
|     } catch (Exception ex) { | ||||
|       System.out.println(ex.getMessage()); | ||||
|     } | ||||
|  | @ -93,8 +94,8 @@ public class ConfigurationClient { | |||
|     keys.add("myconfig3"); | ||||
|     GetConfigurationRequest req = new GetConfigurationRequest(CONFIG_STORE_NAME, keys); | ||||
|     try { | ||||
|       Mono<List<ConfigurationItem>> items = client.getConfiguration(req); | ||||
|       items.block().forEach(ConfigurationClient::print); | ||||
|       Mono<Map<String, ConfigurationItem>> items = client.getConfiguration(req); | ||||
|       items.block().forEach((k,v) -> print(v, k)); | ||||
|     } catch (Exception ex) { | ||||
|       System.out.println(ex.getMessage()); | ||||
|     } | ||||
|  | @ -110,10 +111,10 @@ public class ConfigurationClient { | |||
|     AtomicReference<Disposable> disposableAtomicReference = new AtomicReference<>(); | ||||
|     SubscribeConfigurationRequest req = new SubscribeConfigurationRequest(CONFIG_STORE_NAME, keys); | ||||
|     Runnable subscribeTask = () -> { | ||||
|       Flux<List<ConfigurationItem>> outFlux = client.subscribeToConfiguration(req); | ||||
|       Flux<Map<String, ConfigurationItem>> outFlux = client.subscribeToConfiguration(req); | ||||
|       disposableAtomicReference.set(outFlux | ||||
|           .subscribe( | ||||
|               cis -> cis.forEach(ConfigurationClient::print) | ||||
|               cis -> cis.forEach((k,v) -> print(v, k)) | ||||
|           )); | ||||
|     }; | ||||
|     new Thread(subscribeTask).start(); | ||||
|  | @ -140,8 +141,8 @@ public class ConfigurationClient { | |||
|     } | ||||
|   } | ||||
| 
 | ||||
|   private static void print(ConfigurationItem item) { | ||||
|     System.out.println(item.getValue() + " : key ->" + item.getKey()); | ||||
|   private static void print(ConfigurationItem item, String key) { | ||||
|     System.out.println(item.getValue() + " : key ->" + key); | ||||
|   } | ||||
| 
 | ||||
|   private static void executeDockerCommand(int postfix) { | ||||
|  |  | |||
							
								
								
									
										2
									
								
								pom.xml
								
								
								
								
							
							
						
						
									
										2
									
								
								pom.xml
								
								
								
								
							|  | @ -16,7 +16,7 @@ | |||
|     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||
|     <grpc.version>1.42.1</grpc.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> | ||||
|     <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version> | ||||
|     <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version> | ||||
|  |  | |||
|  | @ -78,7 +78,6 @@ public class ConfigurationClientIT extends BaseIT { | |||
|     @Test | ||||
|     public void getConfiguration() { | ||||
|         ConfigurationItem ci = daprPreviewClient.getConfiguration(CONFIG_STORE_NAME, "myconfigkey1").block(); | ||||
|         assertEquals(ci.getKey(), "myconfigkey1"); | ||||
|         assertEquals(ci.getValue(), "myconfigvalue1"); | ||||
|     } | ||||
| 
 | ||||
|  | @ -91,10 +90,11 @@ public class ConfigurationClientIT extends BaseIT { | |||
| 
 | ||||
|     @Test | ||||
|     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); | ||||
|         assertEquals(cis.get(0).getKey(), "myconfigkey1"); | ||||
|         assertEquals(cis.get(1).getValue(), "myconfigvalue2"); | ||||
|         assertTrue(cis.containsKey("myconfigkey1")); | ||||
|         assertTrue(cis.containsKey("myconfigkey2")); | ||||
|         assertEquals(cis.get("myconfigkey2").getValue(), "myconfigvalue2"); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|  | @ -111,10 +111,13 @@ public class ConfigurationClientIT extends BaseIT { | |||
|         List<String> updatedValues = new ArrayList<>(); | ||||
|         AtomicReference<Disposable> disposable = new AtomicReference<>(); | ||||
|         Runnable subscribeTask = () -> { | ||||
|             Flux<List<ConfigurationItem>> outFlux = daprPreviewClient | ||||
|             Flux<Map<String, ConfigurationItem>> outFlux = daprPreviewClient | ||||
|                     .subscribeToConfiguration(CONFIG_STORE_NAME, "myconfigkey1", "myconfigkey2"); | ||||
|             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); | ||||
|  |  | |||
|  | @ -504,7 +504,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient { | |||
|   @Override | ||||
|   public Mono<ConfigurationItem> getConfiguration(String storeName, String 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) { | ||||
|     GetConfigurationRequest request = new GetConfigurationRequest(storeName, filterEmptyKeys(key)); | ||||
|     request.setMetadata(metadata); | ||||
|     return this.getConfiguration(request).map(data -> data.get(0)); | ||||
|     return this.getConfiguration(request).map(data -> data.get(key)); | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|    * {@inheritDoc} | ||||
|    */ | ||||
|   @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); | ||||
|     GetConfigurationRequest request = new GetConfigurationRequest(storeName, listOfKeys); | ||||
|     return this.getConfiguration(request); | ||||
|  | @ -531,7 +531,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient { | |||
|    * {@inheritDoc} | ||||
|    */ | ||||
|   @Override | ||||
|   public Mono<List<ConfigurationItem>> getConfiguration( | ||||
|   public Mono<Map<String, ConfigurationItem>> getConfiguration( | ||||
|       String storeName, | ||||
|       List<String> keys, | ||||
|       Map<String, String> metadata) { | ||||
|  | @ -543,7 +543,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient { | |||
|   /** | ||||
|    * {@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); | ||||
|     SubscribeConfigurationRequest request = new SubscribeConfigurationRequest(storeName, listOfKeys); | ||||
|     return this.subscribeToConfiguration(request); | ||||
|  | @ -552,7 +552,7 @@ abstract class AbstractDaprClient implements DaprClient, DaprPreviewClient { | |||
|   /** | ||||
|    * {@inheritDoc} | ||||
|    */ | ||||
|   public Flux<List<ConfigurationItem>> subscribeToConfiguration( | ||||
|   public Flux<Map<String, ConfigurationItem>> subscribeToConfiguration( | ||||
|       String storeName, | ||||
|       List<String> keys, | ||||
|       Map<String, String> metadata) { | ||||
|  |  | |||
|  | @ -63,6 +63,8 @@ import reactor.util.context.Context; | |||
| import java.io.Closeable; | ||||
| import java.io.IOException; | ||||
| import java.util.Collections; | ||||
| import java.util.HashMap; | ||||
| import java.util.Iterator; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.concurrent.ExecutionException; | ||||
|  | @ -766,7 +768,7 @@ public class DaprClientGrpc extends AbstractDaprClient { | |||
|    * {@inheritDoc} | ||||
|    */ | ||||
|   @Override | ||||
|   public Mono<List<ConfigurationItem>> getConfiguration(GetConfigurationRequest request) { | ||||
|   public Mono<Map<String, ConfigurationItem>> getConfiguration(GetConfigurationRequest request) { | ||||
|     try { | ||||
|       final String configurationStoreName = request.getStoreName(); | ||||
|       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( | ||||
|         context -> | ||||
|             this.<DaprProtos.GetConfigurationResponse>createMono( | ||||
|                 it -> intercept(context, asyncStub).getConfigurationAlpha1(envelope, it) | ||||
|             ) | ||||
|     ).map( | ||||
|         it -> | ||||
|             it.getItemsList().stream() | ||||
|                 .map(this::buildConfigurationItem).collect(Collectors.toList()) | ||||
|         it -> { | ||||
|           Map<String, ConfigurationItem> configMap = new HashMap<>(); | ||||
|           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} | ||||
|    */ | ||||
|   @Override | ||||
|   public Flux<List<ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) { | ||||
|   public Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) { | ||||
|     try { | ||||
|       final String configurationStoreName = request.getStoreName(); | ||||
|       final List<String> keys = request.getKeys(); | ||||
|  | @ -831,9 +839,15 @@ public class DaprClientGrpc extends AbstractDaprClient { | |||
|       return this.<DaprProtos.SubscribeConfigurationResponse>createFlux( | ||||
|           it -> intercept(asyncStub).subscribeConfigurationAlpha1(envelope, it) | ||||
|       ).map( | ||||
|           it -> | ||||
|               it.getItemsList().stream() | ||||
|                   .map(this::buildConfigurationItem).collect(Collectors.toList()) | ||||
|         it -> { | ||||
|           Map<String, ConfigurationItem> configMap = new HashMap<>(); | ||||
|           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) { | ||||
|       return DaprException.wrapFlux(ex); | ||||
|  | @ -847,10 +861,10 @@ public class DaprClientGrpc extends AbstractDaprClient { | |||
|    * @return io.dapr.client.domain.ConfigurationItem | ||||
|    */ | ||||
|   private ConfigurationItem buildConfigurationItem( | ||||
|       CommonProtos.ConfigurationItem configurationItem) { | ||||
|       CommonProtos.ConfigurationItem configurationItem, String key) { | ||||
|     return new ConfigurationItem( | ||||
|         configurationItem.getKey(), | ||||
|         configurationItem.getValue(), | ||||
|       key, | ||||
|       configurationItem.getValue(), | ||||
|         configurationItem.getVersion(), | ||||
|         configurationItem.getMetadataMap() | ||||
|     ); | ||||
|  |  | |||
|  | @ -767,7 +767,7 @@ public class DaprClientHttp extends AbstractDaprClient { | |||
|    * {@inheritDoc} | ||||
|    */ | ||||
|   @Override | ||||
|   public Mono<List<ConfigurationItem>> getConfiguration(GetConfigurationRequest request) { | ||||
|   public Mono<Map<String, ConfigurationItem>> getConfiguration(GetConfigurationRequest request) { | ||||
|     return DaprException.wrapMono(new UnsupportedOperationException()); | ||||
|   } | ||||
| 
 | ||||
|  | @ -775,7 +775,7 @@ public class DaprClientHttp extends AbstractDaprClient { | |||
|    * {@inheritDoc} | ||||
|    */ | ||||
|   @Override | ||||
|   public Flux<List<ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) { | ||||
|   public Flux<Map<String, ConfigurationItem>> subscribeToConfiguration(SubscribeConfigurationRequest request) { | ||||
|     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); | ||||
| 
 | ||||
|   /** | ||||
|    * 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 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 keys      keys of the configurations which are to be retrieved | ||||
|    * @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 | ||||
|    * @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. | ||||
|    * | ||||
|    * @param storeName Name of the configuration store | ||||
|    * @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. | ||||
|  | @ -95,18 +96,18 @@ public interface DaprPreviewClient extends AutoCloseable { | |||
|    * @param storeName Name of the configuration store | ||||
|    * @param keys      keys of the configurations which are to be subscribed | ||||
|    * @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); | ||||
| 
 | ||||
|   /** | ||||
|    * Subscribe to the keys for any change. | ||||
|    * | ||||
|    * @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. | ||||
|  |  | |||
|  | @ -110,7 +110,6 @@ public class DaprPreviewClientGrpcTest { | |||
| 		}).when(daprStub).getConfigurationAlpha1(any(DaprProtos.GetConfigurationRequest.class), any()); | ||||
| 
 | ||||
| 		ConfigurationItem ci = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1").block(); | ||||
| 		assertEquals("configkey1", ci.getKey()); | ||||
| 		assertEquals("configvalue1", ci.getValue()); | ||||
| 		assertEquals("1", ci.getVersion()); | ||||
| 	} | ||||
|  | @ -128,7 +127,6 @@ public class DaprPreviewClientGrpcTest { | |||
| 		Map<String, String> reqMetadata = new HashMap<>(); | ||||
| 		reqMetadata.put("meta1", "value1"); | ||||
| 		ConfigurationItem ci = previewClient.getConfiguration(CONFIG_STORE_NAME, "configkey1", reqMetadata).block(); | ||||
| 		assertEquals("configkey1", ci.getKey()); | ||||
| 		assertEquals("configvalue1", ci.getValue()); | ||||
| 		assertEquals("1", ci.getVersion()); | ||||
| 	} | ||||
|  | @ -143,15 +141,14 @@ public class DaprPreviewClientGrpcTest { | |||
| 			return null; | ||||
| 		}).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("configkey1", cis.stream().findFirst().get().getKey()); | ||||
| 		assertEquals("configvalue1", cis.stream().findFirst().get().getValue()); | ||||
| 		assertEquals("1", cis.stream().findFirst().get().getVersion()); | ||||
| 
 | ||||
| 		assertEquals("configkey2", cis.stream().skip(1).findFirst().get().getKey()); | ||||
| 		assertEquals("configvalue2", cis.stream().skip(1).findFirst().get().getValue()); | ||||
| 		assertEquals("1", cis.stream().skip(1).findFirst().get().getVersion()); | ||||
| 		assertTrue("configkey1", cis.containsKey("configkey1")); | ||||
| 		assertEquals("configvalue1", cis.get("configkey1").getValue()); | ||||
| 		assertEquals("1", cis.get("configkey1").getVersion()); | ||||
| 		assertTrue("configkey2", cis.containsKey("configkey2")); | ||||
| 		assertEquals("configvalue2", cis.get("configkey2").getValue()); | ||||
| 		assertEquals("1", cis.get("configkey2").getVersion()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  | @ -167,23 +164,24 @@ public class DaprPreviewClientGrpcTest { | |||
| 		Map<String, String> reqMetadata = new HashMap<>(); | ||||
| 		reqMetadata.put("meta1", "value1"); | ||||
| 		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("configkey1", cis.stream().findFirst().get().getKey()); | ||||
| 		assertEquals("configvalue1", cis.stream().findFirst().get().getValue()); | ||||
| 		assertTrue("configkey1", cis.containsKey("configkey1")); | ||||
| 		assertEquals("configvalue1", cis.get("configkey1").getValue()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void subscribeConfigurationTest() { | ||||
| 		Map<String, String> metadata = new HashMap<>(); | ||||
| 		metadata.put("meta1", "value1"); | ||||
| 		Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>(); | ||||
| 		configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder() | ||||
| 		.setValue("configvalue1") | ||||
| 		.setVersion("1") | ||||
| 		.putAllMetadata(metadata) | ||||
| 		.build()); | ||||
| 		DaprProtos.SubscribeConfigurationResponse responseEnvelope = DaprProtos.SubscribeConfigurationResponse.newBuilder() | ||||
| 				.addItems(CommonProtos.ConfigurationItem.newBuilder() | ||||
| 						.setKey("configkey1") | ||||
| 						.setValue("configvalue1") | ||||
| 						.setVersion("1") | ||||
| 						.putAllMetadata(metadata) | ||||
| 						.build()) | ||||
| 				.putAllItems(configs) | ||||
| 				.build(); | ||||
| 
 | ||||
| 		doAnswer((Answer<Void>) invocation -> { | ||||
|  | @ -194,23 +192,24 @@ public class DaprPreviewClientGrpcTest { | |||
| 			return null; | ||||
| 		}).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()); | ||||
| 		assertEquals("configkey1", itr.next().get(0).getKey()); | ||||
| 		assertFalse(itr.hasNext()); | ||||
| 		assertTrue(itr.next().containsKey("configkey1")); | ||||
| 		assertFalse(itr.hasNext());	 | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void subscribeConfigurationTestWithMetadata() { | ||||
| 		Map<String, String> metadata = new HashMap<>(); | ||||
| 		metadata.put("meta1", "value1"); | ||||
| 		Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>(); | ||||
| 		configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder() | ||||
| 		.setValue("configvalue1") | ||||
| 		.setVersion("1") | ||||
| 		.putAllMetadata(metadata) | ||||
| 		.build()); | ||||
| 		DaprProtos.SubscribeConfigurationResponse responseEnvelope = DaprProtos.SubscribeConfigurationResponse.newBuilder() | ||||
| 				.addItems(CommonProtos.ConfigurationItem.newBuilder() | ||||
| 						.setKey("configkey1") | ||||
| 						.setValue("configvalue1") | ||||
| 						.setVersion("1") | ||||
| 						.putAllMetadata(metadata) | ||||
| 						.build()) | ||||
| 				.putAllItems(configs) | ||||
| 				.build(); | ||||
| 
 | ||||
| 		doAnswer((Answer<Void>) invocation -> { | ||||
|  | @ -224,10 +223,10 @@ public class DaprPreviewClientGrpcTest { | |||
| 		Map<String, String> reqMetadata = new HashMap<>(); | ||||
| 		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()); | ||||
| 		assertEquals("configkey1", itr.next().get(0).getKey()); | ||||
| 		assertFalse(itr.hasNext()); | ||||
| 		assertTrue(itr.next().containsKey("configkey1")); | ||||
| 		assertFalse(itr.hasNext());	 | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
|  | @ -257,33 +256,34 @@ public class DaprPreviewClientGrpcTest { | |||
| 	private DaprProtos.GetConfigurationResponse getSingleMockResponse() { | ||||
| 		Map<String, String> metadata = new HashMap<>(); | ||||
| 		metadata.put("meta1", "value1"); | ||||
| 		Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>(); | ||||
| 		configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder() | ||||
| 		.setValue("configvalue1") | ||||
| 		.setVersion("1") | ||||
| 		.putAllMetadata(metadata) | ||||
| 		.build()); | ||||
| 		DaprProtos.GetConfigurationResponse responseEnvelope = DaprProtos.GetConfigurationResponse.newBuilder() | ||||
| 				.addItems(CommonProtos.ConfigurationItem.newBuilder() | ||||
| 						.setKey("configkey1") | ||||
| 						.setValue("configvalue1") | ||||
| 						.setVersion("1") | ||||
| 						.putAllMetadata(metadata) | ||||
| 						.build() | ||||
| 				).build(); | ||||
| 				.putAllItems(configs) | ||||
| 				.build(); | ||||
| 		return responseEnvelope; | ||||
| 	} | ||||
| 
 | ||||
| 	private DaprProtos.GetConfigurationResponse getMultipleMockResponse() { | ||||
| 		Map<String, String> metadata = new HashMap<>(); | ||||
| 		metadata.put("meta1", "value1"); | ||||
| 		Map<String, CommonProtos.ConfigurationItem> configs = new HashMap<>(); | ||||
| 		configs.put("configkey1", CommonProtos.ConfigurationItem.newBuilder() | ||||
| 		.setValue("configvalue1") | ||||
| 		.setVersion("1") | ||||
| 		.putAllMetadata(metadata) | ||||
| 		.build()); | ||||
| 		configs.put("configkey2", CommonProtos.ConfigurationItem.newBuilder() | ||||
| 		.setValue("configvalue2") | ||||
| 		.setVersion("1") | ||||
| 		.putAllMetadata(metadata) | ||||
| 		.build()); | ||||
| 		DaprProtos.GetConfigurationResponse responseEnvelope = DaprProtos.GetConfigurationResponse.newBuilder() | ||||
| 				.addItems(CommonProtos.ConfigurationItem.newBuilder() | ||||
| 						.setKey("configkey1") | ||||
| 						.setValue("configvalue1") | ||||
| 						.setVersion("1") | ||||
| 						.putAllMetadata(metadata) | ||||
| 						.build()) | ||||
| 				.addItems(CommonProtos.ConfigurationItem.newBuilder() | ||||
| 						.setKey("configkey2") | ||||
| 						.setValue("configvalue2") | ||||
| 						.setVersion("1") | ||||
| 						.putAllMetadata(metadata) | ||||
| 						.build()) | ||||
| 				.putAllItems(configs) | ||||
| 				.build(); | ||||
| 		return responseEnvelope; | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue