Java is known for, among other things, its Batteries-Included Standard Library. This is pathetic. You can't do anything with a battery except lick them. As much as I like licking a battery, I love sniffing petrol more.
So what if "Java" came with the whole goddamn Hybrid Honda Pilot? Every library you could want already included. No need to download anything more. No need to think. No need to choose.
You shall never want for anything ever again.
A benefit of this sort of approach is that I could keep track of the maintenance status of the component libraries, make sure they all work together, and respond to security vulnerabilities on your behalf. There could even be documentation on how specifically to use everything together maintained in one central place or a centralized fund to make sure every library developer is appropriately compensated for their open source work. All you would need to do is keep your copy of the great link up to date!
Now am I doing any of that? No. But I could. Pay me lots and lots of money and I'll do it. Consider the potential.
Give me enough money to afford a house like this
There are four qualities that a library must have to be included in The Great Link.
- The licensing must allow for it.
- The library must be directly usable with
jlink
so that it may be linked. - It can't step on the toes of any other libraries. For example, there can only be one logging implementation.
- It must pass my rigorous "looks good to me" test. This is a test where the me is I and it must to I look good to me.
This means that there are some honestly pretty useless libraries not included - like "The Postgres JDBC Driver" and "All of Spring." This is clearly their loss. If you care, take it up with them and be prepared to do some work yourself.
Download the link for your platform of choice, have your developers use it when developing your app, then link down to the libraries you actually used when deploying your app.
That last step won't work yet, but if it did then there would be basically no downside.
- Get the Position of the Sun in the Sky
- Generate HTML from Markdown
- Properly Validate Email Addresses
- Handle Multi-Part File Uploads
- Read and Write JSON reflectively
- Read and Write JSON classically
- Read and Write JSON declaratively
- Read and Write JSON alibabaly
- Invert the Reflection API
- Read and Write TOML reflectively
- Read and Write YAML reflectively
- Validate Password Strength
- Make Emails that Look Good Everywhere
- Render Mustache Templates
- Read and Write CSV reflectively
- Read and Write CSV classically
- Pool Expensive Objects
- Read and Write CBOR
- Store Data in Persistently Immutable Collections
- Store Data in Persistently Immutable Collections
- Generate Every Kind of UUID
- Run the JDK's CLI Tools in Scripts
- Convert ResultSets to Records
- Make CLIs by Annotating Classes
- Make CLIs by Annotating Records
- Make CLIs the Python way
- Convert Text to URL-Friendly Slugs
- Generate Time-Based Snowflakes
- Pool Database Connections
- Read from
.env
Files - Parse HTML5
- Parse Messy Real-World HTML
- Read and Write Property Files Preserving Comments and Whitespace
- Talk to MariaDB
- Talk to Sqlite
- Log Good
- Represent Magic Constants
- Cache Fast with Fast Caches
- Simulate Physical Systems with Collisions
- Detect, Replace, Extract, and Encode Emojis
- Play MP3 and OGG Files
- Write PPM Format Images
- Update Shared Data with an Atomic-Compare-And-Swap
- Intercept your HTTP Requests
- Analyze Jar Files
- Make Modern Looking Swing Apps
- Do Math with Uncertain Values
- Generate and Validate International Bank Account Numbers
- Automatically Bind GUIs to Objects
- Parse, Process, and Write City Geography Markup
- Make GIFs
- Create and Verify JWTs
- Write Excel Files
- Efficiently Parse Character Sequences
- Robustly Convert Unicode to ASCII
- Perform a Nearest Neighbor Search
- Solve Shortest Path Problems
- Generate QR Codes
- Select the Most Probable Combinations of Elements
- Parse and Generate URIs
- Read and Write Fixed Length Files
- Drive a Rule Engine
- Extract Links from Plain Text
- Do More with Dates and Times
- Represent Units of Storage
- Mask Sensitive JSON
- And More!
- The code in this repository is all licensed under Apache 2.0.
- The licensing info of the JDK this is derived from is copied over into the image this creates.
- All 3rd party libraries have licensing specified in their POMs and you can find a generated report on that licensing here and in the target/reports folder.