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

Rick Hillegas edited comment on DERBY-6945 at 12/17/17 9:33 PM:
----------------------------------------------------------------

Thanks, Stephen. I'm afraid I don't know how to apply that advice to the Derby 
codebase as it is currently structured. Some re-structuring may be necessary as 
part of modularization. It is possible that we will end up with something which 
can be better fitted to your scheme. Your advice will help inform that 
re-structuring, if it turns out to be necessary.

Here is the situation for the derbyclient.jar. There is a top-level directory 
in the source tree, which falls outside the package namespace. It is called 
trunk/java. Here are its code-bearing subdirectories:

  client
  drda
  engine
  optional
  shared
  tools

The subtree underneath client (which holds all of the derbyclient.jar code) 
looks like this:

{noformat}
  org/
     apache/
           derby/
                client
                jdbc
{noformat}

As you can see, there is no single super package for all of derbyclient 
underneath the org.apache.derby prefix. There are two parallel highest 
packages, client and jdbc.

We could, of course, insert another level inbetween the org.apache.derby prefix 
and the client and jdbc sisters. But this would result in changes to Derby's 
public api, which I am reluctant to make due to Derby's strong backward 
compatibility promises.



was (Author: rhillegas):
Thanks, Stephen. I'm afraid I don't know how to apply that advice to the Derby 
codebase as it is currently structured. Some re-structuring may be necessary as 
part of modularization. It is possible that we will end up with something which 
can be better fitted to your scheme. Your advice will help inform that 
re-structuring, if it turns out to be necessary.

Here is the situation for the derbyclient.jar. There is a top-level directory 
in the source tree, which falls outside the package namespace. It is called 
trunk/java. Here are its code-bearing subdirectories:

  client
  drda
  engine
  optional
  shared
  tools

The subtree underneath client (which holds all of the derbyclient.jar code) 
looks like this:

{noformat}
  org/
     apache/
           derby/
                client
                jdbc
{noformat>

As you can see, there is no single super package for all of derbyclient 
underneath the org.apache.derby prefix. There are two parallel highest 
packages, client and jdbc.

We could, of course, insert another level inbetween the org.apache.derby prefix 
and the client and jdbc sisters. But this would result in changes to Derby's 
public api, which I am reluctant to make due to Derby's strong backward 
compatibility promises.


> Re-package Derby as a collection of jigsaw modules
> --------------------------------------------------
>
>                 Key: DERBY-6945
>                 URL: https://issues.apache.org/jira/browse/DERBY-6945
>             Project: Derby
>          Issue Type: Improvement
>    Affects Versions: 10.13.1.2
>            Reporter: Rick Hillegas
>         Attachments: derby-6945-01-aa-remove_derbyPreBuild_dep.diff, 
> derby-6945-02-ab-newDerbySharedJar.diff, jdeps.out.tar
>
>
> Once we commit to building with Java 9 (see DERBY-6856), we should consider 
> re-packaging Derby as a set of jigsaw modules. This would result in a 
> different set of release artifacts. This might be a good opportunity to 
> address the Tomcat artifactory issues raised by issue DERBY-6944.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to