Mailing List Archive

Test framework can't find SPI implementations from module sandbox
Hi devs,

I tried to plug in my experimental PostingsFormat implementation to all the existing unit tests. I've registered it under META-INF.services as well as in the moudle-info.java. However, the test still fails like the following.

java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene99RandomAccess' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath. The current classpath supports the following names: [.Lucene99, MockRandom, RAMOnly, LuceneFixedGap, LuceneVarGapFixedInterval, LuceneVarGapDocFreqInterval, TestBloomFilteredLucenePostings, Asserting, UniformSplitRot13, STUniformSplitRot13, BlockTreeOrds, BloomFilter, Direct, FST50, UniformSplit, SharedTermsUniformSplit, Lucene50, Lucene84, Lucene90]

It fails to recognize the one of the existing PostingsFormat, IDVersion<https://github.com/apache/lucene/blob/main/lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionPostingsFormat.java>, from sandbox, too.

Is this a known issue?

Tony X
Re: Test framework can't find SPI implementations from module sandbox [ In reply to ]
did you add to the sandbox META-INF file? It looks like maybe sandbox is
not included in the scope of the test, but you didn't say which test it
was. Is the test also in the sandbox module?

On Mon, Nov 20, 2023 at 6:56?PM Dongyu Xu <dongyu214@hotmail.com> wrote:

> Hi devs,
>
> I tried to plug in my experimental PostingsFormat implementation to all
> the existing unit tests. I've registered it under META-INF.services as well
> as in the moudle-info.java. However, the test still fails like the
> following.
>
> java.lang.IllegalArgumentException: An SPI class of type
> org.apache.lucene.codecs.PostingsFormat with name 'Lucene99RandomAccess'
> does not exist. You need to add the corresponding JAR file supporting this
> SPI to your classpath. The current classpath supports the following names:
> [.Lucene99, MockRandom, RAMOnly, LuceneFixedGap, LuceneVarGapFixedInterval,
> LuceneVarGapDocFreqInterval, TestBloomFilteredLucenePostings, Asserting,
> UniformSplitRot13, STUniformSplitRot13, BlockTreeOrds, BloomFilter, Direct,
> FST50, UniformSplit, SharedTermsUniformSplit, Lucene50, Lucene84, Lucene90]
>
> It fails to recognize the one of the existing PostingsFormat, IDVersion
> <https://github.com/apache/lucene/blob/main/lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionPostingsFormat.java>,
> from sandbox, too.
>
> Is this a known issue?
>
> Tony X
>
>
>
>
>
Re: Test framework can't find SPI implementations from module sandbox [ In reply to ]
Thanks Mike. (And Happy Thanksgiving!)

Yes, I did add it to META-INF folder, as well as to module-info.java.

This problem affects to the all tests. E.g. All tests that will be kiced off if I run `./gradlew test -Dtests.postingsformat="Lucene99RandomAccess"`


Tony
________________________________
From: Michael Sokolov <msokolov@gmail.com>
Sent: Tuesday, November 21, 2023 2:29 PM
To: dev@lucene.apache.org <dev@lucene.apache.org>
Subject: Re: Test framework can't find SPI implementations from module sandbox

did you add to the sandbox META-INF file? It looks like maybe sandbox is not included in the scope of the test, but you didn't say which test it was. Is the test also in the sandbox module?

On Mon, Nov 20, 2023 at 6:56?PM Dongyu Xu <dongyu214@hotmail.com<mailto:dongyu214@hotmail.com>> wrote:
Hi devs,

I tried to plug in my experimental PostingsFormat implementation to all the existing unit tests. I've registered it under META-INF.services as well as in the moudle-info.java. However, the test still fails like the following.

java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene99RandomAccess' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath. The current classpath supports the following names: [.Lucene99, MockRandom, RAMOnly, LuceneFixedGap, LuceneVarGapFixedInterval, LuceneVarGapDocFreqInterval, TestBloomFilteredLucenePostings, Asserting, UniformSplitRot13, STUniformSplitRot13, BlockTreeOrds, BloomFilter, Direct, FST50, UniformSplit, SharedTermsUniformSplit, Lucene50, Lucene84, Lucene90]

It fails to recognize the one of the existing PostingsFormat, IDVersion<https://github.com/apache/lucene/blob/main/lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/idversion/IDVersionPostingsFormat.java>, from sandbox, too.

Is this a known issue?

Tony X