Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
Developer Documentation
Overview on Developing JabRef
Contributing
JabRef and Software Engineering Training
Decision Records
Use Markdown Any Decision Records
Use Crowdin for translations
Use slf4j together with log4j2 for logging
Use Gradle as build tool
Use MariaDB Connector
Fully Support UTF-8 Only For LaTeX Files
Only translated strings in language file
Provide a human-readable changelog
Use public final instead of getters to offer access to immutable variables
Use Plain JUnit5 for advanced test assertions
Use H2 as Internal SQL Database
Test external links in documentation
Handle different bibentry formats of fetchers by adding a layer
Add Native Support for BibLatex-Software
Separate URL creation to enable proper logging
Query syntax design
Mutable preferences objects
Allow org.jabref.model to access org.jabref.logic
Use regular expression to split multiple-sentence titles
Implement special fields as separate fields
Use Jackson to parse study.yml
Keep study as a DTO
Remove stop words during query transformation
Localized Preferences
Use # as indicator for BibTeX string constants
Reviewdog findings are code reviews
Use Java Native Access to Determine Default Directory
Synchronization with remote databases
ADR Template
Getting into the code
JabRef’s development strategy
Set up a local workspace
Pre Condition 1: GitHub Account
Pre Condition 2: Required Software
Pre Condition 3: Code on the local machine
Step 1: Get the code into IntelliJ
Step 2: Setup the build system: JDK and Gradle
Step 3: Using JabRef’s code style
Advanced: Build and run using IntelliJ IDEA
Advanced: Eclipse as IDE
Advanced: VS Code as IDE
Trouble shooting
High-level documentation
Code Howtos
The LibreOffice Panel
Overview
Order of appearance of citation groups
Problems
Code reorganization
Code Quality
Custom SVG icons
Error Handling in JabRef
Event Bus and Event System
Fetchers
HTTP Server
IntelliJ Hints
JPackage: Creating a binary and debug it
JavaFX
Localization
Logging
Remote Storage
Remote JabDrive storage
Remote SQL Storage
Telemetry
Testing JabRef
UI Design Recommendations
Useful development tooling
Gitter Chat
Discussion Forum
Code Repository
Code Howtos
The LibreOffice Panel
The LibreOffice Panel
Table of contents
Overview
Order of appearance of citation groups
Problems
Code reorganization