A little experiment to visualise the JDK releases and their constituent JEPs.
Live demo available at https://jep-visualiser.herokuapp.com/
It provides a visual timeline of the JEPs involved in each of the JDK releases.
It does this by scraping data from https://openjdk.java.net, transforming that data and using TimelineJs to build the timeline view.
Visiting the web root / it will default to showing you the JEPs included in JDK 17. There's a drop-down/combo-box for selecting other JDK versions.
To see the JDK versions themselves (and when they were released) visit https://jep-visualiser.herokuapp.com/#jdks
To customise the JEPs included in the timeline just add them as a comma-separated list in the url. For instance, to see all the JEPs that have impact on Safety visit https://jep-visualiser.herokuapp.com/#193,266,338,371,383,385,393,389,396,403,412,414,416,417,419
Easy, you just use the local run script:
./scripts/run-locally.shOr, you can build and run a Docker container:
docker build --tag jep-visualiser .
docker run -it -p 8000:8000 --name jep-visualiser jep-visualiserYou'll see a TON of output the first time you run that Docker container. The data collection/transformation only runs on the first container start so subsequent starts will be much quicker.
If you want to trigger the data to be recollected without re-running the contain you can just delete the file marker used to establish if the container has run before.
docker exec -it jep-visualiser /bin/sh
rm CONTAINER_STARTEDdocker build --tag jep-visualiser .
docker run -it -p 8000:8000 jep-visualiserThe local run script does a couple of things for you:
- Creates a python virtual environment (with
virtualenv) - Installs python dependencies (with
pip) - Runs
scrapyspiders to collect jdk and jep data - Transforms the jdk and jep data into a format
TimelineJScan understand - Runs a simple HTTP server to serve
TimelineJSvisualisations
