diff --git a/planetiler-core/pom.xml b/planetiler-core/pom.xml index 56ae13d1..63d393b6 100644 --- a/planetiler-core/pom.xml +++ b/planetiler-core/pom.xml @@ -157,7 +157,7 @@ com.google.guava guava - 33.4.0-jre + 33.4.6-jre mil.nga.geopackage @@ -186,6 +186,11 @@ lz4-java 1.8.0 + + net.jcip + jcip-annotations + 1.0 + diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java index b200e27a..f4147a8b 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java @@ -40,7 +40,7 @@ import java.util.TreeMap; import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; import org.locationtech.jts.algorithm.Orientation; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.CoordinateSequence; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/TileEncodingResult.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/TileEncodingResult.java index 8716c214..ecbd8fb3 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/TileEncodingResult.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/TileEncodingResult.java @@ -5,11 +5,10 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.OptionalLong; -import javax.annotation.Nonnull; public record TileEncodingResult( TileCoord coord, - @Nonnull byte[] tileData, + byte[] tileData, int rawTileSize, /* will always be empty in non-compact mode and might also be empty in compact mode */ OptionalLong tileDataHash, diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/WriteableTileArchive.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/WriteableTileArchive.java index d6dca491..ec1b467f 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/WriteableTileArchive.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/archive/WriteableTileArchive.java @@ -3,7 +3,7 @@ package com.onthegomap.planetiler.archive; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.TileOrder; import java.io.Closeable; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; /** * Write API for an on-disk representation of a tileset in a portable format. Example: MBTiles, a sqlite-based archive diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/ExternalMergeSort.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/ExternalMergeSort.java index 0f58edd8..734d46cf 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/ExternalMergeSort.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/ExternalMergeSort.java @@ -41,7 +41,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.function.Supplier; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xerial.snappy.SnappyInputStream; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureGroup.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureGroup.java index 51404062..6e5f62e9 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureGroup.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureGroup.java @@ -31,7 +31,7 @@ import java.util.Objects; import java.util.TreeMap; import java.util.concurrent.atomic.AtomicLong; import java.util.function.Function; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; import org.msgpack.core.MessageBufferPacker; import org.msgpack.core.MessagePack; import org.msgpack.core.MessageUnpacker; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureSort.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureSort.java index ce2028d1..c8388a53 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureSort.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/FeatureSort.java @@ -12,7 +12,7 @@ import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.stream.IntStream; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; /** * A utility that accepts {@link SortableFeature} instances in any order and lets you iterate through them ordered by diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/IntRangeSet.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/IntRangeSet.java index 3ac54431..00c7f675 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/IntRangeSet.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/collection/IntRangeSet.java @@ -1,7 +1,7 @@ package com.onthegomap.planetiler.collection; import java.util.PrimitiveIterator; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; import org.roaringbitmap.PeekableIntIterator; import org.roaringbitmap.RoaringBitmap; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PointIndex.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PointIndex.java index 888d4b3e..298e86ef 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PointIndex.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PointIndex.java @@ -3,7 +3,7 @@ package com.onthegomap.planetiler.geo; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.ThreadSafe; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Envelope; import org.locationtech.jts.geom.Geometry; @@ -21,7 +21,7 @@ import org.locationtech.jts.index.strtree.STRtree; @ThreadSafe public class PointIndex { - private record GeomWithData (Coordinate coord, T data) {} + private record GeomWithData(Coordinate coord, T data) {} private final STRtree index = new STRtree(); diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PolygonIndex.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PolygonIndex.java index 1742d3e3..d0424616 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PolygonIndex.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/PolygonIndex.java @@ -2,7 +2,7 @@ package com.onthegomap.planetiler.geo; import java.util.ArrayList; import java.util.List; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.ThreadSafe; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.GeometryCollection; import org.locationtech.jts.geom.Point; @@ -67,7 +67,7 @@ public class PolygonIndex { private List postFilterContaining(Point point, List items) { List result = new ArrayList<>(items.size()); for (Object item : items) { - if (item instanceof GeomWithData(var poly,var data) && poly.contains(point)) { + if (item instanceof GeomWithData(var poly, var data) && poly.contains(point)) { @SuppressWarnings("unchecked") T t = (T) data; result.add(t); } @@ -78,7 +78,7 @@ public class PolygonIndex { private List postFilterIntersecting(Geometry geom, List items) { List result = new ArrayList<>(items.size()); for (Object item : items) { - if (item instanceof GeomWithData(var poly,var data) && poly.intersects(geom)) { + if (item instanceof GeomWithData(var poly, var data) && poly.intersects(geom)) { @SuppressWarnings("unchecked") T t = (T) data; result.add(t); } diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/TileCoord.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/TileCoord.java index 6d6370a7..eda0144b 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/TileCoord.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/geo/TileCoord.java @@ -6,7 +6,7 @@ import com.onthegomap.planetiler.util.Hilbert; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Locale; -import javax.annotation.concurrent.Immutable; +import net.jcip.annotations.Immutable; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.CoordinateXY; import org.locationtech.jts.geom.Envelope; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/render/TiledGeometry.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/render/TiledGeometry.java index 03ffbfc9..74469719 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/render/TiledGeometry.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/render/TiledGeometry.java @@ -38,7 +38,7 @@ import java.util.List; import java.util.Map; import java.util.TreeSet; import java.util.stream.Stream; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.CoordinateSequence; import org.locationtech.jts.geom.Geometry; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/ProcessTime.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/ProcessTime.java index 7e8cb0b6..7848c744 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/ProcessTime.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/ProcessTime.java @@ -4,7 +4,7 @@ import com.onthegomap.planetiler.util.Format; import java.time.Duration; import java.util.Locale; import java.util.Optional; -import javax.annotation.concurrent.Immutable; +import net.jcip.annotations.Immutable; /** * A utility for measuring the wall and CPU time that this JVM consumes between snapshots. diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timer.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timer.java index 83ba537b..8ac1c938 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timer.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timer.java @@ -1,6 +1,6 @@ package com.onthegomap.planetiler.stats; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.ThreadSafe; /** * Measures the amount of wall and CPU time that a task takes. diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timers.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timers.java index 8e22e727..b42eaae6 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timers.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/stats/Timers.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicReference; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.ThreadSafe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/AwsOsm.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/AwsOsm.java index cdd3a818..b1f02d71 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/AwsOsm.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/AwsOsm.java @@ -15,7 +15,7 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import javax.annotation.concurrent.Immutable; +import net.jcip.annotations.Immutable; /** * A utility to download {@code planet.osm.pbf} files from public S3 sources such as diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/CommonStringEncoder.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/CommonStringEncoder.java index 783e77ad..b60a9d5a 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/CommonStringEncoder.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/CommonStringEncoder.java @@ -3,7 +3,7 @@ package com.onthegomap.planetiler.util; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.ThreadSafe; /** * A utility for compressing commonly-used strings (i.e. layer name, tag attributes). diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/Geofabrik.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/Geofabrik.java index 07e514ad..44585f09 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/Geofabrik.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/Geofabrik.java @@ -13,8 +13,8 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.concurrent.Immutable; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.Immutable; +import net.jcip.annotations.ThreadSafe; /** * A utility to search Geofabrik Download Server for a {@code .osm.pbf} diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java index c068c21e..0e06cadf 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/LayerAttrStats.java @@ -8,8 +8,7 @@ import java.util.Optional; import java.util.OptionalInt; import java.util.TreeMap; import java.util.concurrent.CopyOnWriteArrayList; -import javax.annotation.concurrent.NotThreadSafe; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.ThreadSafe; /** * Tracks the feature attributes and zoom range of each layer to populate the archive output metadata. @@ -110,7 +109,7 @@ public class LayerAttrStats { } /** Accepts features from a single thread that will be combined across all threads in {@link #getTileStats()}. */ - @NotThreadSafe + @ThreadSafe private class ThreadLocalHandler implements Updater { private final Map layers = new TreeMap<>(); diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/ResourceUsage.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/ResourceUsage.java index 1cc3fa03..d24e8dbd 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/ResourceUsage.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/ResourceUsage.java @@ -11,7 +11,7 @@ import java.util.OptionalLong; import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Supplier; import java.util.stream.Collectors; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.ThreadSafe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/SeekableInMemoryByteChannel.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/SeekableInMemoryByteChannel.java index 732b0098..700bf864 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/util/SeekableInMemoryByteChannel.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/util/SeekableInMemoryByteChannel.java @@ -24,7 +24,7 @@ import java.nio.channels.ClosedChannelException; import java.nio.channels.SeekableByteChannel; import java.util.Arrays; import java.util.concurrent.atomic.AtomicBoolean; -import javax.annotation.concurrent.NotThreadSafe; +import net.jcip.annotations.NotThreadSafe; /** * A {@link SeekableByteChannel} implementation that wraps a byte[]. diff --git a/planetiler-core/src/main/java/com/onthegomap/planetiler/worker/Distributor.java b/planetiler-core/src/main/java/com/onthegomap/planetiler/worker/Distributor.java index 4936534e..e5a49f06 100644 --- a/planetiler-core/src/main/java/com/onthegomap/planetiler/worker/Distributor.java +++ b/planetiler-core/src/main/java/com/onthegomap/planetiler/worker/Distributor.java @@ -4,8 +4,8 @@ import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; -import javax.annotation.concurrent.NotThreadSafe; -import javax.annotation.concurrent.ThreadSafe; +import net.jcip.annotations.NotThreadSafe; +import net.jcip.annotations.ThreadSafe; /** * Redistributes work among worker threads when some finish early.