You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2017/10/03 19:34:29 UTC

[43/65] [abbrv] jena git commit: JENA-1397: Rename java packages

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrFreeChain.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrFreeChain.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrFreeChain.java
deleted file mode 100644
index 4b01693..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrFreeChain.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block ;
-
-import java.util.ArrayDeque ;
-import java.util.Deque ;
-
-/**
- * Recycle blocks - but only in-session. At the end of JVM run, the blocks are
- * made "permanent" as no one finds them again on restart.
- */
-final public class BlockMgrFreeChain extends BlockMgrWrapper {
-    // Could keep Pair<Integer, ByteBuffer>
-    // List<Block> freeBlocks = new ArrayList<Block>() ;
-    private final Deque<Block> freeBlocks = new ArrayDeque<>() ;    // Keep as heap?
-
-    public BlockMgrFreeChain(BlockMgr blockMgr) {
-        super(blockMgr) ;
-    }
-
-    @Override
-    public Block allocate(int blockSize) {
-        if ( !freeBlocks.isEmpty() ) {
-            Block block = freeBlocks.removeFirst() ;
-            block.getByteBuffer().position(0) ;
-            return block ;
-        }
-        return super.allocate(blockSize) ;
-    }
-
-    @Override
-    public void free(Block block) {
-        if ( block.getId() >= blockMgr.allocLimit() )
-            freeBlocks.add(block) ;
-    }
-
-    @Override
-    public void resetAlloc(long boundary) {
-        super.resetAlloc(boundary);
-        // Just clear - assumes this is effectively a transaction boundary.
-        freeBlocks.clear(); 
-//        Iterator<Block> iter = freeBlocks.iterator() ;
-//        while(iter.hasNext()) {
-//            Block blk = iter.next() ;
-//            if ( blk.getId() < boundary )
-//                iter.remove();
-//        }
-    }
-    @Override
-    public boolean valid(int id) {
-        for ( Block blk : freeBlocks ) {
-            if ( blk.getId() == id )
-                return true ;
-        }
-        return super.valid(id) ;
-    }
-
-    @Override
-    public void sync() {
-        // Flush free blocks?
-        super.sync() ;
-    }
-
-    @Override
-    public String toString() {
-        return "Free:" + super.toString() ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrLogger.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrLogger.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrLogger.java
deleted file mode 100644
index 941a55e..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrLogger.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block ;
-
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-public class BlockMgrLogger implements BlockMgr // extends BlockMgrWrapper
-{
-    private final BlockMgr  blockMgr ;
-    protected final Logger  log ;
-    protected final boolean logAllOperations ;
-    private final String    label ;
-
-    public BlockMgrLogger(BlockMgr blockMgr, boolean logAllOperations) {
-        this(null, blockMgr.getLabel(), blockMgr, logAllOperations) ;
-    }
-
-    public BlockMgrLogger(String label, BlockMgr blockMgr, boolean logAllOperations) {
-        this(null, label, blockMgr, logAllOperations) ;
-    }
-
-    public BlockMgrLogger(Logger log, String label, BlockMgr blockMgr, boolean logAllOperations) {
-        this.blockMgr = blockMgr ;
-        if ( log == null )
-            log = LoggerFactory.getLogger(BlockMgr.class) ;
-        this.log = log ;
-        this.logAllOperations = logAllOperations ;
-        if ( label == null )
-            label = blockMgr.getLabel() ; 
-        this.label = label ;
-    }
-
-    @Override
-    public String getLabel() {
-        return label ;
-    }
-
-    @Override
-    public Block allocate(int blockSize) {
-        Block x = blockMgr.allocate(blockSize) ;
-        info("Allocate(" + x.getId() + ")") ;
-        return x ;
-    }
-
-    @Override
-    public boolean isEmpty() {
-        info("isEmpty()") ;
-        return blockMgr.isEmpty() ;
-    }
-
-    @Override
-    public long allocLimit() {
-        info("limit()") ;
-        return blockMgr.allocLimit() ;
-    }
-
-    @Override
-    public void resetAlloc(long boundary) {
-        info("resetAlloc("+boundary+")") ;
-        blockMgr.resetAlloc(boundary) ;
-    }
-    
-    @Override
-    public Block getRead(long id) {
-        info("getRead(" + id + ")") ;
-        return blockMgr.getRead(id) ;
-    }
-
-    @Override
-    public Block getWrite(long id) {
-        info("getWrite(" + id + ")") ;
-        return blockMgr.getWrite(id) ;
-    }
-
-    @Override
-    public Block promote(Block block) {
-        info("promote(" + block.getId() + ")") ;
-        return blockMgr.promote(block) ;
-    }
-
-    @Override
-    public void release(Block block) {
-        info("release(" + block.getId() + ")") ;
-        blockMgr.release(block) ;
-    }
-
-    @Override
-    public void write(Block block) {
-        info("write(" + block.getId() + ")") ;
-        blockMgr.write(block) ;
-    }
-
-    @Override
-    public void overwrite(Block block) {
-        info("overwrite(" + block.getId() + ")") ;
-        blockMgr.overwrite(block) ;
-    }
-
-    @Override
-    public void free(Block block) {
-        info("freeBlock(" + block.getId() + ")") ;
-        blockMgr.free(block) ;
-    }
-
-    @Override
-    public boolean valid(int id) {
-        info("valid(" + id + ")") ;
-        return blockMgr.valid(id) ;
-    }
-
-    @Override
-    public void close() {
-        info("close") ;
-        blockMgr.close() ;
-    }
-
-    @Override
-    public boolean isClosed() {
-        info("isClosed") ;
-        return blockMgr.isClosed() ;
-    }
-
-    @Override
-    public void sync() {
-        info("sync") ;
-        blockMgr.sync() ;
-    }
-
-    @Override
-    public void syncForce() {
-        info("syncForce") ;
-        blockMgr.syncForce() ;
-    }
-
-    @Override
-    public void beginRead() {
-        info("> start read") ;
-        blockMgr.beginRead() ;
-    }
-
-    @Override
-    public void endRead() {
-        info("< finish read") ;
-        blockMgr.endRead() ;
-    }
-
-    @Override
-    public void beginUpdate() {
-        info("> start update") ;
-        blockMgr.beginUpdate() ;
-    }
-
-    @Override
-    public void endUpdate() {
-        info("< finish update") ;
-        blockMgr.endUpdate() ;
-    }
-
-    private void info(String string) {
-        if ( label != null )
-            string = label + ": " + string ;
-        log.info(string) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrReadonly.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrReadonly.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrReadonly.java
deleted file mode 100644
index 6842da6..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrReadonly.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block;
-
-import org.seaborne.dboe.DBOpEnvException ;
-
-public class BlockMgrReadonly extends BlockMgrWrapper
-{
-    public BlockMgrReadonly(BlockMgr blockMgr) {
-        super(blockMgr) ;
-    }
-
-    @Override public void beginUpdate()                 { throw new DBOpEnvException("Read-only block manager") ; }
-    @Override public void endUpdate()                   { throw new DBOpEnvException("Read-only block manager") ; }
-    @Override public Block allocate(int blockSize)      { throw new DBOpEnvException("Read-only block manager") ; }
-    @Override public Block getWrite(long id)            { throw new DBOpEnvException("Read-only block manager") ; }
-    @Override public Block promote(Block block)         { throw new DBOpEnvException("Read-only block manager") ; }
-    @Override public void write(Block block)            { throw new DBOpEnvException("Read-only block manager") ; }
-    @Override public void overwrite(Block block)        { throw new DBOpEnvException("Read-only block manager") ; }
-    @Override public void free(Block block)             { throw new DBOpEnvException("Read-only block manager") ; }
-    
-//    @Override 
-//    public void sync()
-//    {
-//        blockMgr.sync() ;
-//    }
-
-    @Override public String toString()          { return "RO:"+super.toString() ; } 
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSwitcher.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSwitcher.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSwitcher.java
deleted file mode 100644
index 50fe4b3..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSwitcher.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block;
-
-public class BlockMgrSwitcher extends BlockMgrWrapper 
-{
-    protected final BlockMgr blockMgr1 ;
-    protected final BlockMgr blockMgr2 ;
-
-    public BlockMgrSwitcher(BlockMgr blockMgr1, BlockMgr blockMgr2)
-    {
-        super(blockMgr1) ;
-        this.blockMgr1 = blockMgr1 ;
-        this.blockMgr2 = blockMgr2 ;
-    }
-
-    public void switchover()
-    {
-        if ( super.blockMgr == blockMgr1 )
-            setBlockMgr(blockMgr2) ;
-        else
-            setBlockMgr(blockMgr1) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSync.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSync.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSync.java
deleted file mode 100644
index 9620698..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrSync.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block ;
-
-
-/**
- * Add synchronized to a BlockMgr. This is the same as BlockMgrWrapper but with
- * 'synchronized' added
- */
-
-public class BlockMgrSync implements BlockMgr {
-    protected final BlockMgr blockMgr ;
-
-    public BlockMgrSync(BlockMgr blockMgr) {
-        this.blockMgr = blockMgr ;
-    }
-
-    public BlockMgr getWrapped() {
-        return blockMgr ;
-    }
-
-    @Override
-    synchronized public Block allocate(int blockSize) {
-        return blockMgr.allocate(blockSize) ;
-    }
-
-    @Override
-    synchronized public Block getRead(long id) {
-        return blockMgr.getRead(id) ;
-    }
-
-    @Override
-    synchronized public Block getWrite(long id) {
-        return blockMgr.getWrite(id) ;
-    }
-
-    @Override
-    synchronized public Block promote(Block block) {
-        return blockMgr.promote(block) ;
-    }
-
-    @Override
-    synchronized public void release(Block block) {
-        blockMgr.release(block) ;
-    }
-
-    @Override
-    synchronized public void write(Block block) {
-        blockMgr.write(block) ;
-    }
-
-    @Override
-    synchronized public void overwrite(Block block) {
-        blockMgr.overwrite(block) ;
-    }
-
-    @Override
-    synchronized public void free(Block block) {
-        blockMgr.free(block) ;
-    }
-
-    @Override
-    synchronized public void sync() {
-        blockMgr.sync() ;
-    }
-
-    @Override
-    synchronized public void syncForce() {
-        blockMgr.syncForce() ;
-    }
-
-    @Override
-    synchronized public void close() {
-        blockMgr.close() ;
-    }
-
-    @Override
-    synchronized public boolean isEmpty() {
-        return blockMgr.isEmpty() ;
-    }
-
-    @Override
-    synchronized public long allocLimit() {
-        return blockMgr.allocLimit() ;
-    }
-
-    
-    @Override
-    synchronized public void resetAlloc(long boundary) {
-        blockMgr.resetAlloc(boundary) ;
-    }
-    
-    @Override
-    synchronized public void beginRead() {
-        blockMgr.beginRead() ;
-    }
-
-    @Override
-    synchronized public void endRead() {
-        blockMgr.endRead() ;
-    }
-
-    @Override
-    synchronized public void beginUpdate() {
-        blockMgr.beginUpdate() ;
-    }
-
-    @Override
-    synchronized public void endUpdate() {
-        blockMgr.endUpdate() ;
-    }
-
-    @Override
-    synchronized public boolean valid(int id) {
-        return blockMgr.valid(id) ;
-    }
-
-    @Override
-    synchronized public boolean isClosed() {
-        return blockMgr.isClosed() ;
-    }
-
-    @Override
-    synchronized public String getLabel() {
-        return blockMgr.getLabel() ;
-    }
-
-    @Override
-    public String toString() {
-        return "Sync:" + blockMgr.toString() ;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrTracker.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrTracker.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrTracker.java
deleted file mode 100644
index df93726..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrTracker.java
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block ;
-
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.Alloc ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.BeginRead ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.BeginUpdate ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.EndRead ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.EndUpdate ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.Free ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.GetRead ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.GetWrite ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.Promote ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.Release ;
-import static org.seaborne.dboe.base.block.BlockMgrTracker.Action.Write ;
-
-import java.util.ArrayList ;
-import java.util.List ;
-
-import org.apache.jena.atlas.lib.Pair ;
-import org.apache.jena.ext.com.google.common.collect.HashMultiset ;
-import org.apache.jena.ext.com.google.common.collect.Multiset ;
-import org.seaborne.dboe.DBOpEnvException ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-public class BlockMgrTracker /* extends BlockMgrWrapper */ implements BlockMgr {
-    private static Logger loggerDefault = LoggerFactory.getLogger(BlockMgrTracker.class) ;
-    public static boolean verbose       = false ;
-
-    static enum Action {
-        Alloc, Promote, GetRead, GetWrite, Write, Release, Free, 
-        BeginRead, EndRead, 
-        BeginUpdate, EndUpdate
-    }
-    static final Long                        NoId              = (long)-9 ;
-
-    // ---- State for tracking
-    // Track and count block references and releases
-    // No - the page is dirty.
-    
-    
-    protected final Multiset<Long>           activeReadBlocks  = HashMultiset.create() ;
-    protected final Multiset<Long>           activeWriteBlocks = HashMultiset.create() ;
-    // Track the operations
-    protected final List<Pair<Action, Long>> actions           = new ArrayList<>() ;
-    // ---- State for tracking
-
-    protected final BlockMgr                 blockMgr ;
-
-    private void clearInternalRW() {
-        activeReadBlocks.clear() ;
-        activeWriteBlocks.clear() ;
-        actions.clear() ;
-    }
-
-    private void clearInternalIter() {
-        clearInternalRW() ;
-    }
-
-    private int          inRead     = 0 ;
-    private boolean      inUpdate   = false ;
-    private boolean      inBatch    = false ;
-    private final Logger log ;
-    private final String label ;
-
-    public static BlockMgr track(BlockMgr blkMgr) {
-        return track(blkMgr.getLabel(), blkMgr) ;
-    }
-
-    private static BlockMgr track(String label, BlockMgr blkMgr) {
-        return new BlockMgrTracker(label, blkMgr) ;
-    }
-
-    private BlockMgrTracker(BlockMgr blockMgr) {
-        this(LoggerFactory.getLogger(BlockMgrTracker.class), blockMgr.getLabel(), blockMgr) ;
-    }
-
-    private BlockMgrTracker(String label, BlockMgr blockMgr) {
-        this(loggerDefault, label, blockMgr) ;
-    }
-
-    //
-    // public BlockMgrTracker(Class<?> cls, String label, BlockMgr blockMgr)
-    // {
-    // this(LoggerFactory.getLogger(cls), label, blockMgr) ;
-    // }
-
-    private BlockMgrTracker(Logger logger, String label, BlockMgr blockMgr) {
-        this.blockMgr = blockMgr ;
-        this.log = logger ;
-        this.label = blockMgr.getLabel() ;
-    }
-
-    private void add(Action action, Long id) {
-        actions.add(new Pair<>(action, id)) ;
-    }
-
-    @Override
-    public Block allocate(int blockSize) {
-        Block block ;
-        synchronized (this) {
-            checkUpdate(Alloc) ;
-            block = blockMgr.allocate(blockSize) ;
-            Long id = block.getId() ;
-            activeWriteBlocks.add(id) ;
-            add(Alloc, id) ;
-        }
-        return block ;
-    }
-
-    @Override
-    public Block getRead(long id) {
-        // What if this is a write block already?
-        synchronized (this) {
-            checkRead(GetRead) ;
-            Long x = id ;
-            add(GetRead, x) ;
-
-            if ( activeWriteBlocks.contains(x) )
-                activeWriteBlocks.add(x) ;
-            else
-                activeReadBlocks.add(x) ;
-        }
-        return blockMgr.getRead(id) ;
-    }
-
-    @Override
-    public Block getWrite(long id) {
-        synchronized (this) {
-            checkUpdate(GetWrite) ;
-            Long x = id ;
-            add(GetWrite, x) ;
-            activeWriteBlocks.add(x) ;
-        }
-        return blockMgr.getWrite(id) ;
-    }
-
-    @Override
-    public Block promote(Block block) {
-        synchronized (this) {
-            checkUpdate(Promote) ;
-            Long id = block.getId() ;
-            add(Promote, id) ;
-
-            if ( !activeWriteBlocks.contains(id) && !activeReadBlocks.contains(id) )
-                error(Promote, id + " is not an active block") ;
-
-            if ( activeReadBlocks.contains(id) )
-                // Remove one read count
-                // Really, do this if obtained via "getRead" and not "getWrite"
-                activeReadBlocks.remove(id) ;
-
-            // Double promotion results in only one entry.
-            if ( !activeWriteBlocks.contains(id) )
-                activeWriteBlocks.add(id) ;
-        }
-        return blockMgr.promote(block) ;
-    }
-
-    @Override
-    public void release(Block block) {
-        synchronized (this) {
-            checkRead(Release) ;
-            Long id = block.getId() ;
-            add(Release, id) ;
-
-            if ( !activeReadBlocks.contains(id) && !activeWriteBlocks.contains(id) )
-                error(Release, id + " is not an active block") ;
-
-            // May have been promoted.
-            if ( activeWriteBlocks.contains(id) )
-                activeWriteBlocks.remove(id) ;
-            else
-                activeReadBlocks.remove(block.getId()) ;
-        }
-        blockMgr.release(block) ;
-    }
-
-    @Override
-    public void write(Block block) {
-        writeTracker(block) ;
-        blockMgr.write(block) ;
-    }
-
-    @Override
-    synchronized public void overwrite(Block block) {
-        writeTracker(block) ;
-        blockMgr.overwrite(block) ;
-    }
-
-    private void writeTracker(Block block) {
-        synchronized (this) {
-            checkUpdate(Write) ;
-            Long id = block.getId() ;
-            add(Write, id) ;
-            if ( !activeWriteBlocks.contains(id) )
-                error(Write, id + " is not an active write block") ;
-        }
-    }
-
-    @Override
-    public void free(Block block) {
-        synchronized (this) {
-            checkUpdate(Free) ;
-            Long id = block.getId() ;
-            add(Free, id) ;
-            if ( activeReadBlocks.contains(id) )
-                error(Free, id + " is a read block") ;
-            else if ( !activeWriteBlocks.contains(id) )
-                error(Free, id + " is not a write block") ;
-            activeWriteBlocks.remove(id) ;
-        }
-        blockMgr.free(block) ;
-    }
-
-    @Override
-    public void sync() {
-        blockMgr.sync() ;
-    }
-
-    @Override
-    public void syncForce() {
-        blockMgr.syncForce() ;
-    }
-
-    @Override
-    public void close() {
-        blockMgr.close() ;
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return blockMgr.isEmpty() ;
-    }
-    
-    @Override
-    public long allocLimit() {
-        return blockMgr.allocLimit() ;
-    }
-    
-    @Override
-    public void resetAlloc(long boundary) {
-        blockMgr.resetAlloc(boundary) ;
-    }
-    
-    @Override
-    public boolean valid(int id) {
-        return blockMgr.valid(id) ;
-    }
-
-    @Override
-    public boolean isClosed() {
-        return blockMgr.isClosed() ;
-    }
-
-    @Override
-    synchronized public void beginRead() {
-        synchronized (this) {
-            if ( inUpdate )
-                error(BeginRead, "beginRead when already in update") ;
-            inRead++ ;
-            inUpdate = false ;
-        }
-        blockMgr.beginRead() ;
-    }
-
-    @Override
-    synchronized public void endRead() {
-        synchronized (this) {
-            if ( inRead == 0 )
-                error(EndRead, "endRead but not in read") ;
-            if ( inUpdate )
-                error(EndRead, "endRead when in update") ;
-
-            checkEmpty("Outstanding write blocks at end of read operations!", activeWriteBlocks) ;
-
-            if ( inRead == 0 ) {
-                // Check at end of multiple reads or a write
-                checkEmpty("Outstanding read blocks at end of read operations", activeReadBlocks) ;
-                clearInternalRW() ;
-            }
-
-            inUpdate = false ;
-            inRead-- ;
-        }
-        blockMgr.endRead() ;
-    }
-
-    @Override
-    public void beginUpdate() {
-        synchronized (this) {
-            if ( inRead > 0 )
-                error(BeginUpdate, "beginUpdate when already in read") ;
-            if ( inUpdate )
-                error(BeginUpdate, "beginUpdate when already in update") ;
-            inUpdate = true ;
-        }
-        blockMgr.beginUpdate() ;
-    }
-
-    @Override
-    public void endUpdate() {
-        synchronized (this) {
-            if ( !inUpdate )
-                error(EndUpdate, "endUpdate but not in update") ;
-            if ( inRead > 0 )
-                error(EndUpdate, "endUpdate when in read") ;
-
-            checkEmpty("Outstanding read blocks at end of update operations", activeReadBlocks) ;
-
-            checkEmpty("Outstanding write blocks at end of update operations", activeWriteBlocks) ;
-
-            inUpdate = false ;
-            inRead = 0 ;
-            clearInternalRW() ;
-        }
-        blockMgr.endUpdate() ;
-    }
-
-    private void checkUpdate(Action action) {
-//        if ( ! inBatch )
-//            warn(action, "update called outside a batch") ;
-        if ( ! inUpdate )
-            error(action, "called outside update") ;
-    }
-
-    private void checkRead(Action action) {
-        if ( !inUpdate && inRead == 0 )
-            error(action, "Called outside update and read") ;
-    }
-
-    private void checkEmpty(String string, Multiset<Long> blocks) {
-        if ( !blocks.isEmpty() ) {
-            error(string) ;
-            for ( Long id : blocks )
-                info("    Block: " + id) ;
-            history() ;
-            throw new DBOpEnvException() ;
-            // debugPoint() ;
-        }
-    }
-
-    private String msg(String string) {
-        if ( label == null )
-            return string ;
-        return label + ": " + string ;
-    }
-
-    private void info(String string) {
-        log.info(msg(string)) ;
-    }
-
-    private void warn(String string) {
-        log.warn(msg(string)) ;
-    }
-
-    private void warn(Action action, String string) {
-        warn(action + ": " + string) ;
-    }
-
-    private void error(String string) {
-        log.error(msg(string)) ;
-    }
-
-    private void error(Action action, String string) {
-        if ( verbose ) {
-            error(action + ": " + string) ;
-            history() ;
-        }
-        throw new BlockException(msg(action + ": " + string)) ;
-        // debugPoint() ;
-    }
-
-    // Do nothing - but use a a breakpoint point.
-    private void debugPoint() {}
-
-    private void history() {
-        info("History") ;
-        for ( Pair<Action, Long> p : actions ) {
-            if ( p.getRight() != NoId )
-                log.info(String.format("%s:     %-12s  %d", label, p.getLeft(), p.getRight())) ;
-            else
-                log.info(String.format("%s:     %-12s", label, p.getLeft())) ;
-
-        }
-    }
-
-    @Override
-    public String toString() {
-        return "BlockMgrTracker" + ((label == null) ? "" : (": " + label)) ;
-    }
-
-    @Override
-    public String getLabel() {
-        return label ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrWrapper.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrWrapper.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrWrapper.java
deleted file mode 100644
index 6a6b12f..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockMgrWrapper.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block ;
-
-
-public class BlockMgrWrapper implements BlockMgr {
-    protected BlockMgr blockMgr ;
-
-    public BlockMgrWrapper(BlockMgr blockMgr) {
-        setBlockMgr(blockMgr) ;
-    }
-
-    /** Set another BlockMgr as the target of the wrapper - return the old one */
-    protected final BlockMgr setBlockMgr(BlockMgr blockMgr) {
-        BlockMgr old = this.blockMgr ;
-        this.blockMgr = blockMgr ;
-        return old ;
-    }
-
-    public BlockMgr getWrapped() {
-        return blockMgr ;
-    }
-
-    @Override
-    public Block allocate(int blockSize) {
-        return blockMgr.allocate(blockSize) ;
-    }
-
-    @Override
-    public Block getRead(long id) {
-        return blockMgr.getRead(id) ;
-    }
-
-    @Override
-    public Block getWrite(long id) {
-        return blockMgr.getWrite(id) ;
-    }
-
-    @Override
-    public Block promote(Block block) {
-        return blockMgr.promote(block) ;
-    }
-
-    @Override
-    public void release(Block block) {
-        blockMgr.release(block) ;
-    }
-
-    @Override
-    public void write(Block block) {
-        blockMgr.write(block) ;
-    }
-
-    @Override
-    public void overwrite(Block block) {
-        blockMgr.overwrite(block) ;
-    }
-
-    @Override
-    public void free(Block block) {
-        blockMgr.free(block) ;
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return blockMgr.isEmpty() ;
-    }
-    
-    @Override
-    public long allocLimit() {
-        return blockMgr.allocLimit() ;
-    }
-    
-    @Override
-    public void resetAlloc(long boundary) {
-        blockMgr.resetAlloc(boundary) ;
-    }
-    
-    @Override
-    public void sync() {
-        blockMgr.sync() ;
-    }
-
-    @Override
-    public void syncForce() {
-        blockMgr.syncForce() ;
-    }
-
-    @Override
-    public boolean valid(int id) {
-        return blockMgr.valid(id) ;
-    }
-
-    @Override
-    public boolean isClosed() {
-        return blockMgr.isClosed() ;
-    }
-
-    @Override
-    public void close() {
-        blockMgr.close() ;
-    }
-
-    @Override
-    public void beginRead() {
-        blockMgr.beginRead() ;
-    }
-
-    @Override
-    public void endRead() {
-        blockMgr.endRead() ;
-    }
-
-    @Override
-    public void beginUpdate() {
-        blockMgr.beginUpdate() ;
-    }
-
-    @Override
-    public void endUpdate() {
-        blockMgr.endUpdate() ;
-    }
-
-    @Override
-    public String getLabel() {
-        return blockMgr.getLabel() ;
-    }
-
-    @Override
-    public String toString() {
-        return blockMgr.toString() ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockParams.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockParams.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockParams.java
deleted file mode 100644
index b1c6882..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockParams.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block;
-
-public interface BlockParams {
-    public FileMode getFileMode() ;
-    public Integer getBlockSize() ;
-    public Integer getBlockReadCacheSize() ;
-    public Integer getBlockWriteCacheSize() ;
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockType.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockType.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockType.java
deleted file mode 100644
index 5c7e9e0..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/BlockType.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block;
-
-import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.io.Printable ;
-import org.seaborne.dboe.DBOpEnvException ;
-
-import org.apache.jena.sparql.util.Named ;
-
-public enum BlockType implements Printable, Named
-{
-    // The id should fit into an unsigned byte.
-    FREE(-1, "Free"), 
-    BTREE_NODE(5, "BTreeNode") ,
-    BPTREE_BRANCH(6, "BPlusTreeBranch") ,
-    BPTREE_LEAF(7, "BPlusTreeLeaf") ,
-    DICTIONARY(10, "Dictionary") ,
-    RECORD_BLOCK(99, "RecordBlock"),
-    UNDEF(255, "UndefinedBlockType")
-    ;
-
-    private final int id ;
-    private final String name ;
-
-    BlockType(int id, String name)
-    {
-        this.id = id ;
-        this.name = name ;
-        
-    }
-    
-    @Override
-    public void output(IndentedWriter out)
-    { out.print(getName()) ; }
-
-    final public int id() { return id ; }
-    
-    @Override
-    final public String getName() { return name ; }
-    
-    @Override public String toString() { return getName() ; }
-    
-    public static BlockType extract(int x)
-    {
-        if ( x == BTREE_NODE.id() )         return BTREE_NODE ;
-        if ( x == BPTREE_BRANCH.id() )      return BPTREE_BRANCH ;
-        if ( x == BPTREE_LEAF.id() )        return BPTREE_LEAF ;
-        if ( x == RECORD_BLOCK.id() )       return RECORD_BLOCK ;
-        if ( x == DICTIONARY.id() )         return DICTIONARY ;
-        throw new DBOpEnvException("No known block type for "+x) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/FileMode.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/FileMode.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/FileMode.java
deleted file mode 100644
index ee02576..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/block/FileMode.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.block;
-
-public enum FileMode
-{
-    /** Use memory mapped files */
-    mapped,
-    /** Use in-JVM caching */
-    direct ;
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferBase.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferBase.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferBase.java
deleted file mode 100644
index 81a8d7e..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferBase.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.buffer;
-
-import static java.lang.String.format ;
-import static org.seaborne.dboe.sys.SystemIndex.FillByte ;
-import static org.seaborne.dboe.sys.Sys.NetworkOrder ;
-import static org.seaborne.dboe.sys.SystemIndex.NullOut ;
-
-import java.nio.ByteBuffer ;
-
-import org.apache.jena.atlas.lib.ByteBufferLib ;
-import org.seaborne.dboe.base.record.RecordException ;
-
-
-/** ByteBuffer specialization - Common operations for RecordBuffer and PtrBuffer */  
-abstract class BufferBase
-{
-    public static final boolean CheckBuffer = false ;
-    
-    protected ByteBuffer bb ;
-    protected int slotLen ;
-    protected int numSlot ;                 // Number of records in use
-    protected final int maxSlot ;           // Maximum number of records
-
-    protected BufferBase(ByteBuffer bb, int slotLen, int num)
-    {
-        if ( CheckBuffer )
-        {
-            if ( ! bb.order().equals(NetworkOrder) || !bb.hasArray() )
-                throw new RecordException("Duff buffer (byte order is not network order)") ;
-            if ( bb.limit() == 0 )
-                throw new RecordException("Duff buffer (zero length byte buffer)") ;
-            int size = bb.limit() ;
-            int slots = size/slotLen  ;
-            if ( size%slotLen != 0 )
-                throw new RecordException(format("Misaligned buffer: size=%d, keyLen=%d",size, slotLen)) ; 
-            if ( slots < num )
-                throw new RecordException(format("Wrong size: slots=%d, len=%d", slots, num)) ;
-        }
-        this.bb = bb ; 
-        this.slotLen = slotLen ;
-        this.numSlot = num ;
-        this.maxSlot = bb.limit()/slotLen ;
-        if ( ! bb.isReadOnly() && NullOut )
-            clear(numSlot, maxSlot-numSlot) ;
-    }
-    
-    // Why so many final methods?  This code is performace critical and "final" methods
-    // can be inlined by the JIT - or just not have object dispatch done each time
-    // because the destination is fixed.
-    // (and here - there are quite a few assumed relationships of the ints). 
-    
-    final
-    public void copy(int srcIdx, BufferBase dst, int dstIdx, int len)
-    {
-        if ( len == 0 )
-            return ;
-        
-        // Check end index is inside the buffer.
-        checkBounds(srcIdx+len-1, maxSlot) ;
-     
-        BufferBase src = this ;   // Clarity
-
-        if ( dst.numSlot < dstIdx-1 )
-            // Allow copy to be just off the end of dst.
-            throw new IllegalArgumentException(format("copy: Out of bounds: dstIdx=%d, dst size=%d", dstIdx, dst.numSlot)) ;
-        if ( src.slotLen != dst.slotLen )
-            throw new RecordException(format("copy: records of differnt sizes: %d, %d",src.slotLen, dst.slotLen)) ;
-        
-        // How do we set the numRec in dst? max(dstIdx+len, old count)  
-        ByteBufferLib.bbcopy(src.bb, srcIdx, dst.bb, dstIdx, len, slotLen) ;
-        dst.numSlot = Math.max(dstIdx+len, dst.numSlot) ; 
-    }
-    
-    final
-    public void copyToTop(BufferBase dst)
-    { 
-        copy(0, dst, dst.numSlot, numSlot) ; } 
-    
-    /** Remove top element */
-    final public void removeTop()
-    {
-        if ( numSlot == 0 )
-            throw new IndexOutOfBoundsException("removeTop: empty buffer") ; 
-        clear(numSlot-1) ;
-        numSlot-- ;
-    }
-    
-    final public void remove(int idx) { shiftDown(idx) ; }
-    
-    /** Does not reset the size */
-    final
-    public void clear(int idx, int len)
-    {
-        if ( NullOut )
-            ByteBufferLib.bbfill(bb, idx, (idx+len), FillByte, slotLen) ;
-    }
-
-    /** Does not reset the size */
-    final public void clear()           { clear(0, maxSlot) ; numSlot = 0 ; }
-    
-    /** Does not reset the size */
-    final public void clear(int idx)    { clear(idx, 1) ; }
-    
-    /** Is the record at idx set clear or not?
-        This is done without regard to buffer size.
-        Requires NullOut to be accurate.
-        Testing.
-     */
-    final public boolean isClear(int idx)
-    {
-        checkBounds(idx, maxSlot) ;
-        int x = idx*slotLen ;
-        int y = (idx+1)*slotLen ;
-        for ( int i = x ; i < y ; i++ )
-            if ( bb.get(i) != FillByte )
-            {
-//                byte b = bb.get(i) ;
-//                lib.ByteBufferLib.print(bb) ;
-                return false ;
-            }
-        return true ;
-    }
-
-    final public boolean isFull()
-    {
-        return numSlot >= maxSlot ; 
-    }
-
-    final public boolean isEmpty()
-    {
-        return numSlot == 0 ; 
-    }
-    
-    final public void incSize() { incSize(1) ; }
-    final public void incSize(int n)
-    { 
-        if ( numSlot+n > maxSlot )
-            throw new IllegalArgumentException(format("inc(%d): out of range: max=%d", n, maxSlot)) ;
-        numSlot += n ;
-    }
-
-    final public void decSize() { decSize(1) ; }
-    final public void decSize(int n)
-    { 
-        if ( numSlot-n < 0 )
-            throw new IllegalArgumentException(format("dec(%d): out of range: max=%d", n, maxSlot)) ;
-        numSlot -= n ;
-    }
-    
-    final public int slotLen()      { return slotLen ; }
-    
-    final public int getSize()      { return numSlot ; } 
-    
-    final public void setSize(int n)
-    {
-        if ( n < 0 || n > maxSlot )
-            throw new IllegalArgumentException(format("size(%d): out of range: max=%d", n, maxSlot)) ;
-        numSlot = n ;
-    }
-    
-    final public int size()       { return numSlot ; }
-    final public int maxSize()    { return maxSlot ; }
-    
-    final public void shiftUp(int idx) { shiftUpN(idx, 1) ; }
-    final public void shiftUpN(int idx, int num)
-    {
-        checkBounds(idx, numSlot) ;
-        if ( numSlot + num > maxSlot )
-            throw new IllegalArgumentException(format("Shift up(%d): out of range: len=%d max=%d", num, num, maxSlot)) ;
-        
-        ByteBufferLib.bbcopy(bb, idx, idx+num, (numSlot-idx), slotLen) ;       // src, dst 
-        if ( NullOut )
-            clear(idx, num) ;
-
-        numSlot += num ;
-    }
-    
-    final public void shiftDown(int idx) { shiftDownN(idx, 1) ; }
-    final public void shiftDownN(int idx, int num)
-    {
-        checkBounds(idx, numSlot) ;
-        if ( idx+num > numSlot )
-            throw new IllegalArgumentException(format("Shift down(%d,%d): out of range: len=%d", idx, num, num)) ;
-
-        ByteBufferLib.bbcopy(bb, idx+num, idx, (numSlot-num-idx), slotLen) ;       // src, dst
-
-        if ( NullOut )
-            clear(numSlot-num, num) ;
-        numSlot -= num ;
-    }
-    
-//    @Override
-//    final public String toString()
-//    {
-//        StringBuilder str = new StringBuilder() ;
-//        str.append(format("Len=%d Count=%d ", bb.limit()/recLen, num)) ;
-//        
-//        for ( int i = 0 ; i < max*recLen ; i++ )
-//        {
-//            if ( i != 0 && i%recLen == 0 )
-//                str.append(" ") ;
-//            byte b = bb.get(i) ;
-//            str.append(format("%02x", b)) ;
-//        }
-//        return str.toString() ;
-//    }
-
-    /** Move the element from the high end of this to the low end of other */
-    public void shiftRight(BufferBase other)
-    {
-        if ( other.numSlot >= other.maxSlot )
-            throw new BufferException("No space in destination buffer") ;
-        if ( numSlot <= 0 )
-            throw new BufferException("Empty buffer") ;
-
-        if ( other.numSlot > 0 )
-            other.shiftUp(0) ;
-        else
-            other.numSlot++ ;
-        // Copy high to low slot.
-        ByteBufferLib.bbcopy(bb, (numSlot-1), other.bb, 0, 1, slotLen) ;
-        removeTop() ;
-    }
-
-    /** Move the element from the low end of other to the high end of this */
-    public void shiftLeft(BufferBase other)
-    {
-        if ( numSlot >= maxSlot )
-            throw new BufferException("No space in destination buffer") ;
-        if ( other.numSlot <= 0 )
-            throw new BufferException("Empty buffer") ;
-
-        // Copy low to above high slot.
-        ByteBufferLib.bbcopy(other.bb, 0, bb, numSlot, 1, slotLen) ;
-        // Correct length.
-        numSlot ++ ;
-        other.shiftDown(0) ;
-    }
-
-    final private static void checkBounds(int idx, int len)
-    {
-        if ( idx < 0 || idx >= len )
-            throw new BufferException(format("Out of bounds: idx=%d, size=%d", idx, len)) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferException.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferException.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferException.java
deleted file mode 100644
index 9b55dc2..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/BufferException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.buffer;
-
-public class BufferException extends RuntimeException
-{
-    public BufferException()                            { super() ; }
-    public BufferException(String msg)                  { super(msg) ; }
-    public BufferException(Throwable th)                { super(th) ; }
-    public BufferException(String msg, Throwable th)    { super(msg, th) ; }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/PtrBuffer.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/PtrBuffer.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/PtrBuffer.java
deleted file mode 100644
index b3927cd..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/PtrBuffer.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.buffer ;
-
-import static java.lang.String.format ;
-
-import java.nio.ByteBuffer ;
-import java.nio.IntBuffer ;
-
-import org.seaborne.dboe.base.record.RecordException ;
-import org.seaborne.dboe.sys.Sys;
-import org.seaborne.dboe.sys.SystemIndex ;
-
-/** An IntBuffer with extra operations */
-
-final public class PtrBuffer extends BufferBase {
-    private IntBuffer iBuff ;
-
-    private PtrBuffer(int maxRec) {
-        this(ByteBuffer.allocate(SystemIndex.SizeOfPointer * maxRec), 0) ;
-    }
-
-    public PtrBuffer(ByteBuffer bb, int num) {
-        super(bb, SystemIndex.SizeOfPointer, num) ;
-        iBuff = bb.asIntBuffer() ;
-
-        if ( CheckBuffer ) {
-            // It is a IntBuffer with associated ByteBuffer
-            if ( iBuff.position() != 0 || bb.order() != Sys.NetworkOrder )
-                throw new RecordException("Duff pointer buffer") ;
-        }
-    }
-
-    public int get(int idx) {
-        checkBounds(idx, numSlot) ;
-        return _get(idx) ;
-    }
-
-    public int getHigh() {
-        if ( numSlot == 0 )
-            throw new IllegalArgumentException("Empty PtrBuffer") ;
-        return _get(numSlot - 1) ;
-    }
-
-    public int getLow() {
-        if ( numSlot == 0 )
-            throw new IllegalArgumentException("Empty PtrBuffer") ;
-        return _get(0) ;
-    }
-
-    public void add(int val) {
-        add(numSlot, val) ;
-    }
-
-    public void add(int idx, int val) {
-        if ( idx != numSlot ) {
-            checkBounds(idx, numSlot) ;
-            shiftUp(idx) ;
-        } else {
-            if ( numSlot >= maxSlot )
-                throw new BufferException(format("Out of bounds: idx=%d, ptrs=%d", idx, maxSlot)) ;
-            numSlot++ ;
-        }
-        // Add right at the top.
-        _set(idx, val) ;
-    }
-
-    public void set(int idx, int val) {
-        checkBounds(idx, numSlot) ;
-        _set(idx, val) ;
-    }
-
-    private final int _get(int idx) {
-        return iBuff.get(idx) ;
-    }
-
-    private final void _set(int idx, int val) {
-        iBuff.put(idx, val) ;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder str = new StringBuilder() ;
-        str.append(format("Len=%d Max=%d ", numSlot, maxSlot)) ;
-
-        for ( int i = 0 ; i < numSlot ; i++ ) {
-            if ( i != 0 )
-                str.append(" ") ;
-            int x = _get(i) ;
-            str.append(format("%04d", x)) ;
-        }
-        return str.toString() ;
-    }
-
-    private static void checkBounds(int idx, int len) {
-        if ( idx < 0 || idx >= len )
-            throw new BufferException(format("Out of bounds: idx=%d, ptrs=%d", idx, len)) ;
-    }
-
-    /**
-     * A duplicate which does not share anything with the original - for testing
-     */
-    public PtrBuffer duplicate() {
-        PtrBuffer n = new PtrBuffer(maxSlot) ;
-        copy(0, n, 0, maxSlot) ; // numSlot
-        n.numSlot = numSlot ; // Reset
-        return n ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBuffer.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBuffer.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBuffer.java
deleted file mode 100644
index 8999f07..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBuffer.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.buffer ;
-
-import static java.lang.String.format ;
-import static org.apache.jena.atlas.lib.Alg.encodeIndex ;
-
-import java.nio.ByteBuffer ;
-import java.util.Iterator ;
-
-import org.seaborne.dboe.base.record.Record ;
-import org.seaborne.dboe.base.record.RecordFactory ;
-import org.seaborne.dboe.base.record.RecordMapper ;
-
-final public class RecordBuffer extends BufferBase {
-    private RecordFactory factory ;
-
-    // Need own specialized binary search :-(
-
-    public RecordBuffer(RecordFactory recFactory, int maxRec) {
-        this(ByteBuffer.allocate(recFactory.recordLength() * maxRec), recFactory, 0) ;
-    }
-
-    public RecordBuffer(ByteBuffer bb, RecordFactory recFactory, int num) {
-        super(bb, recFactory.recordLength(), num) ;
-        this.factory = recFactory ;
-    }
-
-    public <X> X access(int idx, byte[] key, RecordMapper<X> mapper) {
-        checkBounds(idx, numSlot) ;
-        return _access(idx, key, mapper) ;
-    }
-
-    public Record get(int idx) {
-        checkBounds(idx, numSlot) ;
-        return _get(idx) ;
-    }
-
-    public Record getLow() {
-        if ( numSlot == 0 )
-            throw new IllegalArgumentException("getLow: Empty RecordBuffer") ;
-        return _get(0) ;
-    }
-
-    public Record getHigh() {
-        if ( numSlot == 0 )
-            throw new IllegalArgumentException("getHigh: Empty RecordBuffer") ;
-        return _get(numSlot - 1) ;
-    }
-
-    // Inserts at top.
-    public void add(Record record) {
-        add(numSlot, record) ;
-    }
-
-    // Inserts at slot idx
-    public void add(int idx, Record record) {
-        if ( idx != numSlot ) {
-            checkBounds(idx, numSlot) ;
-            shiftUp(idx) ; // Changes count.
-        } else {
-            if ( numSlot >= maxSlot )
-                throw new BufferException(format("Out of bounds: idx=%d, ptrs=%d", idx, maxSlot)) ;
-            numSlot++ ;
-        }
-        _set(idx, record) ;
-    }
-
-    // Overwrites the contents of slot idx
-    public void set(int idx, Record record) {
-        if ( idx == numSlot ) {
-            add(idx, record) ;
-            return ;
-        } else
-            checkBounds(idx, numSlot) ;
-        _set(idx, record) ;
-    }
-
-    // No checking bound : careful use only!
-
-    public <X> X _access(int idx, byte[] key, RecordMapper<X> mapper) {
-        return factory.access(bb, idx, key, mapper) ;
-    }
-
-    public Record _get(int idx) {
-        return factory.buildFrom(bb, idx) ;
-    }
-
-    // No bounds checking : careful use only!
-    void _set(int idx, Record rec) {
-        factory.insertInto(rec, bb, idx) ;
-    }
-
-    // Linear search for testing.
-    int find1(byte[] data) {
-        for ( int i = 0 ; i < numSlot ; i++ ) {
-            int x = compare(i, data) ;
-            if ( x == 0 )
-                return i ;
-            if ( x > 0 )
-                return encodeIndex(i) ;
-        }
-        return encodeIndex(numSlot) ;
-    }
-
-    // Binary search
-    public int find(Record k) {
-        return find(k, 0, numSlot) ;
-    }
-
-    public Iterator<Record> iterator() {
-        return new RecordBufferIterator(this) ;
-    }
-
-    /** Iterator over a range from min (inclusive) to max(exclusive) */
-    public Iterator<Record> iterator(Record min, Record max) {
-        return new RecordBufferIterator(this, min, max) ;
-    }
-
-    public Record findGet(Record k) {
-        int x = find(k) ;
-        if ( x >= 0 )
-            return get(x) ;
-        return null ;
-    }
-
-    /** return true is removed anything */
-    public boolean removeByKey(Record k) {
-        int x = find(k) ;
-        if ( x < 0 )
-            return false ;
-        super.remove(x) ;
-        return true ;
-    }
-
-    /** Search for key in range fromIndex (inclusive) to toIndex (exclusive) */
-    public int find(Record rec, int fromIndex, int toIndex) {
-        int low = fromIndex ;
-        int high = toIndex - 1 ;
-
-        byte[] key = rec.getKey() ;
-        // http://en.wikipedia.org/wiki/Binary_search
-
-        while (low <= high) {
-            int mid = (low + high) >>> 1 ; // int divide by 2
-
-            int x = compare(mid, key) ;
-            // System.out.printf("Compare: %d(%s) %s ==> %d\n", mid,
-            // Record.str(get(mid)), Record.str(data), x) ;
-
-            if ( x < 0 )
-                low = mid + 1 ;
-            else if ( x > 0 )
-                high = mid - 1 ;
-            else
-                return mid ;
-        }
-        // On exit, when not finding, low is the least value
-        // above, including off the end of the array.
-        return encodeIndex(low) ;
-    }
-
-    // Record compareByKey except we avoid touching bytes by exiting as soon as
-    // possible.
-    // No record created as would be by using
-    // compareByKey(RecordBuffer.get(idx), record)
-    // Compare the slot at idx with value.
-    private int compare(int idx, byte[] value) {
-        idx = idx * slotLen ;
-
-        for ( int i = 0 ; i < value.length ; i++ ) {
-            byte b1 = bb.get(idx + i) ;
-            byte b2 = value[i] ;
-            if ( b1 == b2 )
-                continue ;
-            return (b1 & 0xFF) - (b2 & 0xFF) ;
-        }
-        return 0 ;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder str = new StringBuilder(40000) ;
-        str.append(format("Len=%d Max=%d: ", numSlot, bb.limit() / slotLen)) ;
-
-        // Print active slots as records.
-        for ( int i = 0 ; i < numSlot ; i++ ) {
-            if ( i != 0 )
-                str.append(" ") ;
-            Record r = _get(i) ;
-            str.append(r.toString()) ;
-        }
-
-        // // Print empty slots
-        // for ( int i = numSlot*slotLen ; i < maxSlot*slotLen ; i++ )
-        // {
-        // if ( i != 0 && i%slotLen == 0 )
-        // str.append(" ") ;
-        // byte b = bb.get(i) ;
-        // str.append(format("%02x", b)) ;
-        // }
-        String s = str.toString() ;
-        return s ;
-    }
-
-    private static void checkBounds(int idx, int len) {
-        if ( idx < 0 || idx >= len )
-            throw new IllegalArgumentException(format("Out of bounds: idx=%d, size=%d", idx, len)) ;
-    }
-
-    /**
-     * A duplicate which does not share anything with the original - for testing
-     */
-    public RecordBuffer duplicate() {
-        RecordBuffer n = new RecordBuffer(factory, maxSlot) ;
-        copy(0, n, 0, maxSlot) ;    // numSlot
-        n.numSlot = numSlot ;       // reset the allocated length
-        return n ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBufferIterator.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBufferIterator.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBufferIterator.java
deleted file mode 100644
index f2b8944..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/buffer/RecordBufferIterator.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.buffer;
-
-import static org.apache.jena.atlas.lib.Alg.decodeIndex ;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.seaborne.dboe.base.record.Record ;
-
-public class RecordBufferIterator implements Iterator<Record>
-{
-    private RecordBuffer rBuff ;
-    private int nextIdx ;
-    private Record slot = null ;
-    private final Record maxRec ;
-    private final Record minRec ;
-    
-    RecordBufferIterator(RecordBuffer rBuff)
-    { this(rBuff, null, null); }
-    
-    RecordBufferIterator(RecordBuffer rBuff, Record minRecord, Record maxRecord)
-    {
-        this.rBuff = rBuff ;
-        nextIdx = 0 ;
-        minRec = minRecord ;
-        if ( minRec != null )
-        {
-            nextIdx = rBuff.find(minRec) ;
-            if ( nextIdx < 0 )
-                nextIdx = decodeIndex(nextIdx) ;
-        }
-        
-        maxRec = maxRecord ; 
-    }
-
-    private void finish()
-    {
-        rBuff = null ;
-        nextIdx = -99 ;
-        slot = null ;
-    }
-    
-    @Override
-    public boolean hasNext()
-    {
-        if ( slot != null )
-            return true ;
-        if ( nextIdx < 0 )
-            return false ;
-        if ( nextIdx >= rBuff.size() )
-        {
-            finish() ;
-            return false ;
-        }
-        
-        slot = rBuff.get(nextIdx) ;
-        if ( maxRec != null && Record.keyGE(slot, maxRec) )
-        {
-            // Finished - now to large
-            finish() ;
-            return false ;
-        }
-        nextIdx ++ ;
-        return true ;
-    }
-
-    @Override
-    public Record next()
-    {
-        if ( ! hasNext() )
-            throw new NoSuchElementException("RecordBufferIterator") ;
-        Record r = slot ;
-        slot = null ;
-        return r ;
-    }
-
-    @Override
-    public void remove()
-    { throw new UnsupportedOperationException("RecordBufferIterator.remove") ; }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/AlreadyLocked.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/AlreadyLocked.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/AlreadyLocked.java
deleted file mode 100644
index dfe4125..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/AlreadyLocked.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.file;
-
-import org.seaborne.dboe.DBOpEnvException;
-
-/** Exception throws when an attempt to take a {@link ProcessFileLock}
- *  with a call of {@link ProcessFileLock#lockEx}
- *  is made and the lock is already held.
- */
-public class AlreadyLocked extends DBOpEnvException {
-    public AlreadyLocked(String msg) { super(msg); }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFile.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFile.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFile.java
deleted file mode 100644
index 1afa89f..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFile.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.file;
-
-import java.io.RandomAccessFile ;
-
-import org.apache.jena.atlas.lib.Closeable ;
-import org.apache.jena.atlas.lib.Sync ;
-
-/** An append-only, read-anywhere, binary file.
- * A {@code BinaryDataFile} does not record the length and assumes the
- * entries are self-defining.
- * 
- *  @see RandomAccessFile
- */
-public interface BinaryDataFile extends Closeable, Sync {
-    // What about java.nio.channels.FileChannel?
-    // On OpenJDK,  RandomAccessFile and FileChannelImpl both dive into native code.
-    //  
-    // The choice seems to come down to ByteBuffers vs byte[]
-    // which in turn is a small/large data (scattered data)
-    // issue.  We are currently expecting small(er) I/O so byte[]
-    // and being like Thrift is better.
-
-    // byte[] vs ByteBuffer
-    
-    /** Open the file */
-    public void open() ;
-    
-    /** Is it open? */ 
-    public boolean isOpen() ;
-    
-    /** Read into a byte array, returning the number of bytes read. 
-     * Reads are at an absolute position and a read is atomic/thread-safe.
-     * 
-     * @param posn Location of the read operation.
-     * @param b byte array
-     * 
-     * @return The number of bytes read
-     */
-    public default int read(long posn, byte b[]) {
-        return read(posn, b, 0, b.length);
-    }
-
-    /** Read into a byte array, returning the number of bytes read.
-     * Reads are at an absolute position and a read is atomic/thread-safe.
-     * 
-     * @param posn Location of the read operation.
-     * @param b
-     * @param start of bytesarray to read into
-     * @param length Maximum number of bytes to read. 
-     * @return The number of bytes read
-     */
- 
-    public int read(long posn, byte b[], int start, int length) ;
-
-    /** Write bytes - bytes are always written to the end of the file.
-     * Return the location where the write started.
-     */ 
-    public default long write(byte b[]) {
-        return write(b, 0, b.length) ;
-    }
-    
-    /** Write bytes - bytes are always written to the end of the file.
-     * Return the location where the write started.
-     */ 
-    public long write(byte b[], int start, int length) ;
-    
-    /** Return the length of the file (including any buffered writes) */
-    public long length() ;
-
-    /** Truncate the file */ 
-    public void truncate(long length) ; 
-
-    /** Return whether this is an empty file or not */ 
-    public default boolean isEmpty() { return length() == 0 ; } 
-
-    @Override
-    public void sync() ;
-    
-    @Override
-    public void close() ;
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileMem.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileMem.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileMem.java
deleted file mode 100644
index 677a523..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileMem.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.file;
-
-import org.apache.jena.atlas.RuntimeIOException ;
-import org.apache.jena.atlas.io.IO ;
-
-/** Implementation of {@link BinaryDataFile} in memory for testing
- * and development use. Raw performance is not an objective.
- * 
- * <li>This implementation is thread-safe. 
- */
-public class BinaryDataFileMem implements BinaryDataFile {
-
-    private boolean readMode ;
-    private SegmentedMemBuffer storage ;
-    
-    public BinaryDataFileMem() { 
-    }
-    
-    @Override
-    synchronized
-    public void open() {
-        if ( storage != null )
-            throw new RuntimeIOException("Already open") ;
-        storage = new SegmentedMemBuffer() ;
-        readMode = true ;
-    }
-
-    @Override
-    synchronized
-    public boolean isOpen() {
-        return storage != null ;
-    }
-    
-    @Override
-    synchronized
-    public int read(long posn, byte[] b, int start, int length) {
-        checkOpen() ;
-        switchToReadMode() ;
-        return storage.read(posn, b, start, length) ;
-    }
-
-    @Override
-    synchronized
-    public long write(byte[] b, int start, int length) {
-        checkOpen() ;
-        switchToWriteMode() ;
-        long x = storage.length() ;
-        storage.write(x, b, start, length) ;
-        return x ; 
-    }
-
-    @Override
-    synchronized
-    public void truncate(long length) {
-        if ( length < 0 )
-            IO.exception(String.format("truncate: bad length : %d", length)) ;
-        checkOpen() ;
-        switchToWriteMode() ;
-        storage.truncate(length); 
-    }
-
-    @Override
-    synchronized
-    public void sync() {
-        checkOpen() ;
-        storage.sync();
-    }
-
-    @Override
-    synchronized
-    public void close() {
-        if ( ! isOpen() )
-            return ;
-        storage.close();
-        storage = null ;
-    }
-
-    @Override
-    synchronized
-    public long length() {
-        return storage.length() ;
-    }
-    
-    private void switchToReadMode() {
-        readMode = true ;
-    }
-
-    private void switchToWriteMode() {
-        readMode = false ;
-    }
-
-    private void checkOpen() {
-        if ( ! isOpen() ) 
-            throw new RuntimeIOException("Not open") ;
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileRandomAccess.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileRandomAccess.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileRandomAccess.java
deleted file mode 100644
index 2266e25..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileRandomAccess.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.file;
-
-import java.io.IOException ;
-import java.io.RandomAccessFile ;
-
-import org.apache.jena.atlas.RuntimeIOException ;
-import org.apache.jena.atlas.io.IO ;
-
-/** Implementation of {@link BinaryDataFile} using {@link RandomAccessFile}.
- *  
- * <li>No buffering of reads or writes provided.
- * <li>Not thread-safe.
- *  
- *  @see BinaryDataFileWriteBuffered
- */
-public class BinaryDataFileRandomAccess implements BinaryDataFile {
-    // On OpenJDK, RandomAccessFile and FileChannelImpl both
-    // dive into native code.
-    protected RandomAccessFile file ;
-    protected boolean readMode ;
-    protected long readPosition ;
-    protected long writePosition ;
-    private final String filename ;
-    
-    public BinaryDataFileRandomAccess(String filename) {
-       this.filename = filename ;
-    }
-    
-    @Override
-    public void open() {
-        if ( file != null )
-            throw new RuntimeIOException("Already open") ;
-        try { 
-            file = new RandomAccessFile(filename, "rw") ; 
-            writePosition = file.length() ;
-            readPosition = 0 ;
-            readMode = true ;
-        }
-        catch (IOException e) { IO.exception(e); }
-    }
-
-    @Override
-    public boolean isOpen() {
-        return file != null ;
-    }
-    
-    @Override
-    public int read(long posn, byte[] b, int start, int length) {
-        checkOpen() ;
-        switchToReadMode() ;
-        seek(posn) ;
-        try {
-            int x = file.read(b, start, length) ;
-            readPosition += x ;
-            return x ;
-        }
-        catch (IOException ex) { IO.exception(ex); return -1 ; }
-    }
-
-    @Override
-    public long write(byte[] b, int start, int length) {
-        checkOpen() ;
-        switchToWriteMode() ;
-        long x = writePosition ;
-        try { 
-            file.write(b, start, length) ; 
-            writePosition += length ;
-        }
-        catch (IOException ex) { IO.exception(ex) ; }
-        return x ;
-    }
-
-    
-    // Move the RandomAccess file pointer.
-    private void seek(long posn) {
-        try { file.seek(posn) ; }
-        catch (IOException ex) { IO.exception(ex) ; }
-    }
-
-    @Override
-    public void truncate(long length) {
-        checkOpen() ;
-        switchToWriteMode() ; 
-        try { file.setLength(length); }
-        catch (IOException ex) { IO.exception(ex) ; }
-    }
-
-    @Override
-    public void sync() {
-        checkOpen() ;
-        flush$() ;
-    }
-
-    protected void flush$() {
-        try { file.getFD().sync() ; }
-        catch (IOException ex) { IO.exception(ex) ; }
-    }
-    
-    @Override
-    public void close() {
-        if ( ! isOpen() )
-            return ;
-        try { file.close(); }
-        catch (IOException ex) { IO.exception(ex) ; }
-        file = null ;
-    }
-
-    @Override
-    public long length() {
-        try { return file.length() ;}
-        catch (IOException ex) { IO.exception(ex) ; return -1 ;}
-    }
-    
-    protected void switchToReadMode() {
-        if ( ! readMode )
-            readMode = true ;
-    }
-
-    protected void switchToWriteMode() {
-        if ( readMode ) {
-            readMode = false ;
-            seek(writePosition);
-        }
-    }
-
-    protected void checkOpen() {
-        if ( ! isOpen() ) 
-            throw new RuntimeIOException("Not open") ;
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileSync.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileSync.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileSync.java
deleted file mode 100644
index d5f0aba..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileSync.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.file;
-
-
-/** Add synchronization to all BinaryDataFile operations.
- *  This gives the correct thread-safe operation 
- *  but isn'tnecessarily the best way to do it.
- */
-public class BinaryDataFileSync implements BinaryDataFile {
-    private final BinaryDataFile other ;
-    
-    public BinaryDataFileSync(BinaryDataFile other) {
-        this.other = other ;
-    }
-    
-    @Override
-    synchronized
-    public void open() { other.open() ; } 
-
-    @Override
-    synchronized
-    public boolean isOpen() { return other.isOpen() ; }
-
-    @Override
-    synchronized
-    public int read(long posn, byte[] b) {
-        return other.read(posn, b) ;
-    }
-
-    @Override
-    synchronized
-    public int read(long posn, byte[] b, int start, int length) {
-        return other.read(posn, b, start, length) ;
-    }
-
-    @Override
-    synchronized
-    public long write(byte[] b) {
-        return other.write(b) ;
-    }
-    
-    @Override
-    synchronized
-    public long write(byte[] b, int start, int length) {
-        return other.write(b, start, length) ;
-    }
-
-    @Override
-    synchronized
-    public long length() {
-        return other.length() ;
-    }
-
-    @Override
-    synchronized
-    public void truncate(long length) { other.truncate(length); }
-
-    @Override
-    synchronized
-    public void sync() { other.sync(); }
-
-    @Override
-    synchronized
-    public void close() { other.close(); }
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/3d456654/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileWrapper.java
----------------------------------------------------------------------
diff --git a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileWrapper.java b/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileWrapper.java
deleted file mode 100644
index 9788e19..0000000
--- a/jena-db/jena-dboe-base/src/main/java/org/seaborne/dboe/base/file/BinaryDataFileWrapper.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.seaborne.dboe.base.file;
-
-public class BinaryDataFileWrapper implements BinaryDataFile {
-    private final BinaryDataFile other ;
-    
-    public BinaryDataFileWrapper(BinaryDataFile other) {
-        this.other = other ;
-    }
-    
-    @Override
-    public void open() { other.open() ; } 
-
-    @Override
-    public boolean isOpen() { return other.isOpen() ; }
-
-    @Override
-    public int read(long posn, byte[] b) {
-        return other.read(posn, b) ;
-    }
-
-    @Override
-    public int read(long posn, byte[] b, int start, int length) {
-        return other.read(posn, b, start, length) ;
-    }
-
-    @Override
-    public long write(byte[] b) {
-        return other.write(b) ;
-    }
-    
-    @Override
-    public long write(byte[] b, int start, int length) {
-        return other.write(b, start, length) ;
-    }
-
-    @Override
-    public long length() {
-        return other.length() ;
-    }
-
-    @Override
-    public void truncate(long length) { other.truncate(length); }
-
-    @Override
-    public void sync() { other.sync(); }
-
-    @Override
-    public void close() { other.close(); }
-}
-