Skip to content

Commit 6fe85c8

Browse files
authored
Merge pull request #747 from rm3l/add_fake_crawlers_for_testing
2 parents 3db6c44 + af4f6a2 commit 6fe85c8

File tree

5 files changed

+47
-2
lines changed

5 files changed

+47
-2
lines changed

backend/api/src/main/kotlin/org/rm3l/devfeed/actuator/DevFeedHealthChecker.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import org.springframework.stereotype.Service
3333
class DevFeedHealthChecker(private val dao: DevFeedDao) : HealthIndicator {
3434

3535
override fun health(): Health =
36-
if (dao.getRecentArticles(limit = 1).isNotEmpty()) {
36+
if (dao.getArticles(limit = 1).isNotEmpty()) {
3737
Health.up().build()
3838
} else {
3939
Health.down().build()

backend/api/src/main/kotlin/org/rm3l/devfeed/config/DevFeedCrawlersConfiguration.kt

+6
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package org.rm3l.devfeed.config
2626

2727
import java.util.concurrent.ExecutorService
28+
import org.rm3l.devfeed.crawlers.DummyCrawler
2829
import org.rm3l.devfeed.crawlers.discoverdev_io.DiscoverDevIoCrawler
2930
import org.rm3l.devfeed.crawlers.engineeringblogs_xyz.EngineeringBlogsCrawler
3031
import org.rm3l.devfeed.crawlers.rm3l_org.Rm3lOrgCrawler
@@ -41,6 +42,11 @@ class DevFeedCrawlersConfiguration {
4142
@Qualifier("devFeedExecutorService")
4243
private lateinit var devFeedExecutorService: ExecutorService
4344

45+
@Bean
46+
@ConditionalOnProperty(
47+
name = ["crawlers.dummy.enabled"], havingValue = "true", matchIfMissing = false)
48+
fun dummyCrawler() = DummyCrawler()
49+
4450
@Bean
4551
@ConditionalOnProperty(
4652
name = ["crawlers.discoverdev_io.enabled"], havingValue = "true", matchIfMissing = true)

backend/api/src/main/kotlin/org/rm3l/devfeed/crawlers/DevFeedFetcherService.kt

+37
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import javax.annotation.PostConstruct
3333
import javax.annotation.PreDestroy
3434
import org.apache.commons.lang3.concurrent.BasicThreadFactory
3535
import org.rm3l.devfeed.common.articleparser.ArticleExtractor
36+
import org.rm3l.devfeed.common.contract.Article
3637
import org.rm3l.devfeed.common.screenshot.ArticleScreenshotExtractor
3738
import org.rm3l.devfeed.crawlers.common.DevFeedCrawler
3839
import org.rm3l.devfeed.persistence.ArticleUpdater
@@ -181,3 +182,39 @@ class DevFeedFetcherService(
181182
}
182183
}
183184
}
185+
186+
class DummyCrawler : DevFeedCrawler() {
187+
188+
private companion object {
189+
private const val SOURCE = "https://dev-feed.example.com"
190+
}
191+
192+
override fun call(): Collection<Article> {
193+
val now = System.currentTimeMillis()
194+
return listOf(
195+
Article(
196+
timestamp = now,
197+
title = "Article Title 1",
198+
description = "Lorem Ipsum Dolor Sit Amet",
199+
source = SOURCE,
200+
url = "$SOURCE/article1",
201+
tags = listOf("tag1", "tag2"),
202+
),
203+
Article(
204+
timestamp = now,
205+
title = "Article Title 2",
206+
description = "consectetur adipiscing elit",
207+
source = SOURCE,
208+
url = "$SOURCE/article2",
209+
tags = listOf("tag1", "tag3", "tag4"),
210+
),
211+
Article(
212+
timestamp = now,
213+
title = "Article Title 3",
214+
description = "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
215+
source = SOURCE,
216+
url = "$SOURCE/article3",
217+
tags = listOf("tag10", "tag3", "tag1"),
218+
))
219+
}
220+
}

backend/api/src/main/resources/service.properties

+2
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ crawlers.task.cron-expression=0 0 * * * *
8787
crawlers.discoverdev_io.enabled=true
8888
crawlers.engineeringblogx_xyz.enabled=true
8989
crawlers.rm3l_org.enabled=true
90+
# Fake article crawler, useful for testing.
91+
crawlers.dummy.enabled=false
9092

9193
logging.level.org.rm3l.devfeed=INFO
9294

backend/persistence/src/main/kotlin/org/rm3l/devfeed/persistence/impl/rdbms/DevFeedRdbmsDao.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ class DevFeedRdbmsDao(
329329
it[timestamp] = article.timestamp
330330
it[title] = article.title
331331
it[description] =
332-
if (article.description?.length ?: 0 > 10_000)
332+
if ((article.description?.length ?: 0) > 10_000)
333333
article.description?.substring(0 until 10_000)?.plus("...")
334334
else article.description
335335
it[link] = article.url

0 commit comments

Comments
 (0)