Peter Kriens schrieb:
> PN> adapted in order to support dynamic loading, very close to OSGi
> So why not use OSGi in the first place?

Sorry, I've overlooked your question.

As Peter already said, that was a design decision of mine. One reason is 
that I'm not into OSGi. Also, I wanted to keep development of plugins 
as simple as possible. IMHO, OSGi is overkill just adding complexity 
for features that are not needed in a build system. Mainly, I'm 
referring to runtime deployment and undeployment of components. OK, you 
can argue, that during the build, a new plugin may be created, which, 
using OSGi, could be inserted into the build system at runtime. But 
after doing that, you'll have to rebuild the rule base. Therefore, 
you'll have to cancel the evaluation of the current rule base and start 
over with a newly built working memory. In the end, you can just as 
well restart the whole container ... :)

The other thing is that Loom currently as near-zero dependency on the 
container it's running in. That's one of the benefits of IoC and 
Dependency Injection. This also means, that the code can be reused 
almost without any modification after switching the container (e.g. 
after switching to OSGi, which I still think is a bad idea, but if 
everyone wants to do so, I won't block everything -- it's more 
important to join forces and get that thing rolling, than to dispute 
philosophical questions :)

The last thing: No matter, what container you use, Silk is not just a 
modular application. It's a plugin-based application. You *will* need 
to write a framework around the container, because a plugin, in my 
understanding, is more than just a bunch of Java classes. That's an 
issue that HiveApp (an extension to HiveMind written for Loom and now 
being used in three projects) addresses. The ClassLoader is just there 
to minimise the probability that after a major upgrade third-party 
plugins fail because of version conflicts. The availability of plugins 
is essential to a build system and breaking existing plugins with each 
release must be avoided as much as possible. True, such a thing would 
have been present in OSGi without having to do anything about it.

Cheers,
   Raffi

-- 
The difference between theory and practice is that in theory, there is
no difference, but in practice, there is.

[EMAIL PROTECTED] · Jabber: [EMAIL PROTECTED]
PGP Key 0x5FFDB5DB5D1FF5F4 · http://keyserver.pgp.com

_______________________________________________
OSGi Developer Mail List
[email protected]
http://www2.osgi.org/mailman/listinfo/osgi-dev

Reply via email to