Skip to content

TRIAS StopEventRequest #6510

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 79 commits into
base: dev-2.x
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
eb1dc16
Initial OJP request
leonardehrenfried Feb 7, 2025
f5db79b
Add initial TRIAS skeleton
leonardehrenfried Feb 7, 2025
e371af2
Add streaming response
leonardehrenfried Feb 7, 2025
85f34d2
Flesh out result
leonardehrenfried Feb 7, 2025
1d41491
Move method into Transformer
leonardehrenfried Feb 7, 2025
e4cacb7
Flesh out response
leonardehrenfried Feb 10, 2025
ce30db5
Handle language
leonardehrenfried Feb 10, 2025
0b57f53
Re-indent XSLT
leonardehrenfried Feb 10, 2025
51a4683
Simplify
leonardehrenfried Feb 10, 2025
d0a9cb4
Add API explorer
leonardehrenfried Feb 13, 2025
c82c1ba
Also map TRIAS requests
leonardehrenfried Feb 13, 2025
1a447b6
WIP
leonardehrenfried Feb 13, 2025
668e85f
Handle error condition
leonardehrenfried Feb 13, 2025
06f9a07
Clean up package structure
leonardehrenfried Feb 13, 2025
0e5e42f
Add optional features
leonardehrenfried Feb 14, 2025
c134dc3
Implement previous/onward calls
leonardehrenfried Feb 14, 2025
b87f683
Implement onward/previous calls
leonardehrenfried Feb 15, 2025
d6718cb
Look up language from feed info
leonardehrenfried Feb 16, 2025
5aba735
Add tests
leonardehrenfried Feb 16, 2025
3133934
Regenereate docs
leonardehrenfried Feb 17, 2025
a40229f
Auto-write file
leonardehrenfried Feb 17, 2025
bd71b03
Make feed id configurable
leonardehrenfried Feb 17, 2025
dd56077
Change default ID
leonardehrenfried Feb 17, 2025
41b986e
Remove extra dependency
leonardehrenfried Feb 17, 2025
33c954a
Implement arrival time
leonardehrenfried Feb 18, 2025
c5697e1
Add skip node for trias API
leonardehrenfried Feb 18, 2025
908365e
Small clean up
leonardehrenfried Feb 18, 2025
356fe6c
Extract coordinate from request
leonardehrenfried Feb 18, 2025
d0161e9
Implement GeoPosition-based searches
leonardehrenfried Feb 19, 2025
f0dc278
Implement GeoPosition request
leonardehrenfried Feb 19, 2025
0846eab
Add time window
leonardehrenfried Feb 19, 2025
997a3ba
Introduce filter request
leonardehrenfried Feb 20, 2025
57a7eb7
Implement numberOfDepartures
leonardehrenfried Feb 21, 2025
ab37b3d
Implement separate params
leonardehrenfried Feb 21, 2025
9ea41f2
Implement operator filter
leonardehrenfried Feb 21, 2025
3739f98
Implement line filter
leonardehrenfried Feb 21, 2025
eec6fd4
Improve line ref matching
leonardehrenfried Feb 22, 2025
82805c6
Fix explorer
leonardehrenfried Feb 22, 2025
71e531b
Remove outdated comment
leonardehrenfried Feb 27, 2025
41050a3
Remove TimeAtStop
leonardehrenfried Mar 2, 2025
2fd72a1
Implement inclusion/exclusion of lines/operators
leonardehrenfried Mar 2, 2025
bdcec74
Set version to 1.2
leonardehrenfried Mar 2, 2025
65d6a10
Add inclusion/exclusion of modes
leonardehrenfried Mar 2, 2025
3f1b003
Add inclusion/exclusion of modes
leonardehrenfried Mar 2, 2025
04971c6
Add test
leonardehrenfried Mar 2, 2025
e95f651
Remove unused code in TransitService
leonardehrenfried Mar 2, 2025
de9a0c8
Add test
leonardehrenfried Mar 3, 2025
9b7a287
Add test for TripTimeOnDate
leonardehrenfried Mar 3, 2025
2af2a90
Add documentation
leonardehrenfried Mar 3, 2025
b31aacc
Add test for previous/next
leonardehrenfried Mar 4, 2025
41bbcf0
Apply new formatting
leonardehrenfried Mar 4, 2025
73eafc7
Use artifact from org.opentripplanner
leonardehrenfried Mar 4, 2025
c3948b4
Clean up and docs
leonardehrenfried Mar 4, 2025
497bf16
Take UseRealtimeData into account
leonardehrenfried Mar 5, 2025
3e11cab
Implement maxDistance
leonardehrenfried Mar 5, 2025
10bfd62
Use new StopTimesHelper
leonardehrenfried Mar 6, 2025
f1ecbcf
Rename method and add Javadoc
leonardehrenfried Mar 12, 2025
59d85be
Add cancelled stop
leonardehrenfried Mar 12, 2025
c196e8e
Add cancellation
leonardehrenfried Mar 12, 2025
4d4811a
Allow specifying a sort order
leonardehrenfried Mar 13, 2025
0117064
Implement station lookup for stop point ref
leonardehrenfried Mar 13, 2025
bd15e5c
Move creation of filters into builder
leonardehrenfried Mar 13, 2025
c35fff9
Re-order package structure
leonardehrenfried Mar 14, 2025
e2134b5
Update docs
leonardehrenfried Mar 14, 2025
1090ade
Add direction ref
leonardehrenfried Mar 14, 2025
7af5f7d
Optimise performance by instantiating context only once
leonardehrenfried Mar 14, 2025
41adefc
Add XML to compressible mime types
leonardehrenfried Mar 17, 2025
e82862e
Use full trias namespace
leonardehrenfried Mar 17, 2025
308b489
Add test
leonardehrenfried Mar 17, 2025
213b218
Change language namespace
leonardehrenfried Mar 17, 2025
9c8379a
Update docs, add test
leonardehrenfried Mar 17, 2025
c0b5775
Configure time zone in TRIAS
leonardehrenfried Mar 18, 2025
52204f4
Make code slightly more readable
leonardehrenfried Mar 18, 2025
8762ba7
Improve time handling
leonardehrenfried Mar 18, 2025
e2082c5
Merge remote-tracking branch 'upstream/dev-2.x' into trias
leonardehrenfried Mar 31, 2025
f076fb1
Harmonise naming
leonardehrenfried Mar 31, 2025
fc3c446
Apply review feedback
leonardehrenfried Apr 2, 2025
d50146b
Harmonise plural/singular
leonardehrenfried Apr 2, 2025
88d0b59
Merge remote-tracking branch 'upstream/dev-2.x' into trias
leonardehrenfried Apr 4, 2025
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
Prev Previous commit
Next Next commit
Optimise performance by instantiating context only once
  • Loading branch information
