private PathAddress transformAddress(final PathAddress original, final ResourceTransformationContext context) { return ChainedTransformationTools.transformAddress(original, context.getTarget()); }
private PathAddress transformAddress(final PathAddress original, final ResourceTransformationContext context) { return ChainedTransformationTools.transformAddress(original, context.getTarget()); }
@Override public void transformResource(final ResourceTransformationContext context, final PathAddress address, final Resource resource) throws OperationFailedException { // we just ignore this resource - so don't add it: context.addTransformedResource(...) final PathElement element = address.getLastElement(); final TransformationTarget target = context.getTarget(); final ExtensionRegistry registry = target.getExtensionRegistry(); final Map<String, SubsystemInformation> subsystems = registry.getAvailableSubsystems(element.getValue()); if(subsystems != null) { for(final Map.Entry<String, SubsystemInformation> subsystem : subsystems.entrySet()) { final String name = subsystem.getKey(); target.addSubsystemVersion(name, IGNORED_SUBSYSTEMS); } } } }
ChainedPlaceholderResolver resolver = it.next().getValue(); currentCtx = ChainedTransformationTools.initialiseChain(currentCtx, resolver); PathAddress addr = ChainedTransformationTools.transformAddress(PathAddress.pathAddress(currentOp.require(OP_ADDR)), currentCtx.getTarget()); currentOp.get(OP_ADDR).set(addr.toModelNode()); OperationTransformer transformer = currentCtx.getTarget().resolveTransformer(currentCtx, address, currentOp.require(OP).asString()); TransformedOperation transformed = transformer.transformOperation(currentCtx, address, currentOp); currentOp = transformed.getTransformedOperation(); currentCtx = ChainedTransformationTools.nextInChainOperation(currentCtx, resolver); PathAddress currentAddress = PathAddress.pathAddress(currentOp.require(OP_ADDR)); PathAddress addr = ChainedTransformationTools.transformAddress(currentAddress, currentCtx.getTarget()); currentOp.get(OP_ADDR).set(addr.toModelNode()); OperationTransformer transformer = currentCtx.getTarget().resolveTransformer(currentCtx, currentAddress, currentOp.require(OP).asString()); TransformedOperation transformed = transformer.transformOperation(currentCtx, address, currentOp); currentOp = transformed.getTransformedOperation();
ChainedPlaceholderResolver resolver = it.next().getValue(); currentCtx = ChainedTransformationTools.initialiseChain(currentCtx, resolver); PathAddress addr = ChainedTransformationTools.transformAddress(PathAddress.pathAddress(currentOp.require(OP_ADDR)), currentCtx.getTarget()); currentOp.get(OP_ADDR).set(addr.toModelNode()); OperationTransformer transformer = currentCtx.getTarget().resolveTransformer(currentCtx, address, currentOp.require(OP).asString()); TransformedOperation transformed = transformer.transformOperation(currentCtx, address, currentOp); currentOp = transformed.getTransformedOperation(); currentCtx = ChainedTransformationTools.nextInChainOperation(currentCtx, resolver); PathAddress currentAddress = PathAddress.pathAddress(currentOp.require(OP_ADDR)); PathAddress addr = ChainedTransformationTools.transformAddress(currentAddress, currentCtx.getTarget()); currentOp.get(OP_ADDR).set(addr.toModelNode()); OperationTransformer transformer = currentCtx.getTarget().resolveTransformer(currentCtx, currentAddress, currentOp.require(OP).asString()); TransformedOperation transformed = transformer.transformOperation(currentCtx, address, currentOp); currentOp = transformed.getTransformedOperation();
@Override public void transformResource(final ResourceTransformationContext currentCtx, final PathAddress address, final Resource resource) throws OperationFailedException { final PathAddress transformedAddress = transformer.transformAddress(address); final ResourceTransformationContext context = ResourceTransformationContextImpl.createAliasContext(transformedAddress, currentCtx); final ResourceTransformer aliasTransformer = context.getTarget().resolveTransformer(null, transformedAddress); if(aliasTransformer != null) { aliasTransformer.transformResource(context, address, resource); } else { ResourceTransformer.DEFAULT.transformResource(context, transformedAddress, resource); } }
@Override public void transformResource(final ResourceTransformationContext currentCtx, final PathAddress address, final Resource resource) throws OperationFailedException { final PathAddress transformedAddress = transformer.transformAddress(address); final ResourceTransformationContext context = ResourceTransformationContextImpl.createAliasContext(transformedAddress, currentCtx); final ResourceTransformer aliasTransformer = context.getTarget().resolveTransformer(transformedAddress); if(aliasTransformer != null) { aliasTransformer.transformResource(context, address, resource); } else { ResourceTransformer.DEFAULT.transformResource(context, transformedAddress, resource); } }
@Override public void transformResource(final ResourceTransformationContext currentCtx, final PathAddress address, final Resource resource) throws OperationFailedException { final PathAddress transformedAddress = transformer.transformAddress(address); final ResourceTransformationContext context = ResourceTransformationContextImpl.createAliasContext(transformedAddress, currentCtx); final ResourceTransformer aliasTransformer = context.getTarget().resolveTransformer(null, transformedAddress); if(aliasTransformer != null) { aliasTransformer.transformResource(context, address, resource); } else { ResourceTransformer.DEFAULT.transformResource(context, transformedAddress, resource); } }
@Override public void transformResource(final ResourceTransformationContext currentCtx, final PathAddress address, final Resource resource) throws OperationFailedException { final PathAddress transformedAddress = transformer.transformAddress(address); final ResourceTransformationContext context = ResourceTransformationContextImpl.createAliasContext(transformedAddress, currentCtx); final ResourceTransformer aliasTransformer = context.getTarget().resolveTransformer(null, transformedAddress); if(aliasTransformer != null) { aliasTransformer.transformResource(context, address, resource); } else { ResourceTransformer.DEFAULT.transformResource(context, transformedAddress, resource); } }
@Override public void transformResource(final ResourceTransformationContext context, final PathAddress address, final Resource resource) { // Transform the model recursively final ModelNode recursive = Resource.Tools.readModel(resource); final ModelNode result = transformModel(context, recursive); // Create the target registration based on the old resource definition final TransformationTarget target = context.getTarget(); final ResourceDefinition definition = loader.load(target); final ManagementResourceRegistration targetDefinition = ManagementResourceRegistration.Factory.create(definition); final Resource transformed = TransformationUtils.modelToResource(address, targetDefinition, result, false); // Add the model recursively context.addTransformedRecursiveResource(PathAddress.EMPTY_ADDRESS, transformed); }
@Override public void transformResource(final ResourceTransformationContext context, final PathAddress address, final Resource resource) { // Transform the model recursively final ModelNode recursive = Resource.Tools.readModel(resource); final ModelNode result = transformModel(context, recursive); // Create the target registration based on the old resource definition final TransformationTarget target = context.getTarget(); final ResourceDefinition definition = loader.load(target); final ManagementResourceRegistration targetDefinition = ManagementResourceRegistration.Factory.create(definition); final Resource transformed = TransformationUtils.modelToResource(address, targetDefinition, result, false); // Add the model recursively context.addTransformedRecursiveResource(PathAddress.EMPTY_ADDRESS, transformed); }
@Override public void transformResource(final ResourceTransformationContext context, final PathAddress address, final Resource resource) throws OperationFailedException { // Check the model final ModelNode model = resource.getModel(); final Set<String> attributes = checkModel(model, context); if (attributes.size() > 0) { if (context.getTarget().isIgnoredResourceListAvailableAtRegistration()) { // Slave is 7.2.x or higher and we know this resource is not ignored List<String> msg = Collections.singletonList(context.getLogger().getAttributeWarning(address, null, MESSAGES.attributesDontSupportExpressions(), attributes)); final TransformationTarget tgt = context.getTarget(); final String legacyHostName = tgt.getHostName(); final ModelVersion coreVersion = tgt.getVersion(); final String subsystemName = findSubsystemName(address); final ModelVersion usedVersion = subsystemName == null ? coreVersion : tgt.getSubsystemVersion(subsystemName); // Target is 7.2.x or higher so we should throw an error if (subsystemName != null) { throw ControllerMessages.MESSAGES.rejectAttributesSubsystemModelResourceTransformer(address, legacyHostName, subsystemName, usedVersion, msg); } throw ControllerMessages.MESSAGES.rejectAttributesCoreModelResourceTransformer(address, legacyHostName, usedVersion, msg); } else { // 7.1.x slave; resource *may* be ignored so we can't fail; just log context.getLogger().logAttributeWarning(address, MESSAGES.attributesDontSupportExpressions(), attributes); } } final ResourceTransformationContext childContext = context.addTransformedResource(PathAddress.EMPTY_ADDRESS, resource); childContext.processChildren(resource); }
@Override public void transformResource(final ResourceTransformationContext context, final PathAddress address, final Resource resource) throws OperationFailedException { // Check the model final ModelNode model = resource.getModel(); final Set<String> attributes = checkModel(model, context); if (attributes.size() > 0) { if (context.getTarget().isIgnoredResourceListAvailableAtRegistration()) { // Slave is 7.2.x or higher and we know this resource is not ignored List<String> msg = Collections.singletonList(context.getLogger().getAttributeWarning(address, null, ControllerLogger.ROOT_LOGGER.attributesDontSupportExpressions(), attributes)); final TransformationTarget tgt = context.getTarget(); final String legacyHostName = tgt.getHostName(); final ModelVersion coreVersion = tgt.getVersion(); final String subsystemName = findSubsystemName(address); final ModelVersion usedVersion = subsystemName == null ? coreVersion : tgt.getSubsystemVersion(subsystemName); // Target is 7.2.x or higher so we should throw an error if (subsystemName != null) { throw ControllerLogger.ROOT_LOGGER.rejectAttributesSubsystemModelResourceTransformer(address, legacyHostName, subsystemName, usedVersion, msg); } throw ControllerLogger.ROOT_LOGGER.rejectAttributesCoreModelResourceTransformer(address, legacyHostName, usedVersion, msg); } else { // 7.1.x slave; resource *may* be ignored so we can't fail; just log context.getLogger().logAttributeWarning(address, ControllerLogger.ROOT_LOGGER.attributesDontSupportExpressions(), attributes); } } final ResourceTransformationContext childContext = context.addTransformedResource(PathAddress.EMPTY_ADDRESS, resource); childContext.processChildren(resource); }
@Override public void transformResource(final ResourceTransformationContext context, final PathAddress address, final Resource resource) throws OperationFailedException { // Check the model final ModelNode model = resource.getModel(); final Set<String> attributes = checkModel(model, context); if (attributes.size() > 0) { if (context.getTarget().isIgnoredResourceListAvailableAtRegistration()) { // Slave is 7.2.x or higher and we know this resource is not ignored List<String> msg = Collections.singletonList(context.getLogger().getAttributeWarning(address, null, ControllerLogger.ROOT_LOGGER.attributesDontSupportExpressions(), attributes)); final TransformationTarget tgt = context.getTarget(); final String legacyHostName = tgt.getHostName(); final ModelVersion coreVersion = tgt.getVersion(); final String subsystemName = findSubsystemName(address); final ModelVersion usedVersion = subsystemName == null ? coreVersion : tgt.getSubsystemVersion(subsystemName); // Target is 7.2.x or higher so we should throw an error if (subsystemName != null) { throw ControllerLogger.ROOT_LOGGER.rejectAttributesSubsystemModelResourceTransformer(address, legacyHostName, subsystemName, usedVersion, msg); } throw ControllerLogger.ROOT_LOGGER.rejectAttributesCoreModelResourceTransformer(address, legacyHostName, usedVersion, msg); } else { // 7.1.x slave; resource *may* be ignored so we can't fail; just log context.getLogger().logAttributeWarning(address, ControllerLogger.ROOT_LOGGER.attributesDontSupportExpressions(), attributes); } } final ResourceTransformationContext childContext = context.addTransformedResource(PathAddress.EMPTY_ADDRESS, resource); childContext.processChildren(resource); }
@Override public void transformResource(final ResourceTransformationContext ctx, final PathAddress address, final Resource original) throws OperationFailedException { final DiscardPolicy discardPolicy = determineDiscardPolicy(ctx, address); switch (discardPolicy) { case REJECT_AND_WARN: ctx.getLogger().logRejectedResourceWarning(address, null); return; case DISCARD_AND_WARN: // don't return yet, just log a warning first and then discard ctx.getLogger().logDiscardedResourceWarning(address, ctx.getTarget().getHostName()); case SILENT: ResourceTransformer.DISCARD.transformResource(ctx, address, original); return; } final Iterator<TransformationRule> iterator = rules.iterator(); final TransformationRule.ChainedResourceContext context = new TransformationRule.ChainedResourceContext(ctx) { @Override void invokeNext(final Resource resource) throws OperationFailedException { if(iterator.hasNext()) { final TransformationRule next = iterator.next(); next.transformResource(resource, address, this); } else { resourceTransformer.transformResource(ctx, address, resource); } } }; // Kick off the chain final TransformationRule rule = new AttributeTransformationRule(attributeTransformations); rule.transformResource(original, address, context); }
@Override public void transformResource(final ResourceTransformationContext context, final PathAddress address, final Resource resource) throws OperationFailedException { // Check the model final ModelNode model = resource.getModel(); final Set<String> attributes = checkModel(model, context); if (attributes.size() > 0) { if (context.getTarget().isIgnoredResourceListAvailableAtRegistration()) { // Slave is 7.2.x or higher and we know this resource is not ignored List<String> msg = Collections.singletonList(context.getLogger().getAttributeWarning(address, null, MESSAGES.attributesDontSupportExpressions(), attributes)); final TransformationTarget tgt = context.getTarget(); final String legacyHostName = tgt.getHostName(); final ModelVersion coreVersion = tgt.getVersion(); final String subsystemName = findSubsystemName(address); final ModelVersion usedVersion = subsystemName == null ? coreVersion : tgt.getSubsystemVersion(subsystemName); // Target is 7.2.x or higher so we should throw an error if (subsystemName != null) { throw ControllerMessages.MESSAGES.rejectAttributesSubsystemModelResourceTransformer(address, legacyHostName, subsystemName, usedVersion, msg); } throw ControllerMessages.MESSAGES.rejectAttributesCoreModelResourceTransformer(address, legacyHostName, usedVersion, msg); } else { // 7.1.x slave; resource *may* be ignored so we can't fail; just log context.getLogger().logAttributeWarning(address, MESSAGES.attributesDontSupportExpressions(), attributes); } } final ResourceTransformationContext childContext = context.addTransformedResource(PathAddress.EMPTY_ADDRESS, resource); childContext.processChildren(resource); }
@Override public void transformResource(final ResourceTransformationContext ctx, final PathAddress address, final Resource original) throws OperationFailedException { final DiscardPolicy discardPolicy = determineDiscardPolicy(ctx, address); switch (discardPolicy) { case REJECT_AND_WARN: ctx.getLogger().logRejectedResourceWarning(address, null); return; case DISCARD_AND_WARN: // don't return yet, just log a warning first and then discard ctx.getLogger().logDiscardedResourceWarning(address, ctx.getTarget().getHostName()); case SILENT: ResourceTransformer.DISCARD.transformResource(ctx, address, original); return; } final Iterator<TransformationRule> iterator = rules.iterator(); final TransformationRule.ChainedResourceContext context = new TransformationRule.ChainedResourceContext(ctx) { @Override void invokeNext(final Resource resource) throws OperationFailedException { if(iterator.hasNext()) { final TransformationRule next = iterator.next(); next.transformResource(resource, address, this); } else { resourceTransformer.transformResource(ctx, address, resource); } } }; // Kick off the chain final TransformationRule rule = new AttributeTransformationRule(attributeTransformations); rule.transformResource(original, address, context); }