Lines 102-108
Link Here
|
102 |
import org.codehaus.plexus.util.FileUtils; |
102 |
import org.codehaus.plexus.util.FileUtils; |
103 |
import org.netbeans.api.annotations.common.CheckForNull; |
103 |
import org.netbeans.api.annotations.common.CheckForNull; |
104 |
import org.netbeans.api.annotations.common.NullAllowed; |
104 |
import org.netbeans.api.annotations.common.NullAllowed; |
105 |
import org.netbeans.api.annotations.common.SuppressWarnings; |
|
|
106 |
import org.netbeans.modules.maven.embedder.EmbedderFactory; |
105 |
import org.netbeans.modules.maven.embedder.EmbedderFactory; |
107 |
import org.netbeans.modules.maven.embedder.MavenEmbedder; |
106 |
import org.netbeans.modules.maven.embedder.MavenEmbedder; |
108 |
import org.netbeans.modules.maven.indexer.api.NBArtifactInfo; |
107 |
import org.netbeans.modules.maven.indexer.api.NBArtifactInfo; |
Lines 111-117
Link Here
|
111 |
import org.netbeans.modules.maven.indexer.api.QueryField; |
110 |
import org.netbeans.modules.maven.indexer.api.QueryField; |
112 |
import org.netbeans.modules.maven.indexer.api.RepositoryInfo; |
111 |
import org.netbeans.modules.maven.indexer.api.RepositoryInfo; |
113 |
import org.netbeans.modules.maven.indexer.api.RepositoryPreferences; |
112 |
import org.netbeans.modules.maven.indexer.api.RepositoryPreferences; |
114 |
import org.netbeans.modules.maven.indexer.api.RepositoryQueries.Result; |
|
|
115 |
import org.netbeans.modules.maven.indexer.spi.ArchetypeQueries; |
113 |
import org.netbeans.modules.maven.indexer.spi.ArchetypeQueries; |
116 |
import org.netbeans.modules.maven.indexer.spi.BaseQueries; |
114 |
import org.netbeans.modules.maven.indexer.spi.BaseQueries; |
117 |
import org.netbeans.modules.maven.indexer.spi.ChecksumQueries; |
115 |
import org.netbeans.modules.maven.indexer.spi.ChecksumQueries; |
Lines 120-127
Link Here
|
120 |
import org.netbeans.modules.maven.indexer.spi.ContextLoadedQuery; |
118 |
import org.netbeans.modules.maven.indexer.spi.ContextLoadedQuery; |
121 |
import org.netbeans.modules.maven.indexer.spi.DependencyInfoQueries; |
119 |
import org.netbeans.modules.maven.indexer.spi.DependencyInfoQueries; |
122 |
import org.netbeans.modules.maven.indexer.spi.GenericFindQuery; |
120 |
import org.netbeans.modules.maven.indexer.spi.GenericFindQuery; |
123 |
import org.netbeans.modules.maven.indexer.spi.Redo; |
121 |
import org.netbeans.modules.maven.indexer.spi.impl.RepositoryIndexerImplementation; |
124 |
import org.netbeans.modules.maven.indexer.spi.RepositoryIndexerImplementation; |
122 |
import org.netbeans.modules.maven.indexer.spi.ResultImplementation; |
|
|
123 |
import org.netbeans.modules.maven.indexer.spi.impl.Redo; |
125 |
import org.netbeans.modules.maven.indexer.spi.impl.IndexingNotificationProvider; |
124 |
import org.netbeans.modules.maven.indexer.spi.impl.IndexingNotificationProvider; |
126 |
import org.openide.modules.Places; |
125 |
import org.openide.modules.Places; |
127 |
import org.openide.util.BaseUtilities; |
126 |
import org.openide.util.BaseUtilities; |
Lines 133-191
Link Here
|
133 |
import org.openide.util.lookup.ServiceProvider; |
132 |
import org.openide.util.lookup.ServiceProvider; |
134 |
import org.openide.util.lookup.ServiceProviders; |
133 |
import org.openide.util.lookup.ServiceProviders; |
135 |
import org.openide.util.NbBundle.Messages; |
134 |
import org.openide.util.NbBundle.Messages; |
|
|
135 |
import org.netbeans.modules.maven.indexer.spi.RepositoryIndexQueryProvider; |
136 |
|
136 |
|
137 |
@ServiceProviders({ |
137 |
@ServiceProviders({ |
138 |
@ServiceProvider(service=RepositoryIndexerImplementation.class), |
138 |
@ServiceProvider(service=RepositoryIndexerImplementation.class), |
139 |
@ServiceProvider(service=BaseQueries.class), |
139 |
@ServiceProvider(service=RepositoryIndexQueryProvider.class, position = Integer.MAX_VALUE) |
140 |
@ServiceProvider(service=ChecksumQueries.class), |
|
|
141 |
@ServiceProvider(service=ArchetypeQueries.class), |
142 |
@ServiceProvider(service=DependencyInfoQueries.class), |
143 |
@ServiceProvider(service=ClassesQuery.class), |
144 |
@ServiceProvider(service=ClassUsageQuery.class), |
145 |
@ServiceProvider(service=GenericFindQuery.class), |
146 |
@ServiceProvider(service=ContextLoadedQuery.class) |
147 |
}) |
140 |
}) |
148 |
public class NexusRepositoryIndexerImpl implements RepositoryIndexerImplementation, |
141 |
public class NexusRepositoryIndexerImpl implements RepositoryIndexerImplementation, RepositoryIndexQueryProvider, |
149 |
BaseQueries, ChecksumQueries, ArchetypeQueries, DependencyInfoQueries, |
142 |
BaseQueries, ChecksumQueries, ArchetypeQueries, DependencyInfoQueries, |
150 |
ClassesQuery, ClassUsageQuery, GenericFindQuery, ContextLoadedQuery { |
143 |
ClassesQuery, ClassUsageQuery, GenericFindQuery, ContextLoadedQuery { |
151 |
|
144 |
|
152 |
|
|
|
153 |
public static abstract class Accessor { |
154 |
|
155 |
@SuppressWarnings("MS_SHOULD_BE_FINAL") |
156 |
public static Accessor ACCESSOR; |
157 |
|
158 |
protected Accessor() { |
159 |
ACCESSOR = this; |
160 |
} |
161 |
|
162 |
public abstract void addSkipped(Result<?> result, Collection<RepositoryInfo> infos); |
163 |
|
164 |
public abstract List<RepositoryInfo> getSkipped(Result<?> result); |
165 |
|
166 |
public abstract void setStringResults(Result<String> result, Collection<String> newResults); |
167 |
|
168 |
public abstract void setVersionResults(Result<NBVersionInfo> result, Collection<NBVersionInfo> newResults); |
169 |
|
170 |
public abstract void addSkipped(Result<?> result, RepositoryInfo info); |
171 |
|
172 |
public abstract Result<String> createStringResult(Redo<String> redo); |
173 |
|
174 |
public abstract Result<NBVersionInfo> createVersionResult(Redo<NBVersionInfo> redo); |
175 |
|
176 |
public abstract Result<NBGroupInfo> createGroupResult(Redo<NBGroupInfo> redo); |
177 |
|
178 |
public abstract void setGroupResults(Result<NBGroupInfo> result, Collection<NBGroupInfo> newResults); |
179 |
|
180 |
public abstract Result<RepositoryQueries.ClassUsage> createClassResult(Redo<RepositoryQueries.ClassUsage> redo); |
181 |
|
182 |
public abstract void setClassResults(Result<RepositoryQueries.ClassUsage> result, Collection<RepositoryQueries.ClassUsage> newResults); |
183 |
|
184 |
public abstract void addTotalResults(Result<?> result, int moreResults); |
185 |
|
186 |
public abstract void addReturnedResults(Result<?> result, int moreResults); |
187 |
} |
188 |
|
189 |
private static final Logger LOGGER = Logger.getLogger(NexusRepositoryIndexerImpl.class.getName()); |
145 |
private static final Logger LOGGER = Logger.getLogger(NexusRepositoryIndexerImpl.class.getName()); |
190 |
|
146 |
|
191 |
static { |
147 |
static { |
Lines 216-221
Link Here
|
216 |
private static final Set<Mutex> indexingMutexes = new HashSet<Mutex>(); |
172 |
private static final Set<Mutex> indexingMutexes = new HashSet<Mutex>(); |
217 |
private static final RequestProcessor RP = new RequestProcessor("indexing", 1); |
173 |
private static final RequestProcessor RP = new RequestProcessor("indexing", 1); |
218 |
|
174 |
|
|
|
175 |
@Override |
176 |
public boolean handlesRepository(RepositoryInfo repo) { |
177 |
// should always come as last when looked up |
178 |
// handles all remote repos |
179 |
return true; |
180 |
} |
181 |
|
182 |
@Override |
183 |
public BaseQueries getBaseQueries() { |
184 |
return this; |
185 |
} |
186 |
|
187 |
@Override |
188 |
public ChecksumQueries getChecksumQueries() { |
189 |
return this; |
190 |
} |
191 |
|
192 |
@Override |
193 |
public ArchetypeQueries getArchetypeQueries() { |
194 |
return this; |
195 |
} |
196 |
|
197 |
@Override |
198 |
public DependencyInfoQueries getDependencyInfoQueries() { |
199 |
return this; |
200 |
} |
201 |
|
202 |
@Override |
203 |
public ClassesQuery getClassesQuery() { |
204 |
return this; |
205 |
} |
206 |
|
207 |
@Override |
208 |
public ClassUsageQuery getClassUsageQuery() { |
209 |
return this; |
210 |
} |
211 |
|
212 |
@Override |
213 |
public GenericFindQuery getGenericFindQuery() { |
214 |
return this; |
215 |
} |
216 |
|
217 |
@Override |
218 |
public ContextLoadedQuery getContextLoadedQuery() { |
219 |
return this; |
220 |
} |
221 |
|
219 |
private Mutex getRepoMutex(RepositoryInfo repo) { |
222 |
private Mutex getRepoMutex(RepositoryInfo repo) { |
220 |
return getRepoMutex(repo.getId()); |
223 |
return getRepoMutex(repo.getId()); |
221 |
} |
224 |
} |
Lines 914-920
Link Here
|
914 |
} |
917 |
} |
915 |
|
918 |
|
916 |
@Override |
919 |
@Override |
917 |
public RepositoryQueries.Result<String> getGroups(List<RepositoryInfo> repos) { |
920 |
public ResultImplementation<String> getGroups(List<RepositoryInfo> repos) { |
918 |
return filterGroupIds("", repos); |
921 |
return filterGroupIds("", repos); |
919 |
} |
922 |
} |
920 |
|
923 |
|
Lines 971-988
Link Here
|
971 |
} |
974 |
} |
972 |
} |
975 |
} |
973 |
|
976 |
|
|
|
977 |
private ResultImplementation<String> filterGroupIds(final String prefix, final List<RepositoryInfo> repos) { |
978 |
Redo<String> redo = new Redo<String>() { |
974 |
@Override |
979 |
@Override |
975 |
public RepositoryQueries.Result<String> filterGroupIds(final String prefix, final List<RepositoryInfo> repos) { |
980 |
public void run(ResultImpl<String> result) { |
976 |
RepositoryQueries.Result<String> result = Accessor.ACCESSOR.createStringResult(new Redo<String>() { |
981 |
filterGroupIds(prefix, result, result.getSkipped(), false); |
977 |
@Override |
|
|
978 |
public void run(Result<String> result) { |
979 |
filterGroupIds(prefix, result, Accessor.ACCESSOR.getSkipped(result), false); |
980 |
} |
982 |
} |
981 |
}); |
983 |
}; |
|
|
984 |
ResultImpl<String> result = new ResultImpl<String>(redo); |
982 |
return filterGroupIds(prefix, result, repos, true); |
985 |
return filterGroupIds(prefix, result, repos, true); |
983 |
} |
986 |
} |
984 |
|
987 |
|
985 |
private RepositoryQueries.Result<String> filterGroupIds(final String prefix, final RepositoryQueries.Result<String> result, |
988 |
private ResultImplementation<String> filterGroupIds(final String prefix, final ResultImpl<String> result, |
986 |
final List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
989 |
final List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
987 |
final Set<String> groups = new TreeSet<String>(result.getResults()); |
990 |
final Set<String> groups = new TreeSet<String>(result.getResults()); |
988 |
final List<RepositoryInfo> slowCheck = new ArrayList<RepositoryInfo>(); |
991 |
final List<RepositoryInfo> slowCheck = new ArrayList<RepositoryInfo>(); |
Lines 1025-1046
Link Here
|
1025 |
// } |
1028 |
// } |
1026 |
// }, skipAction, skipUnIndexed); |
1029 |
// }, skipAction, skipUnIndexed); |
1027 |
|
1030 |
|
1028 |
Accessor.ACCESSOR.setStringResults(result, groups); |
1031 |
result.setResults(groups); |
1029 |
return result; |
1032 |
return result; |
1030 |
} |
1033 |
} |
1031 |
|
1034 |
|
1032 |
@Override |
1035 |
@Override |
1033 |
public Result<String> getGAVsForPackaging(final String packaging, List<RepositoryInfo> repos) { |
1036 |
public ResultImplementation<String> getGAVsForPackaging(final String packaging, List<RepositoryInfo> repos) { |
1034 |
RepositoryQueries.Result<String> result = Accessor.ACCESSOR.createStringResult(new Redo<String>() { |
1037 |
ResultImpl<String> result = new ResultImpl<>(new Redo<String>() { |
1035 |
@Override |
1038 |
@Override |
1036 |
public void run(Result<String> result) { |
1039 |
public void run(ResultImpl<String> result) { |
1037 |
getGAVsForPackaging(packaging, result, Accessor.ACCESSOR.getSkipped(result), false); |
1040 |
getGAVsForPackaging(packaging, result, result.getSkipped(), false); |
1038 |
} |
1041 |
} |
1039 |
}); |
1042 |
}); |
1040 |
return getGAVsForPackaging(packaging,result, repos, true); |
1043 |
return getGAVsForPackaging(packaging,result, repos, true); |
1041 |
} |
1044 |
} |
1042 |
|
1045 |
|
1043 |
private Result<String> getGAVsForPackaging(final String packaging, final Result<String> result, |
1046 |
private ResultImplementation<String> getGAVsForPackaging(final String packaging, final ResultImpl<String> result, |
1044 |
List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1047 |
List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1045 |
final List<String> infos = new ArrayList<String>(result.getResults()); |
1048 |
final List<String> infos = new ArrayList<String>(result.getResults()); |
1046 |
final SkippedAction skipAction = new SkippedAction(result); |
1049 |
final SkippedAction skipAction = new SkippedAction(result); |
Lines 1058-1087
Link Here
|
1058 |
} |
1061 |
} |
1059 |
} |
1062 |
} |
1060 |
} finally { |
1063 |
} finally { |
1061 |
Accessor.ACCESSOR.addReturnedResults(result, response.getTotalProcessedArtifactInfoCount()); |
1064 |
result.addReturnedResultCount(response.getTotalProcessedArtifactInfoCount()); |
1062 |
Accessor.ACCESSOR.addTotalResults(result, response.getTotalHitsCount()); |
1065 |
result.addTotalResultCount(response.getTotalHitsCount()); |
1063 |
response.close(); |
1066 |
response.close(); |
1064 |
} |
1067 |
} |
1065 |
} |
1068 |
} |
1066 |
} |
1069 |
} |
1067 |
}, skipAction, skipUnIndexed); |
1070 |
}, skipAction, skipUnIndexed); |
1068 |
Accessor.ACCESSOR.setStringResults(result, infos); |
1071 |
result.setResults(infos); |
1069 |
return result; |
1072 |
return result; |
1070 |
} |
1073 |
} |
1071 |
|
1074 |
|
1072 |
|
|
|
1073 |
@Override |
1075 |
@Override |
1074 |
public Result<NBVersionInfo> getRecords(final String groupId, final String artifactId, final String version, List<RepositoryInfo> repos) { |
1076 |
public ResultImplementation<NBVersionInfo> getRecords(final String groupId, final String artifactId, final String version, List<RepositoryInfo> repos) { |
1075 |
RepositoryQueries.Result<NBVersionInfo> result = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1077 |
ResultImpl<NBVersionInfo> result = new ResultImpl<>(new Redo<NBVersionInfo>() { |
1076 |
@Override |
1078 |
@Override |
1077 |
public void run(Result<NBVersionInfo> result) { |
1079 |
public void run(ResultImpl<NBVersionInfo> result) { |
1078 |
getRecords(groupId, artifactId, version, result, Accessor.ACCESSOR.getSkipped(result), false); |
1080 |
getRecords(groupId, artifactId, version, result, result.getSkipped(), false); |
1079 |
} |
1081 |
} |
1080 |
}); |
1082 |
}); |
1081 |
return getRecords(groupId, artifactId, version, result, repos, true); |
1083 |
return getRecords(groupId, artifactId, version, result, repos, true); |
1082 |
} |
1084 |
} |
1083 |
|
1085 |
|
1084 |
private Result<NBVersionInfo> getRecords(final String groupId, final String artifactId, final String version, final Result<NBVersionInfo> result, |
1086 |
private ResultImplementation<NBVersionInfo> getRecords(final String groupId, final String artifactId, final String version, final ResultImpl<NBVersionInfo> result, |
1085 |
List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1087 |
List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1086 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1088 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1087 |
final SkippedAction skipAction = new SkippedAction(result); |
1089 |
final SkippedAction skipAction = new SkippedAction(result); |
Lines 1097-1126
Link Here
|
1097 |
infos.add(convertToNBVersionInfo(ai)); |
1099 |
infos.add(convertToNBVersionInfo(ai)); |
1098 |
} |
1100 |
} |
1099 |
} finally { |
1101 |
} finally { |
1100 |
Accessor.ACCESSOR.addReturnedResults(result, response.getTotalProcessedArtifactInfoCount()); |
1102 |
result.addReturnedResultCount(response.getTotalProcessedArtifactInfoCount()); |
1101 |
Accessor.ACCESSOR.addTotalResults(result, response.getTotalHitsCount()); |
1103 |
result.addTotalResultCount(response.getTotalHitsCount()); |
1102 |
response.close(); |
1104 |
response.close(); |
1103 |
} |
1105 |
} |
1104 |
} |
1106 |
} |
1105 |
} |
1107 |
} |
1106 |
}, skipAction, skipUnIndexed); |
1108 |
}, skipAction, skipUnIndexed); |
1107 |
doSortIssue226100(infos); |
1109 |
doSortIssue226100(infos); |
1108 |
Accessor.ACCESSOR.setVersionResults(result, infos); |
1110 |
result.setResults(infos); |
1109 |
return result; |
1111 |
return result; |
1110 |
} |
1112 |
} |
1111 |
|
1113 |
|
1112 |
@Override |
1114 |
@Override |
1113 |
public RepositoryQueries.Result<String> getArtifacts(final String groupId, final List<RepositoryInfo> repos) { |
1115 |
public ResultImplementation<String> getArtifacts(final String groupId, final List<RepositoryInfo> repos) { |
1114 |
RepositoryQueries.Result<String> result = Accessor.ACCESSOR.createStringResult(new Redo<String>() { |
1116 |
ResultImpl<String> result = new ResultImpl<>(new Redo<String>() { |
1115 |
@Override |
1117 |
@Override |
1116 |
public void run(Result<String> result) { |
1118 |
public void run(ResultImpl<String> result) { |
1117 |
getArtifacts(groupId, result, Accessor.ACCESSOR.getSkipped(result), false); |
1119 |
getArtifacts(groupId, result, result.getSkipped(), false); |
1118 |
} |
1120 |
} |
1119 |
}); |
1121 |
}); |
1120 |
return getArtifacts(groupId, result, repos, true); |
1122 |
return getArtifacts(groupId, result, repos, true); |
1121 |
} |
1123 |
} |
1122 |
|
1124 |
|
1123 |
private RepositoryQueries.Result<String> getArtifacts(final String groupId, final Result<String> result, final List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1125 |
private ResultImplementation<String> getArtifacts(final String groupId, final ResultImpl<String> result, final List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1124 |
final Set<String> artifacts = new TreeSet<String>(result.getResults()); |
1126 |
final Set<String> artifacts = new TreeSet<String>(result.getResults()); |
1125 |
final SkippedAction skipAction = new SkippedAction(result); |
1127 |
final SkippedAction skipAction = new SkippedAction(result); |
1126 |
iterate(repos, new RepoAction() { |
1128 |
iterate(repos, new RepoAction() { |
Lines 1141-1161
Link Here
|
1141 |
} |
1143 |
} |
1142 |
} |
1144 |
} |
1143 |
}, skipAction, skipUnIndexed); |
1145 |
}, skipAction, skipUnIndexed); |
1144 |
Accessor.ACCESSOR.setStringResults(result, artifacts); |
1146 |
result.setResults(artifacts); |
1145 |
return result; |
1147 |
return result; |
1146 |
} |
1148 |
} |
1147 |
|
1149 |
|
1148 |
@Override |
1150 |
@Override |
1149 |
public RepositoryQueries.Result<NBVersionInfo> getVersions(final String groupId, final String artifactId, List<RepositoryInfo> repos) { |
1151 |
public ResultImplementation<NBVersionInfo> getVersions(final String groupId, final String artifactId, List<RepositoryInfo> repos) { |
1150 |
RepositoryQueries.Result<NBVersionInfo> result = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1152 |
ResultImpl<NBVersionInfo> result = new ResultImpl<>(new Redo<NBVersionInfo>() { |
1151 |
@Override |
1153 |
@Override |
1152 |
public void run(Result<NBVersionInfo> result) { |
1154 |
public void run(ResultImpl<NBVersionInfo> result) { |
1153 |
getVersions(groupId, artifactId, result, Accessor.ACCESSOR.getSkipped(result), false); |
1155 |
getVersions(groupId, artifactId, result, result.getSkipped(), false); |
1154 |
} |
1156 |
} |
1155 |
}); |
1157 |
}); |
1156 |
return getVersions(groupId, artifactId, result, repos, true); |
1158 |
return getVersions(groupId, artifactId, result, repos, true); |
1157 |
} |
1159 |
} |
1158 |
private RepositoryQueries.Result<NBVersionInfo> getVersions(final String groupId, final String artifactId, final Result<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1160 |
private ResultImplementation<NBVersionInfo> getVersions(final String groupId, final String artifactId, final ResultImpl<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1159 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1161 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1160 |
final SkippedAction skipAction = new SkippedAction(result); |
1162 |
final SkippedAction skipAction = new SkippedAction(result); |
1161 |
iterate(repos, new RepoAction() { |
1163 |
iterate(repos, new RepoAction() { |
Lines 1170-1199
Link Here
|
1170 |
infos.add(convertToNBVersionInfo(ai)); |
1172 |
infos.add(convertToNBVersionInfo(ai)); |
1171 |
} |
1173 |
} |
1172 |
} finally { |
1174 |
} finally { |
1173 |
Accessor.ACCESSOR.addReturnedResults(result, response.getTotalProcessedArtifactInfoCount()); |
1175 |
result.addReturnedResultCount(response.getTotalProcessedArtifactInfoCount()); |
1174 |
Accessor.ACCESSOR.addTotalResults(result, response.getTotalHitsCount()); |
1176 |
result.addTotalResultCount(response.getTotalHitsCount()); |
1175 |
response.close(); |
1177 |
response.close(); |
1176 |
} |
1178 |
} |
1177 |
} |
1179 |
} |
1178 |
} |
1180 |
} |
1179 |
}, skipAction, skipUnIndexed); |
1181 |
}, skipAction, skipUnIndexed); |
1180 |
doSortIssue226100(infos); |
1182 |
doSortIssue226100(infos); |
1181 |
Accessor.ACCESSOR.setVersionResults(result, infos); |
1183 |
result.setResults(infos); |
1182 |
return result; |
1184 |
return result; |
1183 |
} |
1185 |
} |
1184 |
|
1186 |
|
1185 |
@Override |
1187 |
@Override |
1186 |
public RepositoryQueries.Result<NBVersionInfo> findVersionsByClass(final String className, List<RepositoryInfo> repos) { |
1188 |
public ResultImplementation<NBVersionInfo> findVersionsByClass(final String className, List<RepositoryInfo> repos) { |
1187 |
RepositoryQueries.Result<NBVersionInfo> result = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1189 |
ResultImpl<NBVersionInfo> result = new ResultImpl(new Redo<NBVersionInfo>() { |
1188 |
@Override |
1190 |
@Override |
1189 |
public void run(Result<NBVersionInfo> result) { |
1191 |
public void run(ResultImpl<NBVersionInfo> result) { |
1190 |
findVersionsByClass(className, result, Accessor.ACCESSOR.getSkipped(result), false); |
1192 |
findVersionsByClass(className, result, result.getSkipped(), false); |
1191 |
} |
1193 |
} |
1192 |
}); |
1194 |
}); |
1193 |
return findVersionsByClass(className, result, repos, true); |
1195 |
return findVersionsByClass(className, result, repos, true); |
1194 |
} |
1196 |
} |
1195 |
|
1197 |
|
1196 |
private RepositoryQueries.Result<NBVersionInfo> findVersionsByClass(final String className, final Result<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1198 |
private ResultImplementation<NBVersionInfo> findVersionsByClass(final String className, final ResultImpl<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1197 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1199 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1198 |
final SkippedAction skipAction = new SkippedAction(result); |
1200 |
final SkippedAction skipAction = new SkippedAction(result); |
1199 |
iterate(repos, new RepoAction() { |
1201 |
iterate(repos, new RepoAction() { |
Lines 1215-1245
Link Here
|
1215 |
infos.addAll(postProcessClasses(response.getResults(), clsname)); |
1217 |
infos.addAll(postProcessClasses(response.getResults(), clsname)); |
1216 |
} finally { |
1218 |
} finally { |
1217 |
//?? really count in this case? |
1219 |
//?? really count in this case? |
1218 |
Accessor.ACCESSOR.addReturnedResults(result, response.getTotalProcessedArtifactInfoCount()); |
1220 |
result.addReturnedResultCount(response.getTotalProcessedArtifactInfoCount()); |
1219 |
Accessor.ACCESSOR.addTotalResults(result, response.getTotalHitsCount()); |
1221 |
result.addTotalResultCount(response.getTotalHitsCount()); |
1220 |
response.close(); |
1222 |
response.close(); |
1221 |
} |
1223 |
} |
1222 |
} |
1224 |
} |
1223 |
} |
1225 |
} |
1224 |
}, skipAction, skipUnIndexed); |
1226 |
}, skipAction, skipUnIndexed); |
1225 |
doSortIssue226100(infos); |
1227 |
doSortIssue226100(infos); |
1226 |
Accessor.ACCESSOR.setVersionResults(result, infos); |
1228 |
result.setResults(infos); |
1227 |
return result; |
1229 |
return result; |
1228 |
} |
1230 |
} |
1229 |
|
1231 |
|
1230 |
@Override |
1232 |
@Override |
1231 |
public RepositoryQueries.Result<RepositoryQueries.ClassUsage> findClassUsages(final String className, @NullAllowed List<RepositoryInfo> repos) { |
1233 |
public ResultImplementation<RepositoryQueries.ClassUsage> findClassUsages(final String className, @NullAllowed List<RepositoryInfo> repos) { |
1232 |
RepositoryQueries.Result<RepositoryQueries.ClassUsage> result = Accessor.ACCESSOR.createClassResult(new Redo<RepositoryQueries.ClassUsage>() { |
1234 |
ResultImpl<RepositoryQueries.ClassUsage> result = new ResultImpl<>(new Redo<RepositoryQueries.ClassUsage>() { |
1233 |
@Override |
1235 |
@Override |
1234 |
public void run(Result<RepositoryQueries.ClassUsage> result) { |
1236 |
public void run(ResultImpl<RepositoryQueries.ClassUsage> result) { |
1235 |
findClassUsages(className, result, Accessor.ACCESSOR.getSkipped(result), false); |
1237 |
findClassUsages(className, result, result.getSkipped(), false); |
1236 |
} |
1238 |
} |
1237 |
}); |
1239 |
}); |
1238 |
return findClassUsages(className, result, repos, true); |
1240 |
return findClassUsages(className, result, repos, true); |
1239 |
|
1241 |
|
1240 |
} |
1242 |
} |
1241 |
|
1243 |
|
1242 |
private RepositoryQueries.Result<RepositoryQueries.ClassUsage> findClassUsages(final String className, Result<RepositoryQueries.ClassUsage> result, @NullAllowed List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1244 |
private ResultImplementation<RepositoryQueries.ClassUsage> findClassUsages(final String className, ResultImpl<RepositoryQueries.ClassUsage> result, @NullAllowed List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1243 |
List<RepositoryInfo> localRepos = new ArrayList<RepositoryInfo>(); |
1245 |
List<RepositoryInfo> localRepos = new ArrayList<RepositoryInfo>(); |
1244 |
if (repos == null) { |
1246 |
if (repos == null) { |
1245 |
repos = RepositoryPreferences.getInstance().getRepositoryInfos(); |
1247 |
repos = RepositoryPreferences.getInstance().getRepositoryInfos(); |
Lines 1261-1281
Link Here
|
1261 |
return r1.getArtifact().compareTo(r2.getArtifact()); |
1263 |
return r1.getArtifact().compareTo(r2.getArtifact()); |
1262 |
} |
1264 |
} |
1263 |
}); |
1265 |
}); |
1264 |
Accessor.ACCESSOR.setClassResults(result, results); |
1266 |
result.setResults(results); |
1265 |
return result; |
1267 |
return result; |
1266 |
} |
1268 |
} |
1267 |
|
1269 |
|
1268 |
@Override |
1270 |
@Override |
1269 |
public RepositoryQueries.Result<NBVersionInfo> findDependencyUsage(final String groupId, final String artifactId, final String version, @NullAllowed List<RepositoryInfo> repos) { |
1271 |
public ResultImplementation<NBVersionInfo> findDependencyUsage(final String groupId, final String artifactId, final String version, @NullAllowed List<RepositoryInfo> repos) { |
1270 |
RepositoryQueries.Result<NBVersionInfo> result = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1272 |
ResultImpl<NBVersionInfo> result = new ResultImpl<>(new Redo<NBVersionInfo>() { |
1271 |
@Override |
1273 |
@Override |
1272 |
public void run(Result<NBVersionInfo> result) { |
1274 |
public void run(ResultImpl<NBVersionInfo> result) { |
1273 |
findDependencyUsage(groupId, artifactId, version, result, Accessor.ACCESSOR.getSkipped(result), false); |
1275 |
findDependencyUsage(groupId, artifactId, version, result, result.getSkipped(), false); |
1274 |
} |
1276 |
} |
1275 |
}); |
1277 |
}); |
1276 |
return findDependencyUsage(groupId, artifactId, version, result, repos, true); |
1278 |
return findDependencyUsage(groupId, artifactId, version, result, repos, true); |
1277 |
} |
1279 |
} |
1278 |
private RepositoryQueries.Result<NBVersionInfo> findDependencyUsage(String groupId, String artifactId, String version, final Result<NBVersionInfo> result, @NullAllowed List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1280 |
private ResultImplementation<NBVersionInfo> findDependencyUsage(String groupId, String artifactId, String version, final ResultImpl<NBVersionInfo> result, @NullAllowed List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1279 |
final Query q = ArtifactDependencyIndexCreator.query(groupId, artifactId, version); |
1281 |
final Query q = ArtifactDependencyIndexCreator.query(groupId, artifactId, version); |
1280 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1282 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1281 |
final SkippedAction skipAction = new SkippedAction(result); |
1283 |
final SkippedAction skipAction = new SkippedAction(result); |
Lines 1288-1324
Link Here
|
1288 |
infos.add(convertToNBVersionInfo(ai)); |
1290 |
infos.add(convertToNBVersionInfo(ai)); |
1289 |
} |
1291 |
} |
1290 |
} finally { |
1292 |
} finally { |
1291 |
Accessor.ACCESSOR.addReturnedResults(result, response.getTotalProcessedArtifactInfoCount()); |
1293 |
result.addReturnedResultCount(response.getTotalProcessedArtifactInfoCount()); |
1292 |
Accessor.ACCESSOR.addTotalResults(result, response.getTotalHitsCount()); |
1294 |
result.addTotalResultCount(response.getTotalHitsCount()); |
1293 |
response.close(); |
1295 |
response.close(); |
1294 |
} |
1296 |
} |
1295 |
} |
1297 |
} |
1296 |
} |
1298 |
} |
1297 |
}, skipAction, skipUnIndexed); |
1299 |
}, skipAction, skipUnIndexed); |
1298 |
Accessor.ACCESSOR.setVersionResults(result, infos); |
1300 |
result.setResults(infos); |
1299 |
return result; |
1301 |
return result; |
1300 |
} |
1302 |
} |
1301 |
|
1303 |
|
1302 |
@Override |
1304 |
@Override |
1303 |
public Result<NBGroupInfo> findDependencyUsageGroups(final String groupId, final String artifactId, final String version, List<RepositoryInfo> repos) { |
1305 |
public ResultImplementation<NBGroupInfo> findDependencyUsageGroups(final String groupId, final String artifactId, final String version, List<RepositoryInfo> repos) { |
1304 |
RepositoryQueries.Result<NBGroupInfo> result = Accessor.ACCESSOR.createGroupResult(new Redo<NBGroupInfo>() { |
1306 |
ResultImpl<NBGroupInfo> result = new ResultImpl<>(new Redo<NBGroupInfo>() { |
1305 |
@Override |
1307 |
@Override |
1306 |
public void run(Result<NBGroupInfo> result) { |
1308 |
public void run(ResultImpl<NBGroupInfo> result) { |
1307 |
findDependencyUsageGroups(groupId, artifactId, version, result, Accessor.ACCESSOR.getSkipped(result), false); |
1309 |
findDependencyUsageGroups(groupId, artifactId, version, result, result.getSkipped(), false); |
1308 |
} |
1310 |
} |
1309 |
}); |
1311 |
}); |
1310 |
return findDependencyUsageGroups(groupId, artifactId, version, result, repos, true); |
1312 |
return findDependencyUsageGroups(groupId, artifactId, version, result, repos, true); |
1311 |
} |
1313 |
} |
1312 |
|
1314 |
|
1313 |
private Result<NBGroupInfo> findDependencyUsageGroups(String groupId, String artifactId, String version, Result<NBGroupInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1315 |
private ResultImplementation<NBGroupInfo> findDependencyUsageGroups(String groupId, String artifactId, String version, ResultImpl<NBGroupInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1314 |
//tempmaps |
1316 |
//tempmaps |
1315 |
Map<String, NBGroupInfo> groupMap = new HashMap<String, NBGroupInfo>(); |
1317 |
Map<String, NBGroupInfo> groupMap = new HashMap<String, NBGroupInfo>(); |
1316 |
Map<String, NBArtifactInfo> artifactMap = new HashMap<String, NBArtifactInfo>(); |
1318 |
Map<String, NBArtifactInfo> artifactMap = new HashMap<String, NBArtifactInfo>(); |
1317 |
List<NBGroupInfo> groupInfos = new ArrayList<NBGroupInfo>(result.getResults()); |
1319 |
List<NBGroupInfo> groupInfos = new ArrayList<NBGroupInfo>(result.getResults()); |
1318 |
Result<NBVersionInfo> res = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1320 |
ResultImpl<NBVersionInfo> res = new ResultImpl(new Redo<NBVersionInfo>() { |
1319 |
|
1321 |
|
1320 |
@Override |
1322 |
@Override |
1321 |
public void run(Result<NBVersionInfo> result) { |
1323 |
public void run(ResultImpl<NBVersionInfo> result) { |
1322 |
//noop will not be called |
1324 |
//noop will not be called |
1323 |
} |
1325 |
} |
1324 |
}); |
1326 |
}); |
Lines 1326-1334
Link Here
|
1326 |
convertToNBGroupInfo(res.getResults(), |
1328 |
convertToNBGroupInfo(res.getResults(), |
1327 |
groupMap, artifactMap, groupInfos); |
1329 |
groupMap, artifactMap, groupInfos); |
1328 |
if (res.isPartial()) { |
1330 |
if (res.isPartial()) { |
1329 |
Accessor.ACCESSOR.addSkipped(result, Accessor.ACCESSOR.getSkipped(res)); |
1331 |
result.addSkipped(res.getSkipped()); |
1330 |
} |
1332 |
} |
1331 |
Accessor.ACCESSOR.setGroupResults(result, groupInfos); |
1333 |
result.setResults(groupInfos); |
1332 |
return result; |
1334 |
return result; |
1333 |
|
1335 |
|
1334 |
} |
1336 |
} |
Lines 1360-1376
Link Here
|
1360 |
|
1362 |
|
1361 |
|
1363 |
|
1362 |
@Override |
1364 |
@Override |
1363 |
public RepositoryQueries.Result<NBVersionInfo> findBySHA1(final String sha1, List<RepositoryInfo> repos) { |
1365 |
public ResultImplementation<NBVersionInfo> findBySHA1(final String sha1, List<RepositoryInfo> repos) { |
1364 |
RepositoryQueries.Result<NBVersionInfo> result = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1366 |
ResultImpl<NBVersionInfo> result = new ResultImpl<>(new Redo<NBVersionInfo>() { |
1365 |
@Override |
1367 |
@Override |
1366 |
public void run(Result<NBVersionInfo> result) { |
1368 |
public void run(ResultImpl<NBVersionInfo> result) { |
1367 |
findBySHA1(sha1, result, Accessor.ACCESSOR.getSkipped(result), false); |
1369 |
findBySHA1(sha1, result, result.getSkipped(), false); |
1368 |
} |
1370 |
} |
1369 |
}); |
1371 |
}); |
1370 |
return findBySHA1(sha1, result, repos, true); |
1372 |
return findBySHA1(sha1, result, repos, true); |
1371 |
} |
1373 |
} |
1372 |
|
1374 |
|
1373 |
private RepositoryQueries.Result<NBVersionInfo> findBySHA1(final String sha1, final Result<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1375 |
private ResultImplementation<NBVersionInfo> findBySHA1(final String sha1, final ResultImpl<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1374 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1376 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1375 |
final SkippedAction skipAction = new SkippedAction(result); |
1377 |
final SkippedAction skipAction = new SkippedAction(result); |
1376 |
iterate(repos, new RepoAction() { |
1378 |
iterate(repos, new RepoAction() { |
Lines 1384-1413
Link Here
|
1384 |
infos.add(convertToNBVersionInfo(ai)); |
1386 |
infos.add(convertToNBVersionInfo(ai)); |
1385 |
} |
1387 |
} |
1386 |
} finally { |
1388 |
} finally { |
1387 |
Accessor.ACCESSOR.addReturnedResults(result, response.getTotalProcessedArtifactInfoCount()); |
1389 |
result.addReturnedResultCount(response.getTotalProcessedArtifactInfoCount()); |
1388 |
Accessor.ACCESSOR.addTotalResults(result, response.getTotalHitsCount()); |
1390 |
result.addTotalResultCount(response.getTotalHitsCount()); |
1389 |
response.close(); |
1391 |
response.close(); |
1390 |
} |
1392 |
} |
1391 |
} |
1393 |
} |
1392 |
} |
1394 |
} |
1393 |
}, skipAction, skipUnIndexed); |
1395 |
}, skipAction, skipUnIndexed); |
1394 |
doSortIssue226100(infos); |
1396 |
doSortIssue226100(infos); |
1395 |
Accessor.ACCESSOR.setVersionResults(result, infos); |
1397 |
result.setResults(infos); |
1396 |
return result; |
1398 |
return result; |
1397 |
} |
1399 |
} |
1398 |
|
1400 |
|
1399 |
@Override |
1401 |
@Override |
1400 |
public RepositoryQueries.Result<NBVersionInfo> findArchetypes(List<RepositoryInfo> repos) { |
1402 |
public ResultImplementation<NBVersionInfo> findArchetypes(List<RepositoryInfo> repos) { |
1401 |
RepositoryQueries.Result<NBVersionInfo> result = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1403 |
ResultImpl<NBVersionInfo> result = new ResultImpl<>(new Redo<NBVersionInfo>() { |
1402 |
@Override |
1404 |
@Override |
1403 |
public void run(Result<NBVersionInfo> result) { |
1405 |
public void run(ResultImpl<NBVersionInfo> result) { |
1404 |
findArchetypes( result, Accessor.ACCESSOR.getSkipped(result), false); |
1406 |
findArchetypes( result, result.getSkipped(), false); |
1405 |
} |
1407 |
} |
1406 |
}); |
1408 |
}); |
1407 |
return findArchetypes( result, repos, true); |
1409 |
return findArchetypes( result, repos, true); |
1408 |
} |
1410 |
} |
1409 |
|
1411 |
|
1410 |
private RepositoryQueries.Result<NBVersionInfo> findArchetypes(final Result<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1412 |
private ResultImplementation<NBVersionInfo> findArchetypes(final ResultImpl<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1411 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1413 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1412 |
final SkippedAction skipAction = new SkippedAction(result); |
1414 |
final SkippedAction skipAction = new SkippedAction(result); |
1413 |
iterate(repos, new RepoAction() { |
1415 |
iterate(repos, new RepoAction() { |
Lines 1426-1455
Link Here
|
1426 |
infos.add(convertToNBVersionInfo(ai)); |
1428 |
infos.add(convertToNBVersionInfo(ai)); |
1427 |
} |
1429 |
} |
1428 |
} finally { |
1430 |
} finally { |
1429 |
Accessor.ACCESSOR.addReturnedResults(result, response.getTotalProcessedArtifactInfoCount()); |
1431 |
result.addReturnedResultCount(response.getTotalProcessedArtifactInfoCount()); |
1430 |
Accessor.ACCESSOR.addTotalResults(result, response.getTotalHitsCount()); |
1432 |
result.addTotalResultCount(response.getTotalHitsCount()); |
1431 |
response.close(); |
1433 |
response.close(); |
1432 |
} |
1434 |
} |
1433 |
} |
1435 |
} |
1434 |
} |
1436 |
} |
1435 |
}, skipAction, skipUnIndexed); |
1437 |
}, skipAction, skipUnIndexed); |
1436 |
doSortIssue226100(infos); |
1438 |
doSortIssue226100(infos); |
1437 |
Accessor.ACCESSOR.setVersionResults(result, infos); |
1439 |
result.setResults(infos); |
1438 |
return result; |
1440 |
return result; |
1439 |
} |
1441 |
} |
1440 |
|
1442 |
|
1441 |
@Override |
1443 |
@Override |
1442 |
public RepositoryQueries.Result<String> filterPluginArtifactIds(final String groupId, final String prefix, List<RepositoryInfo> repos) { |
1444 |
public ResultImplementation<String> filterPluginArtifactIds(final String groupId, final String prefix, List<RepositoryInfo> repos) { |
1443 |
RepositoryQueries.Result<String> result = Accessor.ACCESSOR.createStringResult(new Redo<String>() { |
1445 |
ResultImpl<String> result = new ResultImpl<>(new Redo<String>() { |
1444 |
@Override |
1446 |
@Override |
1445 |
public void run(Result<String> result) { |
1447 |
public void run(ResultImpl<String> result) { |
1446 |
filterPluginArtifactIds(groupId, prefix, result, Accessor.ACCESSOR.getSkipped(result), false); |
1448 |
filterPluginArtifactIds(groupId, prefix, result, result.getSkipped(), false); |
1447 |
} |
1449 |
} |
1448 |
}); |
1450 |
}); |
1449 |
return filterPluginArtifactIds(groupId, prefix, result, repos, true); |
1451 |
return filterPluginArtifactIds(groupId, prefix, result, repos, true); |
1450 |
} |
1452 |
} |
1451 |
|
1453 |
|
1452 |
private RepositoryQueries.Result<String> filterPluginArtifactIds(final String groupId, final String prefix, Result<String> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1454 |
private ResultImplementation<String> filterPluginArtifactIds(final String groupId, final String prefix, ResultImpl<String> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1453 |
final Set<String> artifacts = new TreeSet<String>(result.getResults()); |
1455 |
final Set<String> artifacts = new TreeSet<String>(result.getResults()); |
1454 |
final SkippedAction skipAction = new SkippedAction(result); |
1456 |
final SkippedAction skipAction = new SkippedAction(result); |
1455 |
iterate(repos, new RepoAction() { |
1457 |
iterate(repos, new RepoAction() { |
Lines 1471-1492
Link Here
|
1471 |
} |
1473 |
} |
1472 |
} |
1474 |
} |
1473 |
}, skipAction, skipUnIndexed); |
1475 |
}, skipAction, skipUnIndexed); |
1474 |
Accessor.ACCESSOR.setStringResults(result, artifacts); |
1476 |
result.setResults(artifacts); |
1475 |
return result; |
1477 |
return result; |
1476 |
} |
1478 |
} |
1477 |
|
1479 |
|
1478 |
@Override |
1480 |
@Override |
1479 |
public RepositoryQueries.Result<String> filterPluginGroupIds(final String prefix, List<RepositoryInfo> repos) { |
1481 |
public ResultImplementation<String> filterPluginGroupIds(final String prefix, List<RepositoryInfo> repos) { |
1480 |
RepositoryQueries.Result<String> result = Accessor.ACCESSOR.createStringResult(new Redo<String>() { |
1482 |
ResultImpl<String> result = new ResultImpl<>(new Redo<String>() { |
1481 |
@Override |
1483 |
@Override |
1482 |
public void run(Result<String> result) { |
1484 |
public void run(ResultImpl<String> result) { |
1483 |
filterPluginGroupIds( prefix, result, Accessor.ACCESSOR.getSkipped(result), false); |
1485 |
filterPluginGroupIds( prefix, result, result.getSkipped(), false); |
1484 |
} |
1486 |
} |
1485 |
}); |
1487 |
}); |
1486 |
return filterPluginGroupIds( prefix, result, repos, true); |
1488 |
return filterPluginGroupIds( prefix, result, repos, true); |
1487 |
} |
1489 |
} |
1488 |
|
1490 |
|
1489 |
private RepositoryQueries.Result<String> filterPluginGroupIds(final String prefix, Result<String> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1491 |
private ResultImplementation<String> filterPluginGroupIds(final String prefix, ResultImpl<String> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1490 |
final Set<String> artifacts = new TreeSet<String>(result.getResults()); |
1492 |
final Set<String> artifacts = new TreeSet<String>(result.getResults()); |
1491 |
final SkippedAction skipAction = new SkippedAction(result); |
1493 |
final SkippedAction skipAction = new SkippedAction(result); |
1492 |
iterate(repos, new RepoAction() { |
1494 |
iterate(repos, new RepoAction() { |
Lines 1509-1564
Link Here
|
1509 |
} |
1511 |
} |
1510 |
} |
1512 |
} |
1511 |
}, skipAction, skipUnIndexed); |
1513 |
}, skipAction, skipUnIndexed); |
1512 |
Accessor.ACCESSOR.setStringResults(result, artifacts); |
1514 |
result.setResults(artifacts); |
1513 |
return result; |
1515 |
return result; |
1514 |
} |
1516 |
} |
1515 |
|
1517 |
|
1516 |
@Override |
1518 |
@Override |
1517 |
public RepositoryQueries.Result<String> filterArtifactIdForGroupId(final String groupId, final String prefix, List<RepositoryInfo> repos) { |
1519 |
public ResultImplementation<NBVersionInfo> find(final List<QueryField> fields, List<RepositoryInfo> repos) { |
1518 |
RepositoryQueries.Result<String> result = Accessor.ACCESSOR.createStringResult(new Redo<String>() { |
1520 |
ResultImpl<NBVersionInfo> result = new ResultImpl<>(new Redo<NBVersionInfo>() { |
1519 |
@Override |
1521 |
@Override |
1520 |
public void run(Result<String> result) { |
1522 |
public void run(ResultImpl<NBVersionInfo> result) { |
1521 |
filterArtifactIdForGroupId( groupId, prefix, result, Accessor.ACCESSOR.getSkipped(result), false); |
1523 |
find( fields, result, result.getSkipped(), false); |
1522 |
} |
1524 |
} |
1523 |
}); |
1525 |
}); |
1524 |
return filterArtifactIdForGroupId( groupId, prefix, result, repos, true); |
|
|
1525 |
} |
1526 |
private RepositoryQueries.Result<String> filterArtifactIdForGroupId(final String groupId, final String prefix, Result<String> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1527 |
final Set<String> artifacts = new TreeSet<String>(result.getResults()); |
1528 |
final SkippedAction skipAction = new SkippedAction(result); |
1529 |
iterate(repos, new RepoAction() { |
1530 |
@Override public void run(RepositoryInfo repo, IndexingContext context) throws IOException { |
1531 |
BooleanQuery bq = new BooleanQuery(); |
1532 |
String id = groupId + ArtifactInfo.FS + prefix; |
1533 |
bq.add(new BooleanClause(setBooleanRewrite(new PrefixQuery(new Term(ArtifactInfo.UINFO, id))), BooleanClause.Occur.MUST)); |
1534 |
//mkleint: this is not capped, because only a string is collected (and collapsed), the rest gets CGed fast |
1535 |
IteratorSearchResponse response = repeatedPagedSearch(bq, Collections.singletonList(context), NO_CAP_RESULT_COUNT); |
1536 |
if (response != null) { |
1537 |
try { |
1538 |
for (ArtifactInfo artifactInfo : response.getResults()) { |
1539 |
artifacts.add(artifactInfo.artifactId); |
1540 |
} |
1541 |
} finally { |
1542 |
response.close(); |
1543 |
} |
1544 |
} |
1545 |
} |
1546 |
}, skipAction, skipUnIndexed); |
1547 |
Accessor.ACCESSOR.setStringResults(result, artifacts); |
1548 |
return result; |
1549 |
} |
1550 |
|
1551 |
@Override |
1552 |
public RepositoryQueries.Result<NBVersionInfo> find(final List<QueryField> fields, List<RepositoryInfo> repos) { |
1553 |
RepositoryQueries.Result<NBVersionInfo> result = Accessor.ACCESSOR.createVersionResult(new Redo<NBVersionInfo>() { |
1554 |
@Override |
1555 |
public void run(Result<NBVersionInfo> result) { |
1556 |
find( fields, result, Accessor.ACCESSOR.getSkipped(result), false); |
1557 |
} |
1558 |
}); |
1559 |
return find(fields, result, repos, true); |
1526 |
return find(fields, result, repos, true); |
1560 |
} |
1527 |
} |
1561 |
private RepositoryQueries.Result<NBVersionInfo> find(final List<QueryField> fields, final Result<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1528 |
private ResultImplementation<NBVersionInfo> find(final List<QueryField> fields, final ResultImpl<NBVersionInfo> result, List<RepositoryInfo> repos, final boolean skipUnIndexed) { |
1562 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1529 |
final List<NBVersionInfo> infos = new ArrayList<NBVersionInfo>(result.getResults()); |
1563 |
final SkippedAction skipAction = new SkippedAction(result); |
1530 |
final SkippedAction skipAction = new SkippedAction(result); |
1564 |
iterate(repos, new RepoAction() { |
1531 |
iterate(repos, new RepoAction() { |
Lines 1636-1650
Link Here
|
1636 |
infos.add(convertToNBVersionInfo(ai)); |
1603 |
infos.add(convertToNBVersionInfo(ai)); |
1637 |
} |
1604 |
} |
1638 |
} finally { |
1605 |
} finally { |
1639 |
Accessor.ACCESSOR.addReturnedResults(result, resp.getTotalProcessedArtifactInfoCount()); |
1606 |
result.addReturnedResultCount(resp.getTotalProcessedArtifactInfoCount()); |
1640 |
Accessor.ACCESSOR.addTotalResults(result, resp.getTotalHitsCount()); |
1607 |
result.addTotalResultCount(resp.getTotalHitsCount()); |
1641 |
resp.close(); |
1608 |
resp.close(); |
1642 |
} |
1609 |
} |
1643 |
} |
1610 |
} |
1644 |
} |
1611 |
} |
1645 |
}, skipAction, skipUnIndexed); |
1612 |
}, skipAction, skipUnIndexed); |
1646 |
doSortIssue226100(infos); |
1613 |
doSortIssue226100(infos); |
1647 |
Accessor.ACCESSOR.setVersionResults(result, infos); |
1614 |
result.setResults(infos); |
1648 |
return result; |
1615 |
return result; |
1649 |
} |
1616 |
} |
1650 |
|
1617 |
|
Lines 1781-1796
Link Here
|
1781 |
|
1748 |
|
1782 |
private static class SkippedAction implements RepoAction { |
1749 |
private static class SkippedAction implements RepoAction { |
1783 |
|
1750 |
|
1784 |
private final Result<?> result; |
1751 |
private final ResultImpl<?> result; |
1785 |
|
1752 |
|
1786 |
private SkippedAction(Result<?> result) { |
1753 |
private SkippedAction(ResultImpl<?> result) { |
1787 |
this.result = result; |
1754 |
this.result = result; |
1788 |
} |
1755 |
} |
1789 |
|
1756 |
|
1790 |
@Override |
1757 |
@Override |
1791 |
public void run(RepositoryInfo repo, IndexingContext context) throws IOException { |
1758 |
public void run(RepositoryInfo repo, IndexingContext context) throws IOException { |
1792 |
//indexing context is always null here.. |
1759 |
//indexing context is always null here.. |
1793 |
Accessor.ACCESSOR.addSkipped(result, repo); |
1760 |
result.addSkipped(repo); |
1794 |
} |
1761 |
} |
1795 |
|
1762 |
|
1796 |
} |
1763 |
} |