URL of dev meeting: https://github.com/opentripplanner/OpenTripPlanner/blob/dev-2.x/CONTRIBUTING.md#primary-channels-of-communication
I was just looking into the upcoming Java versions so will share what I found:
JDK 19 released 20 September 2022 (short-term support)
JDK 20 will be released March 21, 2023 (short-term support)
JDK 21 will be the big one and an LTS release (long-term support, sometime around 20 September 2023)
Many really interesting features seem to have been moved from JDK 20 to JDK 21.
Here are the pages for JDK 21:
https://openjdk.org/projects/jdk/21/spec/
https://bugs.openjdk.org/secure/Dashboard.jspa?selectPageId=21418
In my view the really interesting stuff is:
Value Objects (all final fields and no references): https://openjdk.org/jeps/8277163
Primitive Classes: https://bugs.openjdk.org/browse/JDK-8251554
Generics over Primitive Types: https://bugs.openjdk.org/browse/JDK-8046267
@t2gran: I've managed to add the git commit to the speed test grafana at the bottom left. can you check if this gives you the information that you need?
OpenTripPlanner and Digitransit at FOSDEM on 4th of February 2023 in Brussels
FOSDEM (https://fosdem.org) is Europe's largest gathering of Free and Open Source Software developers and enthusiasts, with thousands of people attending each year. FOSDEM 2023 will take place on the weekend of 4-5 February 2023 as an in-person event in Brussels. The event is free of charge, and no registration is required.
For the first time, there is a track about Railways and Open Transport in the context of Free and Open Source Software (https://fosdem.org/2023/schedule/track/railways_and_open_transport/). I and Joel Lappalainen will be presenting two related topics, OpenTripPlanner and Digitransit. There are also other relevant presentations during the track. The presentations will be streamed live, so it is also possible to view them online.
In the OTP presentation, we will take a quick look into the history of the project, where it comes from, and how has it evolved over the years. We will take a closer look at the recently released version 2.3 and its new features, as well as a look at the roadmap of which functionality will be coming in the next releases.
If anybody will be in Brussels during the event, we would be love to meet in person and have a chat with other OTP users and developers.
/Hannes
@Bartosz-Kruba: After merging the filter API PR, the REST API started throwing exceptions because we call add
on an immutable list: opentripplanner/OpenTripPlanner#4748
Could you take a look a this?
@optionsome @hannesj I've now cleaned up the mess I made with the geofencing zone PR and opened a new one: opentripplanner/OpenTripPlanner#4741
It is ready for review.
A question regarding build-config.json
Does maxTransferDurationSeconds
only affect transfers between stops or does it affect access and egress walk as well?
We would want to set a lower walk distance on transfers. If we lower maxTransferDurationSeconds
during build, will it affect initial walk as well?
When reviewing the geofencing zones, @optionsome suggested to change the name of the class determining the traversal restrictions from TraversalExtension
to RentalExtension
. I renamed this class so many times, that I don't really have an opinion anymore.
@hannesj @t2gran Do you have a suggestion/opinion?
What is the best option to set JVM arguments in the docker container? Especially memory.
I currently have
otp-create-street:
image: "opentripplanner/opentripplanner:2.3.0_2023-01-20T12-07"
restart: always
container_name: otp-create-street
volumes:
- E:/OTP2:/var/opentripplanner/
environment:
- JVM_OPTS=-Xmx10g -Xms10g
- JAVA_OPTIONS=-Xmx10g -Xms10g
command:
[
'--buildStreet',
]
In my docker compose, but keep getting out of memory errors. Looking at task manager, it seems like WSL is "only" using op 4Gbytes before it crashes, which isn't nearly enough for the Dutch dataset.
java.lang.ArrayIndexOutOfBoundsException: Index 55 out of bounds for length 28
at org.opentripplanner.transit.model.network.RoutingTripPattern.stopIndex(RoutingTripPattern.java:87)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.constrainedtransfer.TransferIndexGenerator.lambda$findTPoints$9(TransferIndexGenerator.java:236)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.constrainedtransfer.TransferIndexGenerator.findTPoints(TransferIndexGenerator.java:240)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.constrainedtransfer.TransferIndexGenerator.findTPoints(TransferIndexGenerator.java:137)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.constrainedtransfer.TransferIndexGenerator.generateTransfers(TransferIndexGenerator.java:63)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.mappers.TransitLayerMapper.map(TransitLayerMapper.java:90)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.mappers.TransitLayerMapper.map(TransitLayerMapper.java:59)
at org.opentripplanner.standalone.configure.ConstructApplication.creatTransitLayerForRaptor(ConstructApplication.java:182)
at org.opentripplanner.standalone.configure.ConstructApplication.setupTransitRoutingServer(ConstructApplication.java:138)
at org.opentripplanner.standalone.configure.ConstructApplication.createApplication(ConstructApplication.java:130)
at org.opentripplanner.standalone.configure.ConstructApplication.createGrizzlyServer(ConstructApplication.java:98)
at org.opentripplanner.standalone.OTPMain.startOtpWebServer(OTPMain.java:187)
at org.opentripplanner.standalone.OTPMain.startOTPServer(OTPMain.java:163)
at org.opentripplanner.standalone.OTPMain.main(OTPMain.java:52)
We got this error after switching to OTP 2.2. Builds graph without problems but can't load it. Maybe this bug was fixed recently? We are using OTP version from 2023-01-03.
Hi, I have some problems with the RaptorPathToItineraryMapper
:
// If the next leg is an egress leg without a duration then this transit leg
// arrives at the destination.
// The cost of the egress should therefore be included in the last transit
// leg given that it is the last leg.
int lastLegCost = 0;
PathLeg<T> nextLeg = pathLeg.nextLeg();
if (nextLeg.isEgressLeg() && isEmpty(nextLeg.asEgressLeg())) {
lastLegCost = pathLeg.nextLeg().generalizedCost();
}
Any ideas why we would add the cost of an empty leg? I my world an empty leg should ALWAYS have 0 cost. By the way, I want to rename "empty" to "free"(with both duration and cost of 0).
Is there a use-case where the cost is != 0 and the duration == 0?
@Bartosz-Kruba: There is still a new bug in the REST API with regards to filtering. When you pass in BICYCLE_RENT
as a mode, you get bike rental in combination with all transit modes. What you want is only bike rental though.
What is the correct filter if you want to exclude all transit modes?
@vpaturet: Is there a reason we are using javax.inject.Singleton
rather than jakarta.inject.Singleton
?
According to google/dagger#2058 it's possible to use the jakarta version.
@t2gran: I want to take a look at removing the services for vehicle rental, positions and parking out of the routing service and into proper dagger modules.
Could you take a if this is going into the right direction? https://github.com/opentripplanner/OpenTripPlanner/compare/dev-2.x...ibi-group:OpenTripPlanner:refactor-vehicle-position-service
Hi!
Is the new VIA-search functionality documented somewhere? Need to figure out some things: