@Override public DiscardPolicy checkResource(TransformationContext context, PathAddress address) { // If this was an auto-generated channel, discard it @SuppressWarnings("deprecation") ModelNode defaultStack = context.readResourceFromRoot(address.getParent()).getModel().get(JGroupsSubsystemResourceDefinition.Attribute.DEFAULT_STACK.getName()); return context.readResourceFromRoot(address).getModel().get(ChannelResourceDefinition.Attribute.STACK.getName()).equals(defaultStack) ? DiscardPolicy.SILENT : DiscardPolicy.NEVER; } };
@Override public void convertResourceAttribute(PathAddress address, String name, ModelNode value, TransformationContext context) { ModelNode remoteSite = context.readResourceFromRoot(address).getModel(); String channelName = remoteSite.get(Attribute.CHANNEL.getName()).asString(); if (DeprecatedAttribute.STACK.getName().equals(name)) { PathAddress subsystemAddress = address.subAddress(0, address.size() - 3); PathAddress channelAddress = subsystemAddress.append(ChannelResourceDefinition.pathElement(channelName)); ModelNode channel = context.readResourceFromRoot(channelAddress).getModel(); if (channel.hasDefined(ChannelResourceDefinition.Attribute.STACK.getName())) { value.set(channel.get(ChannelResourceDefinition.Attribute.STACK.getName()).asString()); } else { ModelNode subsystem = context.readResourceFromRoot(subsystemAddress).getModel(); value.set(subsystem.get(JGroupsSubsystemResourceDefinition.Attribute.DEFAULT_STACK.getName()).asString()); } } else if (DeprecatedAttribute.CLUSTER.getName().equals(name)) { value.set(channelName); } else { throw new IllegalStateException(); } } };
@Override public DiscardPolicy checkResource(TransformationContext context, PathAddress address) { ModelNode model = Resource.Tools.readModel(context.readResourceFromRoot(address)); for (Attribute attribute : this.attributes) { if (model.hasDefined(attribute.getName())) { return DiscardPolicy.REJECT_AND_WARN; } } return DiscardPolicy.SILENT; } }
@Override public DiscardPolicy checkResource(TransformationContext context, PathAddress address) { Resource resource = context.readResourceFromRoot(address.getParent()); if (resource.hasChildren(ProxyConfigurationResourceDefinition.WILDCARD_PATH.getKey()) && resource.getChildren(ProxyConfigurationResourceDefinition.WILDCARD_PATH.getKey()).size() > 1) { return DiscardPolicy.REJECT_AND_WARN; } return DiscardPolicy.NEVER; } }
@Override public void convert(PathAddress address, String name, ModelNode value, ModelNode model, TransformationContext context) { if (value.isDefined()) { PathAddress rootAddress = address.subAddress(0, address.size() - 4); PathAddress subsystemAddress = rootAddress.append(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, "datasources")); Resource subsystem = context.readResourceFromRoot(subsystemAddress); String poolName = value.asString(); for (String type : Arrays.asList("data-source", "xa-data-source")) { if (subsystem.hasChildren(type)) { for (Resource.ResourceEntry entry : subsystem.getChildren(type)) { if (entry.getName().equals(poolName)) { value.set(entry.getModel().get("jndi-name")); return; } } } } } } };
@Override public TransformedOperation transformOperation(final TransformationContext context, final PathAddress address, final ModelNode operation) throws OperationFailedException { Resource original = context.readResourceFromRoot(address); String defaultDataStore = original.getModel().get(TimerServiceResourceDefinition.DEFAULT_DATA_STORE.getName()).asString(); boolean hasFileDataStore = original.hasChild(PathElement.pathElement(EJB3SubsystemModel.FILE_DATA_STORE_PATH.getKey(), defaultDataStore)); if (original.getChildren(EJB3SubsystemModel.FILE_DATA_STORE).size() > 1 || !hasFileDataStore) { return new TransformedOperation(operation, new OperationRejectionPolicy() { @Override public boolean rejectOperation(ModelNode preparedResult) { return true; } @Override public String getFailureDescription() { return context.getLogger().getRejectedResourceWarning(address, operation); } }, OperationResultTransformer.ORIGINAL_RESULT); } operation.get(TimerServiceResourceDefinition.THREAD_POOL_NAME.getName()).set(original.getModel().get(TimerServiceResourceDefinition.THREAD_POOL_NAME.getName())); return new TransformedOperation(operation, OperationResultTransformer.ORIGINAL_RESULT); }
infinispanResource = context.readResourceFromRoot(subsystemAddress); } catch (Resource.NoSuchResourceException ex) { return DiscardPolicy.REJECT_AND_WARN; ModelNode subsystem = context.readResourceFromRoot(address.subAddress(0, address.size() - 1)).getModel(); if (subsystem.hasDefined(JGroupsSubsystemResourceDefinition.Attribute.DEFAULT_CHANNEL.getName())) { if (subsystem.get(JGroupsSubsystemResourceDefinition.Attribute.DEFAULT_CHANNEL.getName()).asString().equals(channelName)) {
PathAddress rootAddress = address.subAddress(0, address.size() - 3); PathAddress subsystemAddress = rootAddress.append(JGroupsSubsystemResourceDefinition.PATH); ModelNode subsystemModel = context.readResourceFromRoot(subsystemAddress).getModel(); String channelName = null; if (model.hasDefined(Attribute.CHANNEL.getName())) { PathAddress channelAddress = subsystemAddress.append(ChannelResourceDefinition.pathElement(channelName)); try { ModelNode channel = context.readResourceFromRoot(channelAddress).getModel(); if (channel.hasDefined(ChannelResourceDefinition.Attribute.STACK.getName())) { ModelNode stack = channel.get(ChannelResourceDefinition.Attribute.STACK.getName());
ModelNode newValue = context.readResourceFromRoot(resolvedAddress).getModel().get(PROPERTIES).clone();
PathAddress rootAddress = address.subAddress(0, address.size() - 3); PathAddress subsystemAddress = rootAddress.append(JGroupsSubsystemResourceDefinition.PATH); ModelNode subsystemModel = context.readResourceFromRoot(subsystemAddress).getModel(); String channelName = null; if (model.hasDefined(Attribute.CHANNEL.getName())) { PathAddress channelAddress = subsystemAddress.append(ChannelResourceDefinition.pathElement(channelName)); try { ModelNode channel = context.readResourceFromRoot(channelAddress).getModel(); if (channel.hasDefined(ChannelResourceDefinition.Attribute.STACK.getName())) { ModelNode stack = channel.get(ChannelResourceDefinition.Attribute.STACK.getName());
static void buildTransformation(ModelVersion version, ResourceTransformationDescriptionBuilder builder) { if (InfinispanModel.VERSION_6_0_0.requiresTransformation(version)) { Converter converter = (PathAddress address, String name, ModelNode value, ModelNode model, TransformationContext context) -> { PathAddress storeAddress = address.getParent(); PathElement storePath = storeAddress.getLastElement(); if (storePath.equals(StringKeyedJDBCStoreResourceDefinition.STRING_JDBC_PATH) || storePath.equals(StringKeyedJDBCStoreResourceDefinition.LEGACY_PATH)) { storeAddress = storeAddress.getParent().append(StringKeyedJDBCStoreResourceDefinition.PATH); } else if (storePath.equals(BinaryKeyedJDBCStoreResourceDefinition.LEGACY_PATH)) { storeAddress = storeAddress.getParent().append(BinaryKeyedJDBCStoreResourceDefinition.PATH); } else if (storePath.equals(MixedKeyedJDBCStoreResourceDefinition.LEGACY_PATH)) { storeAddress = storeAddress.getParent().append(MixedKeyedJDBCStoreResourceDefinition.PATH); } ModelNode store = context.readResourceFromRoot(storeAddress).getModel(); value.set(store.hasDefined(StoreResourceDefinition.Attribute.MAX_BATCH_SIZE.getName()) ? store.get(StoreResourceDefinition.Attribute.MAX_BATCH_SIZE.getName()) : StoreResourceDefinition.Attribute.MAX_BATCH_SIZE.getDefinition().getDefaultValue()); }; builder.getAttributeBuilder().setValueConverter(new SimpleAttributeConverter(converter), DeprecatedAttribute.BATCH_SIZE.getDefinition()); } }
@Override public Resource readResourceFromRoot(PathAddress address, boolean recursive) { return delegate.readResourceFromRoot(address); //I think this is always recursive } });
@Override public Resource readResourceFromRoot(PathAddress address) { return delegate.readResourceFromRoot(address); }
@Override public Resource readResourceFromRoot(PathAddress address) { Resource resource = delegate.readResourceFromRoot(address); if (resource != null) { return immutable ? new ProtectedModelResource(resource) : resource; } return null; }
@Override public Resource readResourceFromRoot(PathAddress address) { Resource resource = delegate.readResourceFromRoot(address); if (resource != null) { return immutable ? new ProtectedModelResource<Resource>(resource) : resource; } return null; }
@Override public Resource readResourceFromRoot(PathAddress address) { Resource resource = delegate.readResourceFromRoot(address); if (resource != null) { return immutable ? new ProtectedModelResource<Resource>(resource) : resource; } return null; }
private void transformModulesToAttributes(final PathAddress address, final String newName, final String oldName, final TransformationContext context, final ModelNode model) { ModelNode modules = model.get(oldName).setEmptyList(); for (Resource.ResourceEntry entry : context.readResourceFromRoot(address).getChildren(newName)) { Resource moduleResource = context.readResourceFromRoot(address.append(entry.getPathElement())); modules.add(moduleResource.getModel()); } } }
@Override public DiscardPolicy checkResource(TransformationContext context, PathAddress address) { // If this was an auto-generated channel, discard it @SuppressWarnings("deprecation") ModelNode defaultStack = context.readResourceFromRoot(address.getParent()).getModel().get(JGroupsSubsystemResourceDefinition.Attribute.DEFAULT_STACK.getName()); return context.readResourceFromRoot(address).getModel().get(ChannelResourceDefinition.Attribute.STACK.getName()).equals(defaultStack) ? DiscardPolicy.SILENT : DiscardPolicy.NEVER; } };
private boolean ignoreResourceTransformation(TransformationContext context, PathAddress address) { if (transformationExclusion != null && transformationExclusion.isResourceTransformationIgnored(address)) { return true; } if (!context.isSkipRuntimeIgnoreCheck() && runtimeIgnoreTransformation != null && runtimeIgnoreTransformation.ignoreResource(context.readResourceFromRoot(PathAddress.EMPTY_ADDRESS), address)) { return true; } return false; } }
@Override public DiscardPolicy checkResource(TransformationContext context, PathAddress address) { Resource resource = context.readResourceFromRoot(address.getParent()); if (resource.hasChildren(ProxyConfigurationResourceDefinition.WILDCARD_PATH.getKey()) && resource.getChildren(ProxyConfigurationResourceDefinition.WILDCARD_PATH.getKey()).size() > 1) { return DiscardPolicy.REJECT_AND_WARN; } return DiscardPolicy.NEVER; } }