http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexSearchOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexSearchOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexSearchOperatorTest.java
index 8874330..870cfe3 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexSearchOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexSearchOperatorTest.java
@@ -19,6 +19,8 @@
 
 package org.apache.hyracks.tests.am.btree;
 
+import java.io.DataOutput;
+
 import org.apache.hyracks.api.constraints.PartitionConstraintHelper;
 import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
 import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
@@ -32,21 +34,13 @@ import 
org.apache.hyracks.dataflow.std.file.ConstantFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.IFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.PlainFileWriterOperatorDescriptor;
 import 
org.apache.hyracks.dataflow.std.misc.ConstantTupleSourceOperatorDescriptor;
+import org.apache.hyracks.storage.am.btree.dataflow.BTreeResourceFactory;
 import 
org.apache.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.common.freepage.LinkedMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.DataOutput;
-
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryBloomFilterKeyFields;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryComparatorFactories;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryKeyFieldCount;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryRecDesc;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryTypeTraits;
-
 public class BTreePrimaryIndexSearchOperatorTest extends 
AbstractBTreeOperatorTest {
 
     @Override
@@ -63,7 +57,7 @@ public class BTreePrimaryIndexSearchOperatorTest extends 
AbstractBTreeOperatorTe
 
         // build tuple containing low and high search key
         // high key and low key
-        ArrayTupleBuilder tb = new ArrayTupleBuilder(primaryKeyFieldCount * 2);
+        ArrayTupleBuilder tb = new 
ArrayTupleBuilder(DataSetConstants.primaryKeyFieldCount * 2);
         DataOutput dos = tb.getDataOutput();
 
         tb.reset();
@@ -74,8 +68,8 @@ public class BTreePrimaryIndexSearchOperatorTest extends 
AbstractBTreeOperatorTe
         new UTF8StringSerializerDeserializer().serialize("200", dos);
         tb.addFieldEndOffset();
 
-        ISerializerDeserializer[] keyRecDescSers = { new 
UTF8StringSerializerDeserializer(),
-                new UTF8StringSerializerDeserializer() };
+        ISerializerDeserializer[] keyRecDescSers =
+                { new UTF8StringSerializerDeserializer(), new 
UTF8StringSerializerDeserializer() };
         RecordDescriptor keyRecDesc = new RecordDescriptor(keyRecDescSers);
 
         ConstantTupleSourceOperatorDescriptor keyProviderOp = new 
ConstantTupleSourceOperatorDescriptor(spec,
@@ -85,10 +79,9 @@ public class BTreePrimaryIndexSearchOperatorTest extends 
AbstractBTreeOperatorTe
         int[] lowKeyFields = { 0 };
         int[] highKeyFields = { 1 };
 
-        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec, primaryRecDesc,
-                storageManager, lcManagerProvider, primarySplitProvider, 
primaryTypeTraits, primaryComparatorFactories,
-                primaryBloomFilterKeyFields, lowKeyFields, highKeyFields, 
true, true, primaryDataflowHelperFactory, false,
-                false, null, NoOpOperationCallbackFactory.INSTANCE, null, 
null, new LinkedMetadataPageManagerFactory());
+        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
+                DataSetConstants.primaryRecDesc, lowKeyFields, highKeyFields, 
true, true, primaryHelperFactory, false,
+                false, null, NoOpOperationCallbackFactory.INSTANCE, null, 
null, false);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryBtreeSearchOp, NC1_ID);
 
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
@@ -103,12 +96,19 @@ public class BTreePrimaryIndexSearchOperatorTest extends 
AbstractBTreeOperatorTe
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((BTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory();
+    public void cleanup() throws Exception {
+        destroyPrimaryIndex();
+    }
+
+    @Override
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.primaryTypeTraits,
+                DataSetConstants.primaryComparatorFactories, 
pageManagerFactory);
     }
 
     @Override
-    public void cleanup() throws Exception {
-        destroyPrimaryIndex();
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.secondaryTypeTraits,
+                DataSetConstants.secondaryComparatorFactories, 
pageManagerFactory);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexStatsOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexStatsOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexStatsOperatorTest.java
index b26071e..5cffd95 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexStatsOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreePrimaryIndexStatsOperatorTest.java
@@ -27,16 +27,12 @@ import 
org.apache.hyracks.dataflow.std.connectors.OneToOneConnectorDescriptor;
 import org.apache.hyracks.dataflow.std.file.ConstantFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.IFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.PlainFileWriterOperatorDescriptor;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
+import org.apache.hyracks.storage.am.btree.dataflow.BTreeResourceFactory;
 import 
org.apache.hyracks.storage.am.common.dataflow.TreeIndexStatsOperatorDescriptor;
-import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.junit.Before;
 import org.junit.Test;
 
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryBloomFilterKeyFields;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryComparatorFactories;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryTypeTraits;
-
 public class BTreePrimaryIndexStatsOperatorTest extends 
AbstractBTreeOperatorTest {
 
     @Override
@@ -51,10 +47,8 @@ public class BTreePrimaryIndexStatsOperatorTest extends 
AbstractBTreeOperatorTes
     public void showPrimaryIndexStats() throws Exception {
         JobSpecification spec = new JobSpecification();
 
-        TreeIndexStatsOperatorDescriptor primaryStatsOp = new 
TreeIndexStatsOperatorDescriptor(spec, storageManager,
-                lcManagerProvider, primarySplitProvider, primaryTypeTraits, 
primaryComparatorFactories,
-                primaryBloomFilterKeyFields, primaryDataflowHelperFactory, 
NoOpOperationCallbackFactory.INSTANCE,
-                pageManagerFactory);
+        TreeIndexStatsOperatorDescriptor primaryStatsOp =
+                new TreeIndexStatsOperatorDescriptor(spec, storageManager, 
primaryHelperFactory);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryStatsOp, NC1_ID);
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
         IOperatorDescriptor printer = new 
PlainFileWriterOperatorDescriptor(spec, outSplits, ",");
@@ -66,12 +60,19 @@ public class BTreePrimaryIndexStatsOperatorTest extends 
AbstractBTreeOperatorTes
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((BTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory();
+    public void cleanup() throws Exception {
+        destroyPrimaryIndex();
     }
 
     @Override
-    public void cleanup() throws Exception {
-        destroyPrimaryIndex();
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.primaryTypeTraits,
+                DataSetConstants.primaryComparatorFactories, 
pageManagerFactory);
+    }
+
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.secondaryTypeTraits,
+                DataSetConstants.secondaryComparatorFactories, 
pageManagerFactory);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexInsertOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexInsertOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexInsertOperatorTest.java
index 7e04d75..b2060b6 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexInsertOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexInsertOperatorTest.java
@@ -34,15 +34,13 @@ import 
org.apache.hyracks.dataflow.std.file.ConstantFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.IFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.PlainFileWriterOperatorDescriptor;
 import 
org.apache.hyracks.dataflow.std.misc.ConstantTupleSourceOperatorDescriptor;
+import org.apache.hyracks.storage.am.btree.dataflow.BTreeResourceFactory;
 import 
org.apache.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.common.freepage.LinkedMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.apache.hyracks.tests.am.btree.DataSetConstants.*;
-
 public class BTreeSecondaryIndexInsertOperatorTest extends 
AbstractBTreeOperatorTest {
 
     @Override
@@ -62,7 +60,7 @@ public class BTreeSecondaryIndexInsertOperatorTest extends 
AbstractBTreeOperator
 
         // build tuple containing search keys (only use the first key as search
         // key)
-        ArrayTupleBuilder tb = new ArrayTupleBuilder(secondaryKeyFieldCount);
+        ArrayTupleBuilder tb = new 
ArrayTupleBuilder(DataSetConstants.secondaryKeyFieldCount);
         DataOutput dos = tb.getDataOutput();
 
         tb.reset();
@@ -73,8 +71,8 @@ public class BTreeSecondaryIndexInsertOperatorTest extends 
AbstractBTreeOperator
         new UTF8StringSerializerDeserializer().serialize("2000-10-18", dos);
         tb.addFieldEndOffset();
 
-        ISerializerDeserializer[] keyRecDescSers = { new 
UTF8StringSerializerDeserializer(),
-                new UTF8StringSerializerDeserializer() };
+        ISerializerDeserializer[] keyRecDescSers =
+                { new UTF8StringSerializerDeserializer(), new 
UTF8StringSerializerDeserializer() };
         RecordDescriptor keyRecDesc = new RecordDescriptor(keyRecDescSers);
 
         ConstantTupleSourceOperatorDescriptor keyProviderOp = new 
ConstantTupleSourceOperatorDescriptor(spec,
@@ -86,10 +84,8 @@ public class BTreeSecondaryIndexInsertOperatorTest extends 
AbstractBTreeOperator
 
         // search secondary index
         BTreeSearchOperatorDescriptor secondaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
-                secondaryRecDesc, storageManager, lcManagerProvider, 
secondarySplitProvider, secondaryTypeTraits,
-                secondaryComparatorFactories, secondaryBloomFilterKeyFields, 
secondaryLowKeyFields,
-                secondaryHighKeyFields, true, true, 
primaryDataflowHelperFactory, false, false, null,
-                NoOpOperationCallbackFactory.INSTANCE, null, null, new 
LinkedMetadataPageManagerFactory());
+                DataSetConstants.secondaryRecDesc, secondaryLowKeyFields, 
secondaryHighKeyFields, true, true,
+                secondaryHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null, false);
 
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
secondaryBtreeSearchOp, NC1_ID);
 
