From 052d5b879e009edaf73ca5a0b7c5fbfcbbfc3b3a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 16 Jun 2023 11:57:12 +0200 Subject: [PATCH] Convert mdsal-binding-runtime-osgi to a JPMS module Ditch Automatic-Module-Name and instead provide a proper module. JIRA: MDSAL-619 Change-Id: I940072ba15c14a73b918f41c11c80a85e31aa872 Signed-off-by: Robert Varga --- binding/mdsal-binding-runtime-osgi/pom.xml | 31 ++++++++++--------- .../src/main/java/module-info.java | 25 +++++++++++++++ .../impl/GlobalBindingRuntimeContext.java | 19 +++++------- 3 files changed, 49 insertions(+), 26 deletions(-) create mode 100644 binding/mdsal-binding-runtime-osgi/src/main/java/module-info.java diff --git a/binding/mdsal-binding-runtime-osgi/pom.xml b/binding/mdsal-binding-runtime-osgi/pom.xml index 38a6b71e1a..c2dad73aa3 100644 --- a/binding/mdsal-binding-runtime-osgi/pom.xml +++ b/binding/mdsal-binding-runtime-osgi/pom.xml @@ -20,6 +20,23 @@ bundle + + com.github.spotbugs + spotbugs-annotations + true + + + com.google.guava + guava + + + org.opendaylight.yangtools + yang-model-api + + + org.opendaylight.mdsal + mdsal-binding-runtime-api + org.opendaylight.mdsal mdsal-binding-runtime-spi @@ -55,18 +72,4 @@ test - - - - - org.apache.felix - maven-bundle-plugin - - - org.opendaylight.mdsal.binding.runtime.osgi - - - - - diff --git a/binding/mdsal-binding-runtime-osgi/src/main/java/module-info.java b/binding/mdsal-binding-runtime-osgi/src/main/java/module-info.java new file mode 100644 index 0000000000..fd6aba72bc --- /dev/null +++ b/binding/mdsal-binding-runtime-osgi/src/main/java/module-info.java @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 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 + */ +module org.opendaylight.mdsal.binding.runtime.osgi { + exports org.opendaylight.mdsal.binding.runtime.osgi; + + requires transitive org.opendaylight.mdsal.dom.schema.osgi; + + requires com.google.common; + requires org.opendaylight.mdsal.binding.runtime.api; + requires org.opendaylight.mdsal.binding.runtime.spi; + requires org.osgi.framework; + requires org.osgi.service.component; + requires org.slf4j; + + // Annotations + requires static com.github.spotbugs.annotations; + requires static org.checkerframework.checker.qual; + requires static org.eclipse.jdt.annotation; + requires static org.osgi.service.component.annotations; +} diff --git a/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/GlobalBindingRuntimeContext.java b/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/GlobalBindingRuntimeContext.java index 46f7d2e924..551efb3c44 100644 --- a/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/GlobalBindingRuntimeContext.java +++ b/binding/mdsal-binding-runtime-osgi/src/main/java/org/opendaylight/mdsal/binding/runtime/osgi/impl/GlobalBindingRuntimeContext.java @@ -9,7 +9,6 @@ package org.opendaylight.mdsal.binding.runtime.osgi.impl; import static com.google.common.base.Verify.verifyNotNull; -import com.google.common.annotations.Beta; import com.google.common.primitives.UnsignedLong; import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext; import org.opendaylight.mdsal.binding.runtime.osgi.OSGiBindingRuntimeContext; @@ -24,29 +23,25 @@ import org.slf4j.LoggerFactory; /** * A global {@link BindingRuntimeContext}. It is injected with latest {@link OSGiBindingRuntimeContext} generation. */ -@Beta @Component(service = BindingRuntimeContext.class, immediate = true) public final class GlobalBindingRuntimeContext extends ForwardingBindingRuntimeContext { private static final Logger LOG = LoggerFactory.getLogger(GlobalBindingRuntimeContext.class); - @Reference - OSGiBindingRuntimeContext osgi = null; - + private final UnsignedLong generation; private BindingRuntimeContext delegate; - private UnsignedLong generation; - - @Override - protected BindingRuntimeContext delegate() { - return verifyNotNull(delegate); - } @Activate - void activate() { + public GlobalBindingRuntimeContext(@Reference final OSGiBindingRuntimeContext osgi) { generation = osgi.getGeneration(); delegate = osgi.getService(); LOG.info("Global BindingRuntimeContext generation {} activated", generation); } + @Override + protected BindingRuntimeContext delegate() { + return verifyNotNull(delegate); + } + @Deactivate void deactivate() { delegate = null; -- 2.36.6