frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: PF4J-Plus – ServiceRegistry and EventBus for PF4J Plugin Systems

https://github.com/pf4j/pf4j-plus
1•decebals•1h ago

Comments

decebals•1h ago
I'm the creator of PF4J (https://github.com/pf4j/pf4j) - a plugin framework for adding extensibility to Java applications, used by companies worldwide (https://github.com/pf4j/pf4j#trusted-by).

After years of GitHub discussions, I kept seeing three recurring patterns everyone rebuilds:

1. Service injection - custom PluginFactory boilerplate to wire platform services (Issue #319 is typical: https://github.com/pf4j/pf4j/issues/319)

2. Plugin communication - everyone builds their own EventBus

3. Configuration - no standard approach for plugin-scoped settings

Hit these myself building a JavaFX app. PF4J handled loading, but then 30+ lines of factory code just to inject services.

Built pf4j-plus to standardize this layer:

BEFORE - custom factory everywhere:

    public class MyPluginFactory extends DefaultPluginFactory {
        @Override
        public Plugin create(PluginWrapper wrapper) {
            Plugin plugin = super.create(wrapper);
            if (plugin instanceof MyPlugin) {
                ((MyPlugin) plugin).setGreetingService(App.getGreetingService());
                ((MyPlugin) plugin).setEventBus(App.getEventBus());
            }
            return plugin;
        }
    }
AFTER - declare once:

    PluginManager pm = PlusPluginManagerBuilder.create()
        .serviceRegistry(r -> {
            r.register(GreetingService.class, new DefaultGreetingService());
            r.register(EventBus.class, new DefaultEventBus());
        })
        .build();
Plugins get ServiceRegistryAware, extensions use @Inject.

What it provides:

- ServiceRegistry - shared services for plugins

- EventBus - decoupled communication

- ConfigService - plugin-scoped configuration

Not a DI container replacement. Just standardizes the platform layer you'd build anyway. Especially useful outside Spring (desktop apps, CLI tools, embedded systems).

Early stage - using it in my own projects. Looking for feedback on what platform services are missing.

Repo: https://github.com/pf4j/pf4j-plus

Blog post: https://dev.to/decebals/why-i-built-pf4j-plus-1hl1

FOSDEM 2026 – The Servo project and its impact on the web platform ecosystem [video]

https://fosdem.org/2026/schedule/event/LXFKS9-servo-project-impact/
1•robin_reala•8m ago•0 comments

Robin Williams tickles Coco the monkey

https://www.koko.org/emails/when_robin_met_koko_video/
1•irthomasthomas•10m ago•0 comments

World's Biggest TikToker from Senegal sells company in $900M deal

https://africa.businessinsider.com/local/markets/worlds-biggest-tiktoker-from-senegal-sells-compa...
3•thunderbong•11m ago•0 comments

Free-Coloring-Pages-Generator

https://www.genstory.app/story-template/free-coloring-pages-generator
1•RyanMu•15m ago•1 comments

Ellen MacArthur Foundation Circularity Indicators Flawed?

1•_zero_echo_•17m ago•0 comments

Instructions in papers can manipulate AI reviewers 78-86% of the time

https://www.researchsquare.com/article/rs-8432945
2•evilscript•19m ago•1 comments

Browserbase vs. Kernel: Building a Google Flights Scraper Twice

https://medium.com/tech-stackups/browserbase-vs-kernel-cloud-browser-automation-for-ai-agents-b10...
1•sixhobbits•19m ago•0 comments

Built in 1776, the same year as the US Declaration of Independence

https://en.wikipedia.org/wiki/Hans_Bronsart_von_Schellendorff
1•MargaretBauer•19m ago•4 comments

Ask HN: Easiest way to run Claude Code on my MacBook using my iPhone, remotely?

1•rishabhpoddar•21m ago•1 comments

Show HN: AffordWhere – Affordability by City

https://affordwhere.com
1•justconvert•24m ago•0 comments

Show HN: Rekko – Stripe app to recover failed subscription payments

https://rekko.io
1•AlexRST•25m ago•0 comments

Hard Times in the Delta as Farmers Consider Letting Crops Rot

https://www.nytimes.com/2026/01/25/business/mississippi-delta-farmers-rice-prices.html
1•mitchbob•25m ago•1 comments

Ask HN: How are you handling Gmail ending POP3 and Gmailify?

1•moshetanzer•25m ago•0 comments

UK among 10 countries to build 100GW wind power grid in North Sea

https://www.theguardian.com/environment/2026/jan/26/uk-among-10-countries-to-build-100gw-wind-pow...
4•robtherobber•26m ago•0 comments

Stocks Near Highest Valuations Since 1880

https://www.apolloacademy.com/stocks-near-highest-valuations-since-1880/
1•akyuu•27m ago•0 comments

Asking the best LLMs to design a post-AGI civilization

https://technotes.substack.com/p/asking-various-llms-to-design-a-post
1•thepoet•27m ago•1 comments

Why Broken Access Control Still Dominates the OWASP Top in 2026?

https://auth0.com/blog/why-broken-access-control-still-dominates-owasp-top-10/
1•andychiare•28m ago•0 comments

MapLibre Tile: a modern and efficient vector tile format

https://maplibre.org/news/2026-01-23-mlt-release/
2•todsacerdoti•28m ago•0 comments

Long branches in compilers, assemblers, and linkers

https://maskray.me/blog/2026-01-25-long-branches-in-compilers-assemblers-and-linkers
1•epilys•28m ago•0 comments

Add four Gigabit or 2.5Gbps Ethernet ports to the Raspberry Pi 5 with this board

https://www.cnx-software.com/2025/12/30/add-four-gigabit-or-2-5gbps-ethernet-ports-to-the-raspber...
1•teleforce•32m ago•0 comments

What's still broken in Salesforce document generation?

1•hackertarzen•32m ago•0 comments

Show HN: Panda – Minimalist Meditation Timer App

https://www.chromiumone.com/apps/en-US/meditation-timer-panda/
1•joyhn•33m ago•0 comments

Being a Canadian in America (Eric Migicovsky)

https://ericmigi.com/blog/on-being-a-canadian-in-america-in-2026/
2•smig0•35m ago•0 comments

The Semantic Police: Stop or my compiler will prove a theorem

https://kp9.in/posts/cs/stop-or-my-compiler-will-prove-a-theorem
1•kp995•36m ago•0 comments

Intel's Larabee Legacy

https://thechipletter.substack.com/p/larabees-long-shadow
2•klelatti•38m ago•0 comments

Bro, Enough with the Protein. You're Just Making Expensive Pee

https://thewalrus.ca/enough-with-the-protein/
1•Geekette•38m ago•0 comments

Show HN: Sentry-MCP – Fast Rust MCP server for Sentry (10x less RAM)

https://github.com/utapyngo/sentry-mcp-rs
1•utapyngo•40m ago•0 comments

How to automatically generate a commit message using Claude

https://freek.dev/2978-how-to-automatically-generate-a-commit-message-using-claude
1•freekmurze•43m ago•0 comments

San Francisco Graffiti

https://walzr.com/sf-graffiti
4•walz•45m ago•1 comments

Import Files from Google Drive to Proton Drive

https://proton.me/support/import-files-google-drive
3•doener•46m ago•0 comments