@@ -99,11 +95,9 @@ public class BTreeSecondaryIndexInsertOperatorTest extends 
AbstractBTreeOperator
         int[] primaryHighKeyFields = { 1 };
 
         // search primary index
-        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec, primaryRecDesc,
-                storageManager, lcManagerProvider, primarySplitProvider, 
primaryTypeTraits, primaryComparatorFactories,
-                primaryBloomFilterKeyFields, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
-                primaryDataflowHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null,
-                new LinkedMetadataPageManagerFactory());
+        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
+                DataSetConstants.primaryRecDesc, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
+                primaryHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null, false);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryBtreeSearchOp, NC1_ID);
 
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
@@ -119,13 +113,20 @@ public class BTreeSecondaryIndexInsertOperatorTest 
extends AbstractBTreeOperator
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((BTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory();
-    }
-
-    @Override
     public void cleanup() throws Exception {
         destroyPrimaryIndex();
         destroySecondaryIndex();
     }
+
+    @Override
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.primaryTypeTraits,
+                DataSetConstants.primaryComparatorFactories, 
pageManagerFactory);
+    }
+
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.secondaryTypeTraits,
+                DataSetConstants.secondaryComparatorFactories, 
pageManagerFactory);
+    }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexSearchOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexSearchOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexSearchOperatorTest.java
index 322e4f9..e73a11e 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexSearchOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexSearchOperatorTest.java
@@ -34,15 +34,13 @@ import 
org.apache.hyracks.dataflow.std.file.ConstantFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.IFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.PlainFileWriterOperatorDescriptor;
 import 
org.apache.hyracks.dataflow.std.misc.ConstantTupleSourceOperatorDescriptor;
+import org.apache.hyracks.storage.am.btree.dataflow.BTreeResourceFactory;
 import 
org.apache.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.common.freepage.LinkedMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.apache.hyracks.tests.am.btree.DataSetConstants.*;
-
 public class BTreeSecondaryIndexSearchOperatorTest extends 
AbstractBTreeOperatorTest {
 
     @Override
@@ -61,7 +59,7 @@ public class BTreeSecondaryIndexSearchOperatorTest extends 
AbstractBTreeOperator
 
         // build tuple containing search keys (only use the first key as search
         // key)
-        ArrayTupleBuilder tb = new ArrayTupleBuilder(secondaryKeyFieldCount);
+        ArrayTupleBuilder tb = new 
ArrayTupleBuilder(DataSetConstants.secondaryKeyFieldCount);
         DataOutput dos = tb.getDataOutput();
 
         tb.reset();
@@ -72,8 +70,8 @@ public class BTreeSecondaryIndexSearchOperatorTest extends 
AbstractBTreeOperator
         new UTF8StringSerializerDeserializer().serialize("2000-10-18", dos);
         tb.addFieldEndOffset();
 
-        ISerializerDeserializer[] keyRecDescSers = { new 
UTF8StringSerializerDeserializer(),
-                new UTF8StringSerializerDeserializer() };
+        ISerializerDeserializer[] keyRecDescSers =
+                { new UTF8StringSerializerDeserializer(), new 
UTF8StringSerializerDeserializer() };
         RecordDescriptor keyRecDesc = new RecordDescriptor(keyRecDescSers);
 
         ConstantTupleSourceOperatorDescriptor keyProviderOp = new 
ConstantTupleSourceOperatorDescriptor(spec,
@@ -85,10 +83,8 @@ public class BTreeSecondaryIndexSearchOperatorTest extends 
AbstractBTreeOperator
 
         // search secondary index
         BTreeSearchOperatorDescriptor secondaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
-                secondaryRecDesc, storageManager, lcManagerProvider, 
secondarySplitProvider, secondaryTypeTraits,
-                secondaryComparatorFactories, secondaryBloomFilterKeyFields, 
secondaryLowKeyFields,
-                secondaryHighKeyFields, true, true, 
primaryDataflowHelperFactory, false, false, null,
-                NoOpOperationCallbackFactory.INSTANCE, null, null, new 
LinkedMetadataPageManagerFactory());
+                DataSetConstants.secondaryRecDesc, secondaryLowKeyFields, 
secondaryHighKeyFields, true, true,
+                secondaryHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null, false);
 
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
secondaryBtreeSearchOp, NC1_ID);
 
@@ -98,11 +94,9 @@ public class BTreeSecondaryIndexSearchOperatorTest extends 
AbstractBTreeOperator
         // coming from secondary index
 
         // search primary index
-        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec, primaryRecDesc,
-                storageManager, lcManagerProvider, primarySplitProvider, 
primaryTypeTraits, primaryComparatorFactories,
-                primaryBloomFilterKeyFields, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
-                primaryDataflowHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null,
-                new LinkedMetadataPageManagerFactory());
+        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
+                DataSetConstants.primaryRecDesc, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
+                primaryHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null, false);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryBtreeSearchOp, NC1_ID);
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
         IOperatorDescriptor printer = new 
