private DataSourceDescription descriptor(DataSource dataSource) { DataSourceDescription descr = new DataSourceDescription (dataSource.getId(), dataSource.getURI(), dataSource.getName()); return descr; }
@Override protected PatchLog patchLog() { try { String connectString = "localhost:" + server.getPort(); RetryPolicy policy = new ExponentialBackoffRetry(10000, 5); client = CuratorFrameworkFactory.builder() .connectString(connectString) .retryPolicy(policy) .build(); client.start(); //client.getConnectionStateListenable().addListener((c, newState)->System.out.println("** STATE CHANGED TO : " + newState)); client.blockUntilConnected(); LocalServerConfig config = LocalServers.configZk(connectString); PatchStore ps = new PatchStoreProviderZk().create(config); ps.initialize(new DataRegistry("TestPatchLogZk"), config); DataSourceDescription dsd = new DataSourceDescription(Id.create(), "ABC", "http://example/ABC"); PatchLog patchLog = ps.createLog(dsd); return patchLog; } catch (Exception ex) { ex.printStackTrace(); return null; } }
/** * Create a new data source in the specified {@link PatchStore}. This can * not be one that has been removed (i.e. disabled) whose files must be * cleaned up manually. */ public Id createDataSource(PatchStore patchStore, String name, String baseURI/*, details*/) { checkActive(); int C = createCounter.incrementAndGet(); if ( syncedDataRegistry().containsName(name) ) throw new DeltaBadRequestException("DataSource with name '"+name+"' already exists"); // Proposed id, only becomes permanent if the create actually does a create and // does not find someone else has (with a different id); // XXX Delay id allocation until create-for-real. Create does not take a DSD. Id dsRef = Id.create(); FmtLog.info(LOG, "[%s](%d) createDataSource/start: %s", label, C, dsRef); DataSourceDescription dsd = new DataSourceDescription(dsRef, name, baseURI); DataSource dataSource = createDataSource$(C, patchStore, dsd); FmtLog.info(LOG, "[%s](%d) createDataSource/finish: %s %s", label, C, dsRef, dataSource.getDescription()); // dsRef is not invalid if it was not used. dsRef = null; return dataSource.getId(); }
public static DataSourceDescription fromJson(JsonObject obj) { String idStr = JSONX.getStrOrNull(obj, F_ID); if ( idStr == null ) throw new DeltaException("Missing \"id:\" in DataSourceDescription JSON"); String name = JSONX.getStrOrNull(obj, F_NAME); if ( name == null ) { @SuppressWarnings("deprecation") String n = JSONX.getStrOrNull(obj, F_BASE); // Compatibility. Log.warn(DataSourceDescription.class, "Deprecated: Use of field name \"base\" - change to \"name\""); name = n; } if ( name == null ) throw new DeltaException("Missing \"name:\" in DataSourceDescription JSON"); String uri = JSONX.getStrOrNull(obj, F_URI); return new DataSourceDescription(Id.fromString(idStr), name, uri); }
@Override protected PatchLog patchLog() { DataSourceDescription dsd = new DataSourceDescription(Id.create(), "ABC", "http://test/ABC"); patchStore = new PatchStoreProviderFile().create(config); patchStore.initialize(new DataRegistry("X"), config); patchLog = patchStore.createLog(dsd); return patchLog; } }
@Override protected PatchLog patchLog() { DataSourceDescription dsd = new DataSourceDescription(Id.create(), "ABC", "http://test/ABC"); return new PatchLogBase(dsd, new PatchLogIndexMem(), new PatchStorageMem(), null); }
public void recovery1() { PatchStore ps = provider(); // Match dsd2 below DataSourceDescription dsdSetup = new DataSourceDescription(Id.create(), "ABC", "http://example/ABC"); PatchLog patchLog = ps.createLog(dsdSetup); RDFPatch patch = RDFPatchOps.emptyPatch(); patchLog.append(patch); PatchLogInfo info = patchLog.getInfo(); Id id = patchLog.getLogId(); DataSourceDescription dsd = patchLog.getDescription(); DPS.resetSystem(); String name = dsd.getName(); PatchStore provider = provider(); // Same FileStore, different PatchLog? DataSourceDescription dsd2 = new DataSourceDescription(id, name, "http://example/ABC"); PatchLog patchLog1 = provider.connectLog(dsd2); PatchLogInfo info1 = patchLog1.getInfo(); assertEquals(info, info1); }
@Test public void patchStore_1() { PatchStore ps = provider(); DataRegistry dataRegistry = ps.getDataRegistry(); DataSourceDescription dsdSetup = new DataSourceDescription(Id.create(), "ABC", "http://example/ABC"); PatchLog patchLog = ps.createLog(dsdSetup); Id logId = patchLog.getLogId(); assertEquals(dsdSetup.getId(), logId); assertNotNull(dataRegistry.getByName("ABC")); assertFalse(dataRegistry.isEmpty()); assertTrue(ps.logExists(dsdSetup.getId())); assertEquals(patchLog, ps.getLog(logId)); }
@Test public void patchStore_2() { PatchStore ps = provider(); DataRegistry dataRegistry = ps.getDataRegistry(); DataSourceDescription dsdSetup = new DataSourceDescription(Id.create(), "ABC", "http://example/ABC"); PatchLog patchLog = ps.createLog(dsdSetup); assertEquals(dsdSetup.getId(), patchLog.getLogId()); Id logId = patchLog.getLogId(); assertFalse(dataRegistry.isEmpty()); assertNotNull(dataRegistry.getByName("ABC")); assertTrue(ps.logExists(dsdSetup.getId())); assertNotNull(ps.getLog(logId)); ps.release(patchLog); assertTrue(dataRegistry.isEmpty()); assertNull(dataRegistry.getByName("ABC")); assertFalse(ps.logExists(dsdSetup.getId())); assertNull(ps.getLog(logId)); }