hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse Yates (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-4336) Convert source tree into maven modules
Date Wed, 07 Dec 2011 19:58:40 GMT

    [ https://issues.apache.org/jira/browse/HBASE-4336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13164654#comment-13164654
] 

Jesse Yates commented on HBASE-4336:
------------------------------------

Started working on this. I have a fork up on github with hbase split into multiple modules
(https://github.com/jyates/hbase) - a patch is just too massive to reasonably look at. Currently,
the fork compiles and tests. Packaging is coming next.

How do we want to bundle each of the pieces? I was thinking having jars for core, core-tests
(so the minicluster can be used across modules), security, server and test. 

The test module will be where we have the 'api level tests' discussed on dev@ recently. These
are things that are run against a cluster and just test the interfaces. Here is where we would
use failsafe to spin up a minicluster for local testing or connect out to a real cluster (all
of this would in follow-on JIRA(s)). Its _not_ intended as the place to put all the tests.


The assemble module would then combine all of these into a tar, rpm, etc. as needed.

Profiles would necessarily be split across multiple modules as each module will require different
things and I don't want to add in the same dependency multiple times in different modules.
This works nicely with Gary's original comment about just having the secure hadoop stuff in
the security module (translates to having a the profile just in that module). The alternative
would be to exclude certain dependencies in modules that don't need them, amounting to about
the same amount of work across modules, but harder to reason about.

Feedback is appreciated.
                
> Convert source tree into maven modules
> --------------------------------------
>
>                 Key: HBASE-4336
>                 URL: https://issues.apache.org/jira/browse/HBASE-4336
>             Project: HBase
>          Issue Type: Task
>          Components: build
>            Reporter: Gary Helmling
>            Priority: Critical
>             Fix For: 0.94.0
>
>
> When we originally converted the build to maven we had a single "core" module defined,
but later reverted this to a module-less build for the sake of simplicity.
> It now looks like it's time to re-address this, as we have an actual need for modules
to:
> * provide a trimmed down "client" library that applications can make use of
> * more cleanly support building against different versions of Hadoop, in place of some
of the reflection machinations currently required
> * incorporate the secure RPC engine that depends on some secure Hadoop classes
> I propose we start simply by refactoring into two initial modules:
> * core - common classes and utilities, and client-side code and interfaces
> * server - master and region server implementations and supporting code
> This would also lay the groundwork for incorporating the HBase security features that
have been developed.  Once the module structure is in place, security-related features could
then be incorporated into a third module -- "security" -- after normal review and approval.
 The security module could then depend on secure Hadoop, without modifying the dependencies
of the rest of the HBase code.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message