Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit aa348c4

Browse files
committedDec 15, 2018
refactor: load list of site parsers from database.
Addressed to #975
1 parent 5f36177 commit aa348c4

File tree

6 files changed

+34
-3
lines changed

6 files changed

+34
-3
lines changed
 

‎src/main/java/ru/mystamps/web/feature/series/importing/event/DownloadingSucceededEventListener.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,10 @@ public class DownloadingSucceededEventListener
5959

6060
@PostConstruct
6161
public void init() {
62-
// TODO: get all parser names from database
63-
log.info("Registered site parsers: {}", siteParsers);
64-
6562
// TODO: remove migration logic after finishing migration
6663
siteParsers.forEach(this::migrateParser);
64+
65+
log.info("Registered site parsers: {}", siteParserService.findParserNames());
6766
}
6867

6968
@Override

‎src/main/java/ru/mystamps/web/feature/series/importing/extractor/JdbcSiteParserDao.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.util.Collections;
2121
import java.util.HashMap;
22+
import java.util.List;
2223
import java.util.Map;
2324

2425
import org.apache.commons.lang3.Validate;
@@ -50,6 +51,9 @@ public class JdbcSiteParserDao implements SiteParserDao {
5051
@Value("${site_parser.find_like_matched_url}")
5152
private String findParserIdByMatchedUrl;
5253

54+
@Value("${site_parser.find_names}")
55+
private String findParserNamesSql;
56+
5357
@SuppressWarnings("PMD.LongVariable")
5458
@Value("${site_parser_param.find_all_with_parser_name}")
5559
private String findParametersWithParserNameSql;
@@ -102,6 +106,15 @@ public Integer findParserIdForUrl(String url) {
102106
}
103107
}
104108

109+
@Override
110+
public List<String> findParserNames() {
111+
return jdbcTemplate.queryForList(
112+
findParserNamesSql,
113+
Collections.emptyMap(),
114+
String.class
115+
);
116+
}
117+
105118
@Override
106119
public SiteParserConfiguration findConfigurationForParser(Integer parserId) {
107120
Map<String, String> params = jdbcTemplate.query(

‎src/main/java/ru/mystamps/web/feature/series/importing/extractor/SiteParserDao.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,12 @@
1717
*/
1818
package ru.mystamps.web.feature.series.importing.extractor;
1919

20+
import java.util.List;
21+
2022
public interface SiteParserDao {
2123
Integer addParser(String name);
2224
void addParserParameter(AddParserParameterDbDto param);
2325
Integer findParserIdForUrl(String url);
26+
List<String> findParserNames();
2427
SiteParserConfiguration findConfigurationForParser(Integer parserId);
2528
}

‎src/main/java/ru/mystamps/web/feature/series/importing/extractor/SiteParserService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
*/
1818
package ru.mystamps.web.feature.series.importing.extractor;
1919

20+
import java.util.List;
21+
2022
public interface SiteParserService {
2123
void add(SiteParserConfiguration cfg);
2224
SiteParser findForUrl(String url);
25+
List<String> findParserNames();
2326
}

‎src/main/java/ru/mystamps/web/feature/series/importing/extractor/SiteParserServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*/
1818
package ru.mystamps.web.feature.series.importing.extractor;
1919

20+
import java.util.List;
2021
import java.util.Map;
2122

2223
import org.apache.commons.lang3.Validate;
@@ -80,4 +81,11 @@ public SiteParser findForUrl(String url) {
8081
return new JsoupSiteParser(cfg);
8182
}
8283

84+
// @todo #975 SiteParserServiceImpl.findParserNames(): add unit tests
85+
@Override
86+
@Transactional(readOnly = true)
87+
public List<String> findParserNames() {
88+
return siteParserDao.findParserNames();
89+
}
90+
8391
}

‎src/main/resources/sql/site_parser_dao_queries.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ SELECT parser_id AS id \
2323
AND value = :url \
2424
OR :url LIKE CONCAT(value, '%')
2525

26+
site_parser.find_names = \
27+
SELECT name \
28+
FROM site_parsers \
29+
ORDER BY id
30+
2631
site_parser_param.find_all_with_parser_name = \
2732
SELECT name \
2833
, value \

0 commit comments

Comments
 (0)
Please sign in to comment.