Improve segmented journal actor metrics
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / DatastoreContextIntrospectorFactory.java
index 1b7c0281a6f40646e9622690e77618a079ea3daf..1bc5e9dac461f6e39198c478826cc311bb31b8a1 100644 (file)
@@ -7,47 +7,25 @@
  */
 package org.opendaylight.controller.cluster.datastore;
 
-import com.google.common.annotations.VisibleForTesting;
-import javassist.ClassPool;
-import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.api.ClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
-import org.opendaylight.mdsal.binding.generator.util.JavassistUtils;
+import java.util.Map;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 
 /**
- * Factory for creating DatastoreContextIntrospector instances.
+ * Factory for creating {@link DatastoreContextIntrospector} instances.
  *
  * @author Thomas Pantelis
  */
-public class DatastoreContextIntrospectorFactory {
-    private final DOMSchemaService schemaService;
-    private final ClassLoadingStrategy classLoadingStrategy;
-
-    public DatastoreContextIntrospectorFactory(DOMSchemaService schemaService,
-            ClassLoadingStrategy classLoadingStrategy) {
-        this.schemaService = schemaService;
-        this.classLoadingStrategy = classLoadingStrategy;
-    }
-
-    public DatastoreContextIntrospector newInstance(LogicalDatastoreType datastoreType) {
-        return new DatastoreContextIntrospector(DatastoreContext.newBuilder()
-                .logicalStoreType(datastoreType).tempFileDirectory("./data").build(), newBindingSerializer());
-    }
-
-    @VisibleForTesting
-    DatastoreContextIntrospector newInstance(DatastoreContext context) {
-        return new DatastoreContextIntrospector(context, newBindingSerializer());
-    }
-
-    private BindingNormalizedNodeSerializer newBindingSerializer() {
-        BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(
-                StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault())));
-        codecRegistry.onBindingRuntimeContextUpdated(BindingRuntimeContext.create(classLoadingStrategy,
-                schemaService.getGlobalContext()));
-        return codecRegistry;
-    }
+@NonNullByDefault
+public interface DatastoreContextIntrospectorFactory {
+    /**
+     * Create a new {@link DatastoreContextIntrospector} initialized with specified properties.
+     *
+     * @param datastoreType Datastore type
+     * @param properties optional initial properties
+     * @return A new DatastoreContextIntrospector
+     */
+    DatastoreContextIntrospector newInstance(LogicalDatastoreType datastoreType,
+        @Nullable Map<String, Object> properties);
 }