PlainFileWriterOperatorDescriptor(spec, outSplits, ",");
@@ -115,13 +109,20 @@ public class BTreeSecondaryIndexSearchOperatorTest 
extends AbstractBTreeOperator
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((BTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory();
-    }
-
-    @Override
     public void cleanup() throws Exception {
         destroyPrimaryIndex();
         destroySecondaryIndex();
     }
+
+    @Override
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.primaryTypeTraits,
+                DataSetConstants.primaryComparatorFactories, 
pageManagerFactory);
+    }
+
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.secondaryTypeTraits,
+                DataSetConstants.secondaryComparatorFactories, 
pageManagerFactory);
+    }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexUpsertOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexUpsertOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexUpsertOperatorTest.java
index 2de100b..a333dc4 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexUpsertOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/btree/BTreeSecondaryIndexUpsertOperatorTest.java
@@ -33,15 +33,13 @@ import 
org.apache.hyracks.dataflow.std.file.ConstantFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.IFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.PlainFileWriterOperatorDescriptor;
 import 
org.apache.hyracks.dataflow.std.misc.ConstantTupleSourceOperatorDescriptor;
+import org.apache.hyracks.storage.am.btree.dataflow.BTreeResourceFactory;
 import 
org.apache.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.common.freepage.LinkedMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.apache.hyracks.tests.am.btree.DataSetConstants.*;
-
 public class BTreeSecondaryIndexUpsertOperatorTest extends 
AbstractBTreeOperatorTest {
 
     @Override
@@ -61,7 +59,7 @@ public class BTreeSecondaryIndexUpsertOperatorTest extends 
AbstractBTreeOperator
 
         // build tuple containing search keys (only use the first key as search
         // key)
-        ArrayTupleBuilder tb = new ArrayTupleBuilder(secondaryKeyFieldCount);
+        ArrayTupleBuilder tb = new 
ArrayTupleBuilder(DataSetConstants.secondaryKeyFieldCount);
         DataOutput dos = tb.getDataOutput();
 
         tb.reset();
@@ -72,8 +70,8 @@ public class BTreeSecondaryIndexUpsertOperatorTest extends 
AbstractBTreeOperator
         new UTF8StringSerializerDeserializer().serialize("2000-10-18", dos);
         tb.addFieldEndOffset();
 
-        ISerializerDeserializer[] keyRecDescSers = { new 
UTF8StringSerializerDeserializer(),
-                new UTF8StringSerializerDeserializer() };
+        ISerializerDeserializer[] keyRecDescSers =
+                { new UTF8StringSerializerDeserializer(), new 
UTF8StringSerializerDeserializer() };
         RecordDescriptor keyRecDesc = new RecordDescriptor(keyRecDescSers);
 
         ConstantTupleSourceOperatorDescriptor keyProviderOp = new 
ConstantTupleSourceOperatorDescriptor(spec,
@@ -85,10 +83,8 @@ public class BTreeSecondaryIndexUpsertOperatorTest extends 
AbstractBTreeOperator
 
         // search secondary index
         BTreeSearchOperatorDescriptor secondaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
-                secondaryRecDesc, storageManager, lcManagerProvider, 
secondarySplitProvider, secondaryTypeTraits,
-                secondaryComparatorFactories, secondaryBloomFilterKeyFields, 
secondaryLowKeyFields,
-                secondaryHighKeyFields, true, true, 
primaryDataflowHelperFactory, false, false, null,
-                NoOpOperationCallbackFactory.INSTANCE, null, null, new 
LinkedMetadataPageManagerFactory());
+                DataSetConstants.secondaryRecDesc, secondaryLowKeyFields, 
secondaryHighKeyFields, true, true,
+                secondaryHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null, false);
 
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
secondaryBtreeSearchOp, NC1_ID);
 
@@ -98,11 +94,9 @@ public class BTreeSecondaryIndexUpsertOperatorTest extends 
AbstractBTreeOperator
         int[] primaryHighKeyFields = { 1 };
 
         // search primary index
