accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-3923) VFS ClassLoader doesnt' work with KeywordExecutable
Date Tue, 31 May 2016 22:03:12 GMT


Josh Elser commented on ACCUMULO-3923:

bq. I found a blog post from two years ago, but it doesn't cover anything about KeywordExecutable.

KeywordExecutable is the Google AutoService stuff that [~ctubbsii] wired up for most (all?)
of the `accumulo <foo>` commands. The interface defines the mapping from "<foo>"
to some class "org.apache.accumulo.core.Foo" to run. IIRC, you don't need to know anything
else about how it works. Just do the minimal installation using the local filesystem (accumulo-start.jar)
and put everything else into hdfs (or any other VFS compatible filesystem) and running aforementioned
command ({{accumulo classpath}}) should function. The problem was that ServiceLoader (used
by Google's AutoService) wasn't finding the service definition files that were stored on the
jars being accessed via VFS. Does that help?

> VFS ClassLoader doesnt' work with KeywordExecutable
> ---------------------------------------------------
>                 Key: ACCUMULO-3923
>                 URL:
>             Project: Accumulo
>          Issue Type: Bug
>            Reporter: Josh Elser
>            Priority: Critical
>             Fix For: 1.7.2, 1.8.0
> Trying to make the VFS classloading stuff work and it doesn't seem like ServiceLoader
is finding any of the KeywordExecutable implementations.
> Best I can tell after looking into this, VFSClassLoader (created by AccumuloVFSClassLoader)
has all of the jars listed as resources, but when ServiceLoader tries to find the META-INF/services
definitions, it returns nothing, and thus we think the keyword must be a class name. Seems
like a commons-vfs bug.

This message was sent by Atlassian JIRA

View raw message