use of com.baremaps.osm.repository.DiffService in project baremaps by baremaps.
the class ImportUpdateMonacoTest method monaco.
@Test
@Tag("integration")
void monaco() throws Exception {
LongDataMap<Coordinate> coordinates = new LongDataOpenHashMap<>(new DataStore<>(new CoordinateDataType(), new OnHeapMemory()));
LongDataMap<List<Long>> references = new LongDataOpenHashMap<>(new DataStore<>(new LongListDataType(), new OnHeapMemory()));
// Import data
new ImportService(new URI("res://monaco/monaco-210801.osm.pbf"), blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857).call();
assertEquals(3047l, headerRepository.selectLatest().getReplicationSequenceNumber());
// Fix the replicationUrl so that we can update the database with local files
headerRepository.delete(3047l);
headerRepository.put(new Header(3047l, LocalDateTime.of(2021, 8, 01, 20, 21, 41, 0), "res://monaco/monaco-updates", "", ""));
coordinates = new PostgresCoordinateMap(dataSource);
references = new PostgresReferenceMap(dataSource);
// Generate the diff and update the database
long replicationSequenceNumber = headerRepository.selectLatest().getReplicationSequenceNumber();
while (replicationSequenceNumber < 3075) {
new DiffService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857, 14).call();
new UpdateService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857).call();
long nextReplicationSequenceNumber = headerRepository.selectLatest().getReplicationSequenceNumber();
assertEquals(replicationSequenceNumber + 1, nextReplicationSequenceNumber);
replicationSequenceNumber = nextReplicationSequenceNumber;
}
}
use of com.baremaps.osm.repository.DiffService in project baremaps by baremaps.
the class Diff method call.
@Override
public Integer call() throws Exception {
BlobStore blobStore = options.blobStore();
DataSource datasource = PostgresUtils.datasource(database);
LongDataMap<Coordinate> coordinates = new PostgresCoordinateMap(datasource);
LongDataMap<List<Long>> references = new PostgresReferenceMap(datasource);
HeaderRepository headerRepository = new PostgresHeaderRepository(datasource);
Repository<Long, Node> nodeRepository = new PostgresNodeRepository(datasource);
Repository<Long, Way> wayRepository = new PostgresWayRepository(datasource);
Repository<Long, Relation> relationRepository = new PostgresRelationRepository(datasource);
logger.info("Saving diff");
Path tmpTiles = Files.createFile(Paths.get("diff.tmp"));
try (PrintWriter printWriter = new PrintWriter(Files.newBufferedWriter(tmpTiles))) {
new DiffService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, srid, zoom).call();
}
blobStore.put(this.tiles, Blob.builder().withContentLength(Files.size(tmpTiles)).withInputStream(Files.newInputStream(tmpTiles)).build());
Files.deleteIfExists(tmpTiles);
logger.info("Done");
return 0;
}
use of com.baremaps.osm.repository.DiffService in project baremaps by baremaps.
the class ImportUpdateLiechtensteinTest method liechtenstein.
@Test
@Tag("integration")
void liechtenstein() throws Exception {
LongDataMap<Coordinate> coordinates = new LongDataOpenHashMap<>(new DataStore<>(new CoordinateDataType(), new OnHeapMemory()));
LongDataMap<List<Long>> references = new LongDataOpenHashMap<>(new DataStore<>(new LongListDataType(), new OnHeapMemory()));
// Import data
new ImportService(new URI("res://liechtenstein/liechtenstein.osm.pbf"), blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857).call();
assertEquals(2434l, headerRepository.selectLatest().getReplicationSequenceNumber());
// Fix the replicationUrl so that we can update the database with local files
headerRepository.put(new Header(2434l, LocalDateTime.of(2019, 11, 18, 21, 19, 5, 0), "res://liechtenstein", "", ""));
coordinates = new PostgresCoordinateMap(dataSource);
references = new PostgresReferenceMap(dataSource);
assertEquals(0, new DiffService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857, 14).call().size());
// Update the database
new UpdateService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857).call();
assertEquals(2435l, headerRepository.selectLatest().getReplicationSequenceNumber());
assertEquals(2, new DiffService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857, 14).call().size());
new UpdateService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857).call();
assertEquals(2436l, headerRepository.selectLatest().getReplicationSequenceNumber());
assertEquals(0, new DiffService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857, 14).call().size());
new UpdateService(blobStore, coordinates, references, headerRepository, nodeRepository, wayRepository, relationRepository, 3857).call();
assertEquals(2437l, headerRepository.selectLatest().getReplicationSequenceNumber());
}
Aggregations