Recent

Author Topic: P.I.S.S. a PlugIn-framework / Service-locator Solution  (Read 1535 times)

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
P.I.S.S. a PlugIn-framework / Service-locator Solution
« on: April 30, 2026, 01:43:29 pm »
Hi
<billboard>
First release has been committed, with version 26.0502.1
(P)lug(I)n (S)ervices (S)olution - PluginMgr & ServiceLocator
NO AI was consulted, used or harmed in the production of this Software!
...I might consult AI when I start writing the docs
  :D
</billboard>
First release of my Hybrid Plugin-framework / Service-locator  \o/\ö/\o/
The name P.I.S.S is short for (P)lug(I)n (S)ervices (S)olution 8-)
Regards Benny
« Last Edit: May 04, 2026, 10:08:39 am by cdbc »
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

dbannon

  • Hero Member
  • *****
  • Posts: 3808
    • tomboy-ng, a rewrite of the classic Tomboy
Re: [ANN] P.I.S.S. is landing soon...
« Reply #1 on: April 30, 2026, 03:07:46 pm »
I am not trying to verb(urine) you off or anything Benny, but this is up to version 26 already ?  (bottom of readme).

Is this intended to be used in general Lazarus app ? Like retro fitted to my app ?

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: [ANN] P.I.S.S. is landing soon...
« Reply #2 on: April 30, 2026, 03:57:12 pm »
Hey Davo
First off -
Code: Pascal  [Select][+][-]
  1. 26.0430.1
  2. |   |   +------ Major Version
  3. |   +---------- Month-day Minor Version
  4. +-------------- Build Year (instead of build number)
  5.  
This means the version number can only go up and it's searchable  8)
Quote
Is this intended to be used in general Lazarus app ? Like retro fitted to my app ?
Yes & Yes  :D
THIS app I first built with fpGUI and then retrofitted the pluginmgr. As you can see, it started life as a product of my MVP-framework setup tool  8)
It works with CLI & GUI - I've had it in a production app for 3 years running (read debugging)  ;D
I'm just putting the final touches on a __very__ simple showpiece / demo app & demo plugin... you're running linux right?
Regards Benny

edit: here's a log-session from said app:
Code: Text  [Select][+][-]
  1. <- log=26.0421.1 - fpc=3.3.1 @ 2026/04/23 02:29:55 - mgr=26.0421.1 - debug ->
  2. (*) [29.04.2026 17:21:29.957] PluginMgr: Start, 0, 1,
  3.     "PluginMgr starting... Hello,  -->  (dbg/wait)^"
  4. (|) [29.04.2026 17:21:30.189] PluginMgr: Ready, 6, 11,
  5.     "PluginMgr v26.0421.1 is up and running :o)"
  6. (+) [29.04.2026 17:21:30.189] Presenter: Installed, 2, 3,
  7.     "Service IWordCompletion installed OK"
  8. (+) [29.04.2026 17:21:30.189] Model: Installed, 1, 3,
  9.     "Service IWordsProvider installed OK"
  10. (+) [29.04.2026 17:21:30.189] View: Installed, 3, 3,
  11.     "Service IldgWordsPresenter installed OK"
  12. (+) [29.04.2026 17:21:33.687] View: Installed, 0, 5,
  13.     "Service IKeyValueMap installed OK"
  14. (+) [29.04.2026 17:21:35.334] Maps: Installed, 1, 1,
  15.     "Service ITaskThread installed OK"
  16. (i) [29.04.2026 17:21:35.342] Maps: Info, 1, 1,
  17.     "Loading master and subsidiary accounts..."
  18. (i) [29.04.2026 17:21:35.344] Maps: Info, 1, 1,
  19.     "Indexing foreign keys in master account..."
  20. (+) [29.04.2026 17:21:37.887] View: Installed, 3, 3,
  21.     "Services IViewWordCompletion & IWordUtil installed OK"
  22. (-) [29.04.2026 17:52:46.480] Maps: Uninstalled, 0, 0,
  23.     "Service ITaskThread uninstalled OK"
  24. (-) [29.04.2026 17:52:46.480] View: Uninstalled, 0, 0,
  25.     "Service IKeyValueMap uninstalled OK"
  26. (-) [29.04.2026 17:52:46.480] Presenter: Uninstalled, 2, 3,
  27.     "Service IWordCompletion uninstalled OK"
  28. (-) [29.04.2026 17:52:46.481] Model: Uninstalled, 1, 3,
  29.     "Service IWordsProvider uninstalled OK"
  30. (-) [29.04.2026 17:52:46.481] View: Uninstalled, 1, 1,
  31.     "Service IldgWordsPresenter uninstalled OK"
  32. (-) [29.04.2026 17:52:46.495] View: Uninstalled, 3, 3,
  33.     "Services IViewWordCompletion & IWordUtil uninstalled OK"
  34. (r) [29.04.2026 17:52:46.506] PluginMgr: Fetch, 6, 11,
  35.     "Fetched list of Active Plugins"
  36. (!) [29.04.2026 17:52:46.506] PluginMgr: Done!, 0, 231,
  37.     "PluginMgr is shutting down... Bye."  
« Last Edit: April 30, 2026, 04:08:14 pm by cdbc »
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

