Skip to content

Commit 173ebeb

Browse files
committed
refactoring: split NexusRepositoryIndexerImpl
- moves about half of the code into a dedicated class - queries moved to NexusRepositoryQueries - index management remains in NexusRepositoryIndexManager
1 parent 7796670 commit 173ebeb

File tree

9 files changed

+983
-906
lines changed

9 files changed

+983
-906
lines changed

java/maven.indexer/src/org/netbeans/modules/maven/indexer/ClassDependencyIndexCreator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ private static boolean isArchiveFile(File jar) throws IOException {
168168
static void search(String className, Indexer indexer, Collection<IndexingContext> contexts, List<? super ClassUsage> results) throws IOException {
169169
String searchString = crc32base32(className.replace('.', '/'));
170170
Query refClassQuery = indexer.constructQuery(FLD_NB_DEPENDENCY_CLASS.getOntology(), new StringSearchExpression(searchString));
171-
TopScoreDocCollector collector = TopScoreDocCollector.create(NexusRepositoryIndexerImpl.MAX_RESULT_COUNT, Integer.MAX_VALUE);
171+
TopScoreDocCollector collector = TopScoreDocCollector.create(NexusRepositoryIndexManager.MAX_RESULT_COUNT, Integer.MAX_VALUE);
172172
for (IndexingContext context : contexts) {
173173
IndexSearcher searcher = context.acquireIndexSearcher();
174174
try {
@@ -185,7 +185,7 @@ static void search(String className, Indexer indexer, Collection<IndexingContext
185185
ArtifactInfo ai = IndexUtils.constructArtifactInfo(d, context);
186186
if (ai != null) {
187187
ai.setRepository(context.getRepositoryId());
188-
List<NBVersionInfo> version = NexusRepositoryIndexerImpl.convertToNBVersionInfo(List.of(ai));
188+
List<NBVersionInfo> version = NexusRepositoryQueries.convertToNBVersionInfo(List.of(ai));
189189
if (!version.isEmpty()) {
190190
results.add(new ClassUsage(version.get(0), refClasses));
191191
}

java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java renamed to java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexManager.java

+37-883
Large diffs are not rendered by default.

java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryQueries.java

+920
Large diffs are not rendered by default.

java/maven.indexer/src/org/netbeans/modules/maven/indexer/OnStop.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void run() {
4646
}
4747
}
4848
for (RepositoryIndexerImplementation rii : Lookup.getDefault().lookupAll(RepositoryIndexerImplementation.class)) {
49-
if (rii instanceof NexusRepositoryIndexerImpl impl) {
49+
if (rii instanceof NexusRepositoryIndexManager impl) {
5050
impl.shutdownAll();
5151
}
5252
}

java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryIndexer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
import java.util.Collection;
2525
import org.apache.maven.artifact.Artifact;
26-
import org.netbeans.modules.maven.indexer.NexusRepositoryIndexerImpl;
26+
import org.netbeans.modules.maven.indexer.NexusRepositoryIndexManager;
2727
import org.netbeans.modules.maven.indexer.spi.impl.RepositoryIndexerImplementation;
2828
import org.openide.util.Lookup;
2929
import org.netbeans.modules.maven.indexer.spi.RepositoryIndexQueryProvider;
@@ -71,7 +71,7 @@ static RepositoryIndexerImplementation findImplementation(RepositoryInfo repo) {
7171
Lookup l = Lookup.getDefault();
7272
Collection<? extends RepositoryIndexQueryProvider> queryProviders = l.lookupAll(RepositoryIndexQueryProvider.class);
7373
for (RepositoryIndexQueryProvider queryProvider : queryProviders) {
74-
if(!(queryProvider instanceof NexusRepositoryIndexerImpl) && queryProvider.handlesRepository(repo)) {
74+
if(!(queryProvider instanceof NexusRepositoryIndexManager) && queryProvider.handlesRepository(repo)) {
7575
// skip if
7676
return null;
7777
}

java/maven.indexer/src/org/netbeans/modules/maven/indexer/spi/impl/RepositoryIndexerImplementation.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@
2727
*
2828
* Used internally.
2929
*
30-
* Implementation of repository indexer (repository manager). Apart from basic
31-
* indexing features also serves as provider of various index queries.
32-
* There is one implementation based on apache indexer
30+
* Implementation of repository indexer (repository manager).
31+
* There is one implementation based on apache indexer.
3332
*
3433
* @author Milos Kleint
3534
*/

java/maven.indexer/test/unit/src/org/netbeans/modules/maven/indexer/ClassDependencyIndexCreatorTest.java

+15-11
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
import org.netbeans.modules.maven.indexer.api.NBVersionInfo;
3131
import org.netbeans.modules.maven.indexer.api.RepositoryInfo;
3232
import org.netbeans.modules.maven.indexer.api.RepositoryQueries.ClassUsage;
33+
import org.netbeans.modules.maven.indexer.spi.ClassUsageQuery;
34+
import org.netbeans.modules.maven.indexer.spi.ClassesQuery;
3335
import org.openide.filesystems.FileUtil;
3436
import org.openide.util.test.JarBuilder;
3537
import org.openide.util.test.TestFileUtils;
@@ -87,21 +89,22 @@ public void testFindClassUsages() throws Exception {
8789
nrii.indexRepo(info);
8890
List<RepositoryInfo> repo = List.of(info);
8991

90-
List<ClassUsage> list = nrii.findClassUsages("mod1.API", repo).getResults();
92+
ClassUsageQuery query = nrii.getClassUsageQuery();
93+
List<ClassUsage> list = query.findClassUsages("mod1.API", repo).getResults();
9194
assertEquals("[test:mod2:0:test[mod2.Client, mod2.OtherClient], test:mod3:0:test[mod3.Client]]", list.toString());
9295

93-
list = nrii.findClassUsages("mod1.Util", repo).getResults();
96+
list = query.findClassUsages("mod1.Util", repo).getResults();
9497
assertEquals("[test:mod4:0:test[mod4.Install]]", list.toString());
9598
assertEquals("jar", list.get(0).getArtifact().getType());
9699

97-
list = nrii.findClassUsages("mod1.Stuff", repo).getResults();
100+
list = query.findClassUsages("mod1.Stuff", repo).getResults();
98101
assertEquals("[test:mod5:0:test[mod5.Install]]", list.toString());
99102
assertEquals("jar", list.get(0).getArtifact().getType());
100103

101-
assertEquals("[]", nrii.findClassUsages("java.lang.Object", repo).getResults().toString());
102-
assertEquals("[test:mod2:0:test[mod2.Outer]]", nrii.findClassUsages("mod1.Outer", repo).getResults().toString());
103-
assertEquals("[test:mod2:0:test[mod2.Outer]]", nrii.findClassUsages("mod1.Outer$Inner", repo).getResults().toString());
104-
assertEquals("[]", nrii.findClassUsages("mod1.Outer$Unused", repo).getResults().toString());
104+
assertEquals("[]", query.findClassUsages("java.lang.Object", repo).getResults().toString());
105+
assertEquals("[test:mod2:0:test[mod2.Outer]]", query.findClassUsages("mod1.Outer", repo).getResults().toString());
106+
assertEquals("[test:mod2:0:test[mod2.Outer]]", query.findClassUsages("mod1.Outer$Inner", repo).getResults().toString());
107+
assertEquals("[]", query.findClassUsages("mod1.Outer$Unused", repo).getResults().toString());
105108
// XXX InnerClass attribute will produce spurious references to outer classes even when just an inner is used
106109
}
107110

@@ -129,18 +132,19 @@ public void testFindVersionsByClass() throws Exception {
129132
nrii.indexRepo(info);
130133
List<RepositoryInfo> repo = List.of(info);
131134

135+
ClassesQuery query = nrii.getClassesQuery();
132136
// single version
133-
List<NBVersionInfo> list = nrii.findVersionsByClass("mod1.API", repo).getResults();
137+
List<NBVersionInfo> list = query.findVersionsByClass("mod1.API", repo).getResults();
134138
assertEquals("[test:mod1:42:test]", list.toString());
135139

136-
list = nrii.findVersionsByClass("mod1.Util", repo).getResults();
140+
list = query.findVersionsByClass("mod1.Util", repo).getResults();
137141
assertEquals("[test:mod1:42:test]", list.toString());
138142

139143
// two versions
140-
list = nrii.findVersionsByClass("mod2.API2", repo).getResults();
144+
list = query.findVersionsByClass("mod2.API2", repo).getResults();
141145
assertEquals("[test:mod2:43:test, test:mod2:42:test]", list.toString());
142146

143-
list = nrii.findVersionsByClass("mod2.Util2", repo).getResults();
147+
list = query.findVersionsByClass("mod2.Util2", repo).getResults();
144148
assertEquals("[test:mod2:43:test]", list.toString());
145149
}
146150

java/maven.indexer/test/unit/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImplTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void testFind() throws Exception {
5555
qf.setValue("stuff");
5656
qf.setOccur(QueryField.OCCUR_MUST);
5757
qf.setMatch(QueryField.MATCH_EXACT);
58-
assertEquals("[test:plugin:0:test]", nrii.find(List.of(qf), List.of(info)).getResults().toString());
58+
assertEquals("[test:plugin:0:test]", nrii.getGenericFindQuery().find(List.of(qf), List.of(info)).getResults().toString());
5959
}
6060

6161
public void testLastUpdated() throws Exception { // #197670
@@ -65,7 +65,7 @@ public void testLastUpdated() throws Exception { // #197670
6565
install(empty, "test", "art", "0", "pom.lastUpdated");
6666
install(empty, "test", "art", "0", "jar.lastUpdated");
6767
nrii.indexRepo(info);
68-
List<NBVersionInfo> versions = nrii.getVersions("test", "art", List.of(info)).getResults();
68+
List<NBVersionInfo> versions = nrii.getBaseQueries().getVersions("test", "art", List.of(info)).getResults();
6969
assertEquals(1, versions.size());
7070
NBVersionInfo v = versions.get(0);
7171
assertEquals("test:art:0:test", v.toString());

java/maven.indexer/test/unit/src/org/netbeans/modules/maven/indexer/NexusTestBase.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ protected NexusTestBase(String n) {
4444
private MavenEmbedder embedder;
4545
private ArtifactInstaller artifactInstaller;
4646
protected RepositoryInfo info;
47-
protected NexusRepositoryIndexerImpl nrii;
47+
protected NexusRepositoryIndexManager nrii;
4848

4949
@Override protected void setUp() throws Exception {
5050
clearWorkDir();
@@ -57,7 +57,7 @@ protected NexusTestBase(String n) {
5757
artifactInstaller = embedder.lookupComponent(ArtifactInstaller.class);
5858
info = new RepositoryInfo("test", "Test", repo.getAbsolutePath(), null);
5959
RepositoryPreferences.getInstance().addOrModifyRepositoryInfo(info);
60-
nrii = Lookup.getDefault().lookup(NexusRepositoryIndexerImpl.class);
60+
nrii = Lookup.getDefault().lookup(NexusRepositoryIndexManager.class);
6161
}
6262

6363
@Override protected Level logLevel() {

0 commit comments

Comments
 (0)