@Override public Map<String, AffinityConstraint> getAffinityConstraints() { return componentDescription.bindings.stream() .filter(b -> b.isProvisioningTimeBinding()) .map(b -> BindingUtils .extractComponentNameFromBindingExpression( b.placeholder.bindingExpression)) .distinct() .collect(Collectors.toMap( Function.identity(), AffinityConstraint::new)); }
if (binding.isProvisioningTimeBinding()) { continue;
Map<String, Object> evaluatedBindingMap = new HashMap<>(); for (Binding binding : bindings) { if (!binding.isProvisioningTimeBinding()) { continue;
.filter(b -> b.isProvisioningTimeBinding()).collect(Collectors.toList());
@Test public void extractBindingsSimpleProvisioningTimeBinding() { final String componentName = "component-name"; //CHECKSTYLE:OFF Map<String, Object> input = new HashMap<String, Object>() {{ put(BindingUtils.COMPONENTS, new HashMap<String, Object>() {{ put(componentName, new HashMap<String, Object>() {{ put(BindingUtils.DATA, new HashMap<String, Object>() {{ put("field1", 3); put("field2", "${_resource~component1~field1}"); }}); }}); }}); }}; //CHECKSTYLE:ON List<Binding.ComponentBinding> componentBindings = BindingUtils.extractBindings(input); assertEquals(1, componentBindings.size()); //the binding should be removed from the map assertEquals(1, ((Map) ((Map) ((Map) input.get(BindingUtils.COMPONENTS)).get(componentName)) .get(BindingUtils.DATA)) .size()); assertEquals(componentName, componentBindings.get(0).componentName); assertEquals("_resource~component1~field1", componentBindings.get(0).bindings.get(0).placeholder.bindingExpression); assertTrue(componentBindings.get(0).bindings.get(0).isProvisioningTimeBinding()); }
.collect(Collectors.partitioningBy(b -> b.isProvisioningTimeBinding())); assertFalse(binding.isProvisioningTimeBinding()); assertEquals("db~_cluster", binding.placeholder.bindingExpression); assertTrue(binding.isProvisioningTimeBinding()); assertEquals("_resource~db~address", binding.placeholder.bindingExpression); assertTrue(binding.isProvisioningTimeBinding()); assertEquals("_resource~db~env~MYSQL_USER", binding.placeholder.bindingExpression);