Extend your JVM app at runtime with SPI

  Рет қаралды 871

Jakub Kozłowski

Jakub Kozłowski

Күн бұрын

Пікірлер: 10
@kubukoz_
@kubukoz_ 4 ай бұрын
I spent a lot of time editing this one so I hope y'all like it 😄 What was your favorite part?
@MrDejvidkit
@MrDejvidkit 4 ай бұрын
The amount of effects is balanced. So I like it a lot.
@TonioGela89
@TonioGela89 4 ай бұрын
1) Given how you started I was expecting a sponsor ad at the beginning 2) I like the xckd quote 3) Now that the screen size gets reduced when you say unpopular stuff, u'r a real KZbinr
@kubukoz_
@kubukoz_ 4 ай бұрын
@@TonioGela89 ...but before we get to that part, a word from our sponsor, VMWare...
@davidcrosson
@davidcrosson Ай бұрын
Second time I look to this video, first time without knowing anything about SPI, second time after writing some SPI and everything is clear now. Will use this approach both to modularize our code and to provide a plugin system in order to give third parties a way to extend our software. Just fat jar will be OK for plugins (shading is not needed) as each plugin will have its own class loader. Thanks again for this video !
@stronklytyped
@stronklytyped 4 ай бұрын
Nice video, really liked it
@MrDejvidkit
@MrDejvidkit 4 ай бұрын
Excelent video. Where do you use this in real-world scenarios?
@kubukoz_
@kubukoz_ 4 ай бұрын
I work on a team that (among others) builds Smithy tooling for our org, so we deal with Smithy validators regularly (as a user, knowing how they get loaded can also be useful for troubleshooting IDE setup or whatnot). I imagine you could use SPI to e.g. allow users of an educational website to upload additional exercise packs, but there are non-negligible security concerns in allowing arbitrary byte code to be uploaded for execution. Still, for desktop/CLI apps, plugins distributed by trusted authorities this might be suitable (let's say you're Adobe and some of your partners provide plugins for your app). Scala compiler plugins work in a similar way, although it's not actually SPI - there's an xml/properties file (Scala 2/Scala 3) at a standard location with the FQN of the plugin class.
@davidcrosson
@davidcrosson Ай бұрын
When you write a plugin with dependencies and decide to package it as a fat jar (or a directory of jars), I guess that the Plugin interface must not be included in the packaging, we should use a "provided" scope for this dependency ?
@costathoughts
@costathoughts 4 ай бұрын
Reflection is good and bad is the same way, good to be dynamic and horrible in terms of performance perspective, for who understand the Proxy Pattern knows that is the core of Spring. BUT I strongly recommend take a look about JIT vs AOT.
Smithy4s - project setup and HTTP routes
17:47
Jakub Kozłowski
Рет қаралды 1,9 М.
Call AWS on ANY SCALA RUNTIME with Smithy4s
18:55
Jakub Kozłowski
Рет қаралды 476
Миллионер | 2 - серия
16:04
Million Show
Рет қаралды 1,3 МЛН
إخفاء الطعام سرًا تحت الطاولة للتناول لاحقًا 😏🍽️
00:28
حرف إبداعية للمنزل في 5 دقائق
Рет қаралды 78 МЛН
My Daughter's Dumplings Are Filled With Coins #funny #cute #comedy
00:18
Funny daughter's daily life
Рет қаралды 30 МЛН
10 flavors of Scala's future - Scalar 2024 recap
11:33
Jakub Kozłowski
Рет қаралды 1,5 М.
Smithy - the API definition language
6:14
Jakub Kozłowski
Рет қаралды 4,5 М.
The AWS Lambda Doom Loop
10:09
AJ Stuyvenberg
Рет қаралды 398
HTTP clients for free with Smithy4s
12:38
Jakub Kozłowski
Рет қаралды 1 М.
Explore your Smithy models with the CLI
27:39
Jakub Kozłowski
Рет қаралды 435
The Scala community will exile me for this
13:58
Jakub Kozłowski
Рет қаралды 3,3 М.
Contribute to Metals like Kasper Kondzielski - Scala with Friends
30:26
What I've been up to
8:47
Jakub Kozłowski
Рет қаралды 1,1 М.
Improved reuse in Smithy with Mixins
19:33
Jakub Kozłowski
Рет қаралды 318
Customizing your HTTP spec in Smithy
21:17
Jakub Kozłowski
Рет қаралды 335
Миллионер | 2 - серия
16:04
Million Show
Рет қаралды 1,3 МЛН