Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import org.junit.jupiter.api.Test;
import org.opentripplanner.ConstantsForTests;
import org.opentripplanner.TestOtpModel;
import org.opentripplanner.TestServerContext;
import org.opentripplanner.TestServerContextBuilder;
import org.opentripplanner._support.time.ZoneIds;
import org.opentripplanner.model.GenericLocation;
import org.opentripplanner.model.fare.ItineraryFares;
Expand All @@ -37,7 +37,11 @@ public void testBasic() {

var feedId = transitModel.getFeedIds().iterator().next();

var serverContext = TestServerContext.createServerContext(graph, transitModel);
var serverContext = TestServerContextBuilder
.of()
.withGraph(graph)
.withTransitModel(transitModel)
.serverContext();

var start = LocalDateTime
.of(2009, Month.AUGUST, 7, 12, 0, 0)
Expand All @@ -57,7 +61,11 @@ public void testPortland() {
TransitModel transitModel = model.transitModel();
var portlandId = transitModel.getFeedIds().iterator().next();

var serverContext = TestServerContext.createServerContext(graph, transitModel);
var serverContext = TestServerContextBuilder
.of()
.withGraph(graph)
.withTransitModel(transitModel)
.serverContext();

// from zone 3 to zone 2
var from = GenericLocation.fromStopId(
Expand Down Expand Up @@ -115,7 +123,11 @@ public void testFareComponent() {
TransitModel transitModel = model.transitModel();
String feedId = transitModel.getFeedIds().iterator().next();

var serverContext = TestServerContext.createServerContext(graph, transitModel);
var serverContext = TestServerContextBuilder
.of()
.withGraph(graph)
.withTransitModel(transitModel)
.serverContext();

Money tenUSD = Money.usDollars(10);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.junit.jupiter.api.Test;
import org.opentripplanner.ConstantsForTests;
import org.opentripplanner.TestOtpModel;
import org.opentripplanner.TestServerContext;
import org.opentripplanner.TestServerContextBuilder;
import org.opentripplanner.framework.application.OTPFeature;
import org.opentripplanner.graph_builder.issue.api.DataImportIssueStore;
import org.opentripplanner.graph_builder.module.DirectTransferGenerator;
Expand Down Expand Up @@ -65,7 +65,13 @@ static void setup() {
transitModel,
List.of(FlexTest.COBB_BUS_30_GTFS, FlexTest.MARTA_BUS_856_GTFS, FlexTest.COBB_FLEX_GTFS)
);
service = TestServerContext.createServerContext(graph, transitModel).routingService();
service =
TestServerContextBuilder
.of()
.withGraph(graph)
.withTransitModel(transitModel)
.serverContext()
.routingService();
}

@Test
Expand Down Expand Up @@ -170,7 +176,7 @@ void flexDirect() {

@AfterAll
static void teardown() {
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
OTPFeature.FlexRouting.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
}

private static void addGtfsToGraph(Graph graph, TransitModel transitModel, List<File> gtfsFiles) {
Expand Down
12 changes: 6 additions & 6 deletions src/ext-test/java/org/opentripplanner/ext/flex/FlexTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;
import java.util.Map;
import org.opentripplanner.TestOtpModel;
import org.opentripplanner.ext.flex.flexpathcalculator.DirectFlexPathCalculator;
import org.opentripplanner.framework.application.OTPFeature;
Expand All @@ -20,6 +19,7 @@
import org.opentripplanner.transit.service.StopModel;
import org.opentripplanner.transit.service.TransitModel;

// TODO: Using inheritance here is wrong, make this a utility class.
public abstract class FlexTest {

private static final ResourceLoader RES = ResourceLoader.of(FlexTest.class);
Expand Down Expand Up @@ -53,11 +53,11 @@ protected static TestOtpModel buildFlexGraph(File file) {
graph,
new ServiceDateInterval(LocalDate.of(2021, 1, 1), LocalDate.of(2022, 1, 1))
);
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, true));
module.buildGraph();
transitModel.index();
graph.index(transitModel.getStopModel());
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
OTPFeature.FlexRouting.testOn(() -> {
module.buildGraph();
transitModel.index();
graph.index(transitModel.getStopModel());
});
assertTrue(transitModel.hasFlexTrips());
return new TestOtpModel(graph, transitModel);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,12 @@
import java.time.Month;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.locationtech.jts.geom.Coordinate;
import org.opentripplanner.TestOtpModel;
import org.opentripplanner.TestServerContext;
import org.opentripplanner.TestServerContextBuilder;
import org.opentripplanner._support.time.ZoneIds;
import org.opentripplanner.ext.fares.DecorateWithFare;
import org.opentripplanner.ext.flex.FlexRouter;
Expand Down Expand Up @@ -62,6 +60,13 @@ public class ScheduledDeviatedTripTest extends FlexTest {

float delta = 0.01f;

@BeforeAll
static void setup() {
var model = FlexTest.buildFlexGraph(COBB_FLEX_GTFS);
graph = model.graph();
transitModel = model.transitModel();
}

@Test
void parseCobbCountyAsScheduledDeviatedTrip() {
var flexTrips = transitModel.getAllFlexTrips();
Expand Down Expand Up @@ -126,34 +131,33 @@ void calculateEgressTemplate() {

@Test
void calculateDirectFare() {
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, true));
var trip = getFlexTrip();
OTPFeature.FlexRouting.testOn(() -> {
var trip = getFlexTrip();

var from = getNearbyStop(trip, "from-stop");
var to = getNearbyStop(trip, "to-stop");
var from = getNearbyStop(trip, "from-stop");
var to = getNearbyStop(trip, "to-stop");

var router = new FlexRouter(
graph,
new DefaultTransitService(transitModel),
FlexConfig.DEFAULT,
OffsetDateTime.parse("2021-11-12T10:15:24-05:00").toInstant(),
false,
1,
1,
List.of(from),
List.of(to)
);
var router = new FlexRouter(
graph,
new DefaultTransitService(transitModel),
FlexConfig.DEFAULT,
OffsetDateTime.parse("2021-11-12T10:15:24-05:00").toInstant(),
false,
1,
1,
List.of(from),
List.of(to)
);

var filter = new DecorateWithFare(graph.getFareService());
var filter = new DecorateWithFare(graph.getFareService());

var itineraries = router.createFlexOnlyItineraries().stream().peek(filter::decorate).toList();
var itineraries = router.createFlexOnlyItineraries().stream().peek(filter::decorate).toList();

var itinerary = itineraries.iterator().next();
assertFalse(itinerary.getFares().getFareTypes().isEmpty());
var itinerary = itineraries.iterator().next();
assertFalse(itinerary.getFares().getFareTypes().isEmpty());

assertEquals(Money.usDollars(2.5f), itinerary.getFares().getFare(FareType.regular));

OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
assertEquals(Money.usDollars(2.5f), itinerary.getFares().getFare(FareType.regular));
});
}

/**
Expand All @@ -166,7 +170,11 @@ void calculateDirectFare() {
void flexTripInTransitMode() {
var feedId = transitModel.getFeedIds().iterator().next();

var serverContext = TestServerContext.createServerContext(graph, transitModel);
var serverContext = TestServerContextBuilder
.of()
.withGraph(graph)
.withTransitModel(transitModel)
.serverContext();

// from zone 3 to zone 2
var from = GenericLocation.fromStopId("Transfer Point for Route 30", feedId, "cujv");
Expand Down Expand Up @@ -227,13 +235,6 @@ void parseContinuousPickup() {
assertNotNull(lincolnGraph);
}

@BeforeAll
static void setup() {
TestOtpModel model = FlexTest.buildFlexGraph(COBB_FLEX_GTFS);
graph = model.graph();
transitModel = model.transitModel();
}

private static List<Itinerary> getItineraries(
GenericLocation from,
GenericLocation to,
Expand All @@ -252,6 +253,8 @@ private static List<Itinerary> getItineraries(
var result = TransitRouter.route(
request,
serverContext,
// TODO: The same instance of DefaultTransitService should be used within the test
new DefaultTransitService(transitModel),
transitStartOfTime,
additionalSearchDays,
new DebugTimingAggregator()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.UriInfo;
import org.opentripplanner.standalone.api.OtpServerRequestContext;
import org.opentripplanner.transit.service.TransitService;
import org.opentripplanner.updater.GraphUpdaterStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -64,8 +64,8 @@ public Response actuator(@Context UriInfo uriInfo) {
@GET
@Path("/health")
@Produces(MediaType.APPLICATION_JSON)
public Response health(@Context OtpServerRequestContext serverContext) {
GraphUpdaterStatus updaterStatus = serverContext.transitService().getUpdaterStatus();
public Response health(@Context TransitService transitService) {
GraphUpdaterStatus updaterStatus = transitService.getUpdaterStatus();
if (updaterStatus != null) {
var listUnprimedUpdaters = updaterStatus.listUnprimedUpdaters();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.opentripplanner.ext.restapi.mapping.FeedScopedIdMapper;
import org.opentripplanner.standalone.api.OtpServerRequestContext;
import org.opentripplanner.transit.model.site.StopLocation;
import org.opentripplanner.transit.service.TransitService;

/**
* OTP simple built-in geocoder used by the debug client.
Expand All @@ -26,6 +27,7 @@
public class GeocoderResource {

private final OtpServerRequestContext serverContext;
private final TransitService transitService;

/**
* @deprecated The support for multiple routers are removed from OTP2. See
Expand All @@ -35,8 +37,12 @@ public class GeocoderResource {
@PathParam("ignoreRouterId")
private String ignoreRouterId;

public GeocoderResource(@Context OtpServerRequestContext requestContext) {
serverContext = requestContext;
public GeocoderResource(
@Context OtpServerRequestContext requestContext,
@Context TransitService transitService
) {
this.serverContext = requestContext;
this.transitService = transitService;
}

/**
Expand Down Expand Up @@ -65,7 +71,10 @@ public Response textSearch(
@GET
@Path("stopClusters")
public Response stopClusters(@QueryParam("query") String query) {
var clusters = LuceneIndex.forServer(serverContext).queryStopClusters(query).toList();
var clusters = LuceneIndex
.forServer(serverContext, transitService)
.queryStopClusters(query)
.toList();

return Response.status(Response.Status.OK).entity(clusters).build();
}
Expand All @@ -91,7 +100,7 @@ private List<SearchResult> query(

private Collection<SearchResult> queryStopLocations(String query, boolean autocomplete) {
return LuceneIndex
.forServer(serverContext)
.forServer(serverContext, transitService)
.queryStopLocations(query, autocomplete)
.map(sl ->
new SearchResult(
Expand All @@ -106,7 +115,7 @@ private Collection<SearchResult> queryStopLocations(String query, boolean autoco

private Collection<? extends SearchResult> queryStations(String query, boolean autocomplete) {
return LuceneIndex
.forServer(serverContext)
.forServer(serverContext, transitService)
.queryStopLocationGroups(query, autocomplete)
.map(sc ->
new SearchResult(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,17 @@ public LuceneIndex(TransitService transitService) {
}
}

public static synchronized LuceneIndex forServer(OtpServerRequestContext serverContext) {
public static synchronized LuceneIndex forServer(
OtpServerRequestContext serverContext,
TransitService transitService
) {
var graph = serverContext.graph();
var existingIndex = graph.getLuceneIndex();
if (existingIndex != null) {
return existingIndex;
}

var newIndex = new LuceneIndex(serverContext.transitService());
var newIndex = new LuceneIndex(transitService);
graph.setLuceneIndex(newIndex);
return newIndex;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.opentripplanner.routing.vehicle_parking.VehicleParking;
import org.opentripplanner.routing.vehicle_parking.VehicleParkingService;
import org.opentripplanner.standalone.api.OtpServerRequestContext;
import org.opentripplanner.transit.service.TransitService;

/**
* Created by demory on 7/26/18.
Expand All @@ -30,6 +31,7 @@ public class ParkAndRideResource {

public ParkAndRideResource(
@Context OtpServerRequestContext serverContext,
@Context TransitService transitService,
/**
* @deprecated The support for multiple routers are removed from OTP2.
* See https://github.com/opentripplanner/OpenTripPlanner/issues/2760
Expand All @@ -42,7 +44,7 @@ public ParkAndRideResource(
// - serverContext.graphFinder(). This needs at least a comment!
// - This can be replaced with a search done with the StopModel
// - if we have a radius search there.
this.graphFinder = new DirectGraphFinder(serverContext.transitService()::findRegularStop);
this.graphFinder = new DirectGraphFinder(transitService::findRegularStop);
}

/** Envelopes are in latitude, longitude format */
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.opentripplanner.ext.reportapi.configure;

import dagger.Subcomponent;
import org.opentripplanner.ext.reportapi.model.ReportService;
import org.opentripplanner.framework.di.OtpServerRequest;
import org.opentripplanner.routing.api.request.RouteRequest;

@OtpServerRequest
@Subcomponent
public interface ReportFactory {
@OtpServerRequest
ReportService reportService();

@OtpServerRequest
RouteRequest defaultRequest();

@Subcomponent.Builder
interface Builder {
ReportFactory build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
import java.util.function.Function;
import javax.annotation.Nonnull;
import org.opentripplanner.standalone.api.OtpServerRequestContext;
import org.opentripplanner.transit.service.TransitService;

public class GraphReportBuilder {

public static GraphStats build(OtpServerRequestContext context) {
var transitService = context.transitService();
public static GraphStats build(OtpServerRequestContext context, TransitService transitService) {
var graph = context.graph();
var constrainedTransfers = transitService.getTransferService().listAll();

Expand Down
Loading