PageRenderTime 50ms CodeModel.GetById 32ms app.highlight 16ms RepoModel.GetById 0ms app.codeStats 0ms

/jboss-as-7.1.1.Final/web/src/main/java/org/jboss/as/web/WebConnectorDefinition.java

#
Java | 176 lines | 148 code | 20 blank | 8 comment | 2 complexity | cb9f7321a86c2e060fd5145ff33f7cc6 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1package org.jboss.as.web;
  2
  3import org.jboss.as.controller.ReloadRequiredWriteAttributeHandler;
  4import org.jboss.as.controller.SimpleAttributeDefinition;
  5import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
  6import org.jboss.as.controller.SimpleResourceDefinition;
  7import org.jboss.as.controller.operations.validation.IntRangeValidator;
  8import org.jboss.as.controller.operations.validation.StringLengthValidator;
  9import org.jboss.as.controller.registry.AttributeAccess;
 10import org.jboss.as.controller.registry.ManagementResourceRegistration;
 11import org.jboss.dmr.ModelNode;
 12import org.jboss.dmr.ModelType;
 13
 14/**
 15 * @author Tomaz Cerar
 16 * @created 22.2.12 15:03
 17 */
 18public class WebConnectorDefinition extends SimpleResourceDefinition {
 19    protected static final WebConnectorDefinition INSTANCE = new WebConnectorDefinition();
 20
 21
 22    protected static final SimpleAttributeDefinition NAME =
 23            new SimpleAttributeDefinitionBuilder(Constants.NAME, ModelType.STRING, true)
 24                    .setXmlName(Constants.NAME)
 25                    .setAllowNull(true) // todo should be false, but 'add' won't validate then
 26                    .setValidator(new StringLengthValidator(1, false))
 27                    .build();
 28
 29    protected static final SimpleAttributeDefinition PROTOCOL =
 30            new SimpleAttributeDefinitionBuilder(Constants.PROTOCOL, ModelType.STRING, true)
 31                    .setXmlName(Constants.PROTOCOL)
 32                    .setAllowNull(false)
 33                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 34                    .setValidator(new StringLengthValidator(1, true))
 35                    .build();
 36    protected static final SimpleAttributeDefinition SOCKET_BINDING =
 37            new SimpleAttributeDefinitionBuilder(Constants.SOCKET_BINDING, ModelType.STRING, false)
 38                    .setXmlName(Constants.SOCKET_BINDING)
 39                    .setAllowNull(false)
 40                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 41                    .setValidator(new StringLengthValidator(1, false))
 42                    .build();
 43    protected static final SimpleAttributeDefinition SCHEME =
 44            new SimpleAttributeDefinitionBuilder(Constants.SCHEME, ModelType.STRING, false)
 45                    .setXmlName(Constants.SCHEME)
 46                    .setAllowNull(false)
 47                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 48                    .setValidator(new StringLengthValidator(1, false))
 49                    //.setDefaultValue(new ModelNode("http"))
 50                    .build();
 51
 52    protected static final SimpleAttributeDefinition EXECUTOR =
 53            new SimpleAttributeDefinitionBuilder(Constants.EXECUTOR, ModelType.STRING, true)
 54                    .setXmlName(Constants.EXECUTOR)
 55                    .setAllowNull(true)
 56                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 57                    .setValidator(new StringLengthValidator(1, true))
 58                    .build();
 59
 60
 61    protected static final SimpleAttributeDefinition ENABLED =
 62            new SimpleAttributeDefinitionBuilder(Constants.ENABLED, ModelType.BOOLEAN, true)
 63                    .setXmlName(Constants.ENABLED)
 64                    .setAllowNull(true)
 65                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 66                    .setDefaultValue(new ModelNode(true))
 67                    .build();
 68    protected static final SimpleAttributeDefinition ENABLE_LOOKUPS =
 69            new SimpleAttributeDefinitionBuilder(Constants.ENABLE_LOOKUPS, ModelType.BOOLEAN, true)
 70                    .setXmlName(Constants.ENABLE_LOOKUPS)
 71                    .setAllowNull(true)
 72                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 73                    .setDefaultValue(new ModelNode(false))
 74                    .build();
 75
 76    protected static final SimpleAttributeDefinition PROXY_NAME =
 77            new SimpleAttributeDefinitionBuilder(Constants.PROXY_NAME, ModelType.STRING, true)
 78                    .setXmlName(Constants.PROXY_NAME)
 79                    .setAllowNull(true)
 80                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 81                    .setValidator(new StringLengthValidator(1, true))
 82                    .build();
 83
 84    protected static final SimpleAttributeDefinition PROXY_PORT =
 85            new SimpleAttributeDefinitionBuilder(Constants.PROXY_PORT, ModelType.INT, true)
 86                    .setXmlName(Constants.PROXY_PORT)
 87                    .setAllowNull(true)
 88                    .setValidator(new IntRangeValidator(1, true))
 89                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 90                    .build();
 91
 92    protected static final SimpleAttributeDefinition MAX_POST_SIZE =
 93            new SimpleAttributeDefinitionBuilder(Constants.MAX_POST_SIZE, ModelType.INT, true)
 94                    .setXmlName(Constants.MAX_POST_SIZE)
 95                    .setValidator(new IntRangeValidator(1024, true))
 96                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
 97                    .setDefaultValue(new ModelNode(2097152))
 98                    .build();
 99
100    protected static final SimpleAttributeDefinition MAX_SAVE_POST_SIZE =
101            new SimpleAttributeDefinitionBuilder(Constants.MAX_SAVE_POST_SIZE, ModelType.INT, true)
102                    .setXmlName(Constants.MAX_SAVE_POST_SIZE)
103                    .setValidator(new IntRangeValidator(0, true))
104                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
105                    .setDefaultValue(new ModelNode(4096))
106                    .build();
107
108    protected static final SimpleAttributeDefinition SECURE =
109            new SimpleAttributeDefinitionBuilder(Constants.SECURE, ModelType.BOOLEAN, true)
110                    .setXmlName(Constants.SECURE)
111                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
112                    .setDefaultValue(new ModelNode(false))
113                    .build();
114    protected static final SimpleAttributeDefinition REDIRECT_PORT =
115            new SimpleAttributeDefinitionBuilder(Constants.REDIRECT_PORT, ModelType.INT, true)
116                    .setXmlName(Constants.REDIRECT_PORT)
117                    .setValidator(new IntRangeValidator(1, true))
118                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
119                    .setDefaultValue(new ModelNode(8433))
120                    .build();
121
122    protected static final SimpleAttributeDefinition MAX_CONNECTIONS =
123            new SimpleAttributeDefinitionBuilder(Constants.MAX_CONNECTIONS, ModelType.INT, true) //todo why is this string somewhere??
124                    .setXmlName(Constants.MAX_CONNECTIONS)
125                    .setValidator(new IntRangeValidator(1, true))
126                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
127                            //.setDefaultValue(new ModelNode(8433))
128                    .build();
129
130    protected static final SimpleAttributeDefinition VIRTUAL_SERVER =
131            new SimpleAttributeDefinitionBuilder(Constants.VIRTUAL_SERVER, ModelType.STRING, true)
132                    .setXmlName(Constants.VIRTUAL_SERVER)
133                    .setAllowNull(true)
134                    .setFlags(AttributeAccess.Flag.RESTART_ALL_SERVICES)
135                    .setValidator(new StringLengthValidator(1, true))
136                    .build();
137    protected static final SimpleAttributeDefinition[] CONNECTOR_ATTRIBUTES = {
138            //NAME, // name is read-only
139            // IMPORTANT -- keep these in xsd order as this order controls marshalling
140            PROTOCOL,
141            SCHEME,
142            SOCKET_BINDING,
143            ENABLE_LOOKUPS,
144            PROXY_NAME,
145            PROXY_PORT,
146            REDIRECT_PORT,
147            SECURE,
148            MAX_POST_SIZE,
149            MAX_SAVE_POST_SIZE,
150            ENABLED,
151            EXECUTOR,
152            MAX_CONNECTIONS,
153            VIRTUAL_SERVER
154
155    };
156
157    private WebConnectorDefinition() {
158        super(WebExtension.CONNECTOR_PATH,
159                WebExtension.getResourceDescriptionResolver(Constants.CONNECTOR),
160                WebConnectorAdd.INSTANCE,
161                WebConnectorRemove.INSTANCE);
162    }
163
164
165    @Override
166    public void registerAttributes(ManagementResourceRegistration connectors) {
167        connectors.registerReadOnlyAttribute(NAME, null);
168        for (SimpleAttributeDefinition def : CONNECTOR_ATTRIBUTES) {
169            connectors.registerReadWriteAttribute(def, null, new ReloadRequiredWriteAttributeHandler(def));
170        }
171
172        for (final SimpleAttributeDefinition def : WebConnectorMetrics.ATTRIBUTES) {
173            connectors.registerMetric(def, WebConnectorMetrics.INSTANCE);
174        }
175    }
176}