/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}