From db4cd97be84611ebb4998ed2a652696b1d0771f6 Mon Sep 17 00:00:00 2001 From: Radoslav Husar Date: Thu, 2 Jun 2022 21:29:13 +0200 Subject: [PATCH] WFLY-16392 Drop ZeroToNegativeOneParameterCorrector and fix attribute definitions for flush-wait, node-timeout, smax, ttl, and worker-timeout --- .../ProxyConfigurationResourceDefinition.java | 28 ++++------ ...ProxyConfigurationServiceConfigurator.java | 31 +++++++--- .../ZeroToNegativeOneParameterCorrector.java | 56 ------------------- 3 files changed, 36 insertions(+), 79 deletions(-) delete mode 100644 mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ZeroToNegativeOneParameterCorrector.java diff --git a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationResourceDefinition.java b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationResourceDefinition.java index f7659b8bcdb7..9355637ccc9d 100644 --- a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationResourceDefinition.java +++ b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationResourceDefinition.java @@ -104,13 +104,12 @@ public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder b BALANCER("balancer", ModelType.STRING, null), EXCLUDED_CONTEXTS("excluded-contexts", ModelType.STRING, null), FLUSH_PACKETS("flush-packets", ModelType.BOOLEAN, ModelNode.FALSE), - FLUSH_WAIT("flush-wait", ModelType.INT, new ModelNode(-1)) { + FLUSH_WAIT("flush-wait", ModelType.INT, null) { @Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .setMeasurementUnit(MeasurementUnit.SECONDS) - .setValidator(new IntRangeValidator(-1, true, true)) - .setCorrector(ZeroToNegativeOneParameterCorrector.INSTANCE) + .setValidator(new IntRangeValidator(1, true, true)) ; } }, @@ -138,13 +137,12 @@ public ModelNode correct(ModelNode newValue, ModelNode currentValue) { ; } }, - NODE_TIMEOUT("node-timeout", ModelType.INT, new ModelNode(-1)) { + NODE_TIMEOUT("node-timeout", ModelType.INT, null) { @Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .setMeasurementUnit(MeasurementUnit.SECONDS) - .setValidator(new IntRangeValidator(-1, true, true)) - .setCorrector(ZeroToNegativeOneParameterCorrector.INSTANCE) + .setValidator(new IntRangeValidator(1, true, true)) ; } }, @@ -169,12 +167,11 @@ public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder b return builder.setValidator(new EnumValidator<>(SessionDrainingStrategyEnum.class, SessionDrainingStrategyEnum.values())); } }, - SMAX("smax", ModelType.INT, new ModelNode(-1)) { + SMAX("smax", ModelType.INT, null) { @Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder - .setValidator(new IntRangeValidator(-1, true, true)) - .setCorrector(ZeroToNegativeOneParameterCorrector.INSTANCE) + .setValidator(new IntRangeValidator(1, true, true)) ; } }, @@ -198,7 +195,8 @@ public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder b STATUS_INTERVAL("status-interval", ModelType.INT, new ModelNode(10)) { @Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { - return builder.setMeasurementUnit(MeasurementUnit.SECONDS) + return builder + .setMeasurementUnit(MeasurementUnit.SECONDS) .setValidator(new IntRangeValidator(1, true, true)); } }, @@ -212,23 +210,21 @@ public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder b .setValidator(new IntRangeValidator(1, true, true)); } }, - TTL("ttl", ModelType.INT, new ModelNode(-1)) { + TTL("ttl", ModelType.INT, null) { @Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .setMeasurementUnit(MeasurementUnit.SECONDS) - .setValidator(new IntRangeValidator(-1, true, true)) - .setCorrector(ZeroToNegativeOneParameterCorrector.INSTANCE) + .setValidator(new IntRangeValidator(1, true, true)) ; } }, - WORKER_TIMEOUT("worker-timeout", ModelType.INT, new ModelNode(-1)) { + WORKER_TIMEOUT("worker-timeout", ModelType.INT, null) { @Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .setMeasurementUnit(MeasurementUnit.SECONDS) - .setValidator(new IntRangeValidator(-1, true, true)) - .setCorrector(ZeroToNegativeOneParameterCorrector.INSTANCE) + .setValidator(new IntRangeValidator(1, true, true)) ; } }, diff --git a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationServiceConfigurator.java b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationServiceConfigurator.java index 9e7a28519bf7..d3fce5abf465 100644 --- a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationServiceConfigurator.java +++ b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ProxyConfigurationServiceConfigurator.java @@ -94,7 +94,7 @@ /** * @author Radoslav Husar */ - public class ProxyConfigurationServiceConfigurator extends CapabilityServiceNameProvider implements ResourceServiceConfigurator, Supplier, Consumer { +public class ProxyConfigurationServiceConfigurator extends CapabilityServiceNameProvider implements ResourceServiceConfigurator, Supplier, Consumer { private volatile SupplierDependency advertiseSocketDependency = null; private final List> outboundSocketBindings = new LinkedList<>(); @@ -188,21 +188,38 @@ public ServiceConfigurator configure(OperationContext context, ModelNode model) .setStickySession(STICKY_SESSION.resolveModelAttribute(context, model).asBoolean()) .setStickySessionRemove(STICKY_SESSION_REMOVE.resolveModelAttribute(context, model).asBoolean()) .setStickySessionForce(STICKY_SESSION_FORCE.resolveModelAttribute(context, model).asBoolean()) - .setWorkerTimeout(WORKER_TIMEOUT.resolveModelAttribute(context, model).asInt()) .setMaxAttempts(MAX_ATTEMPTS.resolveModelAttribute(context, model).asInt()) ; + ModelNode node = WORKER_TIMEOUT.resolveModelAttribute(context, model); + if (node.isDefined()) { + builder.balancer().setWorkerTimeout(node.asInt()); + } + // Node builder.node() .setFlushPackets(FLUSH_PACKETS.resolveModelAttribute(context, model).asBoolean()) - .setFlushWait(FLUSH_WAIT.resolveModelAttribute(context, model).asInt()) .setPing(PING.resolveModelAttribute(context, model).asInt()) - .setSmax(SMAX.resolveModelAttribute(context, model).asInt()) - .setTtl(TTL.resolveModelAttribute(context, model).asInt()) - .setNodeTimeout(NODE_TIMEOUT.resolveModelAttribute(context, model).asInt()) ; - ModelNode node = BALANCER.resolveModelAttribute(context, model); + + node = FLUSH_WAIT.resolveModelAttribute(context, model); + if (node.isDefined()) { + builder.node().setFlushWait(node.asInt()); + } + node = SMAX.resolveModelAttribute(context, model); + if (node.isDefined()) { + builder.node().setSmax(node.asInt()); + } + node = TTL.resolveModelAttribute(context, model); + if (node.isDefined()) { + builder.node().setTtl(node.asInt()); + } + node = NODE_TIMEOUT.resolveModelAttribute(context, model); + if (node.isDefined()) { + builder.node().setNodeTimeout(node.asInt()); + } + node = BALANCER.resolveModelAttribute(context, model); if (node.isDefined()) { builder.node().setBalancer(node.asString()); } diff --git a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ZeroToNegativeOneParameterCorrector.java b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ZeroToNegativeOneParameterCorrector.java deleted file mode 100644 index 969eafc1cc2a..000000000000 --- a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/ZeroToNegativeOneParameterCorrector.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2012, Red Hat, Inc., and individual contributors - * as indicated by the @author tags. See the copyright.txt file in the - * distribution for a full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ - -package org.wildfly.extension.mod_cluster; - -import org.jboss.as.controller.ParameterCorrector; -import org.jboss.dmr.ModelNode; -import org.jboss.dmr.ModelType; - -/** - * {@link ParameterCorrector} that converts 0 to -1. Used for attributes that have historically allowed -1 as - * a "disabled" value but otherwise require a positive value. This parameter corrector allows an IntRangeValidator - * with a range starting at -1 to be used, while avoiding having 0 as a value. Ideally, "undefined" would mean disabled, - * and an IntRangeValidator starting at 1 would be used, but these -1 attributes have been out in the wild for quite - * a while now so they need to be supported. - * - * @author Brian Stansberry (c) 2011 Red Hat Inc. - */ -class ZeroToNegativeOneParameterCorrector implements ParameterCorrector { - - static final ZeroToNegativeOneParameterCorrector INSTANCE = new ZeroToNegativeOneParameterCorrector(); - - @Override - public ModelNode correct(ModelNode newValue, ModelNode currentValue) { - if (newValue.isDefined() && newValue.getType() != ModelType.EXPRESSION) { - try { - long val = newValue.asLong(); - if (val == 0) { - return new ModelNode(-1); - } - } catch (Exception e) { - // not convertible; let the validator that the caller will invoke later deal with this - } - } - return newValue; - } -}