Skip to content

Commit 40aea58

Browse files
committed
Bridge Dagger and Jersy, inject TransitService
1 parent 3eb9909 commit 40aea58

File tree

45 files changed

+477
-254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+477
-254
lines changed

src/ext-test/java/org/opentripplanner/ext/fares/impl/FaresIntegrationTest.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.junit.jupiter.api.Test;
1212
import org.opentripplanner.ConstantsForTests;
1313
import org.opentripplanner.TestOtpModel;
14-
import org.opentripplanner.TestServerContext;
14+
import org.opentripplanner.TestServerContextBuilder;
1515
import org.opentripplanner._support.time.ZoneIds;
1616
import org.opentripplanner.model.GenericLocation;
1717
import org.opentripplanner.model.fare.ItineraryFares;
@@ -37,7 +37,11 @@ public void testBasic() {
3737

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

40-
var serverContext = TestServerContext.createServerContext(graph, transitModel);
40+
var serverContext = TestServerContextBuilder
41+
.of()
42+
.withGraph(graph)
43+
.withTransitModel(transitModel)
44+
.serverContext();
4145

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

60-
var serverContext = TestServerContext.createServerContext(graph, transitModel);
64+
var serverContext = TestServerContextBuilder
65+
.of()
66+
.withGraph(graph)
67+
.withTransitModel(transitModel)
68+
.serverContext();
6169

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

118-
var serverContext = TestServerContext.createServerContext(graph, transitModel);
126+
var serverContext = TestServerContextBuilder
127+
.of()
128+
.withGraph(graph)
129+
.withTransitModel(transitModel)
130+
.serverContext();
119131

120132
Money tenUSD = Money.usDollars(10);
121133

src/ext-test/java/org/opentripplanner/ext/flex/FlexIntegrationTest.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.junit.jupiter.api.Test;
2020
import org.opentripplanner.ConstantsForTests;
2121
import org.opentripplanner.TestOtpModel;
22-
import org.opentripplanner.TestServerContext;
22+
import org.opentripplanner.TestServerContextBuilder;
2323
import org.opentripplanner.framework.application.OTPFeature;
2424
import org.opentripplanner.graph_builder.issue.api.DataImportIssueStore;
2525
import org.opentripplanner.graph_builder.module.DirectTransferGenerator;
@@ -34,7 +34,6 @@
3434
import org.opentripplanner.routing.api.request.RouteRequest;
3535
import org.opentripplanner.routing.api.request.request.filter.AllowAllTransitFilter;
3636
import org.opentripplanner.routing.graph.Graph;
37-
import org.opentripplanner.test.support.ResourceLoader;
3837
import org.opentripplanner.transit.service.TransitModel;
3938

4039
/**
@@ -66,7 +65,13 @@ static void setup() {
6665
transitModel,
6766
List.of(FlexTest.COBB_BUS_30_GTFS, FlexTest.MARTA_BUS_856_GTFS, FlexTest.COBB_FLEX_GTFS)
6867
);
69-
service = TestServerContext.createServerContext(graph, transitModel).routingService();
68+
service =
69+
TestServerContextBuilder
70+
.of()
71+
.withGraph(graph)
72+
.withTransitModel(transitModel)
73+
.serverContext()
74+
.routingService();
7075
}
7176

7277
@Test
@@ -171,7 +176,7 @@ void flexDirect() {
171176

172177
@AfterAll
173178
static void teardown() {
174-
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
179+
OTPFeature.FlexRouting.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
175180
}
176181

177182
private static void addGtfsToGraph(Graph graph, TransitModel transitModel, List<File> gtfsFiles) {

src/ext-test/java/org/opentripplanner/ext/flex/FlexTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.opentripplanner.transit.service.StopModel;
2121
import org.opentripplanner.transit.service.TransitModel;
2222

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

2526
private static final ResourceLoader RES = ResourceLoader.of(FlexTest.class);
@@ -53,11 +54,11 @@ protected static TestOtpModel buildFlexGraph(File file) {
5354
graph,
5455
new ServiceDateInterval(LocalDate.of(2021, 1, 1), LocalDate.of(2022, 1, 1))
5556
);
56-
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, true));
57-
module.buildGraph();
58-
transitModel.index();
59-
graph.index(transitModel.getStopModel());
60-
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
57+
OTPFeature.FlexRouting.testOn(() -> {
58+
module.buildGraph();
59+
transitModel.index();
60+
graph.index(transitModel.getStopModel());
61+
});
6162
assertTrue(transitModel.hasFlexTrips());
6263
return new TestOtpModel(graph, transitModel);
6364
}

src/ext-test/java/org/opentripplanner/ext/flex/trip/ScheduledDeviatedTripTest.java

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@
99
import java.time.Month;
1010
import java.time.OffsetDateTime;
1111
import java.util.List;
12-
import java.util.Map;
1312
import java.util.Set;
1413
import java.util.stream.Collectors;
1514
import org.junit.jupiter.api.BeforeAll;
1615
import org.junit.jupiter.api.Test;
1716
import org.locationtech.jts.geom.Coordinate;
1817
import org.opentripplanner.TestOtpModel;
19-
import org.opentripplanner.TestServerContext;
18+
import org.opentripplanner.TestServerContextBuilder;
2019
import org.opentripplanner._support.time.ZoneIds;
2120
import org.opentripplanner.ext.fares.FaresFilter;
2221
import org.opentripplanner.ext.flex.FlexRouter;
@@ -62,6 +61,13 @@ public class ScheduledDeviatedTripTest extends FlexTest {
6261

6362
float delta = 0.01f;
6463

64+
@BeforeAll
65+
static void setup() {
66+
var model = FlexTest.buildFlexGraph(COBB_FLEX_GTFS);
67+
graph = model.graph();
68+
transitModel = model.transitModel();
69+
}
70+
6571
@Test
6672
void parseCobbCountyAsScheduledDeviatedTrip() {
6773
var flexTrips = transitModel.getAllFlexTrips();
@@ -126,34 +132,33 @@ void calculateEgressTemplate() {
126132

127133
@Test
128134
void calculateDirectFare() {
129-
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, true));
130-
var trip = getFlexTrip();
135+
OTPFeature.FlexRouting.testOn(() -> {
136+
var trip = getFlexTrip();
131137

132-
var from = getNearbyStop(trip, "from-stop");
133-
var to = getNearbyStop(trip, "to-stop");
138+
var from = getNearbyStop(trip, "from-stop");
139+
var to = getNearbyStop(trip, "to-stop");
134140

135-
var router = new FlexRouter(
136-
graph,
137-
new DefaultTransitService(transitModel),
138-
FlexConfig.DEFAULT,
139-
OffsetDateTime.parse("2021-11-12T10:15:24-05:00").toInstant(),
140-
false,
141-
1,
142-
1,
143-
List.of(from),
144-
List.of(to)
145-
);
141+
var router = new FlexRouter(
142+
graph,
143+
new DefaultTransitService(transitModel),
144+
FlexConfig.DEFAULT,
145+
OffsetDateTime.parse("2021-11-12T10:15:24-05:00").toInstant(),
146+
false,
147+
1,
148+
1,
149+
List.of(from),
150+
List.of(to)
151+
);
146152

147-
var filter = new FaresFilter(graph.getFareService());
153+
var filter = new FaresFilter(graph.getFareService());
148154

149-
var itineraries = filter.filter(router.createFlexOnlyItineraries().stream().toList());
155+
var itineraries = filter.filter(router.createFlexOnlyItineraries().stream().toList());
150156

151-
var itinerary = itineraries.iterator().next();
152-
assertFalse(itinerary.getFares().getFareTypes().isEmpty());
157+
var itinerary = itineraries.iterator().next();
158+
assertFalse(itinerary.getFares().getFareTypes().isEmpty());
153159

154-
assertEquals(Money.usDollars(2.5f), itinerary.getFares().getFare(FareType.regular));
155-
156-
OTPFeature.enableFeatures(Map.of(OTPFeature.FlexRouting, false));
160+
assertEquals(Money.usDollars(2.5f), itinerary.getFares().getFare(FareType.regular));
161+
});
157162
}
158163

159164
/**
@@ -166,7 +171,11 @@ void calculateDirectFare() {
166171
void flexTripInTransitMode() {
167172
var feedId = transitModel.getFeedIds().iterator().next();
168173

169-
var serverContext = TestServerContext.createServerContext(graph, transitModel);
174+
var serverContext = TestServerContextBuilder
175+
.of()
176+
.withGraph(graph)
177+
.withTransitModel(transitModel)
178+
.serverContext();
170179

171180
// from zone 3 to zone 2
172181
var from = GenericLocation.fromStopId("Transfer Point for Route 30", feedId, "cujv");
@@ -227,13 +236,6 @@ void parseContinuousPickup() {
227236
assertNotNull(lincolnGraph);
228237
}
229238

230-
@BeforeAll
231-
static void setup() {
232-
TestOtpModel model = FlexTest.buildFlexGraph(COBB_FLEX_GTFS);
233-
graph = model.graph();
234-
transitModel = model.transitModel();
235-
}
236-
237239
private static List<Itinerary> getItineraries(
238240
GenericLocation from,
239241
GenericLocation to,
@@ -252,6 +254,8 @@ private static List<Itinerary> getItineraries(
252254
var result = TransitRouter.route(
253255
request,
254256
serverContext,
257+
// TODO: The same instance of DefaultTransitService should be used within the test
258+
new DefaultTransitService(transitModel),
255259
transitStartOfTime,
256260
additionalSearchDays,
257261
new DebugTimingAggregator()

src/ext/java/org/opentripplanner/ext/actuator/ActuatorAPI.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import jakarta.ws.rs.core.Response;
1616
import jakarta.ws.rs.core.UriInfo;
1717
import org.opentripplanner.standalone.api.OtpServerRequestContext;
18+
import org.opentripplanner.transit.service.TransitService;
1819
import org.opentripplanner.updater.GraphUpdaterStatus;
1920
import org.slf4j.Logger;
2021
import org.slf4j.LoggerFactory;
@@ -64,8 +65,8 @@ public Response actuator(@Context UriInfo uriInfo) {
6465
@GET
6566
@Path("/health")
6667
@Produces(MediaType.APPLICATION_JSON)
67-
public Response health(@Context OtpServerRequestContext serverContext) {
68-
GraphUpdaterStatus updaterStatus = serverContext.transitService().getUpdaterStatus();
68+
public Response health(@Context TransitService transitService) {
69+
GraphUpdaterStatus updaterStatus = transitService.getUpdaterStatus();
6970
if (updaterStatus != null) {
7071
var listUnprimedUpdaters = updaterStatus.listUnprimedUpdaters();
7172

src/ext/java/org/opentripplanner/ext/geocoder/GeocoderResource.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
import java.util.Objects;
1616
import java.util.stream.Collectors;
1717
import org.opentripplanner.api.mapping.FeedScopedIdMapper;
18+
import org.opentripplanner.model.transfer.TransferService;
1819
import org.opentripplanner.standalone.api.OtpServerRequestContext;
1920
import org.opentripplanner.transit.model.site.StopLocation;
21+
import org.opentripplanner.transit.service.TransitService;
2022

2123
/**
2224
* OTP simple built-in geocoder used by the debug client.
@@ -26,6 +28,7 @@
2628
public class GeocoderResource {
2729

2830
private final OtpServerRequestContext serverContext;
31+
private final TransitService transitService;
2932

3033
/**
3134
* @deprecated The support for multiple routers are removed from OTP2. See
@@ -35,8 +38,12 @@ public class GeocoderResource {
3538
@PathParam("ignoreRouterId")
3639
private String ignoreRouterId;
3740

38-
public GeocoderResource(@Context OtpServerRequestContext requestContext) {
39-
serverContext = requestContext;
41+
public GeocoderResource(
42+
@Context OtpServerRequestContext requestContext,
43+
@Context TransitService transitService
44+
) {
45+
this.serverContext = requestContext;
46+
this.transitService = transitService;
4047
}
4148

4249
/**
@@ -65,7 +72,10 @@ public Response textSearch(
6572
@GET
6673
@Path("stopClusters")
6774
public Response stopClusters(@QueryParam("query") String query) {
68-
var clusters = LuceneIndex.forServer(serverContext).queryStopClusters(query).toList();
75+
var clusters = LuceneIndex
76+
.forServer(serverContext, transitService)
77+
.queryStopClusters(query)
78+
.toList();
6979

7080
return Response.status(Response.Status.OK).entity(clusters).build();
7181
}
@@ -91,7 +101,7 @@ private List<SearchResult> query(
91101

92102
private Collection<SearchResult> queryStopLocations(String query, boolean autocomplete) {
93103
return LuceneIndex
94-
.forServer(serverContext)
104+
.forServer(serverContext, transitService)
95105
.queryStopLocations(query, autocomplete)
96106
.map(sl ->
97107
new SearchResult(
@@ -106,7 +116,7 @@ private Collection<SearchResult> queryStopLocations(String query, boolean autoco
106116

107117
private Collection<? extends SearchResult> queryStations(String query, boolean autocomplete) {
108118
return LuceneIndex
109-
.forServer(serverContext)
119+
.forServer(serverContext, transitService)
110120
.queryStopLocationGroups(query, autocomplete)
111121
.map(sc ->
112122
new SearchResult(

src/ext/java/org/opentripplanner/ext/geocoder/LuceneIndex.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,17 @@ public LuceneIndex(TransitService transitService) {
145145
}
146146
}
147147

148-
public static synchronized LuceneIndex forServer(OtpServerRequestContext serverContext) {
148+
public static synchronized LuceneIndex forServer(
149+
OtpServerRequestContext serverContext,
150+
TransitService transitService
151+
) {
149152
var graph = serverContext.graph();
150153
var existingIndex = graph.getLuceneIndex();
151154
if (existingIndex != null) {
152155
return existingIndex;
153156
}
154157

155-
var newIndex = new LuceneIndex(serverContext.transitService());
158+
var newIndex = new LuceneIndex(transitService);
156159
graph.setLuceneIndex(newIndex);
157160
return newIndex;
158161
}

src/ext/java/org/opentripplanner/ext/parkAndRideApi/ParkAndRideResource.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.opentripplanner.routing.vehicle_parking.VehicleParking;
1818
import org.opentripplanner.routing.vehicle_parking.VehicleParkingService;
1919
import org.opentripplanner.standalone.api.OtpServerRequestContext;
20+
import org.opentripplanner.transit.service.TransitService;
2021

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

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

4850
/** Envelopes are in latitude, longitude format */

src/ext/java/org/opentripplanner/ext/reportapi/model/GraphReportBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
import java.util.function.Function;
77
import javax.annotation.Nonnull;
88
import org.opentripplanner.standalone.api.OtpServerRequestContext;
9+
import org.opentripplanner.transit.service.TransitService;
910

1011
public class GraphReportBuilder {
1112

12-
public static GraphStats build(OtpServerRequestContext context) {
13-
var transitService = context.transitService();
13+
public static GraphStats build(OtpServerRequestContext context, TransitService transitService) {
1414
var graph = context.graph();
1515
var constrainedTransfers = transitService.getTransferService().listAll();
1616

src/ext/java/org/opentripplanner/ext/reportapi/resource/ReportResource.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public class ReportResource {
3535
private final TransitService transitService;
3636

3737
@SuppressWarnings("unused")
38-
public ReportResource(@Context OtpServerRequestContext requestContext) {
39-
this.transferService = requestContext.transitService().getTransferService();
40-
this.transitService = requestContext.transitService();
38+
public ReportResource(@Context TransitService transitService) {
39+
this.transferService = transitService.getTransferService();
40+
this.transitService = transitService;
4141
}
4242

4343
@GET
@@ -85,7 +85,7 @@ public Response getBicycleSafetyAsCsv(
8585
public Response stats(@Context OtpServerRequestContext serverRequestContext) {
8686
return Response
8787
.status(Response.Status.OK)
88-
.entity(cachedStats.get(() -> GraphReportBuilder.build(serverRequestContext)))
88+
.entity(cachedStats.get(() -> GraphReportBuilder.build(serverRequestContext, transitService)))
8989
.type("application/json")
9090
.build();
9191
}

0 commit comments

Comments
 (0)