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

John Hewson updated PDFBOX-2680:
--------------------------------
    Description: 
In PDFBOX-2580 Maruan mentioned that rendering and printing classes were 
unusual in that they were not in the util package, which made me wonder if some 
of the classes in util might be better of being in another package. Since the 
command line utilities were moved into the tools package, util has become the 
home of helper classes such as Matrix and Hex. However it's also home to some 
classes which were related to the old command line tools and would now be 
better off elsewhere:

- the 'text' package should contain PDFTextStripper, PDFTextStripperByArea, and 
PDFMarkedContentExtractor. This would remove the cyclic dependency which 
currently exists between 'text' and 'util'. Moving PDFTextStreamEngine to 
'text' would also allow a cyclic dependency between 'contentstream' and 'util' 
to be broken.
- likewise, a new 'multipdf' package could contain PageExtractor, 
PDFCloneUtility, PDFMergerUtility, LayerUtility, Overlay, and Splitter. This 
creates a proper home for classes which handle multiple PDFs and so are not a 
part of PD and ensures a separation of concern between them and the helper util 
classes.

This would give us a cleaner foundation for 2.0 moving forwards and reduce the 
number of Sonar warnings regarding cyclic dependencies.

  was:
In PDFBOX-2580 Maruan mentioned that rendering and printing classes were 
unusual in that they were not in the util package, which made me wonder if some 
of the classes in util might be better of being in another package. Since the 
command line utilities were moved into the tools package, util has become the 
home of helper classes such as Matrix and Hex. However it's also home to some 
classes which were related to the old command line tools and would now be 
better off elsewhere:

- the 'text' package should contain PDFTextStripper, PDFTextStripperByArea, and 
PDFMarkedContentExtractor. This would remove the cyclic dependency which 
currently exists between 'text' and 'util'. Moving PDFTextStreamEngine to 
'text' would also allow a cyclic dependency between 'contentstream' and 'util' 
to be broken.
- a new 'multipdf' package could contain PageExtractor, PDFCloneIUtility, 
PDFMergerUtility, LayerUtility, Overlay, and splitter. This creates a proper 
home for classes which handle multiple PDFs and so are not a part of PD and 
ensures a separation of concern between them and the helper util classes.

This would give us a cleaner foundation for 2.0 moving forwards and reduce the 
number of Sonar warnings regarding cyclic dependencies.


> Move multi-pdf classes from util into their own package
> -------------------------------------------------------
>
>                 Key: PDFBOX-2680
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2680
>             Project: PDFBox
>          Issue Type: Improvement
>    Affects Versions: 2.0.0
>            Reporter: John Hewson
>            Priority: Minor
>
> In PDFBOX-2580 Maruan mentioned that rendering and printing classes were 
> unusual in that they were not in the util package, which made me wonder if 
> some of the classes in util might be better of being in another package. 
> Since the command line utilities were moved into the tools package, util has 
> become the home of helper classes such as Matrix and Hex. However it's also 
> home to some classes which were related to the old command line tools and 
> would now be better off elsewhere:
> - the 'text' package should contain PDFTextStripper, PDFTextStripperByArea, 
> and PDFMarkedContentExtractor. This would remove the cyclic dependency which 
> currently exists between 'text' and 'util'. Moving PDFTextStreamEngine to 
> 'text' would also allow a cyclic dependency between 'contentstream' and 
> 'util' to be broken.
> - likewise, a new 'multipdf' package could contain PageExtractor, 
> PDFCloneUtility, PDFMergerUtility, LayerUtility, Overlay, and Splitter. This 
> creates a proper home for classes which handle multiple PDFs and so are not a 
> part of PD and ensures a separation of concern between them and the helper 
> util classes.
> This would give us a cleaner foundation for 2.0 moving forwards and reduce 
> the number of Sonar warnings regarding cyclic dependencies.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to