leonardehrenfried committed Mar 26, 2025
commit 7af5f7d4482e148d4862b03ce20173df12eb612d
Original file line number Diff line number Diff line change
@@ -109,6 +109,6 @@ void ojpToTrias() {
RESOLVE_FEED_LANG
);
var ojp = mapper.mapCalls(List.of(new CallAtStop(TRIP_TIMES_ON_DATE, WALK_TIME)), timestamp);
OjpToTriasTransformer.transform(ojp, new PrintWriter(System.out));
OjpToTriasTransformer.ojpToTrias(ojp, new PrintWriter(System.out));
}
}
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@ void stopEventRequest(String name) throws JAXBException, TransformerException {
@Test
void error() {
var ojp = ErrorMapper.error("An error occurred", ZDT);
var actual = OjpToTriasTransformer.transform(ojp);
var actual = OjpToTriasTransformer.ojpToTrias(ojp);
var file = LOADER.extTestResourceFile("error.xml");
var original = readFile(file);
writeFile(file, actual);
Original file line number Diff line number Diff line change
@@ -29,32 +29,31 @@ class OjpToTriasTransformer {
"trias_to_ojp2.0_request.xslt"
);

static String transform(OJP ojp) {
private static final JAXBContext CONTEXT = jaxbContext();

static String ojpToTrias(OJP ojp) {
var writer = new StringWriter();
transform(ojp, writer);
ojpToTrias(ojp, writer);
return writer.toString();
}

static void transform(OJP ojp, Writer writer) {
static void ojpToTrias(OJP ojp, Writer writer) {
try {
var context = JAXBContext.newInstance(OJP.class);
var marshaller = context.createMarshaller();
var marshaller = CONTEXT.createMarshaller();

// Convert Java object to XML string
var outputStream = new ByteArrayOutputStream();
marshaller.marshal(ojp, outputStream);

var xmlSource = new StreamSource(new ByteArrayInputStream(outputStream.toByteArray()));

transform(writer, xmlSource);
ojpToTrias(writer, xmlSource);
} catch (IOException | JAXBException | TransformerException e) {
throw new RuntimeException(e);
}
}

static OJP triasToOjp(String trias) throws JAXBException, TransformerException {
var context = JAXBContext.newInstance(OJP.class);

var xmlSource = new StreamSource(
new ByteArrayInputStream(trias.getBytes(StandardCharsets.UTF_8))
);
@@ -64,13 +63,13 @@ static OJP triasToOjp(String trias) throws JAXBException, TransformerException {
transformer.transform(xmlSource, new StreamResult(writer));
var transformedXml = writer.toString(StandardCharsets.UTF_8);

var unmarshaller = context.createUnmarshaller();
var unmarshaller = CONTEXT.createUnmarshaller();
return (OJP) unmarshaller.unmarshal(
new ByteArrayInputStream(transformedXml.getBytes(StandardCharsets.UTF_8))
);
}

static void transform(Writer writer, StreamSource xmlSource)
static void ojpToTrias(Writer writer, StreamSource xmlSource)
throws IOException, TransformerException {
var transformer = OJP_TO_TRIAS_TEMPLATE.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
@@ -87,4 +86,12 @@ static Templates loadTemplate(String name) {
throw new RuntimeException(e);
}
}

private static JAXBContext jaxbContext() {
try {
return JAXBContext.newInstance(OJP.class);
} catch (JAXBException e) {
throw new RuntimeException(e);
}
}
}
Original file line number Diff line number Diff line change
@@ -107,12 +107,11 @@ private static Response error(String value) {
}

private static StreamingOutput ojpToTrias(OJP ojpOutput) {
StreamingOutput stream = os -> {
Writer writer = new BufferedWriter(new OutputStreamWriter(os));
OjpToTriasTransformer.transform(ojpOutput, writer);
return os -> {
Writer writer = new OutputStreamWriter(os);
OjpToTriasTransformer.ojpToTrias(ojpOutput, writer);
writer.flush();
};
return stream;
}

@GET