in baremaps-cli/src/main/java/org/apache/baremaps/cli/map/StyleCommand.java [64:105]
public Integer call() throws Exception {
var configReader = new ConfigReader();
var objectMapper = objectMapper();
var styleSupplierType = new TypeLiteral<Supplier<Style>>() {};
var styleSupplier = (Supplier<Style>) () -> {
try {
var config = configReader.read(stylePath);
var object = objectMapper.readValue(config, Style.class);
var styleSource = new StyleSource("vector", tilesUrl.toString());
object.setSources(Map.of("baremaps", styleSource));
return object;
} catch (IOException e) {
throw new RuntimeException(e);
}
};
var application = new ResourceConfig()
.register(CorsFilter.class)
.register(ChangeResource.class)
.register(StyleResource.class)
.register(ChangeResource.class)
.register(ClassPathResource.class)
.register(newContextResolver(objectMapper))
.register(new AbstractBinder() {
@Override
protected void configure() {
bind("assets").to(String.class).named("directory");
bind("viewer.html").to(String.class).named("index");
bind(stylePath).to(Path.class).named("style");
bind(styleSupplier).to(styleSupplierType);
}
});
var httpService = new HttpJerseyRouterBuilder().buildBlockingStreaming(application);
var serverContext = HttpServers.forPort(port).listenBlockingStreamingAndAwait(httpService);
logger.info("Listening on {}", serverContext.listenAddress());
serverContext.awaitShutdown();
return 0;
}