diff --git a/dump/pom.xml b/dump/pom.xml index 9dcd99d..48e7312 100644 --- a/dump/pom.xml +++ b/dump/pom.xml @@ -14,10 +14,11 @@ - com.google.code.findbugs - jsr305 - 3.0.2 + org.jspecify + jspecify + 1.0.0 + net.sf.trove4j trove4j @@ -37,10 +38,8 @@ com.google.guava guava - 33.2.1-jre + 33.5.0-jre - - diff --git a/dump/src/util/dump/Dump.java b/dump/src/util/dump/Dump.java index 9ef8c14..9228f87 100644 --- a/dump/src/util/dump/Dump.java +++ b/dump/src/util/dump/Dump.java @@ -40,9 +40,8 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -612,7 +611,7 @@ public File getDumpFile() { return _dumpFile; } - @Nonnull + @NonNull public DumpReader getDumpReader() { assertOpen(); try { @@ -659,7 +658,7 @@ public boolean isClosed() { */ @SuppressWarnings("resource") @Override - @Nonnull + @NonNull public DumpIterator iterator() { assertOpen(); try { @@ -1100,21 +1099,6 @@ private void appendNextItemPos( byte[] bytes, byte[] nextItemPos ) { } } - private int getVersionFromDump() { - String dumpVersionString = _metaData.get("externalizationVersion"); - return dumpVersionString == null ? 0 : Integer.parseInt(dumpVersionString); - } - - private int getVersionFromCode() { - externalizationVersion version = _beanClass.getAnnotation(externalizationVersion.class); - return version == null ? 0 : version.version(); - } - - private ExternalizableBean.OnIncompatibleVersion getOnIncompatibleVersion() { - externalizationVersion version = _beanClass.getAnnotation(externalizationVersion.class); - return version == null ? ExternalizableBean.OnIncompatibleVersion.RenameDump : version.onIncompatibleVersion(); - } - private void checkVersion() throws IOException { int codeVersion = getVersionFromCode(); int dumpVersion = getVersionFromDump(); @@ -1199,6 +1183,21 @@ private long getNextItemPos( byte[] bytes ) { return l; } + private ExternalizableBean.OnIncompatibleVersion getOnIncompatibleVersion() { + externalizationVersion version = _beanClass.getAnnotation(externalizationVersion.class); + return version == null ? ExternalizableBean.OnIncompatibleVersion.RenameDump : version.onIncompatibleVersion(); + } + + private int getVersionFromCode() { + externalizationVersion version = _beanClass.getAnnotation(externalizationVersion.class); + return version == null ? 0 : version.version(); + } + + private int getVersionFromDump() { + String dumpVersionString = _metaData.get("externalizationVersion"); + return dumpVersionString == null ? 0 : Integer.parseInt(dumpVersionString); + } + private void initInstantiationData() { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); @@ -1290,7 +1289,7 @@ public ElementAndPosition( D element, long position ) { } @Override - public int compareTo( @Nonnull ElementAndPosition o ) { + public int compareTo( @NonNull ElementAndPosition o ) { return Long.compare(_position, o._position); } @@ -1332,13 +1331,13 @@ public void flush() throws IOException { } @Override - public void write( @Nonnull byte[] b ) throws IOException { + public void write( @NonNull byte[] b ) throws IOException { _out.write(b); _n += b.length; } @Override - public void write( @Nonnull byte[] b, int off, int len ) throws IOException { + public void write( @NonNull byte[] b, int off, int len ) throws IOException { _out.write(b, off, len); _n += len; } @@ -1553,7 +1552,7 @@ public boolean markSupported() { * or an I/O error occurs. */ @Override - public/*synchronized*/int read( @Nonnull byte[] b, int off, int len ) throws IOException { + public/*synchronized*/int read( @NonNull byte[] b, int off, int len ) throws IOException { // we don't share instances of this class or synchronize access on a different level, so this method is not synchronized getBufIfOpen(); // Check for closed stream if ( (off | len | (off + len) | (b.length - (off + len))) < 0 ) { @@ -1773,7 +1772,7 @@ public boolean hasNext() { } @Override - @Nonnull + @NonNull public DumpIterator iterator() { return this; } diff --git a/dump/src/util/dump/DumpReader.java b/dump/src/util/dump/DumpReader.java index e07f966..0c0986b 100644 --- a/dump/src/util/dump/DumpReader.java +++ b/dump/src/util/dump/DumpReader.java @@ -10,9 +10,8 @@ import java.io.OptionalDataException; import java.util.Iterator; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import util.dump.stream.ExternalizableObjectStreamProvider; import util.dump.stream.ObjectStreamProvider; @@ -169,7 +168,7 @@ public boolean hasNext() { } @Override - public @Nonnull Iterator iterator() { + public @NonNull Iterator iterator() { return this; } diff --git a/dump/src/util/dump/DumpWriter.java b/dump/src/util/dump/DumpWriter.java index 5e98b7f..4e1a0f7 100644 --- a/dump/src/util/dump/DumpWriter.java +++ b/dump/src/util/dump/DumpWriter.java @@ -8,8 +8,7 @@ import java.io.OutputStream; import java.lang.reflect.Method; -import javax.annotation.Nullable; - +import org.jspecify.annotations.Nullable; import util.dump.stream.ExternalizableObjectStreamProvider; import util.dump.stream.ObjectStreamProvider; diff --git a/dump/src/util/dump/ExternalizationHelper.java b/dump/src/util/dump/ExternalizationHelper.java index e228f49..5edafe7 100644 --- a/dump/src/util/dump/ExternalizationHelper.java +++ b/dump/src/util/dump/ExternalizationHelper.java @@ -30,8 +30,7 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import javax.annotation.Nonnull; - +import org.jspecify.annotations.NonNull; import org.slf4j.LoggerFactory; import util.dump.ExternalizableBean.externalizationPadding; @@ -853,7 +852,7 @@ static void writeUUID( ObjectOutput out, UUID uuid ) throws IOException { } } - @Nonnull + @NonNull private static ThrowingSupplier getGenericReader( ObjectInput in, Class genericType, ClassConfig config, Class[] lastNonDefaultClass ) { if ( Externalizable.class.isAssignableFrom(genericType) ) { return () -> readExternalizable(in, genericType, lastNonDefaultClass, config); @@ -1099,7 +1098,7 @@ public int size() { } @Override - public void write( @Nonnull byte[] bytes, int start, int length ) { + public void write( @NonNull byte[] bytes, int start, int length ) { if ( (start < 0) || (start > bytes.length) || (length < 0) || (start + length > bytes.length) || (start + length < 0) ) { throw new IndexOutOfBoundsException(); } @@ -1462,7 +1461,7 @@ static class FieldInfo implements Comparable { Class _defaultGenericType1; @Override - public int compareTo( @Nonnull FieldInfo o ) { + public int compareTo( @NonNull FieldInfo o ) { int fieldIndex = _fieldIndex & 0xFF; int otherFieldIndex = o._fieldIndex & 0xFF; return Integer.compare(fieldIndex, otherFieldIndex); diff --git a/dump/src/util/dump/sort/InfiniteSorter.java b/dump/src/util/dump/sort/InfiniteSorter.java index 2fcba05..6cbd666 100644 --- a/dump/src/util/dump/sort/InfiniteSorter.java +++ b/dump/src/util/dump/sort/InfiniteSorter.java @@ -7,9 +7,8 @@ import java.util.Iterator; import java.util.List; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import util.dump.Dump; import util.dump.DumpInput; import util.dump.DumpReader; @@ -81,7 +80,7 @@ public InfiniteSorter() { init(DEFAULT_MAX_ELEMENTS_IN_MEMORY, -1, null, TempFileProvider.DEFAULT_PROVIDER); } - public InfiniteSorter( @Nonnull File tempDir ) { + public InfiniteSorter( @NonNull File tempDir ) { init(DEFAULT_MAX_ELEMENTS_IN_MEMORY, -1, null, new TempFileProvider(tempDir)); } @@ -93,11 +92,11 @@ public InfiniteSorter( int maxElementsInMemory, int bufferSize ) { init(maxElementsInMemory, bufferSize, null, TempFileProvider.DEFAULT_PROVIDER); } - public InfiniteSorter( int maxElementsInMemory, int bufferSize, @Nonnull File tempDir ) { + public InfiniteSorter( int maxElementsInMemory, int bufferSize, @NonNull File tempDir ) { init(maxElementsInMemory, -1, null, new TempFileProvider(tempDir)); } - public InfiniteSorter( int maxElementsInMemory, int bufferSize, @Nonnull File tempDir, @Nullable ObjectStreamProvider objectStreamProvider, + public InfiniteSorter( int maxElementsInMemory, int bufferSize, @NonNull File tempDir, @Nullable ObjectStreamProvider objectStreamProvider, @Nullable Comparator comparator ) { init(maxElementsInMemory, bufferSize, comparator, new TempFileProvider(tempDir)); this._objectStreamProvider = objectStreamProvider; @@ -198,7 +197,7 @@ public TempFileProvider getTempFileProvider() { return _tempFileProvider; } - public @Nonnull Iterator iterator() { + public @NonNull Iterator iterator() { try { return getSortedElements().iterator(); } diff --git a/dump/src/util/dump/sort/SortedInputMerger.java b/dump/src/util/dump/sort/SortedInputMerger.java index 9e7771e..79a9c95 100644 --- a/dump/src/util/dump/sort/SortedInputMerger.java +++ b/dump/src/util/dump/sort/SortedInputMerger.java @@ -7,9 +7,8 @@ import java.util.List; import java.util.NoSuchElementException; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import util.dump.DumpInput; import util.dump.DumpReader; @@ -146,7 +145,7 @@ public boolean hasNext() { } @Override - public @Nonnull Iterator iterator() { + public @NonNull Iterator iterator() { return this; } diff --git a/dump/src/util/dump/stream/AesCrypter.java b/dump/src/util/dump/stream/AesCrypter.java index d786090..e0436c3 100644 --- a/dump/src/util/dump/stream/AesCrypter.java +++ b/dump/src/util/dump/stream/AesCrypter.java @@ -7,13 +7,14 @@ import java.security.SecureRandom; import java.security.spec.AlgorithmParameterSpec; -import javax.annotation.Nullable; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.SecretKeySpec; +import org.jspecify.annotations.Nullable; + public class AesCrypter implements ByteArrayPacker { diff --git a/dump/src/util/dump/stream/ByteArrayPacker.java b/dump/src/util/dump/stream/ByteArrayPacker.java index dd293bf..47c858a 100644 --- a/dump/src/util/dump/stream/ByteArrayPacker.java +++ b/dump/src/util/dump/stream/ByteArrayPacker.java @@ -3,7 +3,7 @@ import java.io.Externalizable; import java.io.IOException; -import javax.annotation.Nullable; +import org.jspecify.annotations.Nullable; public interface ByteArrayPacker { diff --git a/dump/src/util/dump/stream/Compression.java b/dump/src/util/dump/stream/Compression.java index a6a62e8..58cbf16 100644 --- a/dump/src/util/dump/stream/Compression.java +++ b/dump/src/util/dump/stream/Compression.java @@ -11,8 +11,6 @@ import java.util.Map; import java.util.zip.GZIPInputStream; -import javax.annotation.Nullable; - import com.github.luben.zstd.Zstd; import com.github.luben.zstd.ZstdDictCompress; import com.github.luben.zstd.ZstdDictDecompress; @@ -21,6 +19,7 @@ import net.jpountz.lz4.LZ4Compressor; import net.jpountz.lz4.LZ4Factory; import net.jpountz.lz4.LZ4FastDecompressor; +import org.jspecify.annotations.Nullable; import util.dump.cache.LRUCache; import util.dump.io.IOUtils; diff --git a/dump/test/util/dump/InfiniteSorterTest.java b/dump/test/util/dump/InfiniteSorterTest.java index 4ad264d..cf4d1cc 100644 --- a/dump/test/util/dump/InfiniteSorterTest.java +++ b/dump/test/util/dump/InfiniteSorterTest.java @@ -1,11 +1,10 @@ package util.dump; -import javax.annotation.Nonnull; - import java.io.File; import java.io.IOException; import junit.framework.Assert; +import org.jspecify.annotations.NonNull; import org.junit.Test; @@ -91,7 +90,7 @@ public Bean( long id ) { } @Override - public int compareTo( @Nonnull Bean o ) { + public int compareTo( @NonNull Bean o ) { return (Long.compare(_id, o._id)); } } diff --git a/dumpsearch/pom.xml b/dumpsearch/pom.xml index 6de15a5..9406387 100644 --- a/dumpsearch/pom.xml +++ b/dumpsearch/pom.xml @@ -13,6 +13,12 @@ + + org.jspecify + jspecify + 1.0.0 + + mkr util-dump @@ -44,6 +50,5 @@ 8.4.0 - diff --git a/dumpsearch/src/util/dump/SearchIndex.java b/dumpsearch/src/util/dump/SearchIndex.java index e2fdcda..a3f848e 100644 --- a/dumpsearch/src/util/dump/SearchIndex.java +++ b/dumpsearch/src/util/dump/SearchIndex.java @@ -10,9 +10,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.BiConsumer; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; @@ -42,6 +39,8 @@ import org.apache.lucene.store.AlreadyClosedException; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -90,12 +89,12 @@ public static SortBuilder sort() { return new SortBuilder(); } - public static SearchIndexBuilder with( @Nonnull Dump dump, @Nonnull FieldAccessor idFieldAccessor, - @Nonnull BiConsumer documentBuilder ) { + public static SearchIndexBuilder with( @NonNull Dump dump, @NonNull FieldAccessor idFieldAccessor, + @NonNull BiConsumer documentBuilder ) { return new SearchIndexBuilder<>(dump, idFieldAccessor, documentBuilder); } - public static SearchIndexBuilder with( @Nonnull Dump dump, @Nonnull String idFieldName, @Nonnull BiConsumer documentBuilder ) + public static SearchIndexBuilder with( @NonNull Dump dump, @NonNull String idFieldName, @NonNull BiConsumer documentBuilder ) throws NoSuchFieldException { return new SearchIndexBuilder<>(dump, new FieldFieldAccessor(Reflection.getField(dump._beanClass, idFieldName)), documentBuilder); } @@ -111,8 +110,8 @@ public static SearchIndexBuilder with( @Nonnull Dump dump, @Nonnull St private DirectoryTaxonomyReader _taxoReader; private int _version; - private SearchIndex( @Nonnull Dump dump, @Nonnull FieldAccessor idFieldAccessor, @Nonnull BiConsumer documentBuilder, - @Nonnull IndexWriterConfig config, @Nonnull QueryParser queryParser, @Nonnull FacetsConfig facetsConfig, int version ) { + private SearchIndex( @NonNull Dump dump, @NonNull FieldAccessor idFieldAccessor, @NonNull BiConsumer documentBuilder, + @NonNull IndexWriterConfig config, @NonNull QueryParser queryParser, @NonNull FacetsConfig facetsConfig, int version ) { super(dump, idFieldAccessor, new File(dump.getDumpFile().getParentFile(), dump.getDumpFile().getName() + ".search.index"));