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.sh
Or, you can build and run a Docker container:
docker build --tag jep-visualiser .
docker run -it -p 8000:8000 --name jep-visualiser jep-visualiser
You'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_STARTED
docker build --tag jep-visualiser .
docker run -it -p 8000:8000 jep-visualiser
The local run script does a couple of things for you:
- Creates a python virtual environment (with
virtualenv
) - Installs python dependencies (with
pip
) - Runs
scrapy
spiders to collect jdk and jep data - Transforms the jdk and jep data into a format
TimelineJS
can understand - Runs a simple HTTP server to serve
TimelineJS
visualisations