Search in sources :

Example 1 with DataStoreRegister

use of gate.DataStoreRegister in project gate-core by GateNLP.

the class TestPersist method testDSR.

// testDelete()
/**
 * Test the DS register.
 */
public void testDSR() throws Exception {
    DataStoreRegister dsr = Gate.getDataStoreRegister();
    assertTrue("DSR has wrong number elements (not 0): " + dsr.size(), dsr.size() == 0);
    // create a temporary directory; because File.createTempFile actually
    // writes the bloody thing, we need to delete it from disk before calling
    // DataStore.create
    File storageDir = File.createTempFile("TestPersist__", "__StorageDir");
    storageDir.delete();
    // create and open a serial data store
    DataStore sds = Factory.createDataStore("gate.persist.SerialDataStore", storageDir.toURI().toURL().toString());
    // create a document with some annotations / features on it
    String server = TestDocument.getTestServerName();
    Document doc = Factory.newDocument(new URL(server + "tests/doc0.html"));
    doc.getFeatures().put("hi there", new Integer(23232));
    doc.getAnnotations().add(new Long(5), new Long(25), "ThingyMaJig", Factory.newFeatureMap());
    // save the document
    Document persDoc = (Document) sds.adopt(doc);
    sds.sync(persDoc);
    // DSR should have one member
    assertTrue("DSR has wrong number elements (expected 1): " + dsr.size(), dsr.size() == 1);
    // create and open another serial data store
    storageDir = File.createTempFile("TestPersist__", "__StorageDir");
    storageDir.delete();
    DataStore sds2 = Factory.createDataStore("gate.persist.SerialDataStore", storageDir.toURI().toURL().toString());
    // DSR should have two members
    assertTrue("DSR has wrong number elements: " + dsr.size(), dsr.size() == 2);
    // peek at the DSR members
    Iterator<DataStore> dsrIter = dsr.iterator();
    while (dsrIter.hasNext()) {
        DataStore ds = dsrIter.next();
        assertNotNull("null ds in ds reg", ds);
        if (DEBUG)
            Out.prln(ds);
    }
    // delete the datastores
    sds.close();
    assertTrue("DSR has wrong number elements (expected 1): " + dsr.size(), dsr.size() == 1);
    sds.delete();
    assertTrue("DSR has wrong number elements (expected 1): " + dsr.size(), dsr.size() == 1);
    sds2.delete();
    assertTrue("DSR has wrong number elements (expected 0): " + dsr.size(), dsr.size() == 0);
}
Also used : DataStore(gate.DataStore) TestDocument(gate.corpora.TestDocument) Document(gate.Document) DataStoreRegister(gate.DataStoreRegister) File(java.io.File) URL(java.net.URL)

Aggregations

DataStore (gate.DataStore)1 DataStoreRegister (gate.DataStoreRegister)1 Document (gate.Document)1 TestDocument (gate.corpora.TestDocument)1 File (java.io.File)1 URL (java.net.URL)1