@Override public OperationStepHandler apply(OperationStepHandler handler) { return (context, operation) -> { if (this.legacy.test(operation)) { PathElement path = context.getCurrentAddress().getLastElement(); // This is a legacy add operation - process it using the generic handler OperationStepHandler genericHandler = context.getResourceRegistration().getParent().getOperationHandler(PathAddress.pathAddress(ProtocolResourceDefinition.WILDCARD_PATH), ModelDescriptionConstants.ADD); Operations.setPathAddress(operation, context.getCurrentAddress().getParent().append(GenericProtocolResourceDefinition.pathElement(path.getValue()))); // Process this step first to preserve protocol order context.addStep(operation, genericHandler, OperationContext.Stage.MODEL, true); } else { handler.execute(context, operation); } }; } }
@Override public ImmutableManagementResourceRegistration getParent() { return delegate.getParent(); }
@Override public ImmutableManagementResourceRegistration getParent() { return delegate.getParent(); }
private void addReference(ModelNode refs, ImmutableManagementResourceRegistration registration) { PathAddress address = registration.getPathAddress(); if (address == null || PathAddress.EMPTY_ADDRESS.equals(address)) { return; } if (registration.isFeature()) { ModelNode ref = new ModelNode(); ref.get(FEATURE).set(registration.getFeature()); refs.add(ref); } if (registration.getParent() != null) { addReference(refs, registration.getParent()); } }
private void addReference(ModelNode refs, ImmutableManagementResourceRegistration registration) { PathAddress address = registration.getPathAddress(); if (address == null || PathAddress.EMPTY_ADDRESS.equals(address)) { return; } if (registration.isFeature()) { ModelNode ref = new ModelNode(); ref.get(FEATURE).set(registration.getFeature()); refs.add(ref); } if (registration.getParent() != null) { addReference(refs, registration.getParent()); } }
private ImmutableManagementResourceRegistration getRootRegistration(final ImmutableManagementResourceRegistration registration) { if (!PathAddress.EMPTY_ADDRESS.equals(registration.getPathAddress())) { return getRootRegistration(registration.getParent()); } return registration; }
private void addReferences(ModelNode feature, ImmutableManagementResourceRegistration registration) { PathAddress address = registration.getPathAddress(); if (address == null || PathAddress.EMPTY_ADDRESS.equals(address)) { return; } ModelNode refs = feature.get(REFS).setEmptyList(); if (registration.getParent() != null && registration.getParent().isFeature()) { addReference(refs, registration.getParent()); } PathElement element = registration.getPathAddress().getLastElement(); if (SUBSYSTEM.equals(element.getKey())) { ModelNode ref = new ModelNode(); final String rootType = registration.getPathAddress().getElement(0).getKey(); if (HOST.equals(rootType)) { ref.get(FEATURE).set(HOST_EXTENSION); } else if (PROFILE.equals(rootType)) { ref.get(FEATURE).set(DOMAIN_EXTENSION); } else { ref.get(FEATURE).set(EXTENSION); } ref.get(INCLUDE).set(true); refs.add(ref); } if (refs.asList().isEmpty()) { feature.remove(REFS); } }
private ImmutableManagementResourceRegistration getRootRegistration(final ImmutableManagementResourceRegistration registration) { if (!PathAddress.EMPTY_ADDRESS.equals(registration.getPathAddress())) { return getRootRegistration(registration.getParent()); } return registration; }
private void addReferences(ModelNode feature, ImmutableManagementResourceRegistration registration) { PathAddress address = registration.getPathAddress(); if (address == null || PathAddress.EMPTY_ADDRESS.equals(address)) { return; } ModelNode refs = feature.get(REFS).setEmptyList(); if (registration.getParent() != null && registration.getParent().isFeature()) { addReference(refs, registration.getParent()); } PathElement element = registration.getPathAddress().getLastElement(); if (SUBSYSTEM.equals(element.getKey())) { ModelNode ref = new ModelNode(); final String rootType = registration.getPathAddress().getElement(0).getKey(); if (HOST.equals(rootType)) { ref.get(FEATURE).set(HOST_EXTENSION); } else if (PROFILE.equals(rootType)) { ref.get(FEATURE).set(DOMAIN_EXTENSION); } else { ref.get(FEATURE).set(EXTENSION); } ref.get(INCLUDE).set(true); refs.add(ref); } if (refs.asList().isEmpty()) { feature.remove(REFS); } }
private PathAddress createAliasPathAddress(final ImmutableManagementResourceRegistration registration, PathAddress pa) { ImmutableManagementResourceRegistration registry = registration.getParent(); List<PathElement> elements = new ArrayList<>(); for (int i = pa.size() - 1; i >= 0; i--) { PathElement elt = pa.getElement(i); ImmutableManagementResourceRegistration childRegistration = registry.getSubModel(PathAddress.pathAddress(PathElement.pathElement(elt.getKey()))); if (childRegistration == null) { elements.add(elt); } else { String value = "$" + elt.getKey(); elements.add(PathElement.pathElement(elt.getKey(), value)); } registry = registry.getParent(); } Collections.reverse(elements); return PathAddress.pathAddress(elements.toArray(new PathElement[elements.size()])); }
private PathAddress createAliasPathAddress(final ImmutableManagementResourceRegistration registration, PathAddress pa) { ImmutableManagementResourceRegistration registry = registration.getParent(); List<PathElement> elements = new ArrayList<>(); for (int i = pa.size() - 1; i >= 0; i--) { PathElement elt = pa.getElement(i); ImmutableManagementResourceRegistration childRegistration = registry.getSubModel(PathAddress.pathAddress(PathElement.pathElement(elt.getKey()))); if (childRegistration == null) { elements.add(elt); } else { String value = "$" + elt.getKey(); elements.add(PathElement.pathElement(elt.getKey(), value)); } registry = registry.getParent(); } Collections.reverse(elements); return PathAddress.pathAddress(elements.toArray(new PathElement[elements.size()])); }
/** * Creates an alias address by replacing all wildcard values by $ + key so that the address can be used to obtain a capability pattern. * @param pa the registration address to be aliased. * @return the aliased address. */ private PathAddress createAliasPathAddress(PathAddress pa) { ImmutableManagementResourceRegistration registry = registration.getParent(); List<PathElement> elements = new ArrayList<>(); for(int i = pa.size() - 1; i >=0; i--) { PathElement elt = pa.getElement(i); ImmutableManagementResourceRegistration childRegistration = registry.getSubModel(PathAddress.pathAddress(PathElement.pathElement(elt.getKey()))); if(childRegistration == null) { elements.add(elt); } else { elements.add(PathElement.pathElement(elt.getKey(), "$" + elt.getKey())); } registry = registry.getParent(); } Collections.reverse(elements); return PathAddress.pathAddress(elements.toArray(new PathElement[elements.size()])); } }
/** * Creates an alias address by replacing all wildcard values by $ + key so that the address can be used to obtain a capability pattern. * @param pa the registration address to be aliased. * @return the aliased address. */ private PathAddress createAliasPathAddress(PathAddress pa) { ImmutableManagementResourceRegistration registry = registration.getParent(); List<PathElement> elements = new ArrayList<>(); for(int i = pa.size() - 1; i >=0; i--) { PathElement elt = pa.getElement(i); ImmutableManagementResourceRegistration childRegistration = registry.getSubModel(PathAddress.pathAddress(PathElement.pathElement(elt.getKey()))); if(childRegistration == null) { elements.add(elt); } else { elements.add(PathElement.pathElement(elt.getKey(), "$" + elt.getKey())); } registry = registry.getParent(); } Collections.reverse(elements); return PathAddress.pathAddress(elements.toArray(new PathElement[elements.size()])); } }
curAddress = curAddress.getParent(); curReg = curReg != null ? curReg.getParent() : null;
curAddress = curAddress.getParent(); curReg = curReg != null ? curReg.getParent() : null;
@Override public OperationStepHandler apply(OperationStepHandler handler) { return (context, operation) -> { if (this.legacy.test(operation)) { PathElement path = context.getCurrentAddress().getLastElement(); // This is a legacy add operation - process it using the generic handler OperationStepHandler genericHandler = context.getResourceRegistration().getParent().getOperationHandler(PathAddress.pathAddress(ProtocolResourceDefinition.WILDCARD_PATH), ModelDescriptionConstants.ADD); Operations.setPathAddress(operation, context.getCurrentAddress().getParent().append(GenericProtocolResourceDefinition.pathElement(path.getValue()))); // Process this step first to preserve protocol order context.addStep(operation, genericHandler, OperationContext.Stage.MODEL, true); } else { handler.execute(context, operation); } }; } }