jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felix Meschberger <fmesc...@gmail.com>
Subject Re: spellchecker
Date Tue, 02 Oct 2007 08:06:51 GMT
Am Montag, den 01.10.2007, 16:01 +0200 schrieb Marcel Reutegger:
> Felix Meschberger wrote:
> > Just another question: Could the spellchecker be instantiated and
> > injected into a running Jackrabbit instance ?
> 
> AFAIK jackrabbit is not that flexible. the configuration is rather fixed. but 

Yes, this is a long standing issue with Jackrabbit, actually ...

> maybe we can come up with a list of components that can be configured or 
> deployed at runtime, while some of the components like persistence managers are 
> probably only configurable at startup.

We could add some sort of Module API, which would allow to inject
additional Jackrabbit functionality. Of course, the internal Jackrabbit
API available to such modules must be well defined and not just be "all
Jackrabbit-core packages", because this would prevent effective
modularization.

Regarding PersistenceManagers: As these are used to back workspaces, the
question is, do we want to implement API to shutdown workspaces - not
just stopping idle workspaces but a method to stop a workspace, which
may include forcing sessions (which is allowed as per the Spec !). And I
am very much in favor of such a flexible solution, where we may "inject"
persistence managers by just creating the workspaces (actually creating
a workspace in this respect would be starting a workspace) and removing
them again by stopping the workspaces.

This would very much enhance the modularity and extensibility of
Jackrabbit.

Again, this turns out to be a question of an internal API. Such an API
is essential to modularize Jackrabbit as a whole. And to be sure, this
is not the same as the Jackrabbit API, which is intended to be used by
client applications. This is an API used solely to extend Jackrabbit
instances itself.


> what are the requirements to be able to inject such a bundle? do we have to 
> implement certain interfaces or is a setter method sufficient?

There is no requirement other than the mentioned Jackrabbit extension
API. Whatever Jackrabbit provides to extend it may be used by bundles to
plug into Jackrabbit.

Regards
Felix


Mime
View raw message