use of org.sirix.access.conf.DatabaseConfiguration in project sirix by sirixdb.
the class FMSEImport method shredder.
/**
* Shredder new revision as temporal resource.
*
* @param resNewRev {@link File} reference for new revision (XML resource)
* @param newRev {@link File} reference for shreddered new revision (sirix resource)
* @throws SirixException if sirix fails to shredder the file
* @throws IOException if file couldn't be read
* @throws XMLStreamException if XML document isn't well formed
* @throws NullPointerException if {@code resNewRev} or {@code newRev} is {@code null}
*/
private void shredder(final Path resNewRev, @Nonnull Path newRev) throws SirixException, IOException, XMLStreamException {
assert resNewRev != null;
assert newRev != null;
final DatabaseConfiguration conf = new DatabaseConfiguration(newRev);
Databases.truncateDatabase(conf);
Databases.createDatabase(conf);
try (final Database db = Databases.openDatabase(newRev)) {
db.createResource(new ResourceConfiguration.Builder("shredded", conf).build());
try (final ResourceManager resMgr = db.getResourceManager(new ResourceManagerConfiguration.Builder("shredded").build());
final XdmNodeWriteTrx wtx = resMgr.beginNodeWriteTrx()) {
final XMLEventReader fileReader = XMLShredder.createFileReader(resNewRev);
final XMLShredder shredder = new XMLShredder.Builder(wtx, fileReader, Insert.ASFIRSTCHILD).commitAfterwards().build();
shredder.call();
}
}
}
use of org.sirix.access.conf.DatabaseConfiguration in project sirix by sirixdb.
the class TestHelper method getDatabase.
/**
* Getting a database and create one of not existing. This includes the creation of a resource
* with the settings in the builder as standard.
*
* @param file to be created
* @return a database-obj
*/
@Ignore
public static final Database getDatabase(final Path file) {
if (INSTANCES.containsKey(file)) {
return INSTANCES.get(file);
} else {
try {
final DatabaseConfiguration config = new DatabaseConfiguration(file);
if (!Files.exists(file)) {
Databases.createDatabase(config);
}
final Database database = Databases.openDatabase(file);
database.createResource(new ResourceConfiguration.Builder(RESOURCE, config).build());
INSTANCES.put(file, database);
return database;
} catch (final SirixRuntimeException e) {
fail(e.toString());
return null;
}
}
}
use of org.sirix.access.conf.DatabaseConfiguration in project sirix by sirixdb.
the class Holder method generateDeweyIDResourceMgr.
/**
* Generate a resource with deweyIDs for resources and open a resource.
*
* @return this holder instance
* @throws SirixException if an error occurs
*/
public static Holder generateDeweyIDResourceMgr() throws SirixException {
final Path file = PATHS.PATH1.getFile();
final DatabaseConfiguration config = new DatabaseConfiguration(file);
if (!Files.exists(file)) {
Databases.createDatabase(config);
}
final Database database = Databases.openDatabase(PATHS.PATH1.getFile());
database.createResource(new ResourceConfiguration.Builder(TestHelper.RESOURCE, PATHS.PATH1.getConfig()).useDeweyIDs(true).build());
final ResourceManager resourceManager = database.getResourceManager(new ResourceManagerConfiguration.Builder(TestHelper.RESOURCE).build());
final Holder holder = new Holder();
holder.setDatabase(database);
holder.setResourceManager(resourceManager);
return holder;
}
use of org.sirix.access.conf.DatabaseConfiguration in project sirix by sirixdb.
the class Holder method generatePathSummary.
/**
* Generate a resource with a path summary.
*
* @return this holder instance
* @throws SirixException if an error occurs
*/
public static Holder generatePathSummary() throws SirixException {
final Path file = PATHS.PATH1.getFile();
final DatabaseConfiguration config = new DatabaseConfiguration(file);
if (!Files.exists(file)) {
Databases.createDatabase(config);
}
final Database database = Databases.openDatabase(PATHS.PATH1.getFile());
database.createResource(new ResourceConfiguration.Builder(TestHelper.RESOURCE, PATHS.PATH1.getConfig()).buildPathSummary(true).build());
final ResourceManager resourceManager = database.getResourceManager(new ResourceManagerConfiguration.Builder(TestHelper.RESOURCE).build());
final Holder holder = new Holder();
holder.setDatabase(database);
holder.setResourceManager(resourceManager);
return holder;
}
use of org.sirix.access.conf.DatabaseConfiguration in project sirix by sirixdb.
the class DBStore method create.
@Override
public TemporalCollection<?> create(final String collName, @Nullable final Stream<SubtreeParser> parsers) throws DocumentException {
if (parsers != null) {
final DatabaseConfiguration dbConf = new DatabaseConfiguration(mLocation.resolve(collName));
try {
Databases.truncateDatabase(dbConf);
Databases.createDatabase(dbConf);
final Database database = Databases.openDatabase(dbConf.getFile());
mDatabases.add(database);
final ExecutorService pool = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
int i = database.listResources().size() + 1;
try {
SubtreeParser parser = null;
while ((parser = parsers.next()) != null) {
final SubtreeParser nextParser = parser;
final String resourceName = new StringBuilder("resource").append(String.valueOf(i)).toString();
pool.submit(() -> {
database.createResource(ResourceConfiguration.newBuilder(resourceName, dbConf).storageType(mStorageType).useDeweyIDs(true).useTextCompression(true).buildPathSummary(true).build());
try (final ResourceManager resource = database.getResourceManager(new ResourceManagerConfiguration.Builder(resourceName).build());
final XdmNodeWriteTrx wtx = resource.beginNodeWriteTrx()) {
final DBCollection collection = new DBCollection(collName, database);
mCollections.put(database, collection);
nextParser.parse(new SubtreeBuilder(collection, wtx, Insert.ASFIRSTCHILD, Collections.<SubtreeListener<? super AbstractTemporalNode<DBNode>>>emptyList()));
wtx.commit();
}
return null;
});
i++;
}
} finally {
parsers.close();
}
pool.shutdown();
pool.awaitTermination(5, TimeUnit.MINUTES);
return new DBCollection(collName, database);
} catch (final SirixRuntimeException | InterruptedException e) {
throw new DocumentException(e.getCause());
}
}
return null;
}
Aggregations