|
From: Evert T. jr <ev...@cn...> - 2006-09-17 19:04:06
|
The difference between the EP and E and SP and S is that with EP and E the plugin that defines the EP also makes use of the E. With SP and S any plugin can make use of the services that are connected to the SP. So if plugin A provides a SP called Printer, plugin B could provides an implementation for the Printer service. Then if plugin C wants to make use of the Printer service it declares a dependency on plugin A and then it can use any Printer service that is resolved to plugin A's SP. That is how it works now. Yes it looks a lot like EP and E. If you got another opinion about it how it should be done, let me know. Kevin Duffey wrote: > Ahh, ok, for the services, I figured you would simply define services, > other plugins at runtime do a lookup. They don't declare anything at all > to the plugin that provides the service. But I suppose they do need to > see the interface, and if the plugin providing the service has the > interface, then you do need a way to indicate you need that interface > for your plugin. So the main difference is what then over EP/E? You > essentially do declare an interface in an EP too, so that the E knows > about it. I'm a little lost what we gain with this if we have to declare > a dependency to the plugin providing the service? > > > ----- Original Message ---- > From: Evert Tigchelaar jr <ev...@cn...> > To: pla...@li... > Sent: Sunday, September 17, 2006 10:47:45 AM > Subject: Re: [Platonos-plugeng-dev] new code in cvs, ready for a beta? > > Kevin Duffey wrote: > > Alright, I would say J2ME dont worry about it.. that requires a complete > > rewrite with lots of thought as to the design. Dependency Injection, > > well, I'm not a big fan of it anyway.. that was more appealing to Nathan > > and one other I think on the list, but it would change the style of > > EP/Es and such I think anyway.. but would need some rework to handle > > injection and we would most likely have to design our own implementation > > instead of using Pico or Spring or something (of which Spring would > > enlarge the engine 8 fold.. not kewl). Signed plugins would be VERY nice > > to have... at least if the engine could support signed/unsigned plugins, > > it would be very appealing for companies that want to deploly updatable > > plugins that are signed to ensure they are valid and not some malicious > > developed plugins. Also allows companies to put a "seal of approval" on > > 3rd party plugins for their application. > > For Spring and JSF Dependency Injection works nice but that doesn't mean > it works nice for everything else. I agree with you that we should add > it to the engine. Yes signed plugins should be very nice to have, that > one will stay on the todo list. > > > As for unload/reload, I would have to agree with Nathan from way back.. > > it's almost non-existant in applications other than IDE's to reload > > plugins at runtime. Eclipse even has to unload/reload the chain of > > plugins to make it work, no doubt for the reason you discovered with the > > Class object holding ref's to interfaces and such. That said, it's kewl > > to have, but really, restarting an app is so common in almost every > > platform for updates that its not a big deal to require it. I personally > > would much rather have the auto-update system that you can specify URLs > > to look for a special update.xml or something, then pull down updates, > > and send an EventBus event that indicates updates are ready. From that, > > each user of our engine could have a plugin handle the updates by simply > > restarting (we can even provide that plugin), or they can do some fancy > > GUI stuff if they like. I realize that auto-update is really a separate > > plugin and not code in the engine, but I think it is something we should > > provide. I believe you did that work already right Evert.. my company > > had contracted you to do some of that.. I think you almost had it done? > > If so, I say we package that as part of the 2.0 engine. With over > > 140million people on broadband internet, I think it's ok if the engine > > is 4 or 5MB download because it bundles some plugins including > > auto-update and such. The engine.jar should be tiny as much as possible, > > so distributing our engine is very small. But the bundle people > > download, I am all for it containing helpful and possibly often used > > plugins. > > I also unload a chain of plugins and then reload then except the one we > wanted to unload. > Yes I was working on that, If I am correct I still have all the code so > I could look in that later if we may use it in our project, if your boss > is ok with it. > > > Question on the services... if I have a plugin that requests a service > > and needs to use its class, how does the ClassLoader magic happen? Do > > you intertwine the classloaders for the classes requesting and classes > > being used at the time of the request? I love the idea.. that's why you > > and I talked about it for so long.. the ability to specify a service > > that any plugin can access without directly knowing if its there or not > > is great. Just wanted to understand how the classloader stuff works (I > > suppose I should just download the latest lol). > > > > Thanks Evert. > > Your plugin should only have a dependency on the plugin that defines the > servicepoint, you don't need any dependency on the plugins that provide > the services for the servicepoint. This is because your plugin only > needs to see the interface of the servicepoint. > > > */Evert Tigchelaar jr <ev...@cn...>/* wrote: > > > > OK, just found an old mail of you where you are talking about 2.0. > > > > When I read it I found out that some things are not in the current > > version on cvs. > > > > - No J2ME support. > > - No dependency injection (like injecting configuration). > > - No signed plugins. > > > > But the current engine now has better unload/reload during > runtime but > > normally you want to restart the application when you want to > update 1 > > or more plugins. I could add some code to support restart. I > could add > > it as a shutdown hook in the JVM so just before the JVM is shutdown a > > new one could be started. > > > > Most of the code is simular to the old but it has been restructed > into > > more packages so its not a full drop in replacement for the old one, > > but > > for the most part is should (and I hope) work like before. One > thing I > > added is the Application class, my intension's with that was that it > > contains only the normal things most plugins need, the more internal > > stuff like loading/unloading/starting plugins are in the PluginEngine > > class. > > > > I also added code for supporting services. > > It almost works the same as for extensionpoints and extensions. > > > > > > > > > > > > > > > > > > > > The differents is that with extensionpoints and extensions, the > > extensionpoint plugin uses the extensions and with servicepoints and > > services any plugin can make use of the services thru the > servicepoint. > > > > I think the threading stuff is out, I didn't have any issues with > it at > > least. > > > > So there is still work to do, so I will continue to work on it. > > > > Kevin Duffey wrote: > > > Evert, > > > > > > Sounds like an excellent idea! But before we do, can you think of > > > anything we had originally thought about for a 2.0 version > that you > > > haven't put in yet? You did take out threading of plugin start > > calls right? > > > > > > Good job Evert! Looking forward to one day having some time to > > play with > > > it again!! > > > > > > I'd suggest (and would love to help if I had some dang time) > putting > > > together a couple of example plugins, with some info on them. I > > think I > > > will start a new website on the platonos.org now that I have me > > some mad > > > skillz with ajax/web2.0. It would be a good time to update the > > site with > > > the 2.0 release (after beta and such). > > > > > > Do me a favor, list all the "changes" you made from the 1.0 > > final, and > > > anything else you added, so I can start spreading the word. > > > > > > Thank you bud. > > > > > > > > > > > > */Evert Tigchelaar jr /* wrote: > > > > > > Ok, worked again a bit on the 2.0 engine and I think is quit > > stable now > > > and all features of the 1.5 engine are also in this engine. It > > also now > > > has support for services and servicepoints which is similar to the > > > extension and extensionpoint concept. > > > > > > I also worked on the unload feature a bit. If a plugin is > > unloaded than > > > all other plugins that are resolved to the plugin are unloaded > to so > > > the > > > plugin can successfully unload. After the plugin has been > > unloaded, all > > > the other plugins that were unloaded during the unload are loaded > > again > > > and started when needed (when there start attribute in the plugin > > > tag is > > > set to true). > > > > > > Another feature I worked on was the disable feature. When a > plugin is > > > disabled no other plugins can make use of it and get resolved > > agains it. > > > When a plugin gets disabled then allmost the same is done as > > unloading. > > > > > > I think its now a good time to see where we should go from > here and > > > maybe put the current code in the ppe2 module out as beta and > > listen to > > > feedback. > > > > > > Any ideas, comments? > > > > > > Thanks, > > > Evert > > > > > > > > > ------------------------------------------------------------------------- > > > Using Tomcat but need to do more? Need to support web services, > > > security? > > > Get stuff done quickly with pre-integrated technology to make your > > > job easier > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > > > Geronimo > > > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > _______________________________________________ > > > Platonos-plugeng-dev mailing list > > > Pla...@li... > > > https://lists.sourceforge.net/lists/listinfo/platonos-plugeng-dev > > > > > > > > > > > > ------------------------------------------------------------------------ > > > Get your email and more, right on the new Yahoo.com > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > ------------------------------------------------------------------------- > > > Using Tomcat but need to do more? Need to support web services, > > security? > > > Get stuff done quickly with pre-integrated technology to make > > your job easier > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > > Geronimo > > > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > _______________________________________________ > > > Platonos-plugeng-dev mailing list > > > Pla...@li... > > > https://lists.sourceforge.net/lists/listinfo/platonos-plugeng-dev > > > > > > > ------------------------------------------------------------------------- > > Using Tomcat but need to do more? Need to support web services, > > security? > > Get stuff done quickly with pre-integrated technology to make your > > job easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > > Geronimo > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > _______________________________________________ > > Platonos-plugeng-dev mailing list > > Pla...@li... > > https://lists.sourceforge.net/lists/listinfo/platonos-plugeng-dev > > > > > > ------------------------------------------------------------------------ > > All-new Yahoo! Mail > > > <http://us.rd.yahoo.com/evt=43256/*http://advision.webevents.yahoo.com/mailbeta>- > > > Fire up a more powerful email and get things done faster. > > > > > > ------------------------------------------------------------------------ > > > > ------------------------------------------------------------------------- > > Using Tomcat but need to do more? Need to support web services, security? > > Get stuff done quickly with pre-integrated technology to make your > job easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Platonos-plugeng-dev mailing list > > Pla...@li... > > https://lists.sourceforge.net/lists/listinfo/platonos-plugeng-dev > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642> > _______________________________________________ > Platonos-plugeng-dev mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/platonos-plugeng-dev > |