/** * Resolve the host registry. * * @param mgmtVersion the mgmt version * @param subsystems the subsystems * @return the transformer registry */ public OperationTransformerRegistry resolveHost(final ModelVersion mgmtVersion, final ModelNode subsystems) { return resolveHost(mgmtVersion, resolveVersions(subsystems)); }
/** * Register a subsystem transformer. * * @param name the subsystem name * @param range the version range * @param subsystemTransformer the resource transformer * @return the sub registry */ public TransformersSubRegistration registerSubsystemTransformers(final String name, final ModelVersionRange range, final ResourceTransformer subsystemTransformer) { return registerSubsystemTransformers(name, range, subsystemTransformer, OperationTransformer.DEFAULT); }
/** * Create a new Transformer registry. * * @return the created transformer registry */ public static TransformerRegistry create() { return new TransformerRegistry(); }
/** * Resolve the server registry. * * @param mgmtVersion the mgmt version * @param subsystems the subsystems * @return the transformer registry */ public OperationTransformerRegistry resolveServer(final ModelVersion mgmtVersion, final ModelNode subsystems) { return resolveServer(mgmtVersion, resolveVersions(subsystems)); }
private static TransformationTargetImpl create(final String hostName, final TransformerRegistry transformerRegistry, final ModelVersion version, final Map<PathAddress, ModelVersion> subsystems, final TransformationTargetType type, final Transformers.OperationExcludedTransformationRegistry ignoredRegistry) { final OperationTransformerRegistry registry; switch (type) { case SERVER: registry = transformerRegistry.resolveServer(version, subsystems); break; default: registry = transformerRegistry.resolveHost(version, subsystems); } return new TransformationTargetImpl(hostName, transformerRegistry, version, subsystems, registry, type, ignoredRegistry, null); }
public static Map<PathAddress, ModelVersion> resolveVersions(ExtensionRegistry extensionRegistry) { final ModelNode subsystems = new ModelNode(); for (final String extension : extensionRegistry.getExtensionModuleNames()) { extensionRegistry.recordSubsystemVersions(extension, subsystems); } return resolveVersions(subsystems); }
public static TransformationTarget createLocal() { TransformerRegistry registry = new TransformerRegistry(); OperationTransformerRegistry r2 = registry.resolveHost(ModelVersion.create(0), new HashMap<PathAddress, ModelVersion>()); return new TransformationTargetImpl(null, registry, ModelVersion.create(0), new HashMap<PathAddress, ModelVersion>(), r2, TransformationTargetType.SERVER, Transformers.OperationExcludedTransformationRegistry.DEFAULT, null); }
@Override public void addSubsystemVersion(final String subsystemName, final ModelVersion version) { this.subsystemVersions.put(subsystemName, version); transformerRegistry.addSubsystem(registry, subsystemName, version); }
private static void registerNonChainedTransformers(Set<KernelAPIVersion> remainder, TransformerRegistry registry, ResourceTransformationDescriptionBuilder builder, KernelAPIVersion... toRegister) { for (KernelAPIVersion version : toRegister) { remainder.remove(version); TransformersSubRegistration domain = registry.getDomainRegistration(version.modelVersion); TransformationDescription.Tools.register(builder.build(), domain); } }
public TransformedOperation transformOperation(ModelVersion modelVersion, ModelNode operation, TransformerOperationAttachment attachment) throws OperationFailedException { checkIsMainController(); TransformerRegistry transformerRegistry = extensionRegistry.getTransformerRegistry(); PathAddress address = PathAddress.pathAddress(operation.get(OP_ADDR)); Map<PathAddress, ModelVersion> subsystemVersions = Collections.<PathAddress, ModelVersion>emptyMap(); OperationTransformerRegistry registry = transformerRegistry.resolveHost(modelVersion, subsystemVersions); TransformationTarget target = TransformationTargetImpl.create(null, extensionRegistry.getTransformerRegistry(), modelVersion, subsystemVersions, TransformationTarget.TransformationTargetType.DOMAIN); TransformationContext transformationContext = createTransformationContext(target, attachment); OperationTransformer operationTransformer = registry.resolveOperationTransformer(address, operation.get(OP).asString(), null).getTransformer(); if (operationTransformer != null) { return operationTransformer.transformOperation(transformationContext, address, operation); } return new OperationTransformer.TransformedOperation(operation, OperationResultTransformer.ORIGINAL_RESULT); }
private TransformationTargetImpl(final TransformerRegistry transformerRegistry, final ModelVersion version, final Map<PathAddress, ModelVersion> subsystemVersions, final OperationTransformerRegistry transformers, final IgnoredTransformationRegistry transformationExclusion, final TransformationTargetType type) { this.version = version; this.transformerRegistry = transformerRegistry; this.extensionRegistry = transformerRegistry.getExtensionRegistry(); for (Map.Entry<PathAddress, ModelVersion> p : subsystemVersions.entrySet()) { final String name = p.getKey().getLastElement().getValue(); this.subsystemVersions.put(name, p.getValue()); } this.registry = transformers; this.type = type; this.transformationExclusion = transformationExclusion == null ? null : transformationExclusion; }
/** * Resolve the server registry. * * @param mgmtVersion the mgmt version * @param subsystems the subsystems * @return the transformer registry */ public OperationTransformerRegistry resolveServer(final ModelVersion mgmtVersion, final ModelNode subsystems) { return resolveServer(mgmtVersion, resolveVersions(subsystems)); }
public static TransformationTargetImpl create(final TransformerRegistry transformerRegistry, final ModelVersion version, final Map<PathAddress, ModelVersion> subsystems, final IgnoredTransformationRegistry transformationExclusion, final TransformationTargetType type) { final OperationTransformerRegistry registry; switch (type) { case SERVER: registry = transformerRegistry.resolveServer(version, subsystems); break; default: registry = transformerRegistry.resolveHost(version, subsystems); } return new TransformationTargetImpl(transformerRegistry, version, subsystems, registry, transformationExclusion, type); }
public static Map<PathAddress, ModelVersion> resolveVersions(ExtensionRegistry extensionRegistry) { final ModelNode subsystems = new ModelNode(); for (final String extension : extensionRegistry.getExtensionModuleNames()) { extensionRegistry.recordSubsystemVersions(extension, subsystems); } return resolveVersions(subsystems); }
public static TransformationTarget createLocal() { TransformerRegistry registry = new TransformerRegistry(); OperationTransformerRegistry r2 = registry.resolveHost(ModelVersion.create(0), new HashMap<PathAddress, ModelVersion>()); return new TransformationTargetImpl(null, registry, ModelVersion.create(0), new HashMap<PathAddress, ModelVersion>(), r2, TransformationTargetType.SERVER, Transformers.OperationExcludedTransformationRegistry.DEFAULT, null); }
@Override public void addSubsystemVersion(final String subsystemName, final ModelVersion version) { this.subsystemVersions.put(subsystemName, version); transformerRegistry.addSubsystem(registry, subsystemName, version); }
private static void registerChainedTransformer(TransformerRegistry registry, ChainedTransformationDescriptionBuilder builder, KernelAPIVersion...versions) { for (Map.Entry<ModelVersion, TransformationDescription> entry : builder.build(toModelVersions(versions)).entrySet()) { TransformersSubRegistration domain = registry.getDomainRegistration(entry.getKey()); TransformationDescription.Tools.register(entry.getValue(), domain); } }
public TransformedOperation transformOperation(ModelVersion modelVersion, ModelNode operation, TransformerOperationAttachment attachment) throws OperationFailedException { checkIsMainController(); TransformerRegistry transformerRegistry = extensionRegistry.getTransformerRegistry(); PathAddress address = PathAddress.pathAddress(operation.get(OP_ADDR)); Map<PathAddress, ModelVersion> subsystemVersions = Collections.<PathAddress, ModelVersion>emptyMap(); OperationTransformerRegistry registry = transformerRegistry.resolveHost(modelVersion, subsystemVersions); TransformationTarget target = TransformationTargetImpl.create(null, extensionRegistry.getTransformerRegistry(), modelVersion, subsystemVersions, TransformationTarget.TransformationTargetType.DOMAIN); TransformationContext transformationContext = createTransformationContext(target, attachment); OperationTransformer operationTransformer = registry.resolveOperationTransformer(address, operation.get(OP).asString(), null).getTransformer(); if (operationTransformer != null) { return operationTransformer.transformOperation(transformationContext, address, operation); } return new OperationTransformer.TransformedOperation(operation, OperationResultTransformer.ORIGINAL_RESULT); }
private TransformationTargetImpl(final TransformerRegistry transformerRegistry, final ModelVersion version, final Map<PathAddress, ModelVersion> subsystemVersions, final OperationTransformerRegistry transformers, final IgnoredTransformationRegistry transformationExclusion, final TransformationTargetType type, final RuntimeIgnoreTransformation runtimeIgnoreTransformation) { this.version = version; this.transformerRegistry = transformerRegistry; this.extensionRegistry = transformerRegistry.getExtensionRegistry(); for (Map.Entry<PathAddress, ModelVersion> p : subsystemVersions.entrySet()) { final String name = p.getKey().getLastElement().getValue(); this.subsystemVersions.put(name, p.getValue()); } this.registry = transformers; this.type = type; this.transformationExclusion = transformationExclusion == null ? null : transformationExclusion; this.runtimeIgnoreTransformation = runtimeIgnoreTransformation; }
/** * Register a subsystem transformer. * * @param name the subsystem name * @param range the version range * @param subsystemTransformer the resource transformer * @return the sub registry */ public TransformersSubRegistration registerSubsystemTransformers(final String name, final ModelVersionRange range, final ResourceTransformer subsystemTransformer) { return registerSubsystemTransformers(name, range, subsystemTransformer, OperationTransformer.DEFAULT); }