dbannon

  • Hero Member
  • *****
  • Posts: 3808
    • tomboy-ng, a rewrite of the classic Tomboy
Re: [ANN] P.I.S.S. is landing soon...
« Reply #3 on: May 01, 2026, 08:29:26 am »
Hmm, my app is cross platform, Linux, Windows, MacOS.

I ask because the original Tomboy, written in C# did have a plugin systems and fairly widely used one. My replacement, tomboy-ng directly implements many of those functions but the plugin approach was popular and attracted a number of contributors.

And its a great way to dismiss some less than sensible requests, "hey, you could implement that yourself".

Davo


Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: [ANN] P.I.S.S. is landing soon...
« Reply #4 on: May 01, 2026, 10:13:12 am »
Hi Davo
It should be pretty much 'agnostic' to what you throw at it, as long as its implemented as interfaces (com/corba/manual).
That was my aim, but I simply don't have the possibility to test on winders & mac... If you're feeling curious, then sneak a peak in the 'zips' folder, it actually contains both binary & source representation of a demo app + plus the compiled P.I.S.S.
I still need to finish 2 files before its release-commit is complete, code-wise.
I will write docs till my fingers turn blue, or almost...
Got questions -- Just ask here  ;D
Regards Benny

edit: I think I'll do a /master-class/ here in this thread, on how to construct a plugin... Which will then be compiled into the new version of 'Plugin in 60 seconds'
« Last Edit: May 01, 2026, 10:18:17 am by cdbc »
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

hedgehog

  • Full Member
  • ***
  • Posts: 116
Re: P.I.S.S. is very close to landing now...
« Reply #5 on: May 01, 2026, 11:40:13 am »
Hi, Benny

It sounds intriguing.
Is it similar to the plugin system in Total Commander, or much cooler?

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: P.I.S.S. is very close to landing now...
« Reply #6 on: May 01, 2026, 11:49:52 am »
Hi
Of course I'd have to say, that it's WAY COOLER than that  :D
It's a very fast PluginMgr & ServiceLocator hybrid, it has loads of tricks "up its sleeve"  8-)
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

Boleeman

  • Hero Member
  • *****
  • Posts: 1158
Re: P.I.S.S. is very close to landing now...
« Reply #7 on: May 01, 2026, 12:39:40 pm »
Benny Christensen a.k.a. cdbc, I thought you were fictitiously "taking the PISS out of something" Haha.

Looks like your P.I.S.S / (P)lug(I)n (S)ervices (S)olution is legit !


Was wondering can it be used like plugins like for Paint.net?
I wanted to make a paint program that uses plugins in a similar fashion to Paint.net.
« Last Edit: May 01, 2026, 12:41:52 pm by Boleeman »

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: P.I.S.S. is very close to landing now...
« Reply #8 on: May 01, 2026, 12:52:25 pm »
Hi
To be honest, I haven't the foggiest about 'Paint.Net' or 'C#'  %)
Let me get the bastard off the ground, then you can have a 'LookSee' for yourself...  ;)
It's partly inspired by Stefan Glienke (Spring4D) 8-) and Some Java Plugin-framework from somewhere  :D
For a while I ran a Servicelocator & Plugin-framework simultaneously, when suddenly I thought -WTHN- merge them 2 sonsofbitches?!?  ...and here we are \o/
Regards Benny
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

Boleeman

  • Hero Member
  • *****
  • Posts: 1158
Re: P.I.S.S. is very close to landing now...
« Reply #9 on: May 01, 2026, 01:02:49 pm »

"get the bastard off the ground, then you can have a 'LookSee' for yourself"

OK

I went to that gitlab site and downloaded PISS.

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: P.I.S.S. is very close to landing now...
« Reply #10 on: May 01, 2026, 02:00:24 pm »
Hi
You really should wait, till at least the release date: 2026.05.02
...As it's __not__ yet complete, I still need to put the finishing touches on the last 2 files  ;D
Regards Benny
(hush:: don't tell nobody, it's a birthday present to myself)  8-)
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: P.I.S.S. is very close to landing now...
« Reply #11 on: May 01, 2026, 05:50:01 pm »
Hi Guys & Gals
Right, so I finished 7 hours early \o/
Go and get IT  ;D
Regards Benny
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

Hansvb

  • Hero Member
  • *****
  • Posts: 910
Re: P.I.S.S. is here...
« Reply #12 on: May 02, 2026, 08:26:31 am »
Happy birthday Benny.

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: P.I.S.S. is here...
« Reply #13 on: May 02, 2026, 08:39:46 am »
Hi Hans
Thanks Mate  8-)
I hope you enjoy the sunshine, I've worked very hard for that  ;D :D O:-) :D :D
Regards Benny
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

cdbc

  • Hero Member
  • *****
  • Posts: 2787
    • http://www.cdbc.dk
Re: P.I.S.S. a PlugIn-framework / Service-locator Solution
« Reply #14 on: May 02, 2026, 08:19:12 pm »
Helloooo
Today I've added the directory layout, that I use on my developing machines.
It's crude but you should get the gist of it  ;)
They're both there, my crude text-original and 'Claude's refined markdown version...
Have fun - Benny
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

 

TinyPortal © 2005-2018