From 2d4e6da5388765e2653449f4ac0670b202a9a4a2 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 30 Jul 2020 19:07:38 +0200 Subject: [PATCH] Convert netty-timer-config to OSGi DS This is an extremely simple forwarder, convert it to OSGi DS. JIRA: CONTROLLER-1882 Change-Id: I8fbb71fba704e273b8e1c8fa79b4e4dd90aeff31 Signed-off-by: Robert Varga --- .../config/netty-timer-config/pom.xml | 4 ++ .../yang/netty/timer/OSGiGlobalTimer.java | 60 +++++++++++++++++++ .../OSGI-INF/blueprint/netty-timer.xml | 22 ------- 3 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/OSGiGlobalTimer.java delete mode 100644 opendaylight/config/netty-timer-config/src/main/resources/OSGI-INF/blueprint/netty-timer.xml diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index 77cc3edbaa..b1b777f3d9 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -21,5 +21,9 @@ io.netty netty-common + + org.osgi + osgi.cmpn + diff --git a/opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/OSGiGlobalTimer.java b/opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/OSGiGlobalTimer.java new file mode 100644 index 0000000000..9613000792 --- /dev/null +++ b/opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/OSGiGlobalTimer.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.config.yang.netty.timer; + +import io.netty.util.Timeout; +import io.netty.util.Timer; +import io.netty.util.TimerTask; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; +import org.osgi.service.metatype.annotations.AttributeDefinition; +import org.osgi.service.metatype.annotations.Designate; +import org.osgi.service.metatype.annotations.ObjectClassDefinition; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Component(immediate = true, configurationPid = "org.opendaylight.netty.timer", property = "type=global-timer") +@Designate(ocd = OSGiGlobalTimer.Config.class) +public final class OSGiGlobalTimer implements Timer { + @ObjectClassDefinition + public @interface Config { + @AttributeDefinition(name = "tick-duration") + long tickDuration() default 0; + @AttributeDefinition(name = "ticks-per-wheel") + int ticksPerWheel() default 0; + } + + private static final Logger LOG = LoggerFactory.getLogger(OSGiGlobalTimer.class); + + private Timer delegate; + + @Override + public Timeout newTimeout(final TimerTask task, final long delay, final TimeUnit unit) { + return delegate.newTimeout(task, delay, unit); + } + + @Override + public Set stop() { + return delegate.stop(); + } + + @Activate + void activate(final Config config) { + delegate = HashedWheelTimerCloseable.newInstance(config.tickDuration(), config.ticksPerWheel()); + LOG.info("Global Netty timer started"); + } + + @Deactivate + void deactivate() { + delegate.stop(); + LOG.info("Global Netty timer stopped"); + } +} diff --git a/opendaylight/config/netty-timer-config/src/main/resources/OSGI-INF/blueprint/netty-timer.xml b/opendaylight/config/netty-timer-config/src/main/resources/OSGI-INF/blueprint/netty-timer.xml deleted file mode 100644 index b198449a15..0000000000 --- a/opendaylight/config/netty-timer-config/src/main/resources/OSGI-INF/blueprint/netty-timer.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - -- 2.36.6