diff --git a/jablib/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java index eaf45193c39..e9e95266a52 100644 --- a/jablib/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java @@ -123,17 +123,17 @@ void findByEntry() throws FetcherException { @Test void performSearchByIdFindsPaperWithoutTitle() throws FetcherException { BibEntry entry = new BibEntry(StandardEntryType.Article); - entry.setField(StandardField.AUTHOR, "Dominik Wujastyk"); - entry.setField(StandardField.DOI, "10.1023/a:1003473214310"); - entry.setField(StandardField.ISSN, "0019-7246"); - entry.setField(StandardField.PAGES, "172-176"); - entry.setField(StandardField.VOLUME, "42"); - entry.setField(StandardField.YEAR, "1999"); - entry.setField(StandardField.JOURNAL, "Indo-Iranian Journal"); - entry.setField(StandardField.NUMBER, "2"); - entry.setField(StandardField.PUBLISHER, "Walter de Gruyter GmbH"); - - assertEquals(Optional.of(entry), fetcher.performSearchById("10.1023/a:1003473214310")); + entry.setField(StandardField.AUTHOR, "Leo Breiman"); + entry.setField(StandardField.DOI, "10.1023/a:1010933404324"); + entry.setField(StandardField.ISSN, "0885-6125"); + entry.setField(StandardField.PAGES, "5-32"); + entry.setField(StandardField.VOLUME, "45"); + entry.setField(StandardField.YEAR, "2001"); + entry.setField(StandardField.JOURNAL, "Machine Learning"); + entry.setField(StandardField.NUMBER, "1"); + entry.setField(StandardField.PUBLISHER, "Springer Science and Business Media LLC"); + + assertEquals(Optional.of(entry), fetcher.performSearchById("10.1023/a:1010933404324")); } @Test diff --git a/jablib/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java index ee4d0d7979a..395f4c1f211 100644 --- a/jablib/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java @@ -52,6 +52,7 @@ void setUp() throws InterruptedException { .withField(new UnknownField("revised"), "2019-11-20") .withField(StandardField.TITLE, "Denial of long-term issues with agriculture on tropical peatlands will have devastating consequences.") .withField(StandardField.VOLUME, "23") + .withField(StandardField.URL, "https://pubmed.ncbi.nlm.nih.gov/27670948/") .withField(StandardField.YEAR, "2017"); entryEndharti = new BibEntry(StandardEntryType.Article) @@ -75,6 +76,7 @@ void setUp() throws InterruptedException { .withField(StandardField.PUBSTATE, "epublish") .withField(new UnknownField("revised"), "2022-04-08") .withField(StandardField.VOLUME, "16") + .withField(StandardField.URL, "https://pubmed.ncbi.nlm.nih.gov/27670445/") .withField(StandardField.YEAR, "2016"); bibEntryIchikawa = new BibEntry(StandardEntryType.Article) @@ -100,6 +102,7 @@ void setUp() throws InterruptedException { .withField(new UnknownField("pubmodel"), "Print-Electronic") .withField(StandardField.TITLE, "Seroprevalence of antibody to TgGRA7 antigen of Toxoplasma gondii in livestock animals from Western Java, Indonesia.") .withField(StandardField.VOLUME, "64") + .withField(StandardField.URL, "https://pubmed.ncbi.nlm.nih.gov/26197440/") .withField(StandardField.YEAR, "2015"); bibEntrySari = new BibEntry(StandardEntryType.Article) @@ -123,6 +126,7 @@ void setUp() throws InterruptedException { .withField(new UnknownField("pubmodel"), "Print") .withField(StandardField.TITLE, "TOXOPLASMA AND VIRAL ANTIBODIES AMONG HIV PATIENTS AND INMATES IN CENTRAL JAVA, INDONESIA.") .withField(StandardField.VOLUME, "46") + .withField(StandardField.URL, "https://pubmed.ncbi.nlm.nih.gov/26867355/") .withField(StandardField.YEAR, "2015"); } diff --git a/jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java index 73aab93767f..bade7b9a298 100644 --- a/jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java @@ -43,6 +43,22 @@ void setUp() { @Test void searchByQueryFindsEntry() throws FetcherException { + BibEntry articleSupportingIdentification = new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "Iftikhar, Umar and Börstler, Jürgen and Bin Ali, Nauman and Kopp, Oliver") + .withField(StandardField.DATE, "2025-04-23") + .withField(StandardField.DOI, "10.1007/s11219-025-09720-9") + .withField(StandardField.FILE, ":http\\://link.springer.com/openurl/pdf?id=doi\\:10.1007/s11219-025-09720-9:PDF") + .withField(StandardField.ISSN, "0963-9314") + .withField(StandardField.JOURNAL, "Software Quality Journal") + .withField(StandardField.MONTH, "#apr#") + .withField(StandardField.NUMBER, "2") + .withField(StandardField.PAGES, "1--34") + .withField(StandardField.PUBLISHER, "Springer") + .withField(StandardField.TITLE, "Supporting the identification of prevalent quality issues in code changes by analyzing reviewers’ feedback") + .withField(StandardField.VOLUME, "33") + .withField(StandardField.YEAR, "2025") + .withField(StandardField.ABSTRACT, "Context: Code reviewers provide valuable feedback during the code review. Identifying common issues described in the reviewers’ feedback can provide input for devising context-specific software development improvements. However, the use of reviewer feedback for this purpose is currently less explored. Objective: In this study, we assess how automation can derive more interpretable and informative themes in reviewers’ feedback and whether these themes help to identify recurring quality-related issues in code changes. Method: We conducted a participatory case study using the JabRef system to analyze reviewers’ feedback on merged and abandoned code changes. We used two promising topic modeling methods (GSDMM and BERTopic) to identify themes in 5,560 code review comments. The resulting themes were analyzed and named by a domain expert from JabRef. Results: The domain expert considered the identified themes from the two topic models to represent quality-related issues. Different quality issues are pointed out in code reviews for merged and abandoned code changes. While BERTopic provides higher objective coherence, the domain expert considered themes from short-text topic modeling more informative and easy to interpret than BERTopic-based topic modeling. Conclusions: The identified prevalent code quality issues aim to address the maintainability-focused issues. The analysis of code review comments can enhance the current practices for JabRef by improving the guidelines for new developers and focusing discussions in the developer forums. The topic model choice impacts the interpretability of the generated themes, and a higher coherence (based on objective measures) of generated topics did not lead to improved interpretability by a domain expert."); + BibEntry articleTagThatIssue = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Santos, Fabio and Vargovich, Joseph and Trinkenreich, Bianca and Santos, Italo and Penney, Jacob and Britto, Ricardo and Pimentel, João Felipe and Wiese, Igor and Steinmacher, Igor and Sarma, Anita and Gerosa, Marco A.") .withField(StandardField.DATE, "2023-08-31") @@ -121,7 +137,7 @@ void searchByQueryFindsEntry() throws FetcherException { .withField(StandardField.ABSTRACT, "Several Open-Source Software (OSS) projects depend on the continuity of their development communities to remain sustainable. Understanding how developers become inactive or why they take breaks can help communities prevent abandonment and incentivize developers to come back. In this paper, we propose a novel method to identify developers’ inactive periods by analyzing the individual rhythm of contributions to the projects. Using this method, we quantitatively analyze the inactivity of core developers in 18 OSS organizations hosted on GitHub. We also survey core developers to receive their feedback about the identified breaks and transitions. Our results show that our method was effective for identifying developers’ breaks. About 94% of the surveyed core developers agreed with our state model of inactivity; 71% and 79% of them acknowledged their breaks and state transition, respectively. We also show that all core developers take breaks (at least once) and about a half of them (~45%) have completely disengaged from a project for at least one year. We also analyzed the probability of transitions to/from inactivity and found that developers who pause their activity have a ~35 to ~55% chance to return to an active state; yet, if the break lasts for a year or longer, then the probability of resuming activities drops to ~21–26%, with a ~54% chance of complete disengagement. These results may support the creation of policies and mechanisms to make OSS community managers aware of breaks and potential project abandonment."); List fetchedEntries = fetcher.performSearch("JabRef Social Barriers Steinmacher"); - assertEquals(List.of(articleTagThatIssue, fourthArticle, thirdArticle, firstArticle, secondArticle), fetchedEntries); + assertEquals(List.of(articleSupportingIdentification, articleTagThatIssue, fourthArticle, thirdArticle, firstArticle, secondArticle), fetchedEntries); } @Test