currentFieldPath.add(fieldName); binding = new Binding(currentFieldPath, fieldExpression, new BindingPlaceholder(placeholder, defaultValue)); } else { throw new LocalizableValidationException(
@Override public ServiceDocument getDocumentTemplate() { CompositeDescription template = (CompositeDescription) super.getDocumentTemplate(); com.vmware.photon.controller.model.ServiceUtils.setRetentionLimit(template); template.name = "name (string)"; template.status = Status.PUBLISHED; template.lastPublished = System.currentTimeMillis(); template.descriptionLinks = Arrays.asList("containerDescriptionLink (string)"); template.customProperties = new HashMap<>(1); template.customProperties.put("propKey string", "customPropertyValue string"); template.bindings = new ArrayList<>(); Binding.ComponentBinding cb = new Binding.ComponentBinding("component", new ArrayList<>(Arrays.asList(new Binding(Arrays.asList("field"), "${expr}", new BindingPlaceholder("expr", "1"))))); template.bindings.add(cb); return template; }
@Test public void testEvaluateSingleBindingWithAdditionalContent() { ContainerDescription firstDescription = new ContainerDescription(); firstDescription.name = "A"; firstDescription.hostname = "10.0.0.1"; ContainerDescription secondDescription = new ContainerDescription(); secondDescription.name = "B"; Binding binding = new Binding(Arrays.asList("hostname"), "${A~hostname}:2376", new BindingPlaceholder("A~hostname")); List<Binding> bindings = Arrays.asList(binding); Binding.ComponentBinding componentBinding = new Binding.ComponentBinding("B", bindings); CompositeTemplate compositeTemplate = createCompositeTemplate(Arrays .asList(firstDescription, secondDescription), Arrays.asList(componentBinding)); BindingEvaluator.evaluateBindings(compositeTemplate); firstDescription = (ContainerDescription) compositeTemplate.components.get("A").data; secondDescription = (ContainerDescription) compositeTemplate.components.get("B").data; assertNotNull(secondDescription.hostname); assertEquals("10.0.0.1:2376", secondDescription.hostname); }
private static Binding binding(List<String> targetFieldPath, String placeholder) { return new Binding(targetFieldPath, String.format("${%s}", placeholder), new BindingPlaceholder(placeholder)); }
private static Binding binding(List<String> targetFieldPath, String placeholder) { return new Binding(targetFieldPath, String.format("${%s}", placeholder), new BindingPlaceholder(placeholder)); }
private static Binding binding(List<String> targetFieldPath, String placeholder, String defaultValue) { return new Binding(targetFieldPath, String.format("${%s}", placeholder), new BindingPlaceholder(placeholder, defaultValue)); } }