slachiewicz opened a new issue, #1093:
URL: https://github.com/apache/maven-doxia/issues/1093

   ### New feature, improvement proposal
   
   Two independent bits of weight in modules that sit on the classpath of every 
Maven site
   build. Neither is urgent; both are small.
   
   #### 1. `LineBreaker` is dead public API
   
   `doxia-core/src/main/java/org/apache/maven/doxia/util/LineBreaker.java` is 
the only file
   that mentions the name. Not in any other source, not in a test, and not in 
any other file
   type — checked across a checkout of the Maven repositories, not just Doxia.
   
   It is also written to lose data if it ever were used. The write loop ends in
   `catch (Exception e) { // TODO: log }`, which swallows runtime exceptions as 
well as
   `IOException`, and `flush()` swallows `IOException` with the javadoc saying 
so outright.
   A failing writer would produce a silently truncated file and a green build.
   
   Removing it is better than fixing it. It is `public` in a published module, 
so:
   deprecate for removal now, drop it alongside the other next-major items 
(#1074, #1092).
   
   #### 2. commons-io is a compile dependency of six modules for seven call 
sites
   
   `doxia-core` and all five modules declare `commons-io` at compile scope. 
Main-source usage
   in full:
   
   | Call | Sites |
   | --- | --- |
   | `IOUtils.copy(Reader, Writer)` | `XdocParser`, `FmlParser`, 
`Xhtml5Parser`, `AptParser` |
   | `IOUtils.toString(Reader)` | `AbstractXmlParser`, `MarkdownParser` |
   | `IOUtils.toByteArray(InputStream)` | `AbstractXmlParser` |
   
   The Java 8 baseline rules out `Reader.transferTo` and 
`InputStream.readAllBytes`, so this
   needs either a small helper or an inlined loop. Two options:
   
   - Inline a `char[]` copy loop at the seven sites. No new API, no new class.
   - Put a package-private helper in `doxia-core`, which every module already 
depends on
     through `doxia-modules/pom.xml`. Fewer copies, but it wants a home that is 
not a
     published `util` package.
   
   Worth doing together with a look at the seven test-source usages, which can 
keep
   commons-io at test scope if that is easier.
   
   *This issue was created with AI assistance.*
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to