Change-Id: Ibaf972650045b5d85be155f653f7eef36aae6c6e
Signed-off-by: Robert Varga <rovarga@cisco.com>
private final AtomicReference<SoftReference<BindingRuntimeContext>> refBindingContext =
new AtomicReference<>(new SoftReference<BindingRuntimeContext>(null));
private final AtomicReference<SoftReference<BindingRuntimeContext>> refBindingContext =
new AtomicReference<>(new SoftReference<BindingRuntimeContext>(null));
- private final SchemaContextProvider schemaContextProvider;
private final SchemaSourceProvider<YangTextSchemaSource> sourceProvider;
private final ExecutorService notificationExecutor = Executors.newSingleThreadExecutor(new ThreadFactory() {
private final SchemaSourceProvider<YangTextSchemaSource> sourceProvider;
private final ExecutorService notificationExecutor = Executors.newSingleThreadExecutor(new ThreadFactory() {
public YangStoreService(final SchemaContextProvider schemaContextProvider,
final SchemaSourceProvider<YangTextSchemaSource> sourceProvider) {
public YangStoreService(final SchemaContextProvider schemaContextProvider,
final SchemaSourceProvider<YangTextSchemaSource> sourceProvider) {
- this.schemaContextProvider = schemaContextProvider;
this.sourceProvider = sourceProvider;
}
this.sourceProvider = sourceProvider;
}
while (ret == null) {
// We need to be compute a new value
// TODO sourceProvider is not a snapshot
while (ret == null) {
// We need to be compute a new value
// TODO sourceProvider is not a snapshot
- ret = new YangStoreSnapshot(schemaContextProvider.getSchemaContext(), refBindingContext.get().get(), sourceProvider);
+ ret = new YangStoreSnapshot(refBindingContext.get().get(), sourceProvider);
if (!ref.compareAndSet(r, new SoftReference<>(ret))) {
LOG.debug("Concurrent refresh detected, recomputing snapshot");
if (!ref.compareAndSet(r, new SoftReference<>(ret))) {
LOG.debug("Concurrent refresh detected, recomputing snapshot");
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Set;
import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
import org.opendaylight.controller.config.yangjmxgenerator.PackageTranslator;
import java.util.Set;
import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry;
import org.opendaylight.controller.config.yangjmxgenerator.PackageTranslator;
private final Map<QName, Map<String, ModuleMXBeanEntry>> qNamesToIdentitiesToModuleMXBeanEntries;
private final Map<QName, Map<String, ModuleMXBeanEntry>> qNamesToIdentitiesToModuleMXBeanEntries;
- private final SchemaContext schemaContext;
private final BindingRuntimeContext bindingContextProvider;
private final SchemaSourceProvider<YangTextSchemaSource> sourceProvider;
private final BindingRuntimeContext bindingContextProvider;
private final SchemaSourceProvider<YangTextSchemaSource> sourceProvider;
- public YangStoreSnapshot(final SchemaContext resolveSchemaContext,
- final BindingRuntimeContext bindingContextProvider,
+ public YangStoreSnapshot(final BindingRuntimeContext bindingContextProvider,
final SchemaSourceProvider<YangTextSchemaSource> sourceProvider) {
this.bindingContextProvider = bindingContextProvider;
this.sourceProvider = sourceProvider;
final SchemaSourceProvider<YangTextSchemaSource> sourceProvider) {
this.bindingContextProvider = bindingContextProvider;
this.sourceProvider = sourceProvider;
- LOG.trace("Resolved modules:{}", resolveSchemaContext.getModules());
- this.schemaContext = resolveSchemaContext;
- // JMX generator
+ final SchemaContext schemaContext = bindingContextProvider.getSchemaContext();
+ LOG.trace("Resolved modules:{}", schemaContext.getModules());
+
+ // JMX generator
Map<String, String> namespaceToPackageMapping = Maps.newHashMap();
PackageTranslator packageTranslator = new PackageTranslator(namespaceToPackageMapping);
Map<QName, ServiceInterfaceEntry> qNamesToSIEs = new HashMap<>();
Map<IdentitySchemaNode, ServiceInterfaceEntry> knownSEITracker = new HashMap<>();
// create SIE structure qNamesToSIEs
Map<String, String> namespaceToPackageMapping = Maps.newHashMap();
PackageTranslator packageTranslator = new PackageTranslator(namespaceToPackageMapping);
Map<QName, ServiceInterfaceEntry> qNamesToSIEs = new HashMap<>();
Map<IdentitySchemaNode, ServiceInterfaceEntry> knownSEITracker = new HashMap<>();
// create SIE structure qNamesToSIEs
- for (Module module : resolveSchemaContext.getModules()) {
+ for (Module module : schemaContext.getModules()) {
String packageName = packageTranslator.getPackageName(module);
Map<QName, ServiceInterfaceEntry> namesToSIEntries = ServiceInterfaceEntry
.create(module, packageName, knownSEITracker);
String packageName = packageTranslator.getPackageName(module);
Map<QName, ServiceInterfaceEntry> namesToSIEntries = ServiceInterfaceEntry
.create(module, packageName, knownSEITracker);
for (Module module : schemaContext.getModules()) {
String packageName = packageTranslator.getPackageName(module);
TypeProviderWrapper typeProviderWrapper = new TypeProviderWrapper(
for (Module module : schemaContext.getModules()) {
String packageName = packageTranslator.getPackageName(module);
TypeProviderWrapper typeProviderWrapper = new TypeProviderWrapper(
- new TypeProviderImpl(resolveSchemaContext));
+ new TypeProviderImpl(schemaContext));
QName qName = QName.create(module.getNamespace(), module.getRevision(), module.getName());
Map<String /* MB identity local name */, ModuleMXBeanEntry> namesToMBEs =
QName qName = QName.create(module.getNamespace(), module.getRevision(), module.getName());
Map<String /* MB identity local name */, ModuleMXBeanEntry> namesToMBEs =
- Collections.unmodifiableMap(ModuleMXBeanEntry.create(module, qNamesToSIEs, resolveSchemaContext,
+ Collections.unmodifiableMap(ModuleMXBeanEntry.create(module, qNamesToSIEs, schemaContext,
typeProviderWrapper, packageName));
moduleMXBeanEntryMap.put(module.getNamespace().toString(), namesToMBEs);
typeProviderWrapper, packageName));
moduleMXBeanEntryMap.put(module.getNamespace().toString(), namesToMBEs);
@Override
public Set<Module> getModules() {
@Override
public Set<Module> getModules() {
- final Set<Module> modules = Sets.newHashSet(schemaContext.getModules());
- for (final Module module : schemaContext.getModules()) {
+ final Set<Module> modules = Sets.newHashSet(bindingContextProvider.getSchemaContext().getModules());
+ for (final Module module : bindingContextProvider.getSchemaContext().getModules()) {
modules.addAll(module.getSubmodules());
}
return modules;
modules.addAll(module.getSubmodules());
}
return modules;
- public boolean equals(final Object o) {
- if (this == o) {
+ public boolean equals(final Object obj) {
+ if (this == obj) {
- if (!(o instanceof YangStoreSnapshot)) {
- return false;
- }
-
- final YangStoreSnapshot that = (YangStoreSnapshot) o;
- if (schemaContext != null ? !schemaContext.equals(that.schemaContext) : that.schemaContext != null) {
+ if (!(obj instanceof YangStoreSnapshot)) {
+ final YangStoreSnapshot other = (YangStoreSnapshot) obj;
+ return Objects.equals(bindingContextProvider, other.bindingContextProvider);
}
@Override
public int hashCode() {
}
@Override
public int hashCode() {
- return schemaContext != null ? schemaContext.hashCode() : 0;
+ return Objects.hashCode(bindingContextProvider);