Our great sponsors
-
zephyr
Zephyr is an open-source Java-based plugin framework with smart dependency management, a modular design, and a small footprint. (by sunshower-io)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
For some of our weirder components, I have extended Vaadin's RPC/remoting with Condensation (https://www.npmjs.com/package/@aire-ux/aire-condensation). You can use JAX-RS/Jackson/whatever on the backend, but the client-side condensation works seamlessly with its server-side counterpart: https://github.com/sunshower-io/sunshower-arcus/tree/master/condensation/condensation-core. Combining these really files off the some of the burrs you might encounter writing really crazy components (they're all permissively licensed and available in Maven Central: https://mvnrepository.com/artifact/io.sunshower.arcus/condensation-core). For 99% of applications you're not going to need to bring any of this stuff in, but it's available if you want it.
Vaadin's transparent synchronization of Lit properties and lifecycle with the backend components is one of my favorite aspects of any technology ever. A (relatively minor) downside is that, while making any modification to the Lit/client side is immediate, making some modifications to the server side requires either a restart or a technology like JRebel, HotSwapAgent, or Spring Boot Devtools (quick plug here, Zephyr, but you currently have to use Zephyr in your project. I suppose I could create plugins for IDEs and build-tools that use Zephyr's classloading, but they don't exist now: https://www.reddit.com/r/java/comments/vq1g1u/whipped_up_a_lifereload_plugin_for/)
Sorry. I was in shock because every time when request like this happened we asked a question about an API and if did not get anything we just told it's not possible/sustainable and client accepted it. Never I was forced to do things like that. I never would have guessed somebody does that besides of course data scrapping or SEO bots or something like that. I can't think of other solution if you really have to do that. Btw. maybe you know but if you are scrapping JS heavy apps maybe https://playwright.dev/java/ (or for other langs) would be of greater help.