<packaging>bundle</packaging>
<dependencies>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yang-data-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-dom-codec-api</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-binding-dom-codec-spi</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-binding-runtime-api</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-binding-runtime-osgi</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-dom-schema-osgi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>yang-binding</artifactId>
+ </dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.framework</artifactId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
- <Automatic-Module-Name>org.opendaylight.mdsal.binding.dom.codec.osgi</Automatic-Module-Name>
<!-- Karaf cannot handle Factory Component requirements, see https://issues.apache.org/jira/browse/KARAF-6625 -->
<_dsannotations-options>norequirements</_dsannotations-options>
</instructions>
--- /dev/null
+/*
+ * Copyright (c) 2022 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.dom.codec.osgi {
+ exports org.opendaylight.mdsal.binding.dom.codec.osgi;
+
+ requires transitive org.opendaylight.mdsal.dom.schema.osgi;
+ requires org.opendaylight.mdsal.binding.dom.codec.api;
+ requires org.opendaylight.mdsal.binding.dom.codec.spi;
+ requires org.opendaylight.mdsal.binding.runtime.osgi;
+ requires org.opendaylight.yangtools.yang.binding;
+ requires org.opendaylight.yangtools.yang.data.api;
+ requires org.osgi.framework;
+ requires org.osgi.service.component;
+ requires org.slf4j;
+
+ // Annotations
+ requires static org.checkerframework.checker.qual;
+ requires static org.gaul.modernizer_maven_annotations;
+ requires static org.osgi.service.component.annotations;
+}
import java.util.Set;
import org.checkerframework.checker.lock.qual.GuardedBy;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.binding.dom.codec.osgi.OSGiBindingDOMCodecServices;
import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecFactory;
import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext;
import org.opendaylight.mdsal.binding.runtime.osgi.OSGiBindingRuntimeContext;
abstract void remove(OSGiBindingRuntimeContext runtimeContext);
- abstract @NonNull AbstractInstances toActive(BindingDOMCodecFactory codecFactory, ComponentFactory factory);
+ abstract @NonNull AbstractInstances toActive(BindingDOMCodecFactory codecFactory,
+ ComponentFactory<OSGiBindingDOMCodecServices> factory);
abstract @NonNull AbstractInstances toInactive();
}
}
@Override
- AbstractInstances toActive(final BindingDOMCodecFactory codecFactory, final ComponentFactory factory) {
+ AbstractInstances toActive(final BindingDOMCodecFactory codecFactory,
+ final ComponentFactory<OSGiBindingDOMCodecServices> factory) {
final ActiveInstances active = new ActiveInstances(codecFactory, factory);
instances.stream()
.sorted(Comparator.comparing(OSGiBindingRuntimeContext::getGeneration).reversed())
}
private static final class ActiveInstances extends AbstractInstances {
- private final Map<OSGiBindingRuntimeContext, ComponentInstance> instances = new IdentityHashMap<>();
+ private final Map<OSGiBindingRuntimeContext, ComponentInstance<OSGiBindingDOMCodecServices>> instances =
+ new IdentityHashMap<>();
+ private final ComponentFactory<OSGiBindingDOMCodecServices> factory;
private final BindingDOMCodecFactory codecFactory;
- private final ComponentFactory factory;
- ActiveInstances(final BindingDOMCodecFactory codecFactory, final ComponentFactory factory) {
+ ActiveInstances(final BindingDOMCodecFactory codecFactory,
+ final ComponentFactory<OSGiBindingDOMCodecServices> factory) {
this.codecFactory = requireNonNull(codecFactory);
this.factory = requireNonNull(factory);
}
@Override
void remove(final OSGiBindingRuntimeContext runtimeContext) {
- final ComponentInstance instance = instances.remove(runtimeContext);
+ final ComponentInstance<OSGiBindingDOMCodecServices> instance = instances.remove(runtimeContext);
if (instance != null) {
instance.dispose();
} else {
@Override
AbstractInstances toActive(final BindingDOMCodecFactory ignoreCodecFactory,
- final ComponentFactory ignoreFactory) {
+ final ComponentFactory<OSGiBindingDOMCodecServices> ignoreFactory) {
throw new IllegalStateException("Attempted to activate active instances");
}
BindingDOMCodecFactory codecFactory = null;
@Reference(target = "(component.factory=" + OSGiBindingDOMCodecServicesImpl.FACTORY_NAME + ")")
- ComponentFactory contextFactory = null;
+ ComponentFactory<OSGiBindingDOMCodecServices> contextFactory = null;
@GuardedBy("this")
private AbstractInstances instances = new InactiveInstances();