A tool that validates General Transit Feed Specification (GTFS)-realtime feeds
Please note that this project is still under active development and is in an early alpha state.
- Install Java Development Kit (JDK) 1.8 or higher
- Download the latest alpha build:
- From the command line run
java -Djsse.enableSNIExtension=false -jar gtfs-rt-validator-1.0.0-SNAPSHOT.jar
- When prompted, in your browser go to
- Enter your General Transit Feed Specification (GTFS)-realtime and GTFS feed URLs and click "Start". Example feeds:
- HART (Tampa, FL)
- MBTA (Boston, MA)
- ...more at Transitfeeds.com and Transitland Feed Registry
Please note that if you're using
https URLS, you'll need to use the
-Djsse.enableSNIExtension=false command-line parameter or install the Java Cryptography Extension (JCE) - see the Prerequisites section for details.
Have a suggestion for a new rule? Open an issue with the "new rule" label.
Building the project
The GTFS-Realtime Validator is implemented as a web application, with the backend code written in Java. An instance of the Jetty embedded server is used to run the application.
Following are the requirements to get the project up and running:
If you're using
https URLs for GTFS or GTFS-rt feeds, either:
- Use the
-Djsse.enableSNIExtension=falseparameter when running the tool
- Install the Java Cryptography Extension (JCE) - You will need to replace the
local_policy.jarfiles in your JVM
/securitydirectory, such as
C:\Program Files\Java\jdk1.8.0_73\jre\lib\security, with the JAR files in the JCE Extension download.
1. Build the project
From the command-line, run:
This will generate an executable file in the
target/ directory with all the dependencies needed to run the application.
Note that this might take a while - this project also builds and packages the gtfs-validator so a static GTFS validation report can be seen within the GTFS-rt validator tool.
2. Run the application
From the command-line, run:
java -Djsse.enableSNIExtension=false -jar target/gtfs-rt-validator-1.0.0-SNAPSHOT.jar
You should see some output, and a message saying
Go to http://localhost:8080 in your browser.
3. View the application
Once the application has been started, you can enter URLs for the feeds you'd like to have validated at:
If you'd like to change the logging level, for example to see all debug statements, in
src/main/resources/simplelogger.properties change the following line to say
DEBUG level will show the output for all rule validation in the log.
WARN will show a smaller number of informational messages.
8080 is used by default. If you'd like to change the port number (e.g., port
80), you can use the command line parameter
java -jar target/gtfs-rt-validator-1.0.0-SNAPSHOT.jar -port 80
We use Hibernate to manage data persistence to a database. To allow you to get the tool up and running quickly, we use the embedded HSQLDB by default. This is not recommended for a production deployment.
Hibernate configuration can be changed in
src/main/resources/hibernate.cfg.xml to store data in any relational database. You might want to check out the following resources for getting started:
A list of all the dialect properties for specific database versions is shown here.
This project was funded by the National Institute for Transportation Communities (NITC) via the project "Overcoming Barriers for the Wide-scale Adoption of Standardized Real-time Transit Information". It also includes work funded under the 2015 Google Summer of Code.