Java GTFS-realtime Language Bindings¶
Provides Java classes generated from the GTFS-realtime Protocol Buffer specification. These classes will allow you to parse a binary Protocol Buffer GTFS-realtime data feed into Java objects.
Add the Dependency¶
To use the gtfs-realtime-bindings
classes in your own project, you need to add
an appropriate dependency. We publish our module to the Maven Central Repository
so that it can be easily referenced by Java build tools like Maven, Ivy, and Gradle.
For Maven, add the following to your pom.xml
dependencies section:
<dependency>
<groupId>org.mobilitydata</groupId>
<artifactId>gtfs-realtime-bindings</artifactId>
<version>0.0.8</version>
</dependency>
For Gradle, add the following to your build.gradle
dependecies section:
implementation group: 'org.mobilitydata', name: 'gtfs-realtime-bindings', version: '0.0.8'
Make sure the Maven central repository is referenced by your project.
Example Code¶
The following code snippet demonstrates downloading a GTFS-realtime data feed from a particular URL, parsing it as a FeedMessage (the root type of the GTFS-realtime schema), and iterating over the results.
import java.net.URL;
import com.google.transit.realtime.GtfsRealtime.FeedEntity;
import com.google.transit.realtime.GtfsRealtime.FeedMessage;
public class GtfsRealtimeExample {
public static void main(String[] args) throws Exception {
URL url = new URL("URL OF YOUR GTFS-REALTIME SOURCE GOES HERE");
FeedMessage feed = FeedMessage.parseFrom(url.openStream());
for (FeedEntity entity : feed.getEntityList()) {
if (entity.hasTripUpdate()) {
System.out.println(entity.getTripUpdate());
}
}
}
}
For more details on the naming conventions for the Java classes generated from the gtfs-realtime.proto, check out the Java Generated Code section of the Protocol Buffers developer site.
Project History¶
0.0.4
and lower¶
This project was originally created by Google. You can download versions 0.0.4
and older under the Group ID com.google.transit
here on Maven Central.
0.0.5
¶
MobilityData started to maintain the project in early 2019 and initially published release artifacts via JCenter. You can download version 0.0.5
under the Group ID io.mobilitydata.transit
here on Maven Central.
0.0.6
and 0.0.7
¶
JCenter shut down in 2021. Prior to the shutdown, a synchronization problem prevented versions 0.0.6
and 0.0.7
from being synchronized from JCenter to Maven Central, so direct artifact download is not currently available for these versions. However, you can compile them yourself from the tags using the command mvn package
.
0.0.8
and higher¶
In 2022, MobilityData switched to publishing artifacts directly to Maven Central under the Group ID org.mobilitydata
, which is where versions 0.0.8 and higher are published.