From 2ffac169b97ad0b8294635d8f27874d24fae28aa Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 11 Dec 2020 01:27:45 +0100 Subject: [PATCH] Convert yang-data-jaxen to OSGi DS We do not need a dependency on osgi.core here, just use component annotations. Change-Id: If19fd9722e7c09088a5dc8839ef774813a4a217d Signed-off-by: Robert Varga --- attic/yang-data-jaxen/pom.xml | 8 +++- .../data/jaxen/JaxenSchemaContextFactory.java | 28 ++++++++++++++ .../yang/data/jaxen/osgi/Activator.java | 38 ------------------- .../yang/data/jaxen/osgi/package-info.java | 11 ------ docs/pom.xml | 5 --- 5 files changed, 34 insertions(+), 56 deletions(-) delete mode 100644 attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/Activator.java delete mode 100644 attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/package-info.java diff --git a/attic/yang-data-jaxen/pom.xml b/attic/yang-data-jaxen/pom.xml index 25495c0385..8ed184e126 100644 --- a/attic/yang-data-jaxen/pom.xml +++ b/attic/yang-data-jaxen/pom.xml @@ -58,9 +58,14 @@ org.kohsuke.metainf-services metainf-services + + com.guicedee.services + javax.inject + true + org.osgi - org.osgi.core + org.osgi.service.component.annotations @@ -84,7 +89,6 @@ org.opendaylight.yangtools.yang.data.jaxen - org.opendaylight.yangtools.yang.data.jaxen.osgi.Activator diff --git a/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java b/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java index 22117dfe56..e66810fbdf 100644 --- a/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java +++ b/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/JaxenSchemaContextFactory.java @@ -7,17 +7,45 @@ */ package org.opendaylight.yangtools.yang.data.jaxen; +import javax.inject.Inject; +import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNullByDefault; import org.kohsuke.MetaInfServices; import org.opendaylight.yangtools.yang.data.jaxen.api.XPathSchemaContext; import org.opendaylight.yangtools.yang.data.jaxen.api.XPathSchemaContextFactory; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @MetaInfServices +@Singleton +@Component @NonNullByDefault public final class JaxenSchemaContextFactory implements XPathSchemaContextFactory { + private static final Logger LOG = LoggerFactory.getLogger(JaxenSchemaContextFactory.class); + + @Inject + public JaxenSchemaContextFactory() { + // For DI + } + @Override public XPathSchemaContext createContext(final EffectiveModelContext context) { return new JaxenSchemaContext(context); } + + @Activate + @SuppressWarnings("static-method") + void activate() { + LOG.info("Jaxen XPathSchemaContextFactory enabled"); + } + + @Deactivate + @SuppressWarnings("static-method") + void deactivate() { + LOG.info("Jaxen XPathSchemaContextFactory disabled"); + } } diff --git a/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/Activator.java b/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/Activator.java deleted file mode 100644 index e8b7ec4d22..0000000000 --- a/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/Activator.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2018 Pantheon Technologies, 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.yangtools.yang.data.jaxen.osgi; - -import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.data.jaxen.JaxenSchemaContextFactory; -import org.opendaylight.yangtools.yang.data.jaxen.api.XPathSchemaContextFactory; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceRegistration; - -/** - * YANG Jaxen XPath implementation activator. Publishes a {@link XPathSchemaContextFactory} implementation on bundle - * start. - * - * @author Robert Varga - */ -public final class Activator implements BundleActivator { - private ServiceRegistration<@NonNull XPathSchemaContextFactory> registration; - - @Override - public void start(final BundleContext context) throws Exception { - registration = context.registerService(XPathSchemaContextFactory.class, new JaxenSchemaContextFactory(), null); - } - - @Override - public void stop(final BundleContext context) throws Exception { - if (registration != null) { - registration.unregister(); - registration = null; - } - } -} diff --git a/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/package-info.java b/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/package-info.java deleted file mode 100644 index 1b3732a347..0000000000 --- a/attic/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/osgi/package-info.java +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2018 Pantheon Technologies, 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 - */ -/** - * OSGi-specific Jaxen XPath implementation code. Contains activators and similar. - */ -package org.opendaylight.yangtools.yang.data.jaxen.osgi; \ No newline at end of file diff --git a/docs/pom.xml b/docs/pom.xml index e6157e1b5b..d3d19dc968 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -226,11 +226,6 @@ org.osgi.service.component.annotations provided - - org.osgi - org.osgi.core - provided - org.immutables value -- 2.36.6