diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 4bd313c7a06..cf3efcd84a3 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -40,22 +40,22 @@ examples. The Transit model is more complex than the VehiclePosition model. Below is a list of documented components in OTP. Not every component is documented at a high level, but this is a start and we would like to expand this list in the future. -### [OTP Configuration design](src/main/java/org/opentripplanner/standalone/config/package.md) +### [OTP Configuration design](application/src/main/java/org/opentripplanner/standalone/config/package.md) The Configuration module is responsible for loading and parsing OTP configuration files and map them into Plan Old Java Objects (POJOs). These POJOs are injected into the other components. -### [GTFS import module](src/main/java/org/opentripplanner/gtfs/package.md) +### [GTFS import module](application/src/main/java/org/opentripplanner/gtfs/package.md) Used to import GTFS transit data files. -### [NeTEx import module](src/main/java/org/opentripplanner/netex/package.md) +### [NeTEx import module](application/src/main/java/org/opentripplanner/netex/package.md) Used to import NeTEx transit data files. ### Transit Routing -#### [Raptor transit routing](src/main/java/org/opentripplanner/raptor/package.md) +#### [Raptor transit routing](application/src/main/java/org/opentripplanner/raptor/package.md) This is the OTP2 new transit routing engine implemented using the Raptor algorithm. It explains how Raptor works, the important concepts and the design. It might be worth reading even if you are not a @@ -68,35 +68,35 @@ dependencies from Raptor to other parts of OTP code, only to utility classes not Also, the code follows a stricter object-oriented design, than most other parts of OTP. The Raptor implementation is highly critical code, hence we set the bar higher with respect to code quality. -OTP provides transit data to Raptor by implementing the _raptor/api/transit_ model. The -[RoutingService](src/main/java/org/opentripplanner/routing/RoutingService.java) +OTP provides transit data to Raptor by implementing the _raptor/spi_. The +[RoutingService](application/src/main/java/org/opentripplanner/routing/service/DefaultRoutingService.java) is responsible for mapping from the OTP context to a -[RaptorRequest](src/main/java/org/opentripplanner/raptor/api/request/RaptorRequest.java) +[RaptorRequest](application/src/main/java/org/opentripplanner/raptor/api/request/RaptorRequest.java) and then map the -result, [Raptor Path](src/main/java/org/opentripplanner/raptor/api/path/Path.java), back to +result, [Raptor Path](application/src/main/java/org/opentripplanner/raptor/api/path/RaptorPath.java), back to the OTP internal domain. This might seem like a lot of unnecessary mapping, but mapping is simple - routing is not. The performance of Raptor is important, and we care about every millisecond. All changes to the existing Raptor coded should be tested with the -[SpeedTest](src/test/java/org/opentripplanner/transit/raptor/speed_test/package.md) and compared +[SpeedTest](application/src/test/java/org/opentripplanner/transit/speed_test/package.md) and compared with an earlier version of the code to make sure the performance is NOT degraded. -#### [Transfer path optimization](src/main/java/org/opentripplanner/routing/algorithm/transferoptimization/package.md) +#### [Transfer path optimization](application/src/main/java/org/opentripplanner/routing/algorithm/transferoptimization/package.md) Describes the transfer functionality, the design and the implementation. The logic for finding the best transfer is distributed to the Raptor and -the [OptimizeTransferService](src/main/java/org/opentripplanner/routing/algorithm/transferoptimization/OptimizeTransferService.java) +the [OptimizeTransferService](application/src/main/java/org/opentripplanner/routing/algorithm/transferoptimization/OptimizeTransferService.java) . -#### [Itinerary list filter chain](src/main/java/org/opentripplanner/routing/algorithm/filterchain/package.md) +#### [Itinerary list filter chain](application/src/main/java/org/opentripplanner/routing/algorithm/filterchain/package.md) Describes the itinerary list filter chain, used to post-process the itineraries returned from the -routers in [RoutingWorker](src/main/java/org/opentripplanner/routing/algorithm/RoutingWorker.java), +routers in [RoutingWorker](application/src/main/java/org/opentripplanner/routing/algorithm/RoutingWorker.java), in order to sort and reduce the number of returned itineraries. It can also be used to decorate the returned itineraries, especially if it requires more complex calculations, which would be unfeasible to do during the routing process. -### [Service](src/main/java/org/opentripplanner/service/package.md) +### [Service](application/src/main/java/org/opentripplanner/service/package.md) The service package contains small services usually specific to one or a few use-cases. In contrast -to a domain model they may use one or many domain models and other services. \ No newline at end of file +to a domain model they may use one or many domain models and other services.