Skip to content

EchoSVG 0.1.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@carlosame carlosame released this 06 Dec 17:35
· 460 commits to master since this release
v0.1.2

Highlights

Refactor classes that use deprecated Security APIs

Since Java 17, the Security Manager is deprecated for removal (see JEP 411). The classes using the Security Manager API have been refactored and deprecated as needed. See #36.

A few methods which have deprecated-for-removal classes in their signature will be removed in the next Milestone Release (this release brings non-deprecated replacement methods that could be used instead). If your code is affected by the deprecations and removals, look at the javadoc comments for guidance in the migration.


Improved CleanerThread

Class CleanerThread now attempts to clean up itself, and has gained the static shutdown() method which can be used to shut it down.

In a related change, HaltingThread was improved with a volatile beenHalted field (synchronization was removed).


text-align="center" now works in SVG 1.2 flow elements

The attribute text-align="center" is now supported in SVG 1.2 flow elements. Although those elements are long-deprecated from SVG, it was confusing that they were using an attribute value that has no correspondence with CSS: text-align="middle". See #33 for details.


Static analysis fixes

A number of small bugs have been fixed, mainly thanks to static analysis tools (primarily Spotbugs but also plain compiler warnings). Several issues (especially synchronization problems) still remain though.

The fixes are mainly about NullPointerExceptions, wrong comparisons and improved numeric rounding.


JPMS modularity

A few required modules are now transitive, which should ease the use of the modules.


Detail of changes

  • JPMS: require transitivity in a few modules.
  • Refactor classes that use deprecated Security APIs, deprecate as needed. #36
  • svg1.2: support attribute text-align="center" in SVG 1.2 flow elements. #33
  • anim: avoid potential NPE.
  • anim: remove protected fields that were shadowing superclass fields.
  • awt: avoid an undesirable cast in AbstractRable.
  • awt: implement SVGComposite.hashCode()
  • awt: fix rounding in a mathematical expression.
  • awt: prevent three NPEs.
  • awt: change class DisplacementMapRed.TileOffsets visibility to public.
  • awt: remove commented code.
  • bridge: implement DefaultXBLManager.DefinitionRecord.hashCode()
  • bridge: fix conditional in GlyphLayout.
  • gvt: fix implementation of GVTAttributedCharacterIterator.getRunLimit(Set)
  • gvt: avoid potential NPE in DynamicRenderer.
  • svgrasterizer: prevent NPE.
  • transcoder: return null on null input in WMFTranscoder.getCompatibleInput()
  • transcoder: remove unneeded import.
  • util: use a volatile field in HaltingThread.
  • util: add a method to shut down CleanerThread, use a timeout when retrieving the queue.
  • util: prevent two NPEs in ClassFileUtilities.
  • Tests: deploy a new image comparison infrastructure.
  • Tests: update test references with more accurate images.
  • Tests: replace resources for scripting jar files.
  • Tests: use free font in flowTextAlign test, accept Xfce variation on systemColors.
  • Tests: fix scripting/domSVGColor test.
  • Tests: fix samples/tests/spec12/text/flowText4.svg
  • Tests: improved error message in MemoryLeakTest.
  • Tests: throw error that was being ignored in JPainterCompare.
  • Javadoc fixes.
  • svgom-api and smil-api now have their own Git repository.
  • Upgrade to css4j 3.7.0.
  • Upgrade to Mozilla Rhino 1.7.14-RC1.
  • Upgrade to xml-dtd 4.0.0.
  • Upgrade to JMH 1.32.
  • Upgrade JUnit version to 4.13.2.
  • Upgrade extraJavaModuleInfo plugin to 0.9.
  • Gradle: various improvements.
  • Add a build CI workflow.
  • Add a workflow to publish packages in Github.
  • Add a changes.sh release helper script.