[
https://issues.apache.org/jira/browse/GORA-257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13706144#comment-13706144
]
Lewis John McGibbney commented on GORA-257:
-------------------------------------------
Regardless of which of the options we take here... addressing this task is
major in order for us to stabilize trunk.
Right now I feel that this may be a bit of a tricky one. The experience I have
with classloading is what I know from updating and adding to documentation over
in Nutch [0][1], however Gora is another kettle of fish.
[~sstults] If I am right, Nutch does something baring more similarity to the
latter of your proposals, where effectively each plugin is given it's own Nutch
(custom) classloader which is initiated and external dependencies are added via
a manifest file.
I do not know which solution you've proposed sounds more attractive or will
perform better, but what I do favour here is simplicity (duh). To me it would
seem that developing this in a standardized, module-by-module manner would work
best e.g. the latter of your proposals.
I am actively looking to see if there is any obvious precedent e.g. within
projects such as Lucene, etc. which would provide some insight for this one?
[0] http://wiki.apache.org/nutch/WhatsTheProblemWithPluginsAndClass-loading
[1]
http://wiki.apache.org/nutch/WhichTechnicalConceptsAreBehindTheNutchPluginSystem
> Use separate class loaders for each module
> ------------------------------------------
>
> Key: GORA-257
> URL: https://issues.apache.org/jira/browse/GORA-257
> Project: Apache Gora
> Issue Type: Improvement
> Components: gora-core, maven, storage
> Reporter: Scott Stults
> Fix For: 0.5
>
>
> Some modules require conflicting versions of dependent libraries. For
> example, HBase and Solr require conflicting versions of the Zookeeper client
> library. In order to use both stores in the same VM they should each load and
> use their own version of the library. Decoupling the module dependencies from
> the core of Gora allows for independent versioning as well as multiple
> versions.
> To accomplish this, each module needs its own class loader. I think this
> could be done in one of two places: Either Gora core creates the class loader
> and assigns it to a module, or each module starts with a pared-down class
> with no external library dependencies and creates a class loader for the rest.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira