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

Mike McGann commented on DAFFODIL-2683:
---------------------------------------

The initial changes have been made and all tests pass. To see a preview of the 
changes, get the code from the following branch:

[https://github.com/mike-mcgann/daffodil/tree/daffodil-2683-unsplit-packages]

Then, refactor the code by running the following script:
{code:java}
xsrc/test/scripts/refactor/refactor.sh{code}
Undo the changes with:
{code:java}
xsrc/test/scripts/refactor/git-restore.sh{code}
These files were originally in the src directory but the build for runtime2 
fails if the directory is named src.

The package mappings can be found here:

[https://github.com/mike-mcgann/daffodil/blob/daffodil-2683-unsplit-packages/xsrc/test/scripts/refactor/fix-imports.scala#L11-L18]

runtime1-layers became layers.runtime1 so that it doesn't interfere with 
runtime1.layers. I wasn't sure what was best here and this can be renamed to 
something clearer if desired.

Java service registrations that rely on class name also had to change and this 
likely introduces a breaking change. Should we make this change or should we 
try to preserve the original name in some way?

> Don't split packages across jars - OGSI packaging requirements
> --------------------------------------------------------------
>
>                 Key: DAFFODIL-2683
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2683
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Clean Ups, General, Infrastructure
>    Affects Versions: 3.3.0
>            Reporter: Mike Beckerle
>            Assignee: Mike McGann
>            Priority: Major
>             Fix For: 3.5.0
>
>
> A user wants to use daffodil inside Apache Karaf, which uses OGSi containers.
> Converting a jar to an OGSi container is feasible; however, there is an 
> underlying assumption that a package is not split across such containers. 
> As of daffodil 3.3.0, the package structure is not organized this way. The 
> packages are orthogonal to the modules. 
> For example org.apache.daffodil.processors is split across 6 modules:
>  * daffodil-io
>  * daffodil-lib
>  * daffodil-macro-lib (which shouldn't create a jar, but still it mentions 
> the package)
>  * daffodil-runtime1
>  * daffodil-runtime1-unparser
>  * daffodil-tdml-lib (only in test code, which shouldn't impact the jar)
> The requirement is for each package to end up in exactly and only one Jar.
> This ticket possibly interacts with other refactoring tickets that are open 
> such as DAFFODIL-2536. 



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

Reply via email to