Across deprecation
By Davy
Across development will be very limited from now on, basically only upgrading to newer Spring Boot versions. Modules that are not used anymore, will be gradually removed as applications will migrate away from Across.
You should definitely not start any new projects with Across.
A more lightweight alternative is Spring Modulith.
Some alternatives
Here are some alternatives for the functionality provided by some of the Across modules.
User authentication and management
Use an off-the-shelf platform for this, it’s essential for security anyway, and it’s near-trivial to use these platforms using Spring Security.
For internal users, Microsoft Entra Id (formerly Azure Active Directory or Azure AAD), and Okta are popular.
For external users, use social logins (Google, Facebook, …) or a Customer Identity and Access Management (CIAM) platform such as Auth0, Azure AD B2C, Amazon Cognito, … Or use a CIAM that also handles the social logins for you.
There are also open source platforms such as Keycloak, Apache Shiro or Spring Authorization Server … But ask yourself: do you really want to manage passwords, multi-factor-authentication, the up-and-coming passkeys, dealing with new vulnerabilities every week, fending off hackers or even nation-state cyberwarfare? In a platform you manage yourself?
There are many others as well, often written in Go:
-
https://github.com/JanssenProject/jans: Project behind Gluu
-
https://github.com/ory (Germany)
-
https://github.com/zitadel/zitadel (Switzerland)
-
https://github.com/goauthentik/authentik (not Go, but Python)
and a whole bunch of others.
Image Server
Self-hosted options, see for instance: https://github.com/topics/image-server
There are lots of Golang-based options, all using libvips
underneath:
-
imgproxy seems like the leader of the pack. It uses the MIT-license for the open source version, and the commercial version has much more features (not that we need those, except perhaps the option to select the resizing algorithm). Supports Azure Blob Storage, which most others don’t.
-
imaginary: development seems to still happen, but there hasn’t been a release since mid-2020, which is also the last time the docker image was updated.
-
Imagor looks like another great option:
-
Written in Go, with an official docker image available (<100MB)
-
Uses Thumbor URL syntax for which there is a good-looking Java client for this, which includes handling the HMAC: https://github.com/square/pollexor
-
Then there is Thumbor itself of course (Python, MIT license).
In Java, there is Cantaloupe (custom license, seems BSD/MIT style).
https://www.imageflow.io/, C++/Rust core library, with a dotNET based server (AGPL).
Scrimage is a Java/Kotlin/Scala library for image manipulation (Apache 2.0 license).
See also: https://github.com/libvips/libvips/wiki/Projects-using-libvips
The Caddy web server has a number of modules for manipulating images, resize, crop, etc: Search for “image” in the list of modules.
File Manager
Most of the functionality of the Across
file-manager-module
has been extracted to a Maven module in the
Foreach Common Java Libraries (FCJL),
with no dependencies on Across, so if you rely on specific behaviour
of the file-manager-module
, such as the
CachingFileRepository
,
this is your best alternative.
Another interesting option is the Apache JClouds blob store support. But you may want to check if you can easily use it with a cloud-native authentication (such as Azure Managed Identities and Azure Workload Identity, or at least with a secret vault.
Admin Panels for entity management
Basically many low-code/no-code tools provide this. There are some open source low-code/no-code tools as well. Supabase for instance has 75kstars on GitHub
If want to stick to the Java world, there is:
- Jmix, based on Vaadin
- Apache Causeway, based on Apache Wicket
Outside the Java world, there’s of course the originals:
The most promising option comes from the front-end / React world:
React-admin (check out the demo’s!), which can easily be combined with a Java backend. The open-source version provides much of what you need, but you probably need the entreprise version: the pricing is fair, and they have a pretty good blog series about how they got to their business model and goals.
Another interesting option is the combination of React-admin, PostgreSQL, and PostgREST. Marmelab has a good blog about that too. Supabase is also based on PostgREST.