[ 
https://issues.apache.org/jira/browse/HBASE-29738?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dev Hingu updated HBASE-29738:
------------------------------
    Description: 
*Context* 

The goal of this task is to initiate the migration of the HBase codebase to the 
*Java Platform Module System (JPMS)* introduced in Java 9.

*Motivation*

Currently, HBase runs entirely on the classpath. Migrating to the module path 
will provide:
 # *Strong Encapsulation:* Better hiding of internal APIs to prevent access of 
Internal APIs to public usages.

 # *Explicit dependenies:* JPMS forces to define dependencies explicitely in 
module-info.java, detecting missing dependencies in compile time rather than 
run time.

 # *Modernization:* Aligning with the broader Java ecosystem which is moving 
towards strict modularity.

*Proposal*

I am attaching a [proposal 
doc|https://docs.google.com/document/d/1h7NxFDSCL5mxu7WWRnzUwAF-G4yRXhWflM-H_OHC4D4/edit?usp=sharing]
 that talks about benefits, drawbacks and challenges for migration.

Our starting point for the whole migration is hbase-client and I've also 
estimated efforts and challenges for migrating hbase-client to JPMS. 

Please review the attached document. I look forward to the community's feedback.

The scope of this ticket is to outline efforts, design and direction of the 
migration task.

  was:
*Context* 

The goal of this task is to initiate the migration of the HBase codebase to the 
*Java Platform Module System (JPMS)* introduced in Java 9.

*Motivation*
**

Currently, HBase runs entirely on the classpath. Migrating to the module path 
will provide:
 # *Strong Encapsulation:* Better hiding of internal APIs to prevent access of 
Internal APIs to public usages.

 # *Explicit dependenies:* JPMS forces to define dependencies explicitely in 
module-info.java, detecting missing dependencies in compile time rather than 
run time.

 # *Modernization:* Aligning with the broader Java ecosystem which is moving 
towards strict modularity.

*Proposal*

I am attaching a [proposal 
doc|https://docs.google.com/document/d/1h7NxFDSCL5mxu7WWRnzUwAF-G4yRXhWflM-H_OHC4D4/edit?usp=sharing]
 that talks about benefits, drawbacks and challenges for migration.

Our starting point for the whole migration is hbase-client and I've also 
estimated efforts and challenges for migrating hbase-client to JPMS. 

Please review the attached document. I look forward to the community's feedback.

The scope of this ticket is to outline efforts, design and direction of the 
migration task.


> [PROPOSAL] Migrating HBase to JPMS
> ----------------------------------
>
>                 Key: HBASE-29738
>                 URL: https://issues.apache.org/jira/browse/HBASE-29738
>             Project: HBase
>          Issue Type: Brainstorming
>            Reporter: Dev Hingu
>            Priority: Major
>
> *Context* 
> The goal of this task is to initiate the migration of the HBase codebase to 
> the *Java Platform Module System (JPMS)* introduced in Java 9.
> *Motivation*
> Currently, HBase runs entirely on the classpath. Migrating to the module path 
> will provide:
>  # *Strong Encapsulation:* Better hiding of internal APIs to prevent access 
> of Internal APIs to public usages.
>  # *Explicit dependenies:* JPMS forces to define dependencies explicitely in 
> module-info.java, detecting missing dependencies in compile time rather than 
> run time.
>  # *Modernization:* Aligning with the broader Java ecosystem which is moving 
> towards strict modularity.
> *Proposal*
> I am attaching a [proposal 
> doc|https://docs.google.com/document/d/1h7NxFDSCL5mxu7WWRnzUwAF-G4yRXhWflM-H_OHC4D4/edit?usp=sharing]
>  that talks about benefits, drawbacks and challenges for migration.
> Our starting point for the whole migration is hbase-client and I've also 
> estimated efforts and challenges for migrating hbase-client to JPMS. 
> Please review the attached document. I look forward to the community's 
> feedback.
> The scope of this ticket is to outline efforts, design and direction of the 
> migration task.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to