Hiya
Cool project, I like the examples and good doco too. I haven't had much of
a look at the source code but I see you are using ant and inline copies of
dependency source trees. Do you want a hand mavenizing this? Perhaps
migration to git (perhaps on github?).
Cheers
Dave
Hello David
Thanks for your comment!
Concerning maven, I observe that many projects are switching to it. To be honest, I prefere not to switch at the moment, as the task of configuering ant is already done (writing the ant build file seems to be a major drawback of ant?) and it works well.
Concerning git. For my use case (just a single branch) I really prefer svn, it is more straight forward. Or maybe I am just getting older :)
As you have correctly observed, the drawj2d jar file contains all the dependencies. This is unusual, but it simplifies the use in restricted environments. At source level, some of the libraries used are slightly modified: fixes applied, enhancements, removal of unused parts (e.g. to get rid of dependencies), removal of preprocessor macros, modifications for JDK8/11 compatibility, etc.
Having said that: If someone is interested to actively participate in the project, I am happy to reconsider these old decisions.
Cheers,
Adrian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2019-04-28
At source level, some of the libraries used are slightly modified: fixes applied, enhancements, removal of unused parts (e.g. to get rid of dependencies), removal of preprocessor macros, modifications for JDK8/11 compatibility, etc.
erk, that makes things very difficult especially to migrate to later versions of the dependent libraries with their own fixes and enhancements. I'd like to see some docs on what versions of the dependent libraries are used and the patches made. Does that exist?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The libraries are listed in the program documentation. The version number (and patches made) may be found in the source code or the svn commit messages. An incomplete overview follows.
Unmodified libraries are easier to update, of course. E.g. java-getopt, EpsGraphics, JLatexMath, svgSalamander. Sometimes a few changes were necessary. The preferred way was to ask the upstream project to include the changes. EvalEx, OrsonPDF and JFreeSVG authors have been so kind to accept or provide an even better solution. Thus these libraries correspond to the upstream projects again or are very close (EvalEx).
Some projects are not actively maintained. There are pull requests (by others) for FreeHEP Graphics2D, but the master branch has not changed for years. The unmodified library incorrectly renders JLatexMath formulas, as an example. While there is not much work to maintain the library within drawj2d, the dependency upon this excellent library might turn into a problem one day, if nobody starts actively maintaining that complex project. If necessary drawj2d could switch to OrsonPDF and JFreeSVG. These optional backends are already supported, but not fully equivalent to freehep-vectorgraphics yet (limited support for transformations in OrsonPDF).
The interpreter library Hecl also is not developed further. No work to update thus. Drawj2d has dropped the Java ME part and added unicode support. The library is kind of integral part of drawj2d.
The only library that is hard to keep in sync with upstream is PDFRenderer. Maybe a different approach might be appropriate for it.
Last edit: A. Vontobel 2019-06-19
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hiya
Cool project, I like the examples and good doco too. I haven't had much of
a look at the source code but I see you are using ant and inline copies of
dependency source trees. Do you want a hand mavenizing this? Perhaps
migration to git (perhaps on github?).
Cheers
Dave
Hello David
Thanks for your comment!
Concerning maven, I observe that many projects are switching to it. To be honest, I prefere not to switch at the moment, as the task of configuering ant is already done (writing the ant build file seems to be a major drawback of ant?) and it works well.
Concerning git. For my use case (just a single branch) I really prefer svn, it is more straight forward. Or maybe I am just getting older :)
As you have correctly observed, the drawj2d jar file contains all the dependencies. This is unusual, but it simplifies the use in restricted environments. At source level, some of the libraries used are slightly modified: fixes applied, enhancements, removal of unused parts (e.g. to get rid of dependencies), removal of preprocessor macros, modifications for JDK8/11 compatibility, etc.
Having said that: If someone is interested to actively participate in the project, I am happy to reconsider these old decisions.
Cheers,
Adrian
erk, that makes things very difficult especially to migrate to later versions of the dependent libraries with their own fixes and enhancements. I'd like to see some docs on what versions of the dependent libraries are used and the patches made. Does that exist?
The libraries are listed in the program documentation. The version number (and patches made) may be found in the source code or the svn commit messages. An incomplete overview follows.
Unmodified libraries are easier to update, of course. E.g. java-getopt, EpsGraphics, JLatexMath, svgSalamander. Sometimes a few changes were necessary. The preferred way was to ask the upstream project to include the changes. EvalEx, OrsonPDF and JFreeSVG authors have been so kind to accept or provide an even better solution. Thus these libraries correspond to the upstream projects again or are very close (EvalEx).
Some projects are not actively maintained. There are pull requests (by others) for FreeHEP Graphics2D, but the master branch has not changed for years. The unmodified library incorrectly renders JLatexMath formulas, as an example. While there is not much work to maintain the library within drawj2d, the dependency upon this excellent library might turn into a problem one day, if nobody starts actively maintaining that complex project. If necessary drawj2d could switch to OrsonPDF and JFreeSVG. These optional backends are already supported, but not fully equivalent to freehep-vectorgraphics yet (limited support for transformations in OrsonPDF).
The interpreter library Hecl also is not developed further. No work to update thus. Drawj2d has dropped the Java ME part and added unicode support. The library is kind of integral part of drawj2d.
The only library that is hard to keep in sync with upstream is PDFRenderer. Maybe a different approach might be appropriate for it.
Last edit: A. Vontobel 2019-06-19