OSGi property annotations for dhcp relay app
Change-Id: I5859f28d087e907548923e9526a8c1c0624f3cb0
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
index e70be90..8decb7f 100644
--- a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
@@ -115,20 +115,25 @@
import static org.onlab.packet.MacAddress.valueOf;
import static org.onlab.packet.dhcp.DhcpRelayAgentOption.RelayAgentInfoOptions.CIRCUIT_ID;
import static org.onlab.util.Tools.groupedThreads;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.LEARN_ROUTE_FROM_LEASE_QUERY;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.LEARN_ROUTE_FROM_LEASE_QUERY_DEFAULT;
import static org.onosproject.net.flowobjective.Objective.Operation.ADD;
import static org.onosproject.net.flowobjective.Objective.Operation.REMOVE;
-@Component(service = { DhcpHandler.class, HostProvider.class })
-//@Property(name = "version", value = "4")
+@Component(
+ service = { DhcpHandler.class, HostProvider.class },
+ property = {
+ "version:Integer = 4",
+ LEARN_ROUTE_FROM_LEASE_QUERY + ":Boolean=" + LEARN_ROUTE_FROM_LEASE_QUERY_DEFAULT
+ }
+)
public class Dhcp4HandlerImpl implements DhcpHandler, HostProvider {
public static final String DHCP_V4_RELAY_APP = "org.onosproject.Dhcp4HandlerImpl";
public static final ProviderId PROVIDER_ID = new ProviderId("dhcp4", DHCP_V4_RELAY_APP);
private static final String BROADCAST_IP = "255.255.255.255";
private static final int IGNORE_CONTROL_PRIORITY = PacketPriority.CONTROL.priorityValue() + 1000;
- private static final String LQ_ROUTE_PROPERTY_NAME = "learnRouteFromLeasequery";
-
private static final TrafficSelector CLIENT_SERVER_SELECTOR = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4)
.matchIPProtocol(IPv4.PROTOCOL_UDP)
@@ -187,9 +192,8 @@
private List<DhcpServerInfo> defaultServerInfoList = new CopyOnWriteArrayList<>();
private List<DhcpServerInfo> indirectServerInfoList = new CopyOnWriteArrayList<>();
- //@Property(name = Dhcp4HandlerImpl.LQ_ROUTE_PROPERTY_NAME, boolValue = false,
- // label = "Enable learning routing information from LQ")
- private Boolean learnRouteFromLeasequery = Boolean.TRUE;
+ /** Enable learning routing information from LQ. */
+ private Boolean learnRouteFromLeasequery = LEARN_ROUTE_FROM_LEASE_QUERY_DEFAULT;
private Executor hostEventExecutor = newSingleThreadExecutor(
groupedThreads("dhcp4-event-host", "%d", log));
@@ -220,7 +224,7 @@
protected void modified(ComponentContext context) {
Dictionary<?, ?> properties = context.getProperties();
Boolean flag;
- flag = Tools.isPropertyEnabled(properties, Dhcp4HandlerImpl.LQ_ROUTE_PROPERTY_NAME);
+ flag = Tools.isPropertyEnabled(properties, LEARN_ROUTE_FROM_LEASE_QUERY);
if (flag != null) {
learnRouteFromLeasequery = flag;
log.info("Learning routes from DHCP leasequery is {}",
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
index d42cc09..a30d685 100644
--- a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
@@ -120,18 +120,25 @@
import static com.google.common.base.Preconditions.checkState;
import static java.util.concurrent.Executors.newSingleThreadExecutor;
import static org.onlab.util.Tools.groupedThreads;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.LEARN_ROUTE_FROM_LEASE_QUERY;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.LEARN_ROUTE_FROM_LEASE_QUERY_DEFAULT;
import static org.onosproject.net.flowobjective.Objective.Operation.ADD;
import static org.onosproject.net.flowobjective.Objective.Operation.REMOVE;
import java.util.concurrent.Semaphore;
-@Component(service = { DhcpHandler.class, HostProvider.class })
-//@Property(name = "version", value = "6")
+@Component(
+ service = { DhcpHandler.class, HostProvider.class },
+ property = {
+ "version:Integer=6",
+ LEARN_ROUTE_FROM_LEASE_QUERY + ":Boolean=" + LEARN_ROUTE_FROM_LEASE_QUERY_DEFAULT
+ }
+)
+
public class Dhcp6HandlerImpl implements DhcpHandler, HostProvider {
public static final String DHCP_V6_RELAY_APP = "org.onosproject.Dhcp6HandlerImpl";
public static final ProviderId PROVIDER_ID = new ProviderId("dhcp6", DHCP_V6_RELAY_APP);
private static final int IGNORE_CONTROL_PRIORITY = PacketPriority.CONTROL.priorityValue() + 1000;
private String gCount = "global";
- private static final String LQ_ROUTE_PROPERTY_NAME = "learnRouteFromLeasequery";
private static final TrafficSelector CLIENT_SERVER_SELECTOR = DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV6)
.matchIPProtocol(IPv6.PROTOCOL_UDP)
@@ -197,9 +204,8 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected ComponentConfigService cfgService;
- //@Property(name = Dhcp6HandlerImpl.LQ_ROUTE_PROPERTY_NAME, boolValue = false,
- // label = "Enable learning routing information from LQ")
- private Boolean learnRouteFromLeasequery = Boolean.TRUE;
+ /** Enable learning routing information from LQ. */
+ private Boolean learnRouteFromLeasequery = LEARN_ROUTE_FROM_LEASE_QUERY_DEFAULT;
protected HostProviderService providerService;
protected ApplicationId appId;
@@ -267,7 +273,7 @@
protected void modified(ComponentContext context) {
Dictionary<?, ?> properties = context.getProperties();
Boolean flag;
- flag = Tools.isPropertyEnabled(properties, Dhcp6HandlerImpl.LQ_ROUTE_PROPERTY_NAME);
+ flag = Tools.isPropertyEnabled(properties, LEARN_ROUTE_FROM_LEASE_QUERY);
if (flag != null) {
learnRouteFromLeasequery = flag;
log.info("Learning routes from DHCP leasequery is {}",
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java
index 3bb7f4e..bb5a794 100644
--- a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java
@@ -96,12 +96,26 @@
import java.util.stream.Stream;
import static org.onlab.util.Tools.groupedThreads;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.ARP_ENABLED;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.ARP_ENABLED_DEFAULT;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.DHCP_FPM_ENABLED;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.DHCP_FPM_ENABLED_DEFAULT;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.DHCP_POLL_INTERVAL;
+import static org.onosproject.dhcprelay.OsgiPropertyConstants.DHCP_POLL_INTERVAL_DEFAULT;
import static org.onosproject.net.config.basics.SubjectFactories.APP_SUBJECT_FACTORY;
/**
* DHCP Relay Agent Application Component.
*/
-@Component(immediate = true, service = DhcpRelayService.class)
+@Component(
+ immediate = true,
+ service = DhcpRelayService.class,
+ property = {
+ ARP_ENABLED + ":Boolean=" + ARP_ENABLED_DEFAULT,
+ DHCP_POLL_INTERVAL + ":Integer=" + DHCP_POLL_INTERVAL_DEFAULT,
+ DHCP_FPM_ENABLED + ":Boolean=" + DHCP_FPM_ENABLED_DEFAULT
+ }
+)
public class DhcpRelayManager implements DhcpRelayService {
public static final String DHCP_RELAY_APP = "org.onosproject.dhcprelay";
public static final String ROUTE_STORE_IMPL =
@@ -188,17 +202,14 @@
target = "(version=6)")
protected DhcpHandler v6Handler;
- //@Property(name = "arpEnabled", boolValue = true,
- // label = "Enable Address resolution protocol")
- protected boolean arpEnabled = true;
+ /** Enable Address resolution protocol. */
+ protected boolean arpEnabled = ARP_ENABLED_DEFAULT;
- //@Property(name = "dhcpPollInterval", intValue = 24 * 3600,
- // label = "dhcp relay poll interval")
- protected int dhcpPollInterval = 24 * 3600;
+ /** dhcp relay poll interval. */
+ protected int dhcpPollInterval = DHCP_POLL_INTERVAL_DEFAULT;
- //@Property(name = "dhcpFpmEnabled", boolValue = false,
- // label = "Enable DhcpRelay Fpm")
- protected boolean dhcpFpmEnabled = false;
+ /** Enable DhcpRelay Fpm. */
+ protected boolean dhcpFpmEnabled = DHCP_FPM_ENABLED_DEFAULT;
private ScheduledExecutorService timerExecutor;
@@ -269,7 +280,7 @@
Dictionary<?, ?> properties = context.getProperties();
Boolean flag;
- flag = Tools.isPropertyEnabled(properties, "arpEnabled");
+ flag = Tools.isPropertyEnabled(properties, ARP_ENABLED);
if (flag != null) {
arpEnabled = flag;
log.info("Address resolution protocol is {}",
@@ -282,7 +293,7 @@
cancelArpPackets();
}
- int intervalVal = Tools.getIntegerProperty(properties, "dhcpPollInterval");
+ int intervalVal = Tools.getIntegerProperty(properties, DHCP_POLL_INTERVAL);
log.info("DhcpRelay poll interval new {} old {}", intervalVal, dhcpPollInterval);
if (intervalVal != dhcpPollInterval) {
timerExecutor.shutdown();
@@ -297,7 +308,7 @@
v6Handler.setDhcp6PollInterval(dhcpPollInterval);
}
- flag = Tools.isPropertyEnabled(properties, "dhcpFpmEnabled");
+ flag = Tools.isPropertyEnabled(properties, DHCP_FPM_ENABLED);
if (flag != null) {
boolean oldValue = dhcpFpmEnabled;
dhcpFpmEnabled = flag;
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/OsgiPropertyConstants.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/OsgiPropertyConstants.java
new file mode 100644
index 0000000..7e794fe
--- /dev/null
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/OsgiPropertyConstants.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.dhcprelay;
+
+public final class OsgiPropertyConstants {
+ private OsgiPropertyConstants() {
+ }
+
+ static final String ARP_ENABLED = "arpEnabled";
+ static final boolean ARP_ENABLED_DEFAULT = true;
+
+ static final String DHCP_POLL_INTERVAL = "dhcpPollInterval";
+ static final int DHCP_POLL_INTERVAL_DEFAULT = 86400;
+
+ static final String DHCP_FPM_ENABLED = "dhcpFpmEnabled";
+ static final boolean DHCP_FPM_ENABLED_DEFAULT = false;
+
+ static final String LEARN_ROUTE_FROM_LEASE_QUERY = "learnRouteFromLeasequery";
+ static final boolean LEARN_ROUTE_FROM_LEASE_QUERY_DEFAULT = false;
+}
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java
index f199671..bec99e1 100644
--- a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java
@@ -43,8 +43,13 @@
/**
* Persistent Fpm Prefix Store with Listener.
*/
-@Component(immediate = true, service = DhcpFpmPrefixStore.class)
-//@Property(name = "fpm_type", value = "DHCP")
+@Component(
+ immediate = true,
+ service = DhcpFpmPrefixStore.class,
+ property = {
+ "fpm_type=DHCP"
+ }
+)
public class DistributedFpmPrefixStore implements DhcpFpmPrefixStore {
private static final KryoNamespace APP_KRYO = KryoNamespace.newBuilder()