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

Martin Desruisseaux updated SIS-596:
------------------------------------
    Description: 
Apache SIS has some internal packages not intended to appear in public API. 
Some internal packages are read by other SIS modules. Those packages must be 
declared by qualified exports. In order to avoid exporting more than intended, 
the following convention can be applied:

* {{org.apache.sis.*.internal}} are strictly internal to the module. Those 
packages should not be exported at all, not even as qualified exports.
* {{org.apache.sis.*.privy}} are internal packages shared by other modules. 
"Privy" means "something that is known or understood by only a select few 
individuals". The "individuals" here are the SIS modules.

This task is about moving some (not all) classes from {{internal}} to {{privy}} 
packages, depending on whether they are used by other modules. The goal is to 
improve encapsulation by avoiding to export some classes that are internal 
mechanic even from the point of view of other SIS modules.

  was:
Apache SIS has some internal packages not intended to appear in public API. 
Some internal packages are read by other SIS modules. Those packages must be 
declared by qualified exports. In order to avoid exporting more than intended, 
the following convention can be applied:

* `org.apache.sis. ... .inernal` are strictly inernal to the module. Those 
package should not be exported at all, not even as qualified exports.
* `org.apache.sis. ... .privy` are internal packages shared by other modules. 
"Privy" means "something that is known or understood by only a select few 
individuals". The "individuals" here are the SIS modules.

This task is about moving some (not all) classes from `internal` to `privy` 
packages, depending on whether they are used by other modules.

The goal is to improve encapsulation by avoiding to export some classes that 
are internal mechanic even from the point of view of other SIS modules.


> Better encapsulation of modules internal
> ----------------------------------------
>
>                 Key: SIS-596
>                 URL: https://issues.apache.org/jira/browse/SIS-596
>             Project: Spatial Information Systems
>          Issue Type: Improvement
>          Components: Coverage, Features, Metadata, Referencing, Utilities
>    Affects Versions: 1.4
>            Reporter: Martin Desruisseaux
>            Assignee: Martin Desruisseaux
>            Priority: Minor
>             Fix For: 1.5
>
>
> Apache SIS has some internal packages not intended to appear in public API. 
> Some internal packages are read by other SIS modules. Those packages must be 
> declared by qualified exports. In order to avoid exporting more than 
> intended, the following convention can be applied:
> * {{org.apache.sis.*.internal}} are strictly internal to the module. Those 
> packages should not be exported at all, not even as qualified exports.
> * {{org.apache.sis.*.privy}} are internal packages shared by other modules. 
> "Privy" means "something that is known or understood by only a select few 
> individuals". The "individuals" here are the SIS modules.
> This task is about moving some (not all) classes from {{internal}} to 
> {{privy}} packages, depending on whether they are used by other modules. The 
> goal is to improve encapsulation by avoiding to export some classes that are 
> internal mechanic even from the point of view of other SIS modules.



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

Reply via email to