private void validation(final String socketBindingGroupName, final String outboundSocketBindingName, final Resource resource, final boolean recursive, List<String> validatedGroupList) { Set<String> socketBindingNames = resource.getChildrenNames(ModelDescriptionConstants.SOCKET_BINDING); Set<String> remoteDestinationOutboundSocketBindingNames = resource.getChildrenNames(ModelDescriptionConstants.REMOTE_DESTINATION_OUTBOUND_SOCKET_BINDING); if(socketBindingNames.contains(outboundSocketBindingName) || remoteDestinationOutboundSocketBindingNames.contains(outboundSocketBindingName)){ throw ControllerLogger.ROOT_LOGGER.socketBindingalreadyDeclared(Element.SOCKET_BINDING.getLocalName(), Element.OUTBOUND_SOCKET_BINDING.getLocalName(), outboundSocketBindingName, Element.SOCKET_BINDING_GROUP.getLocalName(), socketBindingGroupName); } validatedGroupList.add(socketBindingGroupName); if (recursive && resource.getModel().hasDefined(ModelDescriptionConstants.INCLUDES)) { List<ModelNode> includedSocketBindingGroups = resource.getModel().get(ModelDescriptionConstants.INCLUDES).asList(); for(ModelNode includedSocketBindingGroup : includedSocketBindingGroups){ String includedSocketBindingGroupName = includedSocketBindingGroup.asString(); if (!validatedGroupList.contains(includedSocketBindingGroupName)) { Resource includedResource = context.readResourceFromRoot(PathAddress.pathAddress(ModelDescriptionConstants.SOCKET_BINDING_GROUP, includedSocketBindingGroupName), false); validation(includedSocketBindingGroupName, outboundSocketBindingName, includedResource, recursive, validatedGroupList); } } } }
private void validation(final String socketBindingGroupName, final String outboundSocketBindingName, final Resource resource, final boolean recursive, List<String> validatedGroupList) { Set<String> socketBindingNames = resource.getChildrenNames(ModelDescriptionConstants.SOCKET_BINDING); Set<String> remoteDestinationOutboundSocketBindingNames = resource.getChildrenNames(ModelDescriptionConstants.REMOTE_DESTINATION_OUTBOUND_SOCKET_BINDING); if(socketBindingNames.contains(outboundSocketBindingName) || remoteDestinationOutboundSocketBindingNames.contains(outboundSocketBindingName)){ throw ControllerLogger.ROOT_LOGGER.socketBindingalreadyDeclared(Element.SOCKET_BINDING.getLocalName(), Element.OUTBOUND_SOCKET_BINDING.getLocalName(), outboundSocketBindingName, Element.SOCKET_BINDING_GROUP.getLocalName(), socketBindingGroupName); } validatedGroupList.add(socketBindingGroupName); if (recursive && resource.getModel().hasDefined(ModelDescriptionConstants.INCLUDES)) { List<ModelNode> includedSocketBindingGroups = resource.getModel().get(ModelDescriptionConstants.INCLUDES).asList(); for(ModelNode includedSocketBindingGroup : includedSocketBindingGroups){ String includedSocketBindingGroupName = includedSocketBindingGroup.asString(); if (!validatedGroupList.contains(includedSocketBindingGroupName)) { Resource includedResource = context.readResourceFromRoot(PathAddress.pathAddress(ModelDescriptionConstants.SOCKET_BINDING_GROUP, includedSocketBindingGroupName), false); validation(includedSocketBindingGroupName, outboundSocketBindingName, includedResource, recursive, validatedGroupList); } } } }
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { Resource resource; if (!context.getProcessType().isServer()) { try { resource = context.readResourceFromRoot(context.getCurrentAddress().getParent(), false); validation(socketBindingGroupName, outboundSocketBindingName, resource, true, new ArrayList<String>()); } catch (Resource.NoSuchResourceException e) { // this occurs in the case of an ignored server-group being added to a slave. // for all other cases, the parent element is always present. return; } }else{ resource = context.readResourceFromRoot(PathAddress.pathAddress(ModelDescriptionConstants.SOCKET_BINDING_GROUP, socketBindingGroupName), false); validation(socketBindingGroupName, outboundSocketBindingName, resource, false, new ArrayList<String>()); } }
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { Resource resource; if (!context.getProcessType().isServer()) { try { resource = context.readResourceFromRoot(context.getCurrentAddress().getParent(), false); validation(socketBindingGroupName, outboundSocketBindingName, resource, true, new ArrayList<String>()); } catch (Resource.NoSuchResourceException e) { // this occurs in the case of an ignored server-group being added to a slave. // for all other cases, the parent element is always present. return; } }else{ resource = context.readResourceFromRoot(PathAddress.pathAddress(ModelDescriptionConstants.SOCKET_BINDING_GROUP, socketBindingGroupName), false); validation(socketBindingGroupName, outboundSocketBindingName, resource, false, new ArrayList<String>()); } }