-        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec, primaryRecDesc,
-                storageManager, lcManagerProvider, primarySplitProvider, 
primaryTypeTraits, primaryComparatorFactories,
-                primaryBloomFilterKeyFields, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
-                primaryDataflowHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null,
-                new LinkedMetadataPageManagerFactory());
+        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
+                DataSetConstants.primaryRecDesc, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
+                primaryHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE, null, null, false);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryBtreeSearchOp, NC1_ID);
 
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
@@ -118,13 +112,20 @@ public class BTreeSecondaryIndexUpsertOperatorTest 
extends AbstractBTreeOperator
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((BTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory();
-    }
-
-    @Override
     public void cleanup() throws Exception {
         destroyPrimaryIndex();
         destroySecondaryIndex();
     }
+
+    @Override
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.primaryTypeTraits,
+                DataSetConstants.primaryComparatorFactories, 
pageManagerFactory);
+    }
+
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return new BTreeResourceFactory(storageManager, 
DataSetConstants.secondaryTypeTraits,
+                DataSetConstants.secondaryComparatorFactories, 
pageManagerFactory);
+    }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/ITreeIndexOperatorTestHelper.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/ITreeIndexOperatorTestHelper.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/ITreeIndexOperatorTestHelper.java
index be9d981..5564d3d 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/ITreeIndexOperatorTestHelper.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/ITreeIndexOperatorTestHelper.java
@@ -20,6 +20,7 @@
 package org.apache.hyracks.tests.am.common;
 
 public interface ITreeIndexOperatorTestHelper {
-    public String getPrimaryIndexName();
-    public String getSecondaryIndexName();
+    String getPrimaryIndexName();
+
+    String getSecondaryIndexName();
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/LSMTreeOperatorTestHelper.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/LSMTreeOperatorTestHelper.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/LSMTreeOperatorTestHelper.java
index b263068..dbb6b50 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/LSMTreeOperatorTestHelper.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/common/LSMTreeOperatorTestHelper.java
@@ -19,20 +19,32 @@
 
 package org.apache.hyracks.tests.am.common;
 
+import java.util.Collections;
+import java.util.Map;
+
 import org.apache.hyracks.control.nc.io.IOManager;
 import 
org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCacheProvider;
+import 
org.apache.hyracks.storage.am.lsm.common.impls.ConstantMergePolicyFactory;
 import org.apache.hyracks.test.support.TestVirtualBufferCacheProvider;
 
 public class LSMTreeOperatorTestHelper extends TreeOperatorTestHelper {
-    protected static int DEFAULT_MEM_PAGE_SIZE = 32768;
-    protected static int DEFAULT_MEM_NUM_PAGES = 1000;
-    protected static double DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_RATE = 0.01;
+    public static final int DEFAULT_MEM_PAGE_SIZE = 32768;
+    public static final int DEFAULT_MEM_NUM_PAGES = 1000;
+    public static final double DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_RATE = 0.01;
+    public static final ConstantMergePolicyFactory MERGE_POLICY_FACTORY = new 
ConstantMergePolicyFactory();
+    public static final Map<String, String> MERGE_POLICY_PROPERTIES =
+            
Collections.singletonMap(ConstantMergePolicyFactory.NUM_COMPONENTS, "3");
+    public static final boolean DURABLE = false;
     protected final IOManager ioManager;
     protected final IVirtualBufferCacheProvider virtualBufferCacheProvider;
 
     public LSMTreeOperatorTestHelper(IOManager ioManager) {
         this.ioManager = ioManager;
-        this.virtualBufferCacheProvider = new 
TestVirtualBufferCacheProvider(DEFAULT_MEM_PAGE_SIZE,
-                DEFAULT_MEM_NUM_PAGES);
+        this.virtualBufferCacheProvider =
+                new TestVirtualBufferCacheProvider(DEFAULT_MEM_PAGE_SIZE, 
DEFAULT_MEM_NUM_PAGES);
+    }
+
+    public IVirtualBufferCacheProvider getVirtualBufferCacheProvider() {
+        return virtualBufferCacheProvider;
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java
index d7a2c18..91acea0 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java
@@ -19,40 +19,33 @@
 
 package org.apache.hyracks.tests.am.lsm.btree;
 
+import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.control.nc.io.IOManager;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.lsm.btree.dataflow.LSMBTreeDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.lsm.common.impls.ConstantMergePolicyFactory;
-import org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallback;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
+import 
org.apache.hyracks.storage.am.lsm.btree.dataflow.LSMBTreeLocalResourceFactory;
+import 
org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallbackFactory;
 import 
org.apache.hyracks.storage.am.lsm.common.impls.SynchronousSchedulerProvider;
 import 
org.apache.hyracks.storage.am.lsm.common.impls.ThreadCountingOperationTrackerFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
+import org.apache.hyracks.storage.common.IStorageManager;
 import org.apache.hyracks.tests.am.common.LSMTreeOperatorTestHelper;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.filterCmpFactories;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.filterTypeTraits;
-
 public class LSMBTreeOperatorTestHelper extends LSMTreeOperatorTestHelper {
 
-    private static final Map<String, String> MERGE_POLICY_PROPERTIES;
-
-    static {
-        MERGE_POLICY_PROPERTIES = new HashMap<String, String>();
-        MERGE_POLICY_PROPERTIES.put("num-components", "3");
-    }
-
     public LSMBTreeOperatorTestHelper(IOManager ioManager) {
         super(ioManager);
     }
 
-    public IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return new LSMBTreeDataflowHelperFactory(virtualBufferCacheProvider, 
new ConstantMergePolicyFactory(),
-                MERGE_POLICY_PROPERTIES, 
ThreadCountingOperationTrackerFactory.INSTANCE,
-                SynchronousSchedulerProvider.INSTANCE, 
NoOpIOOperationCallback.INSTANCE,
-                DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_RATE, true, 
filterTypeTraits, filterCmpFactories,
-                btreeFields, filterFields, true);
+    public IResourceFactory getLocalResourceFactory(IStorageManager 
storageManager, ITypeTraits[] typeTraits,
+            IBinaryComparatorFactory[] comparatorFactories, 
IMetadataPageManagerFactory pageManagerFactory,
+            int[] bloomFilterKeyFields, int[] btreefields, int[] filterfields, 
ITypeTraits[] filtertypetraits,
+            IBinaryComparatorFactory[] filtercmpfactories) {
+        return new LSMBTreeLocalResourceFactory(storageManager, typeTraits, 
comparatorFactories, filtertypetraits,
+                filtercmpfactories, filterfields, 
ThreadCountingOperationTrackerFactory.INSTANCE,
+                NoOpIOOperationCallbackFactory.INSTANCE, pageManagerFactory, 
getVirtualBufferCacheProvider(),
+                SynchronousSchedulerProvider.INSTANCE, MERGE_POLICY_FACTORY, 
MERGE_POLICY_PROPERTIES, DURABLE,
+                bloomFilterKeyFields, 
LSMTreeOperatorTestHelper.DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_RATE, true,
+                btreefields);
     }
-
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexScanOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexScanOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexScanOperatorTest.java
index e342a0c..f738bab 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexScanOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexScanOperatorTest.java
@@ -20,9 +20,11 @@
 package org.apache.hyracks.tests.am.lsm.btree;
 
 import org.apache.hyracks.api.exceptions.HyracksDataException;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.test.support.TestStorageManagerComponentHolder;
 import org.apache.hyracks.tests.am.btree.BTreePrimaryIndexScanOperatorTest;
+import org.apache.hyracks.tests.am.btree.DataSetConstants;
 import org.apache.hyracks.tests.am.common.ITreeIndexOperatorTestHelper;
 
 public class LSMBTreePrimaryIndexScanOperatorTest extends 
BTreePrimaryIndexScanOperatorTest {
@@ -33,8 +35,21 @@ public class LSMBTreePrimaryIndexScanOperatorTest extends 
BTreePrimaryIndexScanO
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((LSMBTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory(btreeFields, filterFields);
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.primaryTypeTraits, 
DataSetConstants.primaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.primaryBloomFilterKeyFields,
+                DataSetConstants.primaryBtreeFields, 
DataSetConstants.primaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
+    }
+
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.secondaryTypeTraits, 
DataSetConstants.secondaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.secondaryBloomFilterKeyFields,
+                DataSetConstants.secondaryBtreeFields, 
DataSetConstants.secondaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexSearchOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexSearchOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexSearchOperatorTest.java
index fde9aac..9d3ba5c 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexSearchOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreePrimaryIndexSearchOperatorTest.java
@@ -19,6 +19,8 @@
 
 package org.apache.hyracks.tests.am.lsm.btree;
 
+import java.io.DataOutput;
+
 import org.apache.hyracks.api.constraints.PartitionConstraintHelper;
 import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
 import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
@@ -34,24 +36,16 @@ import 
org.apache.hyracks.dataflow.std.file.IFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.PlainFileWriterOperatorDescriptor;
 import 
org.apache.hyracks.dataflow.std.misc.ConstantTupleSourceOperatorDescriptor;
 import 
org.apache.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.common.freepage.LinkedMetadataPageManagerFactory;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.test.support.TestStorageManagerComponentHolder;
 import org.apache.hyracks.tests.am.btree.BTreePrimaryIndexSearchOperatorTest;
+import org.apache.hyracks.tests.am.btree.DataSetConstants;
 import org.apache.hyracks.tests.am.common.ITreeIndexOperatorTestHelper;
 import org.apache.hyracks.tests.util.NoopMissingWriterFactory;
 import org.junit.Test;
 
-import java.io.DataOutput;
-
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryAndFilterRecDesc;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryBloomFilterKeyFields;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryComparatorFactories;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryFilterFields;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryKeyFieldCount;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryTypeTraits;
-
 public class LSMBTreePrimaryIndexSearchOperatorTest extends 
BTreePrimaryIndexSearchOperatorTest {
     @Override
     protected ITreeIndexOperatorTestHelper createTestHelper() throws 
HyracksDataException {
@@ -59,8 +53,12 @@ public class LSMBTreePrimaryIndexSearchOperatorTest extends 
BTreePrimaryIndexSea
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((LSMBTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory(btreeFields, filterFields);
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.primaryTypeTraits, 
DataSetConstants.primaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.primaryBloomFilterKeyFields,
+                DataSetConstants.primaryBtreeFields, 
DataSetConstants.primaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
     }
 
     @Test
@@ -69,7 +67,7 @@ public class LSMBTreePrimaryIndexSearchOperatorTest extends 
BTreePrimaryIndexSea
 
         // build tuple containing low and high search key
         // high key and low key
-        ArrayTupleBuilder tb = new ArrayTupleBuilder(primaryKeyFieldCount * 2);
+        ArrayTupleBuilder tb = new 
ArrayTupleBuilder(DataSetConstants.primaryKeyFieldCount * 2);
         DataOutput dos = tb.getDataOutput();
 
         tb.reset();
@@ -84,21 +82,17 @@ public class LSMBTreePrimaryIndexSearchOperatorTest extends 
BTreePrimaryIndexSea
                 { new UTF8StringSerializerDeserializer(), new 
UTF8StringSerializerDeserializer() };
         RecordDescriptor keyRecDesc = new RecordDescriptor(keyRecDescSers);
 
-        ConstantTupleSourceOperatorDescriptor keyProviderOp =
-                new ConstantTupleSourceOperatorDescriptor(spec, keyRecDesc, 
tb.getFieldEndOffsets(), tb.getByteArray(),
-                        tb.getSize());
+        ConstantTupleSourceOperatorDescriptor keyProviderOp = new 
ConstantTupleSourceOperatorDescriptor(spec,
+                keyRecDesc, tb.getFieldEndOffsets(), tb.getByteArray(), 
tb.getSize());
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
keyProviderOp, NC1_ID);
 
         int[] lowKeyFields = { 0 };
         int[] highKeyFields = { 1 };
 
         BTreeSearchOperatorDescriptor primaryBtreeSearchOp =
-                new BTreeSearchOperatorDescriptor(spec, 
primaryAndFilterRecDesc, storageManager, lcManagerProvider,
-                        primarySplitProvider, primaryTypeTraits, 
primaryComparatorFactories,
-                        primaryBloomFilterKeyFields, lowKeyFields, 
highKeyFields, true, true,
-                        primaryDataflowHelperFactory,
-                        false, false, NoopMissingWriterFactory.INSTANCE, 
NoOpOperationCallbackFactory.INSTANCE, true,
-                        null, null, new LinkedMetadataPageManagerFactory());
+                new BTreeSearchOperatorDescriptor(spec, 
DataSetConstants.primaryAndFilterRecDesc, lowKeyFields,
+                        highKeyFields, true, true, primaryHelperFactory, 
false, false,
+                        NoopMissingWriterFactory.INSTANCE, 
NoOpOperationCallbackFactory.INSTANCE, null, null, true);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryBtreeSearchOp, NC1_ID);
 
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
@@ -118,7 +112,8 @@ public class LSMBTreePrimaryIndexSearchOperatorTest extends 
BTreePrimaryIndexSea
 
         // build tuple containing low and high search key
         // high key and low key
-        ArrayTupleBuilder tb = new ArrayTupleBuilder((primaryKeyFieldCount + 
primaryFilterFields.length) * 2);
+        ArrayTupleBuilder tb = new ArrayTupleBuilder(
+                (DataSetConstants.primaryKeyFieldCount + 
DataSetConstants.primaryFilterFields.length) * 2);
         DataOutput dos = tb.getDataOutput();
 
         tb.reset();
@@ -140,9 +135,8 @@ public class LSMBTreePrimaryIndexSearchOperatorTest extends 
BTreePrimaryIndexSea
                         new UTF8StringSerializerDeserializer(), new 
UTF8StringSerializerDeserializer() };
         RecordDescriptor keyRecDesc = new RecordDescriptor(keyRecDescSers);
 
-        ConstantTupleSourceOperatorDescriptor keyProviderOp =
-                new ConstantTupleSourceOperatorDescriptor(spec, keyRecDesc, 
tb.getFieldEndOffsets(), tb.getByteArray(),
-                        tb.getSize());
+        ConstantTupleSourceOperatorDescriptor keyProviderOp = new 
ConstantTupleSourceOperatorDescriptor(spec,
+                keyRecDesc, tb.getFieldEndOffsets(), tb.getByteArray(), 
tb.getSize());
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
keyProviderOp, NC1_ID);
 
         int[] lowKeyFields = { 0 };
@@ -150,13 +144,10 @@ public class LSMBTreePrimaryIndexSearchOperatorTest 
extends BTreePrimaryIndexSea
         int[] minFilterFields = { 2 };
         int[] maxFilterFields = { 3 };
 
-        BTreeSearchOperatorDescriptor primaryBtreeSearchOp =
-                new BTreeSearchOperatorDescriptor(spec, 
primaryAndFilterRecDesc, storageManager, lcManagerProvider,
-                        primarySplitProvider, primaryTypeTraits, 
primaryComparatorFactories,
-                        primaryBloomFilterKeyFields, lowKeyFields, 
highKeyFields, true, true,
-                        primaryDataflowHelperFactory,
-                        false, false, NoopMissingWriterFactory.INSTANCE, 
NoOpOperationCallbackFactory.INSTANCE, true,
-                        minFilterFields, maxFilterFields, new 
LinkedMetadataPageManagerFactory());
+        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
+                DataSetConstants.primaryAndFilterRecDesc, lowKeyFields, 
highKeyFields, true, true, primaryHelperFactory,
+                false, false, NoopMissingWriterFactory.INSTANCE, 
NoOpOperationCallbackFactory.INSTANCE, minFilterFields,
+                maxFilterFields, true);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryBtreeSearchOp, NC1_ID);
 
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
@@ -169,4 +160,13 @@ public class LSMBTreePrimaryIndexSearchOperatorTest 
extends BTreePrimaryIndexSea
         spec.addRoot(printer);
         runTest(spec);
     }
+
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.secondaryTypeTraits, 
DataSetConstants.secondaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.secondaryBloomFilterKeyFields,
+                DataSetConstants.secondaryBtreeFields, 
DataSetConstants.secondaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
+    }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexInsertOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexInsertOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexInsertOperatorTest.java
index c0eca6a..4763c34 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexInsertOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexInsertOperatorTest.java
@@ -20,9 +20,11 @@
 package org.apache.hyracks.tests.am.lsm.btree;
 
 import org.apache.hyracks.api.exceptions.HyracksDataException;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.test.support.TestStorageManagerComponentHolder;
 import org.apache.hyracks.tests.am.btree.BTreeSecondaryIndexInsertOperatorTest;
+import org.apache.hyracks.tests.am.btree.DataSetConstants;
 import org.apache.hyracks.tests.am.common.ITreeIndexOperatorTestHelper;
 
 public class LSMBTreeSecondaryIndexInsertOperatorTest extends 
BTreeSecondaryIndexInsertOperatorTest {
@@ -32,8 +34,21 @@ public class LSMBTreeSecondaryIndexInsertOperatorTest 
extends BTreeSecondaryInde
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((LSMBTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory(btreeFields, filterFields);
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.primaryTypeTraits, 
DataSetConstants.primaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.primaryBloomFilterKeyFields,
+                DataSetConstants.primaryBtreeFields, 
DataSetConstants.primaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
+    }
+
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.secondaryTypeTraits, 
DataSetConstants.secondaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.secondaryBloomFilterKeyFields,
+                DataSetConstants.secondaryBtreeFields, 
DataSetConstants.secondaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexSearchOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexSearchOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexSearchOperatorTest.java
index 5306445..97a4746 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexSearchOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeSecondaryIndexSearchOperatorTest.java
@@ -19,6 +19,8 @@
 
 package org.apache.hyracks.tests.am.lsm.btree;
 
+import java.io.DataOutput;
+
 import org.apache.hyracks.api.constraints.PartitionConstraintHelper;
 import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
 import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
@@ -34,27 +36,16 @@ import 
org.apache.hyracks.dataflow.std.file.IFileSplitProvider;
 import org.apache.hyracks.dataflow.std.file.PlainFileWriterOperatorDescriptor;
 import 
org.apache.hyracks.dataflow.std.misc.ConstantTupleSourceOperatorDescriptor;
 import 
org.apache.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.common.freepage.LinkedMetadataPageManagerFactory;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.test.support.TestStorageManagerComponentHolder;
 import org.apache.hyracks.tests.am.btree.BTreeSecondaryIndexSearchOperatorTest;
+import org.apache.hyracks.tests.am.btree.DataSetConstants;
 import org.apache.hyracks.tests.am.common.ITreeIndexOperatorTestHelper;
 import org.apache.hyracks.tests.util.NoopMissingWriterFactory;
 import org.junit.Test;
 
-import java.io.DataOutput;
-
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryBloomFilterKeyFields;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryComparatorFactories;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryRecDesc;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.primaryTypeTraits;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.secondaryBloomFilterKeyFields;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.secondaryComparatorFactories;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.secondaryKeyFieldCount;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.secondaryTypeTraits;
-import static 
org.apache.hyracks.tests.am.btree.DataSetConstants.secondaryWithFilterRecDesc;
-
 public class LSMBTreeSecondaryIndexSearchOperatorTest extends 
BTreeSecondaryIndexSearchOperatorTest {
     @Override
     protected ITreeIndexOperatorTestHelper createTestHelper() throws 
HyracksDataException {
@@ -62,8 +53,12 @@ public class LSMBTreeSecondaryIndexSearchOperatorTest 
extends BTreeSecondaryInde
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(int[] 
btreeFields, int[] filterFields) {
-        return ((LSMBTreeOperatorTestHelper) 
testHelper).createDataFlowHelperFactory(btreeFields, filterFields);
+    protected IResourceFactory createPrimaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.primaryTypeTraits, 
DataSetConstants.primaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.primaryBloomFilterKeyFields,
+                DataSetConstants.primaryBtreeFields, 
DataSetConstants.primaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
     }
 
     @Test
@@ -72,7 +67,7 @@ public class LSMBTreeSecondaryIndexSearchOperatorTest extends 
BTreeSecondaryInde
 
         // build tuple containing search keys (only use the first key as search
         // key)
-        ArrayTupleBuilder tb = new ArrayTupleBuilder(secondaryKeyFieldCount);
+        ArrayTupleBuilder tb = new 
ArrayTupleBuilder(DataSetConstants.secondaryKeyFieldCount);
         DataOutput dos = tb.getDataOutput();
 
         tb.reset();
@@ -87,9 +82,8 @@ public class LSMBTreeSecondaryIndexSearchOperatorTest extends 
BTreeSecondaryInde
                 { new UTF8StringSerializerDeserializer(), new 
UTF8StringSerializerDeserializer() };
         RecordDescriptor keyRecDesc = new RecordDescriptor(keyRecDescSers);
 
-        ConstantTupleSourceOperatorDescriptor keyProviderOp =
-                new ConstantTupleSourceOperatorDescriptor(spec, keyRecDesc, 
tb.getFieldEndOffsets(), tb.getByteArray(),
-                        tb.getSize());
+        ConstantTupleSourceOperatorDescriptor keyProviderOp = new 
ConstantTupleSourceOperatorDescriptor(spec,
+                keyRecDesc, tb.getFieldEndOffsets(), tb.getByteArray(), 
tb.getSize());
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
keyProviderOp, NC1_ID);
 
         int[] secondaryLowKeyFields = { 0 };
@@ -97,12 +91,9 @@ public class LSMBTreeSecondaryIndexSearchOperatorTest 
extends BTreeSecondaryInde
 
         // search secondary index
         BTreeSearchOperatorDescriptor secondaryBtreeSearchOp =
-                new BTreeSearchOperatorDescriptor(spec, 
secondaryWithFilterRecDesc, storageManager, lcManagerProvider,
-                        secondarySplitProvider, secondaryTypeTraits, 
secondaryComparatorFactories,
-                        secondaryBloomFilterKeyFields, secondaryLowKeyFields, 
secondaryHighKeyFields, true, true,
-                        primaryDataflowHelperFactory, false, false, 
NoopMissingWriterFactory.INSTANCE,
-                        NoOpOperationCallbackFactory.INSTANCE, true, null, 
null,
-                        new LinkedMetadataPageManagerFactory());
+                new BTreeSearchOperatorDescriptor(spec, 
DataSetConstants.secondaryWithFilterRecDesc,
+                        secondaryLowKeyFields, secondaryHighKeyFields, true, 
true, secondaryHelperFactory, false, false,
+                        NoopMissingWriterFactory.INSTANCE, 
NoOpOperationCallbackFactory.INSTANCE, null, null, true);
 
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
secondaryBtreeSearchOp, NC1_ID);
 
@@ -112,12 +103,10 @@ public class LSMBTreeSecondaryIndexSearchOperatorTest 
extends BTreeSecondaryInde
         int[] maxFilterFields = { 3 };
 
         // search primary index
-        BTreeSearchOperatorDescriptor primaryBtreeSearchOp =
-                new BTreeSearchOperatorDescriptor(spec, primaryRecDesc, 
storageManager, lcManagerProvider,
-                        primarySplitProvider, primaryTypeTraits, 
primaryComparatorFactories,
-                        primaryBloomFilterKeyFields, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
-                        primaryDataflowHelperFactory, false, false, null, 
NoOpOperationCallbackFactory.INSTANCE,
-                        minFilterFields, maxFilterFields, new 
LinkedMetadataPageManagerFactory());
+        BTreeSearchOperatorDescriptor primaryBtreeSearchOp = new 
BTreeSearchOperatorDescriptor(spec,
+                DataSetConstants.primaryRecDesc, primaryLowKeyFields, 
primaryHighKeyFields, true, true,
+                primaryHelperFactory, false, false, 
NoopMissingWriterFactory.INSTANCE,
+                NoOpOperationCallbackFactory.INSTANCE, minFilterFields, 
maxFilterFields, false);
         PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, 
primaryBtreeSearchOp, NC1_ID);
         IFileSplitProvider outSplits = new ConstantFileSplitProvider(new 
FileSplit[] { createFile(nc1) });
         IOperatorDescriptor printer = new 
PlainFileWriterOperatorDescriptor(spec, outSplits, ",");
@@ -129,4 +118,13 @@ public class LSMBTreeSecondaryIndexSearchOperatorTest 
extends BTreeSecondaryInde
         runTest(spec);
     }
 
+    @Override
+    protected IResourceFactory createSecondaryResourceFactory() {
+        return ((LSMBTreeOperatorTestHelper) 
testHelper).getLocalResourceFactory(storageManager,
+                DataSetConstants.secondaryTypeTraits, 
DataSetConstants.secondaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory, 
DataSetConstants.secondaryBloomFilterKeyFields,
+                DataSetConstants.secondaryBtreeFields, 
DataSetConstants.secondaryFilterFields,
+                DataSetConstants.filterTypeTraits, 
DataSetConstants.filterCmpFactories);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeOperatorTestHelper.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeOperatorTestHelper.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeOperatorTestHelper.java
index 4eb3f4b..d9358bd 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeOperatorTestHelper.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeOperatorTestHelper.java
@@ -19,44 +19,40 @@
 
 package org.apache.hyracks.tests.am.lsm.rtree;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.control.nc.io.IOManager;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.lsm.common.impls.ConstantMergePolicyFactory;
-import org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallback;
+import 
org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallbackFactory;
 import 
org.apache.hyracks.storage.am.lsm.common.impls.SynchronousSchedulerProvider;
 import 
org.apache.hyracks.storage.am.lsm.common.impls.ThreadCountingOperationTrackerFactory;
-import 
org.apache.hyracks.storage.am.lsm.rtree.dataflow.LSMRTreeDataflowHelperFactory;
+import 
org.apache.hyracks.storage.am.lsm.rtree.dataflow.LSMRTreeLocalResourceFactory;
 import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType;
+import org.apache.hyracks.storage.common.IResourceFactory;
+import org.apache.hyracks.storage.common.IStorageManager;
 import org.apache.hyracks.tests.am.common.LSMTreeOperatorTestHelper;
 
 public class LSMRTreeOperatorTestHelper extends LSMTreeOperatorTestHelper {
 
-    private static final Map<String, String> MERGE_POLICY_PROPERTIES;
-    static {
-        MERGE_POLICY_PROPERTIES = new HashMap<String, String>();
-        MERGE_POLICY_PROPERTIES.put("num-components", "3");
-    }
+    public static final boolean IS_POINT_MBR = false;
+    public static final boolean DURABLE = true;
 
     public LSMRTreeOperatorTestHelper(IOManager ioManager) {
         super(ioManager);
     }
 
-    public IIndexDataflowHelperFactory createDataFlowHelperFactory(
+    public IResourceFactory getSecondaryLocalResourceFactory(IStorageManager 
storageManager,
             IPrimitiveValueProviderFactory[] valueProviderFactories, 
RTreePolicyType rtreePolicyType,
             IBinaryComparatorFactory[] btreeComparatorFactories, 
ILinearizeComparatorFactory linearizerCmpFactory,
-            int[] btreeFields, int[] rtreeFields, ITypeTraits[] 
filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories,
-            int[] filterFields) {
-        return new LSMRTreeDataflowHelperFactory(valueProviderFactories, 
rtreePolicyType, btreeComparatorFactories,
-                virtualBufferCacheProvider, new ConstantMergePolicyFactory(), 
MERGE_POLICY_PROPERTIES,
-                ThreadCountingOperationTrackerFactory.INSTANCE, 
SynchronousSchedulerProvider.INSTANCE,
-                NoOpIOOperationCallback.INSTANCE, linearizerCmpFactory, 
DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_RATE, rtreeFields,
-                btreeFields, filterTypeTraits, filterCmpFactories, 
filterFields, true, false);
+            int[] btreeFields, ITypeTraits[] secondaryTypeTraits,
+            IBinaryComparatorFactory[] secondaryComparatorFactories, 
IMetadataPageManagerFactory pageManagerFactory) {
+        return new LSMRTreeLocalResourceFactory(storageManager, 
secondaryTypeTraits, secondaryComparatorFactories, null,
+                null, null, ThreadCountingOperationTrackerFactory.INSTANCE, 
NoOpIOOperationCallbackFactory.INSTANCE,
+                pageManagerFactory, getVirtualBufferCacheProvider(), 
SynchronousSchedulerProvider.INSTANCE,
+                MERGE_POLICY_FACTORY, MERGE_POLICY_PROPERTIES, DURABLE, 
btreeComparatorFactories,
+                valueProviderFactories, rtreePolicyType, linearizerCmpFactory, 
null, btreeFields, IS_POINT_MBR,
+                DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_RATE);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexInsertOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexInsertOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexInsertOperatorTest.java
index 0f03ec8..f4984d3 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexInsertOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexInsertOperatorTest.java
@@ -23,9 +23,10 @@ import 
org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
 import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.test.support.TestStorageManagerComponentHolder;
 import org.apache.hyracks.tests.am.common.ITreeIndexOperatorTestHelper;
 import org.apache.hyracks.tests.am.rtree.RTreeSecondaryIndexInsertOperatorTest;
@@ -42,13 +43,13 @@ public class LSMRTreeSecondaryIndexInsertOperatorTest 
extends RTreeSecondaryInde
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(
+    protected IResourceFactory createSecondaryResourceFactory(
             IPrimitiveValueProviderFactory[] secondaryValueProviderFactories, 
RTreePolicyType rtreePolicyType,
             IBinaryComparatorFactory[] btreeComparatorFactories, 
ILinearizeComparatorFactory linearizerCmpFactory,
-            int[] btreeFields, int[] rtreeFields, ITypeTraits[] 
filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories,
-            int[] filterFields) {
-        return ((LSMRTreeOperatorTestHelper) testHelper)
-                .createDataFlowHelperFactory(secondaryValueProviderFactories, 
rtreePolicyType, btreeComparatorFactories,
-                        linearizerCmpFactory, btreeFields, rtreeFields, 
filterTypeTraits, filterCmpFactories, filterFields);
+            int[] btreeFields) {
+        return ((LSMRTreeOperatorTestHelper) 
testHelper).getSecondaryLocalResourceFactory(storageManager,
+                secondaryValueProviderFactories, rtreePolicyType, 
btreeComparatorFactories, linearizerCmpFactory,
+                btreeFields, secondaryTypeTraits, secondaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexSearchOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexSearchOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexSearchOperatorTest.java
index e9d4605..3945013 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexSearchOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeSecondaryIndexSearchOperatorTest.java
@@ -23,9 +23,10 @@ import 
org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
 import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.test.support.TestStorageManagerComponentHolder;
 import org.apache.hyracks.tests.am.common.ITreeIndexOperatorTestHelper;
 import org.apache.hyracks.tests.am.rtree.RTreeSecondaryIndexSearchOperatorTest;
@@ -41,13 +42,13 @@ public class LSMRTreeSecondaryIndexSearchOperatorTest 
extends RTreeSecondaryInde
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(
+    protected IResourceFactory createSecondaryResourceFactory(
             IPrimitiveValueProviderFactory[] secondaryValueProviderFactories, 
RTreePolicyType rtreePolicyType,
             IBinaryComparatorFactory[] btreeComparatorFactories, 
ILinearizeComparatorFactory linearizerCmpFactory,
-            int[] btreeFields, int[] rtreeFields, ITypeTraits[] 
filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories,
-            int[] filterFields) {
-        return ((LSMRTreeOperatorTestHelper) testHelper)
-                .createDataFlowHelperFactory(secondaryValueProviderFactories, 
rtreePolicyType, btreeComparatorFactories,
-                        linearizerCmpFactory, btreeFields, rtreeFields, 
filterTypeTraits, filterCmpFactories, filterFields);
+            int[] btreeFields) {
+        return ((LSMRTreeOperatorTestHelper) 
testHelper).getSecondaryLocalResourceFactory(storageManager,
+                secondaryValueProviderFactories, rtreePolicyType, 
btreeComparatorFactories, linearizerCmpFactory,
+                btreeFields, secondaryTypeTraits, secondaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesOperatorTestHelper.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesOperatorTestHelper.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesOperatorTestHelper.java
index 752cfd9..d230f38 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesOperatorTestHelper.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesOperatorTestHelper.java
@@ -19,45 +19,41 @@
 
 package org.apache.hyracks.tests.am.lsm.rtree;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.control.nc.io.IOManager;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
-import 
org.apache.hyracks.storage.am.lsm.common.impls.ConstantMergePolicyFactory;
-import org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallback;
+import 
org.apache.hyracks.storage.am.lsm.common.impls.NoOpIOOperationCallbackFactory;
 import 
org.apache.hyracks.storage.am.lsm.common.impls.SynchronousSchedulerProvider;
 import 
org.apache.hyracks.storage.am.lsm.common.impls.ThreadCountingOperationTrackerFactory;
-import 
org.apache.hyracks.storage.am.lsm.rtree.dataflow.LSMRTreeWithAntiMatterTuplesDataflowHelperFactory;
+import 
org.apache.hyracks.storage.am.lsm.rtree.dataflow.LSMRTreeWithAntiMatterLocalResourceFactory;
 import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType;
+import org.apache.hyracks.storage.common.IResourceFactory;
+import org.apache.hyracks.storage.common.IStorageManager;
 import org.apache.hyracks.tests.am.common.LSMTreeOperatorTestHelper;
 
 public class LSMRTreeWithAntiMatterTuplesOperatorTestHelper extends 
LSMTreeOperatorTestHelper {
 
-    private static final Map<String, String> MERGE_POLICY_PROPERTIES;
+    public static final boolean IS_POINT_MBR = false;
+    public static final boolean DURABLE = true;
 
-    static {
-        MERGE_POLICY_PROPERTIES = new HashMap<String, String>();
-        MERGE_POLICY_PROPERTIES.put("num-components", "3");
-    }
 
     public LSMRTreeWithAntiMatterTuplesOperatorTestHelper(IOManager ioManager) 
{
         super(ioManager);
     }
 
-    public IIndexDataflowHelperFactory createDataFlowHelperFactory(
+    public IResourceFactory getSecondaryLocalResourceFactory(IStorageManager 
storageManager,
             IPrimitiveValueProviderFactory[] valueProviderFactories, 
RTreePolicyType rtreePolicyType,
             IBinaryComparatorFactory[] btreeComparatorFactories, 
ILinearizeComparatorFactory linearizerCmpFactory,
-            int[] rtreeFields, ITypeTraits[] filterTypeTraits, 
IBinaryComparatorFactory[] filterCmpFactories,
-            int[] filterFields) {
-        return new 
LSMRTreeWithAntiMatterTuplesDataflowHelperFactory(valueProviderFactories, 
rtreePolicyType,
-                btreeComparatorFactories, virtualBufferCacheProvider, new 
ConstantMergePolicyFactory(),
-                MERGE_POLICY_PROPERTIES, 
ThreadCountingOperationTrackerFactory.INSTANCE,
-                SynchronousSchedulerProvider.INSTANCE, 
NoOpIOOperationCallback.INSTANCE, linearizerCmpFactory,
-                rtreeFields, filterTypeTraits, filterCmpFactories, 
filterFields, true, false);
+            int[] btreeFields, ITypeTraits[] secondaryTypeTraits,
+            IBinaryComparatorFactory[] secondaryComparatorFactories, 
IMetadataPageManagerFactory pageManagerFactory) {
+        return new LSMRTreeWithAntiMatterLocalResourceFactory(storageManager, 
secondaryTypeTraits,
+                secondaryComparatorFactories, null, null, null, 
ThreadCountingOperationTrackerFactory.INSTANCE,
+                NoOpIOOperationCallbackFactory.INSTANCE, pageManagerFactory, 
getVirtualBufferCacheProvider(),
+                SynchronousSchedulerProvider.INSTANCE, MERGE_POLICY_FACTORY, 
MERGE_POLICY_PROPERTIES, DURABLE,
+                valueProviderFactories, rtreePolicyType, linearizerCmpFactory, 
btreeFields, IS_POINT_MBR,
+                btreeComparatorFactories);
     }
 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/735532e4/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesSecondaryIndexInsertOperatorTest.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesSecondaryIndexInsertOperatorTest.java
 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesSecondaryIndexInsertOperatorTest.java
index 668c4ef..4397290 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesSecondaryIndexInsertOperatorTest.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/rtree/LSMRTreeWithAntiMatterTuplesSecondaryIndexInsertOperatorTest.java
@@ -23,9 +23,10 @@ import 
org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ILinearizeComparatorFactory;
 import org.apache.hyracks.api.dataflow.value.ITypeTraits;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.common.api.IMetadataPageManagerFactory;
 import org.apache.hyracks.storage.am.common.api.IPrimitiveValueProviderFactory;
-import 
org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
 import org.apache.hyracks.storage.am.rtree.frames.RTreePolicyType;
+import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.test.support.TestStorageManagerComponentHolder;
 import org.apache.hyracks.tests.am.common.ITreeIndexOperatorTestHelper;
 import org.apache.hyracks.tests.am.rtree.RTreeSecondaryIndexInsertOperatorTest;
@@ -42,13 +43,13 @@ public class 
LSMRTreeWithAntiMatterTuplesSecondaryIndexInsertOperatorTest
     }
 
     @Override
-    protected IIndexDataflowHelperFactory createDataFlowHelperFactory(
+    protected IResourceFactory createSecondaryResourceFactory(
             IPrimitiveValueProviderFactory[] secondaryValueProviderFactories, 
RTreePolicyType rtreePolicyType,
             IBinaryComparatorFactory[] btreeComparatorFactories, 
ILinearizeComparatorFactory linearizerCmpFactory,
-            int[] btreeFields, int[] rtreeFields, ITypeTraits[] 
filterTypeTraits,
-            IBinaryComparatorFactory[] filterCmpFactories, int[] filterFields) 
{
-        return ((LSMRTreeWithAntiMatterTuplesOperatorTestHelper) testHelper)
-                .createDataFlowHelperFactory(secondaryValueProviderFactories, 
rtreePolicyType, btreeComparatorFactories,
-                        linearizerCmpFactory, rtreeFields, filterTypeTraits, 
filterCmpFactories, filterFields);
+            int[] btreeFields) {
+        return ((LSMRTreeWithAntiMatterTuplesOperatorTestHelper) 
testHelper).getSecondaryLocalResourceFactory(
+                storageManager, secondaryValueProviderFactories, 
rtreePolicyType, btreeComparatorFactories,
+                linearizerCmpFactory, btreeFields, secondaryTypeTraits, 
secondaryComparatorFactories,
+                (IMetadataPageManagerFactory) pageManagerFactory);
     }
 }

Reply via email to