|
5 | 5 | import com.mongodb.client.*; |
6 | 6 | import com.mongodb.client.model.Filters; |
7 | 7 | import com.mongodb.client.model.IndexOptions; |
8 | | -import com.mongodb.client.model.Indexes; |
9 | 8 | import eu.clarin.cmdi.curation.entities.CMDInstance; |
10 | 9 | import eu.clarin.cmdi.curation.main.Configuration; |
11 | 10 | import eu.clarin.cmdi.curation.report.CMDInstanceReport; |
12 | 11 | import eu.clarin.cmdi.curation.report.CMDInstanceReport.URLReport; |
13 | 12 | import eu.clarin.cmdi.curation.report.Score; |
14 | 13 | import eu.clarin.cmdi.curation.report.Severity; |
15 | 14 | import eu.clarin.cmdi.curation.utils.TimeUtils; |
| 15 | +import eu.clarin.cmdi.linkchecker.httpLinkChecker.HTTPLinkChecker; |
| 16 | +import eu.clarin.cmdi.linkchecker.urlElements.URLElement; |
| 17 | +import eu.clarin.cmdi.linkchecker.urlElements.URLElementToBeChecked; |
16 | 18 | import eu.clarin.cmdi.vlo.importer.CMDIData; |
17 | 19 | import eu.clarin.cmdi.vlo.importer.Resource; |
18 | 20 | import eu.clarin.cmdi.vlo.importer.processor.ValueSet; |
19 | | -import eu.clarin.curation.linkchecker.httpLinkChecker.HTTPLinkChecker; |
20 | | -import eu.clarin.curation.linkchecker.urlElements.URLElement; |
21 | | -import eu.clarin.curation.linkchecker.urlElements.URLElementToBeChecked; |
22 | 21 | import org.bson.Document; |
23 | 22 | import org.bson.conversions.Bson; |
24 | 23 | import org.slf4j.Logger; |
|
31 | 30 | import static com.mongodb.client.model.Filters.eq; |
32 | 31 |
|
33 | 32 | /** |
34 | | -
|
| 33 | + * |
35 | 34 | */ |
36 | 35 |
|
37 | 36 | public class URLValidator extends CMDSubprocessor { |
@@ -118,7 +117,7 @@ public void process(CMDInstance entity, CMDInstanceReport report, String parentN |
118 | 117 |
|
119 | 118 | _logger.info("Checking database for url: " + url); |
120 | 119 |
|
121 | | - Bson filter = Filters.and(eq("collection", parentName), eq("record", report.getName()), eq("url", url)); |
| 120 | + Bson filter = Filters.and(eq("collection", parentName), eq("url", url)); |
122 | 121 | MongoCursor<Document> cursor = linksChecked.find(filter).iterator(); |
123 | 122 |
|
124 | 123 | //because urls are unique in the database if cursor has next, it found the only one. If not, the url wasn't found. |
@@ -232,19 +231,21 @@ private void removeOldURLs(Collection<String> links, String recordName, String c |
232 | 231 | //some old runs may have produced links that are not in the records anymore. |
233 | 232 | //so to clean up the database, we move all of such links to history. |
234 | 233 |
|
235 | | - Bson filter = Filters.and(Filters.eq("collection", collectionName), Filters.eq("record", recordName)); |
| 234 | + Bson filter = Filters.and(Filters.eq("collection", collectionName), Filters.eq("record", recordName), Filters.not(Filters.in("url", links))); |
236 | 235 | MongoCursor<Document> cursor = linksChecked.find(filter).iterator(); |
237 | 236 |
|
238 | 237 | while (cursor.hasNext()) { |
239 | 238 |
|
240 | 239 | URLElement urlElement = new URLElement(cursor.next()); |
241 | | - String url = urlElement.getUrl(); |
242 | 240 |
|
243 | | - if (!links.contains(url)) { |
244 | | - moveToHistory(urlElement); |
245 | | - } |
| 241 | + moveToHistory(urlElement); |
| 242 | + |
246 | 243 | } |
247 | 244 |
|
| 245 | + //also remove them from linkstobechecked so that they are not checked unnecessarily |
| 246 | + linksToBeChecked.deleteMany(filter); |
| 247 | + |
| 248 | + |
248 | 249 | } |
249 | 250 |
|
250 | 251 | private void moveToHistory(URLElement urlElement) { |
|
0 commit comments