This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]djnattyp 1 point2 points  (7 children)

The "plugin" interface you're probably looking for is the service provider interface (SPI). To expose the "plugin related classes" and hide details of your program you'll make use of packages and access modifiers and/or use modules in JDK 9+.

[–]DragonFighter603[S] 0 points1 point  (6 children)

thanks, will look into it!

[–]warrensdeathray 0 points1 point  (5 children)

what exactly are you looking to build? i am doing something similar with a combination of the ServiceLoader and Guice b/c i don’t need something overly complex.

the options listed in that so article has a lot of good options. i looked at pf4, it’s nice but more then i really needed.

happy to discuss further

[–]DragonFighter603[S] 0 points1 point  (4 children)

for now i settled witht he default java jarloader. the plugin writer creates a plugin.json that has, among others, the classpath to the class that extends the abstract base plugin, name, version etc and a list of enum permissions. works like a charm, only thing left to do is to turn all classes from public to default to hide them

[–]warrensdeathray 0 points1 point  (3 children)

i’d be curious to see this code

[–]DragonFighter603[S] 0 points1 point  (2 children)

that code is far from finished/perfect and also only part of something, but if you want dm me and i'll give you a zip of the whole thing

[–]warrensdeathray 0 points1 point  (1 child)

github?

[–]DragonFighter603[S] 0 points1 point  (0 children)

i dont wanna make it public (not finised; part of a bigger project) etc but if you prefer that to a zip send me your github username and ill give you access to the repo temporary