use of org.opentripplanner.routing.impl.AlertPatchServiceImpl in project OpenTripPlanner by opentripplanner.
the class GtfsTest method setUp.
protected void setUp() {
File gtfs = new File("src/test/resources/" + getFeedName());
File gtfsRealTime = new File("src/test/resources/" + getFeedName() + ".pb");
GtfsBundle gtfsBundle = new GtfsBundle(gtfs);
feedId = new GtfsFeedId.Builder().id("FEED").build();
gtfsBundle.setFeedId(feedId);
List<GtfsBundle> gtfsBundleList = Collections.singletonList(gtfsBundle);
GtfsModule gtfsGraphBuilderImpl = new GtfsModule(gtfsBundleList);
alertsUpdateHandler = new AlertsUpdateHandler();
graph = new Graph();
router = new Router("TEST", graph);
gtfsBundle.setTransfersTxtDefinesStationPaths(true);
gtfsGraphBuilderImpl.buildGraph(graph, null);
// Set the agency ID to be used for tests to the first one in the feed.
agencyId = graph.getAgencies(feedId.getId()).iterator().next().getId();
System.out.printf("Set the agency ID for this test to %s\n", agencyId);
graph.index(new DefaultStreetVertexIndexFactory());
timetableSnapshotSource = new TimetableSnapshotSource(graph);
timetableSnapshotSource.purgeExpiredData = (false);
graph.timetableSnapshotSource = (timetableSnapshotSource);
alertPatchServiceImpl = new AlertPatchServiceImpl(graph);
alertsUpdateHandler.setAlertPatchService(alertPatchServiceImpl);
alertsUpdateHandler.setFeedId(feedId.getId());
try {
final boolean fullDataset = false;
InputStream inputStream = new FileInputStream(gtfsRealTime);
FeedMessage feedMessage = FeedMessage.PARSER.parseFrom(inputStream);
List<FeedEntity> feedEntityList = feedMessage.getEntityList();
List<TripUpdate> updates = new ArrayList<TripUpdate>(feedEntityList.size());
for (FeedEntity feedEntity : feedEntityList) {
updates.add(feedEntity.getTripUpdate());
}
timetableSnapshotSource.applyTripUpdates(graph, fullDataset, updates, feedId.getId());
alertsUpdateHandler.update(feedMessage);
} catch (Exception exception) {
}
}
use of org.opentripplanner.routing.impl.AlertPatchServiceImpl in project OpenTripPlanner by opentripplanner.
the class GtfsRealtimeAlertsUpdater method configurePolling.
@Override
protected void configurePolling(Graph graph, JsonNode config) throws Exception {
// TODO: add options to choose different patch services
AlertPatchService alertPatchService = new AlertPatchServiceImpl(graph);
this.alertPatchService = alertPatchService;
String url = config.path("url").asText();
if (url == null) {
throw new IllegalArgumentException("Missing mandatory 'url' parameter");
}
this.url = url;
this.earlyStart = config.path("earlyStartSec").asInt(0);
this.feedId = config.path("feedId").asText();
if (config.path("fuzzyTripMatching").asBoolean(false)) {
this.fuzzyTripMatcher = new GtfsRealtimeFuzzyTripMatcher(graph.index);
}
LOG.info("Creating real-time alert updater running every {} seconds : {}", frequencySec, url);
}
Aggregations