in baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java [75:119]
public Integer call() throws Exception {
// Configure serialization
var objectMapper = objectMapper();
var configReader = new ConfigReader();
var config = objectMapper.readValue(configReader.read(this.tileset), Tileset.class);
var caffeineSpec = CaffeineSpec.parse(cache);
var dataSource = PostgresUtils.createDataSource(database);
var tileStore = new PostgresTileStore(dataSource, config);
var tileCache = new TileCache(tileStore, caffeineSpec);
// Initialize the application
var application = new ResourceConfig()
.registerClasses(
CorsFilter.class,
MultiPartFeature.class,
DefaultResource.class,
ApiResource.class,
ConformanceResource.class,
CollectionsResource.class,
StylesResource.class,
TilesResource.class)
.register(newContextResolver(objectMapper))
.register(new AbstractBinder() {
@Override
protected void configure() {
bind(tileset).to(Path.class).named("tileset");
bind(style).to(Path.class).named("style");
bind(dataSource).to(DataSource.class);
bind(tileCache).to(TileStore.class);
bind(objectMapper).to(ObjectMapper.class);
}
});
BlockingStreamingHttpService httpService =
new HttpJerseyRouterBuilder().buildBlockingStreaming(application);
ServerContext serverContext =
HttpServers.forPort(port).listenBlockingStreamingAndAwait(httpService);
logger.info("Listening on {}", serverContext.listenAddress());
serverContext.awaitShutdown();
return 0;
}