|
From: Kevin D. <kev...@ya...> - 2006-09-17 17:08:27
|
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. 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. 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. 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 > _______________________________________________ > 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 > > > ------------------------------------------------------------------------ > > _______________________________________________ > 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 _______________________________________________ Platonos-plugeng-dev mailing list Pla...@li... https://lists.sourceforge.net/lists/listinfo/platonos-plugeng-dev --------------------------------- All-new Yahoo! Mail - Fire up a more powerful email and get things done faster. |