Committed by
Gerrit Code Review
Refactor getIntegerProperty and isPropertyEnabled methods into Tools
- Add getIntegerProperty and isPropertyEnabled methods which take default value as third parameter - Remove all duplicated code from RefactiveForwarding, GroupManager, FlowRuleManager, CoreManager, HostLocationProvider and ProxyArp Change-Id: Ifc93aa813acfdd4cbac0166497d7b526b08b2090
Showing
7 changed files
with
98 additions
and
139 deletions
This diff is collapsed. Click to expand it.
... | @@ -25,6 +25,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; | ... | @@ -25,6 +25,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; |
25 | import org.onlab.packet.Ethernet; | 25 | import org.onlab.packet.Ethernet; |
26 | import org.onlab.packet.ICMP6; | 26 | import org.onlab.packet.ICMP6; |
27 | import org.onlab.packet.IPv6; | 27 | import org.onlab.packet.IPv6; |
28 | +import org.onlab.util.Tools; | ||
28 | import org.onosproject.cfg.ComponentConfigService; | 29 | import org.onosproject.cfg.ComponentConfigService; |
29 | import org.onosproject.core.ApplicationId; | 30 | import org.onosproject.core.ApplicationId; |
30 | import org.onosproject.core.CoreService; | 31 | import org.onosproject.core.CoreService; |
... | @@ -40,7 +41,6 @@ import org.slf4j.Logger; | ... | @@ -40,7 +41,6 @@ import org.slf4j.Logger; |
40 | 41 | ||
41 | import java.util.Dictionary; | 42 | import java.util.Dictionary; |
42 | 43 | ||
43 | -import static com.google.common.base.Strings.isNullOrEmpty; | ||
44 | import static org.onlab.packet.Ethernet.TYPE_ARP; | 44 | import static org.onlab.packet.Ethernet.TYPE_ARP; |
45 | import static org.onlab.packet.Ethernet.TYPE_IPV6; | 45 | import static org.onlab.packet.Ethernet.TYPE_IPV6; |
46 | import static org.onlab.packet.ICMP6.NEIGHBOR_ADVERTISEMENT; | 46 | import static org.onlab.packet.ICMP6.NEIGHBOR_ADVERTISEMENT; |
... | @@ -173,7 +173,7 @@ public class ProxyArp { | ... | @@ -173,7 +173,7 @@ public class ProxyArp { |
173 | Dictionary<?, ?> properties = context.getProperties(); | 173 | Dictionary<?, ?> properties = context.getProperties(); |
174 | Boolean flag; | 174 | Boolean flag; |
175 | 175 | ||
176 | - flag = isPropertyEnabled(properties, "ipv6NeighborDiscovery"); | 176 | + flag = Tools.isPropertyEnabled(properties, "ipv6NeighborDiscovery"); |
177 | if (flag == null) { | 177 | if (flag == null) { |
178 | log.info("IPv6 Neighbor Discovery is not configured, " + | 178 | log.info("IPv6 Neighbor Discovery is not configured, " + |
179 | "using current value of {}", ipv6NeighborDiscovery); | 179 | "using current value of {}", ipv6NeighborDiscovery); |
... | @@ -185,26 +185,6 @@ public class ProxyArp { | ... | @@ -185,26 +185,6 @@ public class ProxyArp { |
185 | } | 185 | } |
186 | 186 | ||
187 | /** | 187 | /** |
188 | - * Check property name is defined and set to true. | ||
189 | - * | ||
190 | - * @param properties properties to be looked up | ||
191 | - * @param propertyName the name of the property to look up | ||
192 | - * @return value when the propertyName is defined or return null | ||
193 | - */ | ||
194 | - private static Boolean isPropertyEnabled(Dictionary<?, ?> properties, | ||
195 | - String propertyName) { | ||
196 | - Boolean value = null; | ||
197 | - try { | ||
198 | - String s = (String) properties.get(propertyName); | ||
199 | - value = isNullOrEmpty(s) ? null : s.trim().equals("true"); | ||
200 | - } catch (ClassCastException e) { | ||
201 | - // No propertyName defined. | ||
202 | - value = null; | ||
203 | - } | ||
204 | - return value; | ||
205 | - } | ||
206 | - | ||
207 | - /** | ||
208 | * Packet processor responsible for forwarding packets along their paths. | 188 | * Packet processor responsible for forwarding packets along their paths. |
209 | */ | 189 | */ |
210 | private class ProxyArpProcessor implements PacketProcessor { | 190 | private class ProxyArpProcessor implements PacketProcessor { | ... | ... |
... | @@ -25,6 +25,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; | ... | @@ -25,6 +25,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; |
25 | import org.apache.felix.scr.annotations.Service; | 25 | import org.apache.felix.scr.annotations.Service; |
26 | import org.onlab.metrics.MetricsService; | 26 | import org.onlab.metrics.MetricsService; |
27 | import org.onlab.util.SharedExecutors; | 27 | import org.onlab.util.SharedExecutors; |
28 | +import org.onlab.util.Tools; | ||
28 | import org.onosproject.app.ApplicationService; | 29 | import org.onosproject.app.ApplicationService; |
29 | import org.onosproject.cfg.ComponentConfigService; | 30 | import org.onosproject.cfg.ComponentConfigService; |
30 | import org.onosproject.core.ApplicationId; | 31 | import org.onosproject.core.ApplicationId; |
... | @@ -48,9 +49,9 @@ import java.util.List; | ... | @@ -48,9 +49,9 @@ import java.util.List; |
48 | import java.util.Set; | 49 | import java.util.Set; |
49 | 50 | ||
50 | import static com.google.common.base.Preconditions.checkNotNull; | 51 | import static com.google.common.base.Preconditions.checkNotNull; |
51 | -import static com.google.common.base.Strings.isNullOrEmpty; | ||
52 | import static org.onosproject.security.AppGuard.checkPermission; | 52 | import static org.onosproject.security.AppGuard.checkPermission; |
53 | -import static org.onosproject.security.AppPermission.Type.*; | 53 | +import static org.onosproject.security.AppPermission.Type.APP_READ; |
54 | +import static org.onosproject.security.AppPermission.Type.APP_WRITE; | ||
54 | 55 | ||
55 | 56 | ||
56 | /** | 57 | /** |
... | @@ -172,7 +173,7 @@ public class CoreManager implements CoreService { | ... | @@ -172,7 +173,7 @@ public class CoreManager implements CoreService { |
172 | @Modified | 173 | @Modified |
173 | public void modified(ComponentContext context) { | 174 | public void modified(ComponentContext context) { |
174 | Dictionary<?, ?> properties = context.getProperties(); | 175 | Dictionary<?, ?> properties = context.getProperties(); |
175 | - Integer poolSize = getIntegerProperty(properties, "sharedThreadPoolSize"); | 176 | + Integer poolSize = Tools.getIntegerProperty(properties, "sharedThreadPoolSize"); |
176 | 177 | ||
177 | if (poolSize != null && poolSize > 1) { | 178 | if (poolSize != null && poolSize > 1) { |
178 | sharedThreadPoolSize = poolSize; | 179 | sharedThreadPoolSize = poolSize; |
... | @@ -181,7 +182,7 @@ public class CoreManager implements CoreService { | ... | @@ -181,7 +182,7 @@ public class CoreManager implements CoreService { |
181 | log.warn("sharedThreadPoolSize must be greater than 1"); | 182 | log.warn("sharedThreadPoolSize must be greater than 1"); |
182 | } | 183 | } |
183 | 184 | ||
184 | - Integer timeLimit = getIntegerProperty(properties, "maxEventTimeLimit"); | 185 | + Integer timeLimit = Tools.getIntegerProperty(properties, "maxEventTimeLimit"); |
185 | if (timeLimit != null && timeLimit > 1) { | 186 | if (timeLimit != null && timeLimit > 1) { |
186 | maxEventTimeLimit = timeLimit; | 187 | maxEventTimeLimit = timeLimit; |
187 | eventDeliveryService.setDispatchTimeLimit(maxEventTimeLimit); | 188 | eventDeliveryService.setDispatchTimeLimit(maxEventTimeLimit); |
... | @@ -189,7 +190,7 @@ public class CoreManager implements CoreService { | ... | @@ -189,7 +190,7 @@ public class CoreManager implements CoreService { |
189 | log.warn("maxEventTimeLimit must be greater than 1"); | 190 | log.warn("maxEventTimeLimit must be greater than 1"); |
190 | } | 191 | } |
191 | 192 | ||
192 | - Boolean performanceCheck = isPropertyEnabled(properties, "sharedThreadPerformanceCheck"); | 193 | + Boolean performanceCheck = Tools.isPropertyEnabled(properties, "sharedThreadPerformanceCheck"); |
193 | if (performanceCheck != null) { | 194 | if (performanceCheck != null) { |
194 | calculatePoolPerformance = performanceCheck; | 195 | calculatePoolPerformance = performanceCheck; |
195 | SharedExecutors.setCalculatePoolPerformance(calculatePoolPerformance, metricsService); | 196 | SharedExecutors.setCalculatePoolPerformance(calculatePoolPerformance, metricsService); |
... | @@ -198,48 +199,4 @@ public class CoreManager implements CoreService { | ... | @@ -198,48 +199,4 @@ public class CoreManager implements CoreService { |
198 | log.info("Settings: sharedThreadPoolSize={}, maxEventTimeLimit={}, calculatePoolPerformance={}", | 199 | log.info("Settings: sharedThreadPoolSize={}, maxEventTimeLimit={}, calculatePoolPerformance={}", |
199 | sharedThreadPoolSize, maxEventTimeLimit, calculatePoolPerformance); | 200 | sharedThreadPoolSize, maxEventTimeLimit, calculatePoolPerformance); |
200 | } | 201 | } |
201 | - | ||
202 | - | ||
203 | - /** | ||
204 | - * Get Integer property from the propertyName | ||
205 | - * Return null if propertyName is not found. | ||
206 | - * | ||
207 | - * @param properties properties to be looked up | ||
208 | - * @param propertyName the name of the property to look up | ||
209 | - * @return value when the propertyName is defined or return null | ||
210 | - */ | ||
211 | - private static Integer getIntegerProperty(Dictionary<?, ?> properties, | ||
212 | - String propertyName) { | ||
213 | - Integer value; | ||
214 | - try { | ||
215 | - String s = (String) properties.get(propertyName); | ||
216 | - value = isNullOrEmpty(s) ? null : Integer.parseInt(s.trim()); | ||
217 | - } catch (NumberFormatException | ClassCastException e) { | ||
218 | - value = null; | ||
219 | - } | ||
220 | - return value; | ||
221 | - } | ||
222 | - | ||
223 | - /** | ||
224 | - * Check property name is defined and set to true. | ||
225 | - * | ||
226 | - * @param properties properties to be looked up | ||
227 | - * @param propertyName the name of the property to look up | ||
228 | - * @return value when the propertyName is defined or return null | ||
229 | - */ | ||
230 | - private static Boolean isPropertyEnabled(Dictionary<?, ?> properties, | ||
231 | - String propertyName) { | ||
232 | - Boolean value = null; | ||
233 | - try { | ||
234 | - String s = (String) properties.get(propertyName); | ||
235 | - value = isNullOrEmpty(s) ? null : s.trim().equals("true"); | ||
236 | - } catch (ClassCastException e) { | ||
237 | - // No propertyName defined. | ||
238 | - value = null; | ||
239 | - } | ||
240 | - return value; | ||
241 | - } | ||
242 | - | ||
243 | - | ||
244 | - | ||
245 | } | 202 | } | ... | ... |
... | @@ -29,6 +29,7 @@ import org.apache.felix.scr.annotations.Property; | ... | @@ -29,6 +29,7 @@ import org.apache.felix.scr.annotations.Property; |
29 | import org.apache.felix.scr.annotations.Reference; | 29 | import org.apache.felix.scr.annotations.Reference; |
30 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 30 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
31 | import org.apache.felix.scr.annotations.Service; | 31 | import org.apache.felix.scr.annotations.Service; |
32 | +import org.onlab.util.Tools; | ||
32 | import org.onosproject.cfg.ComponentConfigService; | 33 | import org.onosproject.cfg.ComponentConfigService; |
33 | import org.onosproject.core.ApplicationId; | 34 | import org.onosproject.core.ApplicationId; |
34 | import org.onosproject.core.CoreService; | 35 | import org.onosproject.core.CoreService; |
... | @@ -190,7 +191,7 @@ public class FlowRuleManager | ... | @@ -190,7 +191,7 @@ public class FlowRuleManager |
190 | Dictionary<?, ?> properties = context.getProperties(); | 191 | Dictionary<?, ?> properties = context.getProperties(); |
191 | Boolean flag; | 192 | Boolean flag; |
192 | 193 | ||
193 | - flag = isPropertyEnabled(properties, "allowExtraneousRules"); | 194 | + flag = Tools.isPropertyEnabled(properties, "allowExtraneousRules"); |
194 | if (flag == null) { | 195 | if (flag == null) { |
195 | log.info("AllowExtraneousRules is not configured, " + | 196 | log.info("AllowExtraneousRules is not configured, " + |
196 | "using current value of {}", allowExtraneousRules); | 197 | "using current value of {}", allowExtraneousRules); |
... | @@ -200,7 +201,7 @@ public class FlowRuleManager | ... | @@ -200,7 +201,7 @@ public class FlowRuleManager |
200 | allowExtraneousRules ? "enabled" : "disabled"); | 201 | allowExtraneousRules ? "enabled" : "disabled"); |
201 | } | 202 | } |
202 | 203 | ||
203 | - flag = isPropertyEnabled(properties, "purgeOnDisconnection"); | 204 | + flag = Tools.isPropertyEnabled(properties, "purgeOnDisconnection"); |
204 | if (flag == null) { | 205 | if (flag == null) { |
205 | log.info("PurgeOnDisconnection is not configured, " + | 206 | log.info("PurgeOnDisconnection is not configured, " + |
206 | "using current value of {}", purgeOnDisconnection); | 207 | "using current value of {}", purgeOnDisconnection); |
... | @@ -218,24 +219,6 @@ public class FlowRuleManager | ... | @@ -218,24 +219,6 @@ public class FlowRuleManager |
218 | } | 219 | } |
219 | } | 220 | } |
220 | 221 | ||
221 | - /** | ||
222 | - * Check property name is defined and set to true. | ||
223 | - * | ||
224 | - * @param properties properties to be looked up | ||
225 | - * @param propertyName the name of the property to look up | ||
226 | - * @return value when the propertyName is defined or return null | ||
227 | - */ | ||
228 | - private static Boolean isPropertyEnabled(Dictionary<?, ?> properties, | ||
229 | - String propertyName) { | ||
230 | - try { | ||
231 | - String s = (String) properties.get(propertyName); | ||
232 | - return isNullOrEmpty(s) ? null : s.trim().equals("true"); | ||
233 | - } catch (ClassCastException e) { | ||
234 | - // No propertyName defined. | ||
235 | - return null; | ||
236 | - } | ||
237 | - } | ||
238 | - | ||
239 | @Override | 222 | @Override |
240 | public int getFlowRuleCount() { | 223 | public int getFlowRuleCount() { |
241 | checkPermission(FLOWRULE_READ); | 224 | checkPermission(FLOWRULE_READ); | ... | ... |
... | @@ -23,8 +23,8 @@ import org.apache.felix.scr.annotations.Property; | ... | @@ -23,8 +23,8 @@ import org.apache.felix.scr.annotations.Property; |
23 | import org.apache.felix.scr.annotations.Reference; | 23 | import org.apache.felix.scr.annotations.Reference; |
24 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 24 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
25 | import org.apache.felix.scr.annotations.Service; | 25 | import org.apache.felix.scr.annotations.Service; |
26 | +import org.onlab.util.Tools; | ||
26 | import org.onosproject.cfg.ComponentConfigService; | 27 | import org.onosproject.cfg.ComponentConfigService; |
27 | -import org.onosproject.net.provider.AbstractListenerProviderRegistry; | ||
28 | import org.onosproject.core.ApplicationId; | 28 | import org.onosproject.core.ApplicationId; |
29 | import org.onosproject.net.DeviceId; | 29 | import org.onosproject.net.DeviceId; |
30 | import org.onosproject.net.device.DeviceEvent; | 30 | import org.onosproject.net.device.DeviceEvent; |
... | @@ -45,6 +45,7 @@ import org.onosproject.net.group.GroupService; | ... | @@ -45,6 +45,7 @@ import org.onosproject.net.group.GroupService; |
45 | import org.onosproject.net.group.GroupStore; | 45 | import org.onosproject.net.group.GroupStore; |
46 | import org.onosproject.net.group.GroupStore.UpdateType; | 46 | import org.onosproject.net.group.GroupStore.UpdateType; |
47 | import org.onosproject.net.group.GroupStoreDelegate; | 47 | import org.onosproject.net.group.GroupStoreDelegate; |
48 | +import org.onosproject.net.provider.AbstractListenerProviderRegistry; | ||
48 | import org.onosproject.net.provider.AbstractProviderService; | 49 | import org.onosproject.net.provider.AbstractProviderService; |
49 | import org.osgi.service.component.ComponentContext; | 50 | import org.osgi.service.component.ComponentContext; |
50 | import org.slf4j.Logger; | 51 | import org.slf4j.Logger; |
... | @@ -53,10 +54,10 @@ import java.util.Collection; | ... | @@ -53,10 +54,10 @@ import java.util.Collection; |
53 | import java.util.Collections; | 54 | import java.util.Collections; |
54 | import java.util.Dictionary; | 55 | import java.util.Dictionary; |
55 | 56 | ||
56 | -import static com.google.common.base.Strings.isNullOrEmpty; | ||
57 | import static org.onosproject.security.AppGuard.checkPermission; | 57 | import static org.onosproject.security.AppGuard.checkPermission; |
58 | +import static org.onosproject.security.AppPermission.Type.GROUP_READ; | ||
59 | +import static org.onosproject.security.AppPermission.Type.GROUP_WRITE; | ||
58 | import static org.slf4j.LoggerFactory.getLogger; | 60 | import static org.slf4j.LoggerFactory.getLogger; |
59 | -import static org.onosproject.security.AppPermission.Type.*; | ||
60 | 61 | ||
61 | 62 | ||
62 | 63 | ||
... | @@ -129,7 +130,7 @@ public class GroupManager | ... | @@ -129,7 +130,7 @@ public class GroupManager |
129 | Dictionary<?, ?> properties = context.getProperties(); | 130 | Dictionary<?, ?> properties = context.getProperties(); |
130 | Boolean flag; | 131 | Boolean flag; |
131 | 132 | ||
132 | - flag = isPropertyEnabled(properties, "purgeOnDisconnection"); | 133 | + flag = Tools.isPropertyEnabled(properties, "purgeOnDisconnection"); |
133 | if (flag == null) { | 134 | if (flag == null) { |
134 | log.info("PurgeOnDisconnection is not configured, " + | 135 | log.info("PurgeOnDisconnection is not configured, " + |
135 | "using current value of {}", purgeOnDisconnection); | 136 | "using current value of {}", purgeOnDisconnection); |
... | @@ -141,26 +142,6 @@ public class GroupManager | ... | @@ -141,26 +142,6 @@ public class GroupManager |
141 | } | 142 | } |
142 | 143 | ||
143 | /** | 144 | /** |
144 | - * Check property name is defined and set to true. | ||
145 | - * | ||
146 | - * @param properties properties to be looked up | ||
147 | - * @param propertyName the name of the property to look up | ||
148 | - * @return value when the propertyName is defined or return null | ||
149 | - */ | ||
150 | - private static Boolean isPropertyEnabled(Dictionary<?, ?> properties, | ||
151 | - String propertyName) { | ||
152 | - Boolean value = null; | ||
153 | - try { | ||
154 | - String s = (String) properties.get(propertyName); | ||
155 | - value = isNullOrEmpty(s) ? null : s.trim().equals("true"); | ||
156 | - } catch (ClassCastException e) { | ||
157 | - // No propertyName defined. | ||
158 | - value = null; | ||
159 | - } | ||
160 | - return value; | ||
161 | - } | ||
162 | - | ||
163 | - /** | ||
164 | * Create a group in the specified device with the provided parameters. | 145 | * Create a group in the specified device with the provided parameters. |
165 | * | 146 | * |
166 | * @param groupDesc group creation parameters | 147 | * @param groupDesc group creation parameters | ... | ... |
... | @@ -35,6 +35,7 @@ import org.onlab.packet.ndp.NeighborAdvertisement; | ... | @@ -35,6 +35,7 @@ import org.onlab.packet.ndp.NeighborAdvertisement; |
35 | import org.onlab.packet.ndp.NeighborSolicitation; | 35 | import org.onlab.packet.ndp.NeighborSolicitation; |
36 | import org.onlab.packet.ndp.RouterAdvertisement; | 36 | import org.onlab.packet.ndp.RouterAdvertisement; |
37 | import org.onlab.packet.ndp.RouterSolicitation; | 37 | import org.onlab.packet.ndp.RouterSolicitation; |
38 | +import org.onlab.util.Tools; | ||
38 | import org.onosproject.cfg.ComponentConfigService; | 39 | import org.onosproject.cfg.ComponentConfigService; |
39 | import org.onosproject.core.ApplicationId; | 40 | import org.onosproject.core.ApplicationId; |
40 | import org.onosproject.core.CoreService; | 41 | import org.onosproject.core.CoreService; |
... | @@ -69,7 +70,6 @@ import java.util.Dictionary; | ... | @@ -69,7 +70,6 @@ import java.util.Dictionary; |
69 | import java.util.Set; | 70 | import java.util.Set; |
70 | import java.util.concurrent.ExecutorService; | 71 | import java.util.concurrent.ExecutorService; |
71 | 72 | ||
72 | -import static com.google.common.base.Strings.isNullOrEmpty; | ||
73 | import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; | 73 | import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; |
74 | import static org.onlab.util.Tools.groupedThreads; | 74 | import static org.onlab.util.Tools.groupedThreads; |
75 | import static org.slf4j.LoggerFactory.getLogger; | 75 | import static org.slf4j.LoggerFactory.getLogger; |
... | @@ -228,7 +228,7 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid | ... | @@ -228,7 +228,7 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid |
228 | Dictionary<?, ?> properties = context.getProperties(); | 228 | Dictionary<?, ?> properties = context.getProperties(); |
229 | Boolean flag; | 229 | Boolean flag; |
230 | 230 | ||
231 | - flag = isPropertyEnabled(properties, "hostRemovalEnabled"); | 231 | + flag = Tools.isPropertyEnabled(properties, "hostRemovalEnabled"); |
232 | if (flag == null) { | 232 | if (flag == null) { |
233 | log.info("Host removal on port/device down events is not configured, " + | 233 | log.info("Host removal on port/device down events is not configured, " + |
234 | "using current value of {}", hostRemovalEnabled); | 234 | "using current value of {}", hostRemovalEnabled); |
... | @@ -238,7 +238,7 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid | ... | @@ -238,7 +238,7 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid |
238 | hostRemovalEnabled ? "enabled" : "disabled"); | 238 | hostRemovalEnabled ? "enabled" : "disabled"); |
239 | } | 239 | } |
240 | 240 | ||
241 | - flag = isPropertyEnabled(properties, "ipv6NeighborDiscovery"); | 241 | + flag = Tools.isPropertyEnabled(properties, "ipv6NeighborDiscovery"); |
242 | if (flag == null) { | 242 | if (flag == null) { |
243 | log.info("Using IPv6 Neighbor Discovery is not configured, " + | 243 | log.info("Using IPv6 Neighbor Discovery is not configured, " + |
244 | "using current value of {}", ipv6NeighborDiscovery); | 244 | "using current value of {}", ipv6NeighborDiscovery); |
... | @@ -248,7 +248,7 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid | ... | @@ -248,7 +248,7 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid |
248 | ipv6NeighborDiscovery ? "enabled" : "disabled"); | 248 | ipv6NeighborDiscovery ? "enabled" : "disabled"); |
249 | } | 249 | } |
250 | 250 | ||
251 | - flag = isPropertyEnabled(properties, "requestInterceptsEnabled"); | 251 | + flag = Tools.isPropertyEnabled(properties, "requestInterceptsEnabled"); |
252 | if (flag == null) { | 252 | if (flag == null) { |
253 | log.info("Request intercepts is not configured, " + | 253 | log.info("Request intercepts is not configured, " + |
254 | "using current value of {}", requestInterceptsEnabled); | 254 | "using current value of {}", requestInterceptsEnabled); |
... | @@ -259,26 +259,6 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid | ... | @@ -259,26 +259,6 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid |
259 | } | 259 | } |
260 | } | 260 | } |
261 | 261 | ||
262 | - /** | ||
263 | - * Check property name is defined and set to true. | ||
264 | - * | ||
265 | - * @param properties properties to be looked up | ||
266 | - * @param propertyName the name of the property to look up | ||
267 | - * @return value when the propertyName is defined or return null | ||
268 | - */ | ||
269 | - private static Boolean isPropertyEnabled(Dictionary<?, ?> properties, | ||
270 | - String propertyName) { | ||
271 | - Boolean value = null; | ||
272 | - try { | ||
273 | - String s = (String) properties.get(propertyName); | ||
274 | - value = isNullOrEmpty(s) ? null : s.trim().equals("true"); | ||
275 | - } catch (ClassCastException e) { | ||
276 | - // No propertyName defined. | ||
277 | - value = null; | ||
278 | - } | ||
279 | - return value; | ||
280 | - } | ||
281 | - | ||
282 | @Override | 262 | @Override |
283 | public void triggerProbe(Host host) { | 263 | public void triggerProbe(Host host) { |
284 | log.info("Triggering probe on device {}", host); | 264 | log.info("Triggering probe on device {}", host); | ... | ... |
... | @@ -275,6 +275,84 @@ public abstract class Tools { | ... | @@ -275,6 +275,84 @@ public abstract class Tools { |
275 | } | 275 | } |
276 | 276 | ||
277 | /** | 277 | /** |
278 | + * Get Integer property from the propertyName | ||
279 | + * Return null if propertyName is not found. | ||
280 | + * | ||
281 | + * @param properties properties to be looked up | ||
282 | + * @param propertyName the name of the property to look up | ||
283 | + * @return value when the propertyName is defined or return null | ||
284 | + */ | ||
285 | + public static Integer getIntegerProperty(Dictionary<?, ?> properties, | ||
286 | + String propertyName) { | ||
287 | + Integer value; | ||
288 | + try { | ||
289 | + String s = get(properties, propertyName); | ||
290 | + value = Strings.isNullOrEmpty(s) ? null : Integer.valueOf(s); | ||
291 | + } catch (NumberFormatException | ClassCastException e) { | ||
292 | + value = null; | ||
293 | + } | ||
294 | + return value; | ||
295 | + } | ||
296 | + | ||
297 | + /** | ||
298 | + * Get Integer property from the propertyName | ||
299 | + * Return default value if propertyName is not found. | ||
300 | + * | ||
301 | + * @param properties properties to be looked up | ||
302 | + * @param propertyName the name of the property to look up | ||
303 | + * @param defaultValue the default value that to be assigned | ||
304 | + * @return value when the propertyName is defined or return default value | ||
305 | + */ | ||
306 | + public static int getIntegerProperty(Dictionary<?, ?> properties, | ||
307 | + String propertyName, | ||
308 | + int defaultValue) { | ||
309 | + try { | ||
310 | + String s = get(properties, propertyName); | ||
311 | + return Strings.isNullOrEmpty(s) ? defaultValue : Integer.valueOf(s); | ||
312 | + } catch (NumberFormatException | ClassCastException e) { | ||
313 | + return defaultValue; | ||
314 | + } | ||
315 | + } | ||
316 | + | ||
317 | + /** | ||
318 | + * Check property name is defined and set to true. | ||
319 | + * | ||
320 | + * @param properties properties to be looked up | ||
321 | + * @param propertyName the name of the property to look up | ||
322 | + * @return value when the propertyName is defined or return null | ||
323 | + */ | ||
324 | + public static Boolean isPropertyEnabled(Dictionary<?, ?> properties, | ||
325 | + String propertyName) { | ||
326 | + Boolean value; | ||
327 | + try { | ||
328 | + String s = get(properties, propertyName); | ||
329 | + value = Strings.isNullOrEmpty(s) ? null : Boolean.valueOf(s); | ||
330 | + } catch (ClassCastException e) { | ||
331 | + value = null; | ||
332 | + } | ||
333 | + return value; | ||
334 | + } | ||
335 | + | ||
336 | + /** | ||
337 | + * Check property name is defined as set to true. | ||
338 | + * | ||
339 | + * @param properties properties to be looked up | ||
340 | + * @param propertyName the name of the property to look up | ||
341 | + * @param defaultValue the default value that to be assigned | ||
342 | + * @return value when the propertyName is defined or return the default value | ||
343 | + */ | ||
344 | + public static boolean isPropertyEnabled(Dictionary<?, ?> properties, | ||
345 | + String propertyName, | ||
346 | + boolean defaultValue) { | ||
347 | + try { | ||
348 | + String s = get(properties, propertyName); | ||
349 | + return Strings.isNullOrEmpty(s) ? defaultValue : Boolean.valueOf(s); | ||
350 | + } catch (ClassCastException e) { | ||
351 | + return defaultValue; | ||
352 | + } | ||
353 | + } | ||
354 | + | ||
355 | + /** | ||
278 | * Suspends the current thread for a specified number of millis. | 356 | * Suspends the current thread for a specified number of millis. |
279 | * | 357 | * |
280 | * @param ms number of millis | 358 | * @param ms number of millis | ... | ... |
-
Please register or login to post a comment