/** Return our local track of the remote version */ private Version getRemoteVersionCached() { //checkDeltaConnection(); if ( remote.get() == null ) return Version.UNSET; return remote.get().getMaxVersion(); }
/** Get the current version: if this is an HTTP connection, this causes network traffic. */ public default Version getCurrentVersion(Id dsRef) { return getPatchLogInfo(dsRef).getMaxVersion(); }
public void sync(PatchLogInfo logInfo) { checkDeltaConnection(); syncToVersion(logInfo.getMaxVersion()); }
/** Actively get the remote version */ public Version getRemoteVersionLatest() { checkDeltaConnection(); PatchLogInfo info = getPatchLogInfo(); if ( info == null ) return Version.UNSET; return info.getMaxVersion(); }
public PatchLogInfo getPatchLogInfo() { checkDeltaConnection(); PatchLogInfo info = dLink.getPatchLogInfo(datasourceId); if ( info != null ) { if ( remote.get() != null ) { if ( Version.isValid(getRemoteVersionCached()) && info.getMaxVersion().value() < getRemoteVersionCached().value() ) { String dsName = dLink.getDataSourceName(datasourceId); FmtLog.warn(LOG, "[ds:%s %s] Remote version behind local tracking of remote version: [%d, %d]", datasourceId, dsName, info.getMaxVersion(), getRemoteVersionCached()); } } // Set the local copy whenever we get the remote latest. remote.set(info); } return info; }
public void logDetails() { // Information. List<DataSource> sources = listDataSources(); if ( sources.isEmpty() ) FmtLog.info(LOG, " No data sources"); else { //descriptions.forEach(dsd->FmtLog.info(LOG, " Data source : %s", dsd)); // Print nicely. sources.sort( (ds1, ds2)-> ds1.getName().compareTo(ds2.getName()) ); sources.forEach(ds->{ PatchLogInfo info = ds.getPatchLog().getInfo(); FmtLog.info(Delta.DELTA_LOG, " Data source: %s version [%s,%s]", info.getDataSourceDescr(), verString(info.getMinVersion()), verString(info.getMaxVersion()) ); }); } }
@Override protected void execCmd() { if ( getPositional().isEmpty() ) { Id dsRef = getDescription().getId(); PatchLogInfo logInfo = dLink.getPatchLogInfo(dsRef); if ( ! logInfo.getMaxVersion().isValid()) { throw new CmdException(getCommandName()+" : Empty log"); } exec1(logInfo.getMaxVersion()); return ; } getPositional().forEach(v->{ long patchVersion; try { patchVersion = Integer.parseInt(v); } catch (NumberFormatException ex) { throw new CmdException(getCommandName()+" : Invalid version"); } exec1(Version.create(patchVersion)); }); }
private void detailsByDSD(DataSourceDescription dsd) { PatchLogInfo logInfo = dLink.getPatchLogInfo(dsd.getId()); if ( logInfo == null ) { // Some thing bad somewhere. System.out.printf("[%s %s <%s> [no info] %s]\n", dsd.getId(), dsd.getName(), dsd.getUri()); return; } if ( Version.INIT.equals(logInfo.getMinVersion()) && Version.INIT.equals(logInfo.getMaxVersion()) ) { if ( logInfo.getLatestPatch() != null ) // Should not happen. System.out.printf("[%s %s <%s> [empty] %s]\n", dsd.getId(), dsd.getName(), dsd.getUri(), logInfo.getLatestPatch().toString()); else System.out.printf("[%s %s <%s> [empty]]\n", dsd.getId(), dsd.getName(), dsd.getUri()); return; } if ( logInfo.getMinVersion().isValid() ) { System.out.printf("[%s %s <%s> [%s,%s] %s]\n", dsd.getId(), dsd.getName(), dsd.getUri(), logInfo.getMinVersion(), logInfo.getMaxVersion(), (logInfo.getLatestPatch()==null)?"<no patches>":logInfo.getLatestPatch().toString() ); } }
@Test public void patchLog_1_empty() { PatchLog patchLog = patchLog(); boolean b = patchLog.isEmpty(); assertTrue(patchLog.isEmpty()); PatchLogInfo x = patchLog.getInfo(); assertEquals(null, x.getLatestPatch()); assertEquals(Version.INIT, x.getMaxVersion()); assertEquals(Version.INIT, x.getMinVersion()); }
@Test public void patchLog_2_singlePatch() { PatchLog patchLog = patchLog(); assertTrue(patchLog.isEmpty()); RDFPatch patch = RDFPatchOps.emptyPatch(); Version v = patchLog.append(patch); assertEquals(version_1, v); assertFalse(patchLog.isEmpty()); RDFPatch patch1 = patchLog.fetch(version_1); assertNotNull(patch1); PatchLogInfo x = patchLog.getInfo(); assertEquals(patch.getId(), x.getLatestPatch().asNode()); x.getMaxVersion(); assertEquals(Version.FIRST, x.getMaxVersion()); assertEquals(Version.FIRST, x.getMinVersion()); RDFPatch patch2 = patchLog.fetch(version_2); assertNull(patch2); }
assertEquals(version_2, x.getMaxVersion()); assertEquals(Version.FIRST, x.getMinVersion());