﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
18140	Switch to OpeningHoursParser	Don-vip	simon04	"Oracle is still threatening to remove Nashorn from Java (to make money with their ""GraalVM"" stuff).
Java will then no longer provide a JavaScript engine, so we won't be able to run our JS libraries anymore (opening_hours and overpass_turbo).

For opening_hours, there's no need to rewrite the lib in Java, as we can simply use Simon's parser:

https://github.com/simonpoole/OpeningHoursParser

Outstanding issues for the migration:
* Support for `collection_times`, `service_times` – not yet supported by OpeningHoursParser?
* Localized error messages – WIP: Add translation support by simon04 · Pull Request #30 · ​https://github.com/simonpoole/OpeningHoursParser/pull/30
* ~~The auto-fixing for some cases, such as `Mo-Tue`, `Sa-Su 10.00-20.00`, `Mo,Tu 04-17`~~
* (Some tests (mostly of garbage) end with an auto-generated JavaCC exception `badtext` → `Encountered "" <UNEXPECTED_CHAR> ""b """" at line 1, column 1.`)
* Integrate OpeningHoursParser as JAR (via Ivy) or svn:externals (run JavaCC in build.xml)

----

Some considerations to take into account for ""wd"":

> [00:40:47] <simonpoole> I really need to have a look at generating more descriptive error messages in my parser and add an evaluator but its a month ot two work I suspect
> [00:43:07] <simonpoole> don-vip https://github.com/mozilla/rhino
> [00:44:00] <don-vip> I know it :) rhino was the javascript engine shipped with java 6/7 until oracle introduces nashorn in 8
> [00:44:44] <don-vip> but we won't ship an entire javascript engine just for this. Will probably have to rewrite the library in pure java, which isn't a bad thing
> [00:45:54] <simonpoole> well my parser currently has only one small known issue
> [00:46:10] <simonpoole> outside of that in implements the full spec
> [00:47:36] <don-vip> simonpoole do you have a link to your parser?
> [00:48:03] <simonpoole> https://github.com/simonpoole/OpeningHoursParser
> [00:49:25] <don-vip> awesome!
> [00:49:41] <don-vip> so no need to rewrite the JS library, you made my day Simon
> [00:50:18] <simonpoole> it -is- a bit stricter than ypids in that some of the more abstruse deviations from the spec are not handled and some rarely used stuff wd isn't supported but that would be easy to add
> [00:50:51] <don-vip> ok, good to know
> [00:51:24] <simonpoole> just to be clear wd is not in the spec
> [00:52:08] <don-vip> by wd do you mean weekdays or the literal ""wd""?
> [00:52:46] <simonpoole> the literal ""wd"" used as an abbrev for Mo-Fr
> [00:52:54] <don-vip> ok
> [00:53:15] <don-vip> well it's easy to detect it as an error and suggest Mo-Fr instead
> [00:53:15] <simonpoole> the thing is that it is not really clear if weekday definition is actually univerally the same
> [00:53:24] <don-vip> ah
> [00:53:29] <don-vip> good point
> [00:54:39] <simonpoole> so really it should be added to the spec and clearly defined
> [00:54:58] <petschge> that might be fun in israel or some muslimic countries
> [00:55:07] <simonpoole> exactly
"	enhancement	assigned	normal	20.03	Core			opening_hours nashorn sotm19 java15	Don-vip ypid23 stoecker
