diff --git a/echosvg-all/build.gradle b/echosvg-all/build.gradle
index 92f458fc9..82c24da07 100644
--- a/echosvg-all/build.gradle
+++ b/echosvg-all/build.gradle
@@ -14,6 +14,11 @@ dependencies {
api project(':echosvg-swing')
api project(':echosvg-slideshow')
api project(':echosvg-svgpp')
+ api project(':echosvg-transcoder')
+ api project(':echosvg-transcoder-api')
+ api project(':echosvg-transcoder-svg')
+ api project(':echosvg-transcoder-svg2svg')
+ api project(':echosvg-transcoder-tosvg')
api project(':echosvg-ttf2svg')
api project(':echosvg-svgrasterizer')
@@ -40,6 +45,10 @@ dependencies {
jacocoAggregation project(':echosvg-swing')
jacocoAggregation project(':echosvg-test')
jacocoAggregation project(':echosvg-transcoder')
+ jacocoAggregation project(':echosvg-transcoder-api')
+ jacocoAggregation project(':echosvg-transcoder-svg')
+ jacocoAggregation project(':echosvg-transcoder-svg2svg')
+ jacocoAggregation project(':echosvg-transcoder-tosvg')
jacocoAggregation project(':echosvg-ttf2svg')
jacocoAggregation project(':echosvg-util')
jacocoAggregation project(':echosvg-xml')
@@ -207,6 +216,26 @@ tasks.register('prepareModularSources') {
include(name: '**/*')
}
}
+ ant.copy(todir: "$buildDir/src/io.sf.carte.echosvg.transcoder.api") {
+ fileset(dir: "$rootDir/echosvg-transcoder-api/src/main/java") {
+ include(name: '**/*')
+ }
+ }
+ ant.copy(todir: "$buildDir/src/io.sf.carte.echosvg.transcoder.svg") {
+ fileset(dir: "$rootDir/echosvg-transcoder-svg/src/main/java") {
+ include(name: '**/*')
+ }
+ }
+ ant.copy(todir: "$buildDir/src/io.sf.carte.echosvg.transcoder.svg2svg") {
+ fileset(dir: "$rootDir/echosvg-transcoder-svg2svg/src/main/java") {
+ include(name: '**/*')
+ }
+ }
+ ant.copy(todir: "$buildDir/src/io.sf.carte.echosvg.transcoder.tosvg") {
+ fileset(dir: "$rootDir/echosvg-transcoder-tosvg/src/main/java") {
+ include(name: '**/*')
+ }
+ }
ant.copy(todir: "$buildDir/src/io.sf.carte.echosvg.ttf2svg") {
fileset(dir: "$rootDir/echosvg-ttf2svg/src/main/java") {
include(name: '**/*')
diff --git a/echosvg-all/src/main/java/module-info.java b/echosvg-all/src/main/java/module-info.java
index 312e76399..a9c28c968 100644
--- a/echosvg-all/src/main/java/module-info.java
+++ b/echosvg-all/src/main/java/module-info.java
@@ -38,6 +38,10 @@
requires transitive io.sf.carte.echosvg.svgpp;
requires transitive io.sf.carte.echosvg.swing;
requires transitive io.sf.carte.echosvg.transcoder;
+ requires transitive io.sf.carte.echosvg.transcoder.api;
+ requires transitive io.sf.carte.echosvg.transcoder.svg;
+ requires transitive io.sf.carte.echosvg.transcoder.svg2svg;
+ requires transitive io.sf.carte.echosvg.transcoder.tosvg;
requires transitive io.sf.carte.echosvg.ttf2svg;
requires transitive io.sf.carte.echosvg.util;
requires transitive io.sf.carte.echosvg.util.gui;
diff --git a/echosvg-svgpp/build.gradle b/echosvg-svgpp/build.gradle
index 0bf2b1803..be1a4bdda 100644
--- a/echosvg-svgpp/build.gradle
+++ b/echosvg-svgpp/build.gradle
@@ -3,7 +3,8 @@ plugins {
}
dependencies {
- implementation project(':echosvg-transcoder')
+ implementation project(':echosvg-transcoder-svg2svg')
+ implementation project(':echosvg-i18n')
}
description = 'io.sf.carte:echosvg-svgpp'
diff --git a/echosvg-svgpp/src/main/java/module-info.java b/echosvg-svgpp/src/main/java/module-info.java
index ad4b674d7..346489ba4 100644
--- a/echosvg-svgpp/src/main/java/module-info.java
+++ b/echosvg-svgpp/src/main/java/module-info.java
@@ -16,6 +16,7 @@
* limitations under the License.
*
*/
+
/**
* SVG Pretty Printer Application.
*/
@@ -24,7 +25,7 @@
exports io.sf.carte.echosvg.apps.svgpp;
requires io.sf.carte.echosvg.i18n;
- requires io.sf.carte.echosvg.transcoder;
+ requires io.sf.carte.echosvg.transcoder.svg2svg;
requires java.xml;
diff --git a/echosvg-svgrasterizer/build.gradle b/echosvg-svgrasterizer/build.gradle
index 10253503b..b4064435c 100644
--- a/echosvg-svgrasterizer/build.gradle
+++ b/echosvg-svgrasterizer/build.gradle
@@ -10,7 +10,7 @@ sourceSets {
}
dependencies {
- api project(':echosvg-transcoder')
+ api project(':echosvg-transcoder-svg')
testImplementation project(':echosvg-test')
testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}"
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
diff --git a/echosvg-svgrasterizer/src/main/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverter.java b/echosvg-svgrasterizer/src/main/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverter.java
index e7128d4e0..a962074f8 100644
--- a/echosvg-svgrasterizer/src/main/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverter.java
+++ b/echosvg-svgrasterizer/src/main/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverter.java
@@ -33,7 +33,6 @@
import java.util.List;
import java.util.Map;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.Transcoder;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscoderOutput;
@@ -42,6 +41,7 @@
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
import io.sf.carte.echosvg.transcoder.image.JPEGTranscoder;
import io.sf.carte.echosvg.transcoder.image.PNGTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
import io.sf.carte.echosvg.util.ParsedURL;
/**
diff --git a/echosvg-svgrasterizer/src/main/java/module-info.java b/echosvg-svgrasterizer/src/main/java/module-info.java
index 8bf52ad93..6f364dd9e 100644
--- a/echosvg-svgrasterizer/src/main/java/module-info.java
+++ b/echosvg-svgrasterizer/src/main/java/module-info.java
@@ -22,7 +22,7 @@
module io.sf.carte.echosvg.svgrasterizer {
exports io.sf.carte.echosvg.apps.rasterizer;
- requires transitive io.sf.carte.echosvg.transcoder;
+ requires transitive io.sf.carte.echosvg.transcoder.svg;
requires io.sf.carte.echosvg.i18n;
requires transitive java.desktop;
diff --git a/echosvg-svgrasterizer/src/test/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverterTest.java b/echosvg-svgrasterizer/src/test/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverterTest.java
index 1b70a9ecf..6fb57ddee 100644
--- a/echosvg-svgrasterizer/src/test/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverterTest.java
+++ b/echosvg-svgrasterizer/src/test/java/io/sf/carte/echosvg/apps/rasterizer/SVGConverterTest.java
@@ -40,7 +40,6 @@
import io.sf.carte.echosvg.test.TestUtil;
import io.sf.carte.echosvg.test.image.ImageCompareUtil;
import io.sf.carte.echosvg.test.image.TempImageFiles;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.Transcoder;
import io.sf.carte.echosvg.transcoder.TranscodingHints;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
@@ -48,6 +47,7 @@
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
import io.sf.carte.echosvg.transcoder.image.JPEGTranscoder;
import io.sf.carte.echosvg.transcoder.image.PNGTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Validates the operation of the SVGRasterizer
. It validates the
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AbstractBypassRenderingCheck.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AbstractBypassRenderingCheck.java
index 6f17afcd5..6249a73be 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AbstractBypassRenderingCheck.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AbstractBypassRenderingCheck.java
@@ -30,11 +30,11 @@
import org.w3c.dom.Document;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscoderOutput;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.test.DummyErrorHandler;
import io.sf.carte.echosvg.transcoder.util.CSSTranscodingHelper;
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AltUserSheetRenderingTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AltUserSheetRenderingTest.java
index 5ba6b5210..2a893c1a9 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AltUserSheetRenderingTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/AltUserSheetRenderingTest.java
@@ -20,8 +20,8 @@
import java.net.URL;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Checks for regressions in rendering of SVG with alternate style sheets and/or
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/ResolutionPxMmRenderingTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/ResolutionPxMmRenderingTest.java
index ba7673a5d..daf549f5a 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/ResolutionPxMmRenderingTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/ResolutionPxMmRenderingTest.java
@@ -18,8 +18,8 @@
*/
package io.sf.carte.echosvg.test.svg;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Checks for regressions in rendering of SVG with varying resolution.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAlternateStyleSheetRenderingAccuracyTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAlternateStyleSheetRenderingAccuracyTest.java
index ef0e3cd91..0cc14e3de 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAlternateStyleSheetRenderingAccuracyTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAlternateStyleSheetRenderingAccuracyTest.java
@@ -22,8 +22,8 @@
import org.junit.jupiter.api.Test;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Checks for regressions in rendering of a document with a given alternate
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAnimationRenderingAccuracyTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAnimationRenderingAccuracyTest.java
index f9c080e93..f2123d4ee 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAnimationRenderingAccuracyTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGAnimationRenderingAccuracyTest.java
@@ -19,8 +19,8 @@
package io.sf.carte.echosvg.test.svg;
import io.sf.carte.echosvg.transcoder.ErrorHandler;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.test.DummyErrorHandler;
/**
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGMediaRenderingAccuracyTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGMediaRenderingAccuracyTest.java
index 87db5add8..532bb925f 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGMediaRenderingAccuracyTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGMediaRenderingAccuracyTest.java
@@ -22,8 +22,8 @@
import org.junit.jupiter.api.Test;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Checks for regressions in rendering of a document with a given media.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGRenderingAccuracyTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGRenderingAccuracyTest.java
index c6eb6e6a4..df4428d88 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGRenderingAccuracyTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/SVGRenderingAccuracyTest.java
@@ -32,13 +32,13 @@
import io.sf.carte.echosvg.test.TestLocations;
import io.sf.carte.echosvg.test.image.ImageComparator;
import io.sf.carte.echosvg.transcoder.ErrorHandler;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscoderOutput;
import io.sf.carte.echosvg.transcoder.XMLAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
import io.sf.carte.echosvg.transcoder.image.PNGTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
import io.sf.carte.echosvg.util.SVGConstants;
/**
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/TranscoderSecurityCheck.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/TranscoderSecurityCheck.java
index 96133e827..e2ab55cfe 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/TranscoderSecurityCheck.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/TranscoderSecurityCheck.java
@@ -23,12 +23,12 @@
import java.io.InputStream;
import io.sf.carte.echosvg.transcoder.ErrorHandler;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscoderOutput;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
import io.sf.carte.echosvg.transcoder.image.PNGTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.test.DummyErrorHandler;
/**
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/XHTMLRenderingAccuracyTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/XHTMLRenderingAccuracyTest.java
index 810908d14..a2e9c7904 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/XHTMLRenderingAccuracyTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/test/svg/XHTMLRenderingAccuracyTest.java
@@ -18,9 +18,9 @@
*/
package io.sf.carte.echosvg.test.svg;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.XMLAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Checks for regressions in rendering of SVG inside an XHTML document.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AOITest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AOITest.java
index 4f3bbc3d8..e6388fff4 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AOITest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AOITest.java
@@ -24,10 +24,10 @@
import org.junit.jupiter.api.Test;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_AOI transcoding hint.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AlternateStylesheetTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AlternateStylesheetTest.java
index 68dc8919e..2c4fbfb33 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AlternateStylesheetTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/AlternateStylesheetTest.java
@@ -27,10 +27,10 @@
import org.junit.jupiter.api.Test;
import io.sf.carte.echosvg.test.TestFonts;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_ALTERNATE_STYLESHEET transcoding hint.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DefaultFontFamilyTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DefaultFontFamilyTest.java
index a0261b169..30cd7c80d 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DefaultFontFamilyTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DefaultFontFamilyTest.java
@@ -27,10 +27,10 @@
import org.junit.jupiter.api.Test;
import io.sf.carte.echosvg.test.TestFonts;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_DEFAULT_FONT_FAMILY transcoding hint.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DimensionTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DimensionTest.java
index d4937a950..bd87eb6e0 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DimensionTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/DimensionTest.java
@@ -23,10 +23,10 @@
import org.junit.jupiter.api.Test;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_WIDTH and/or the KEY_HEIGHT transcoding
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/LanguageTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/LanguageTest.java
index 7bae19020..d683a943b 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/LanguageTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/LanguageTest.java
@@ -23,10 +23,10 @@
import org.junit.jupiter.api.Test;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_LANGUAGE transcoding hint.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MaxDimensionTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MaxDimensionTest.java
index 7f8603c52..c9d0ab4dd 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MaxDimensionTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MaxDimensionTest.java
@@ -23,10 +23,10 @@
import org.junit.jupiter.api.Test;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_MAX_WIDTH and/or the KEY_MAX_HEIGHT
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MediaTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MediaTest.java
index b1602394c..5e562f04d 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MediaTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/MediaTest.java
@@ -27,10 +27,10 @@
import org.junit.jupiter.api.Test;
import io.sf.carte.echosvg.test.TestFonts;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_MEDIA transcoding hint.
diff --git a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/ResolutionTest.java b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/ResolutionTest.java
index a3107543d..281de45d9 100644
--- a/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/ResolutionTest.java
+++ b/echosvg-test/src/test/java/io/sf/carte/echosvg/transcoder/image/test/ResolutionTest.java
@@ -23,10 +23,10 @@
import org.junit.jupiter.api.Test;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscodingHints.Key;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* Test the ImageTranscoder with the KEY_RESOLUTION_DPI transcoding hint.
diff --git a/echosvg-transcoder-api/build.gradle b/echosvg-transcoder-api/build.gradle
new file mode 100644
index 000000000..4f8425d41
--- /dev/null
+++ b/echosvg-transcoder-api/build.gradle
@@ -0,0 +1,13 @@
+plugins {
+ id 'echosvg.java-conventions'
+}
+
+dependencies {
+ implementation project(':echosvg-anim')
+}
+
+description = 'io.sf.carte:echosvg-transcoder-api'
+
+publishing.publications.maven(MavenPublication).pom {
+ description = "EchoSVG SVG transcoder API"
+}
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/AbstractTranscoder.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/AbstractTranscoder.java
similarity index 99%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/AbstractTranscoder.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/AbstractTranscoder.java
index 7df55643b..74114ccea 100644
--- a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/AbstractTranscoder.java
+++ b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/AbstractTranscoder.java
@@ -33,4 +33,5 @@ public abstract class AbstractTranscoder extends TranscoderSupport implements Tr
*/
protected AbstractTranscoder() {
}
+
}
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/DefaultErrorHandler.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/DefaultErrorHandler.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/DefaultErrorHandler.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/DefaultErrorHandler.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/ErrorHandler.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/ErrorHandler.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/ErrorHandler.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/ErrorHandler.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/Transcoder.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/Transcoder.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/Transcoder.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/Transcoder.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderException.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderException.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderException.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderException.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderInput.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderInput.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderInput.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderInput.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderOutput.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderOutput.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderOutput.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderOutput.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderSupport.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderSupport.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderSupport.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscoderSupport.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscodingHints.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscodingHints.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/TranscodingHints.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/TranscodingHints.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/XMLAbstractTranscoder.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/XMLAbstractTranscoder.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/XMLAbstractTranscoder.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/XMLAbstractTranscoder.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/BooleanKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/BooleanKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/BooleanKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/BooleanKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/DOMImplementationKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/DOMImplementationKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/DOMImplementationKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/DOMImplementationKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/FloatKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/FloatKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/FloatKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/FloatKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/IntegerKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/IntegerKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/IntegerKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/IntegerKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/LengthKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/LengthKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/LengthKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/LengthKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/PaintKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/PaintKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/PaintKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/PaintKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/Rectangle2DKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/Rectangle2DKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/Rectangle2DKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/Rectangle2DKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringArrayKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringArrayKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringArrayKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringArrayKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringKey.java b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringKey.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringKey.java
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/keys/StringKey.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/package.html b/echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/package.html
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/package.html
rename to echosvg-transcoder-api/src/main/java/io/sf/carte/echosvg/transcoder/package.html
diff --git a/echosvg-transcoder-api/src/main/java/module-info.java b/echosvg-transcoder-api/src/main/java/module-info.java
new file mode 100644
index 000000000..577c02df4
--- /dev/null
+++ b/echosvg-transcoder-api/src/main/java/module-info.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2020-2024 Carlos Amengual
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Transcoder API.
+ */
+module io.sf.carte.echosvg.transcoder.api {
+
+ exports io.sf.carte.echosvg.transcoder;
+ exports io.sf.carte.echosvg.transcoder.keys;
+
+ requires io.sf.carte.echosvg.anim;
+
+ requires transitive java.desktop;
+
+}
diff --git a/echosvg-transcoder-svg/build.gradle b/echosvg-transcoder-svg/build.gradle
new file mode 100644
index 000000000..8709599e3
--- /dev/null
+++ b/echosvg-transcoder-svg/build.gradle
@@ -0,0 +1,17 @@
+plugins {
+ id 'echosvg.java-conventions'
+}
+
+dependencies {
+ api project(':echosvg-transcoder-api')
+ api project(':echosvg-bridge')
+ implementation project(':echosvg-codec')
+ implementation "io.sf.carte:css4j-awt:$css4jAwtVersion"
+ compileOnly "xml-apis:xml-apis:$xmlApisVersion" // Required by Java 8 compat
+}
+
+description = 'io.sf.carte:echosvg-transcoder-svg'
+
+publishing.publications.maven(MavenPublication).pom {
+ description = "EchoSVG SVG image transcoders"
+}
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/ImageTranscoder.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/ImageTranscoder.java
similarity index 99%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/ImageTranscoder.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/ImageTranscoder.java
index c4a4d34a9..1eda4fc46 100644
--- a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/ImageTranscoder.java
+++ b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/ImageTranscoder.java
@@ -34,12 +34,12 @@
import io.sf.carte.echosvg.gvt.renderer.ConcreteImageRendererFactory;
import io.sf.carte.echosvg.gvt.renderer.ImageRenderer;
import io.sf.carte.echosvg.gvt.renderer.ImageRendererFactory;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderOutput;
import io.sf.carte.echosvg.transcoder.TranscodingHints;
import io.sf.carte.echosvg.transcoder.keys.BooleanKey;
import io.sf.carte.echosvg.transcoder.keys.PaintKey;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* This class enables to transcode an input to an image of any format.
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/JPEGTranscoder.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/JPEGTranscoder.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/JPEGTranscoder.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/JPEGTranscoder.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoder.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoder.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoder.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoder.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderImageIOWriteAdapter.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderImageIOWriteAdapter.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderImageIOWriteAdapter.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderImageIOWriteAdapter.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderInternalCodecWriteAdapter.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderInternalCodecWriteAdapter.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderInternalCodecWriteAdapter.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/PNGTranscoderInternalCodecWriteAdapter.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoder.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoder.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoder.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoder.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoderImageIOWriteAdapter.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoderImageIOWriteAdapter.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoderImageIOWriteAdapter.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/TIFFTranscoderImageIOWriteAdapter.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/package.html b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/package.html
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/package.html
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/package.html
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/resources/Messages.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/resources/Messages.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/image/resources/Messages.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/image/resources/Messages.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/impl/SizingHelper.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/impl/SizingHelper.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/impl/SizingHelper.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/impl/SizingHelper.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/impl/package-info.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/impl/package-info.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/impl/package-info.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/impl/package-info.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/print/PrintTranscoder.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/print/PrintTranscoder.java
similarity index 99%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/print/PrintTranscoder.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/print/PrintTranscoder.java
index ed5604b01..984719802 100644
--- a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/print/PrintTranscoder.java
+++ b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/print/PrintTranscoder.java
@@ -38,7 +38,6 @@
import io.sf.carte.echosvg.bridge.BridgeContext;
import io.sf.carte.echosvg.ext.awt.RenderingHintsKeyExt;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.Transcoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
@@ -47,6 +46,7 @@
import io.sf.carte.echosvg.transcoder.keys.BooleanKey;
import io.sf.carte.echosvg.transcoder.keys.LengthKey;
import io.sf.carte.echosvg.transcoder.keys.StringKey;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
/**
* This class is a Transcoder
that prints SVG images. This class
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/SVGAbstractTranscoder.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/svg/SVGAbstractTranscoder.java
similarity index 99%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/SVGAbstractTranscoder.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/svg/SVGAbstractTranscoder.java
index b899d564b..d5c5ae155 100644
--- a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/SVGAbstractTranscoder.java
+++ b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/svg/SVGAbstractTranscoder.java
@@ -16,7 +16,7 @@
limitations under the License.
*/
-package io.sf.carte.echosvg.transcoder;
+package io.sf.carte.echosvg.transcoder.svg;
import java.awt.Dimension;
import java.awt.geom.AffineTransform;
@@ -63,6 +63,11 @@
import io.sf.carte.echosvg.gvt.CanvasGraphicsNode;
import io.sf.carte.echosvg.gvt.CompositeGraphicsNode;
import io.sf.carte.echosvg.gvt.GraphicsNode;
+import io.sf.carte.echosvg.transcoder.TranscoderException;
+import io.sf.carte.echosvg.transcoder.TranscoderInput;
+import io.sf.carte.echosvg.transcoder.TranscoderOutput;
+import io.sf.carte.echosvg.transcoder.TranscodingHints;
+import io.sf.carte.echosvg.transcoder.XMLAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.impl.SizingHelper;
import io.sf.carte.echosvg.transcoder.keys.BooleanKey;
import io.sf.carte.echosvg.transcoder.keys.FloatKey;
diff --git a/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/svg/package-info.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/svg/package-info.java
new file mode 100644
index 000000000..af2988e19
--- /dev/null
+++ b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/svg/package-info.java
@@ -0,0 +1,23 @@
+/*
+
+ See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ */
+
+/**
+ * Base classes for transcoding from SVG to other formats.
+ */
+package io.sf.carte.echosvg.transcoder.svg;
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/util/CSSTranscodingHelper.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/util/CSSTranscodingHelper.java
similarity index 99%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/util/CSSTranscodingHelper.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/util/CSSTranscodingHelper.java
index ad7c75645..ff2bdd979 100644
--- a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/util/CSSTranscodingHelper.java
+++ b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/util/CSSTranscodingHelper.java
@@ -83,7 +83,6 @@
import io.sf.carte.echosvg.anim.dom.SVGDOMImplementation;
import io.sf.carte.echosvg.transcoder.DefaultErrorHandler;
import io.sf.carte.echosvg.transcoder.ErrorHandler;
-import io.sf.carte.echosvg.transcoder.SVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.Transcoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
@@ -92,6 +91,7 @@
import io.sf.carte.echosvg.transcoder.image.ImageTranscoder;
import io.sf.carte.echosvg.transcoder.image.PNGTranscoder;
import io.sf.carte.echosvg.transcoder.impl.SizingHelper;
+import io.sf.carte.echosvg.transcoder.svg.SVGAbstractTranscoder;
import io.sf.carte.echosvg.util.ParsedURL;
import io.sf.carte.echosvg.util.SVGConstants;
import io.sf.carte.util.agent.AgentUtil;
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/util/package-info.java b/echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/util/package-info.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/util/package-info.java
rename to echosvg-transcoder-svg/src/main/java/io/sf/carte/echosvg/transcoder/util/package-info.java
diff --git a/echosvg-transcoder-svg/src/main/java/module-info.java b/echosvg-transcoder-svg/src/main/java/module-info.java
new file mode 100644
index 000000000..1c61bc5d7
--- /dev/null
+++ b/echosvg-transcoder-svg/src/main/java/module-info.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2020-2024 Carlos Amengual
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * SVG to image transcoder.
+ */
+module io.sf.carte.echosvg.transcoder.svg {
+ exports io.sf.carte.echosvg.transcoder.image;
+ exports io.sf.carte.echosvg.transcoder.image.resources;
+ exports io.sf.carte.echosvg.transcoder.print;
+ exports io.sf.carte.echosvg.transcoder.svg;
+ exports io.sf.carte.echosvg.transcoder.util;
+
+ requires transitive io.sf.carte.echosvg.transcoder.api;
+ requires transitive io.sf.carte.echosvg.bridge;
+ requires io.sf.carte.echosvg.codec;
+ requires io.sf.carte.echosvg.i18n;
+
+ requires io.sf.carte.xml.dtd;
+ requires io.sf.carte.css4j.awt;
+}
diff --git a/echosvg-transcoder/src/main/resources/io/sf/carte/echosvg/transcoder/image/resources/Messages.properties b/echosvg-transcoder-svg/src/main/resources/io/sf/carte/echosvg/transcoder/image/resources/Messages.properties
similarity index 100%
rename from echosvg-transcoder/src/main/resources/io/sf/carte/echosvg/transcoder/image/resources/Messages.properties
rename to echosvg-transcoder-svg/src/main/resources/io/sf/carte/echosvg/transcoder/image/resources/Messages.properties
diff --git a/echosvg-transcoder-svg2svg/build.gradle b/echosvg-transcoder-svg2svg/build.gradle
new file mode 100644
index 000000000..decca32e0
--- /dev/null
+++ b/echosvg-transcoder-svg2svg/build.gradle
@@ -0,0 +1,15 @@
+plugins {
+ id 'echosvg.java-conventions'
+}
+
+dependencies {
+ api project(':echosvg-transcoder-api')
+ implementation project(':echosvg-dom')
+ implementation project(':echosvg-util')
+}
+
+description = 'io.sf.carte:echosvg-transcoder-svg2svg'
+
+publishing.publications.maven(MavenPublication).pom {
+ description = "EchoSVG SVG to SVG transcoder"
+}
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/OutputManager.java b/echosvg-transcoder-svg2svg/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/OutputManager.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/OutputManager.java
rename to echosvg-transcoder-svg2svg/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/OutputManager.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/PrettyPrinter.java b/echosvg-transcoder-svg2svg/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/PrettyPrinter.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/PrettyPrinter.java
rename to echosvg-transcoder-svg2svg/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/PrettyPrinter.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/SVGTranscoder.java b/echosvg-transcoder-svg2svg/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/SVGTranscoder.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/SVGTranscoder.java
rename to echosvg-transcoder-svg2svg/src/main/java/io/sf/carte/echosvg/transcoder/svg2svg/SVGTranscoder.java
diff --git a/echosvg-transcoder-svg2svg/src/main/java/module-info.java b/echosvg-transcoder-svg2svg/src/main/java/module-info.java
new file mode 100644
index 000000000..0c1d95256
--- /dev/null
+++ b/echosvg-transcoder-svg2svg/src/main/java/module-info.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2020-2024 Carlos Amengual
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * SVG to SVG transcoder.
+ */
+module io.sf.carte.echosvg.transcoder.svg2svg {
+
+ exports io.sf.carte.echosvg.transcoder.svg2svg;
+
+ requires transitive io.sf.carte.echosvg.transcoder.api;
+ requires io.sf.carte.echosvg.dom;
+ requires io.sf.carte.echosvg.util;
+ requires io.sf.carte.echosvg.xml;
+
+}
diff --git a/echosvg-transcoder-tosvg/build.gradle b/echosvg-transcoder-tosvg/build.gradle
new file mode 100644
index 000000000..65d0ebe1c
--- /dev/null
+++ b/echosvg-transcoder-tosvg/build.gradle
@@ -0,0 +1,15 @@
+plugins {
+ id 'echosvg.java-conventions'
+}
+
+dependencies {
+ api project(':echosvg-transcoder-api')
+ api project(':echosvg-svggen')
+ implementation project(':echosvg-anim')
+}
+
+description = 'io.sf.carte:echosvg-transcoder-tosvg'
+
+publishing.publications.maven(MavenPublication).pom {
+ description = "EchoSVG WMF to SVG transcoder"
+}
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/ToSVGAbstractTranscoder.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/svggen/ToSVGAbstractTranscoder.java
similarity index 96%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/ToSVGAbstractTranscoder.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/svggen/ToSVGAbstractTranscoder.java
index d6e154910..a692e4212 100644
--- a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/ToSVGAbstractTranscoder.java
+++ b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/svggen/ToSVGAbstractTranscoder.java
@@ -16,7 +16,7 @@
limitations under the License.
*/
-package io.sf.carte.echosvg.transcoder;
+package io.sf.carte.echosvg.transcoder.svggen;
import java.io.IOException;
import java.io.OutputStream;
@@ -33,6 +33,10 @@
import io.sf.carte.echosvg.anim.dom.SVGDOMImplementation;
import io.sf.carte.echosvg.svggen.SVGGraphics2D;
+import io.sf.carte.echosvg.transcoder.AbstractTranscoder;
+import io.sf.carte.echosvg.transcoder.TranscoderException;
+import io.sf.carte.echosvg.transcoder.TranscoderOutput;
+import io.sf.carte.echosvg.transcoder.TranscodingHints;
import io.sf.carte.echosvg.transcoder.keys.BooleanKey;
import io.sf.carte.echosvg.transcoder.keys.FloatKey;
import io.sf.carte.echosvg.transcoder.keys.IntegerKey;
diff --git a/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/svggen/package-info.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/svggen/package-info.java
new file mode 100644
index 000000000..f24e36fea
--- /dev/null
+++ b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/svggen/package-info.java
@@ -0,0 +1,23 @@
+/*
+
+ See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ */
+
+/**
+ * Transcoders that transcode to SVG using {@code SVGGraphics2D}.
+ */
+package io.sf.carte.echosvg.transcoder.svggen;
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/WMFConstants.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/WMFConstants.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/WMFConstants.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/WMFConstants.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFPainter.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFPainter.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFPainter.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFPainter.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFReader.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFReader.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFReader.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/AbstractWMFReader.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/GdiObject.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/GdiObject.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/GdiObject.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/GdiObject.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/MetaRecord.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/MetaRecord.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/MetaRecord.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/MetaRecord.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/TextureFactory.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/TextureFactory.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/TextureFactory.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/TextureFactory.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFFont.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFFont.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFFont.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFFont.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFHeaderProperties.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFHeaderProperties.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFHeaderProperties.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFHeaderProperties.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFPainter.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFPainter.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFPainter.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFPainter.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFRecordStore.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFRecordStore.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFRecordStore.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFRecordStore.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFTranscoder.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFTranscoder.java
similarity index 98%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFTranscoder.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFTranscoder.java
index 19f214a7d..59cd90d2b 100644
--- a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFTranscoder.java
+++ b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFTranscoder.java
@@ -33,10 +33,10 @@
import org.w3c.dom.Element;
import io.sf.carte.echosvg.svggen.SVGGraphics2D;
-import io.sf.carte.echosvg.transcoder.ToSVGAbstractTranscoder;
import io.sf.carte.echosvg.transcoder.TranscoderException;
import io.sf.carte.echosvg.transcoder.TranscoderInput;
import io.sf.carte.echosvg.transcoder.TranscoderOutput;
+import io.sf.carte.echosvg.transcoder.svggen.ToSVGAbstractTranscoder;
/**
* This class implements the Transcoder
interface and can convert a
@@ -193,7 +193,7 @@ public void transcode(TranscoderInput input, TranscoderOutput output) throws Tra
/**
* set precision otherwise Ellipses aren't working (for example) (because of
- * Decimal format modifications ins SVGGenerator Context
+ * Decimal format modifications in SVGGenerator Context)
*/
svgGenerator.getGeneratorContext().setPrecision(4);
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFUtilities.java b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFUtilities.java
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFUtilities.java
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/WMFUtilities.java
diff --git a/echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/package.html b/echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/package.html
similarity index 100%
rename from echosvg-transcoder/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/package.html
rename to echosvg-transcoder-tosvg/src/main/java/io/sf/carte/echosvg/transcoder/wmf/tosvg/package.html
diff --git a/echosvg-transcoder-tosvg/src/main/java/module-info.java b/echosvg-transcoder-tosvg/src/main/java/module-info.java
new file mode 100644
index 000000000..24d17e12c
--- /dev/null
+++ b/echosvg-transcoder-tosvg/src/main/java/module-info.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2020-2024 Carlos Amengual
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * WMF to SVG transcoder.
+ */
+module io.sf.carte.echosvg.transcoder.tosvg {
+ exports io.sf.carte.echosvg.transcoder.svggen;
+ exports io.sf.carte.echosvg.transcoder.wmf;
+ exports io.sf.carte.echosvg.transcoder.wmf.tosvg;
+
+ requires transitive io.sf.carte.echosvg.transcoder.api;
+ requires transitive io.sf.carte.echosvg.svggen;
+ requires io.sf.carte.echosvg.anim;
+}
diff --git a/echosvg-transcoder/build.gradle b/echosvg-transcoder/build.gradle
index 0dc2eeb66..29cc49a1b 100644
--- a/echosvg-transcoder/build.gradle
+++ b/echosvg-transcoder/build.gradle
@@ -3,15 +3,14 @@ plugins {
}
dependencies {
- api project(':echosvg-bridge')
- api project(':echosvg-svggen')
- implementation project(':echosvg-codec')
- implementation "io.sf.carte:css4j-awt:$css4jAwtVersion"
- compileOnly "xml-apis:xml-apis:$xmlApisVersion" // Required by Java 8 compat
+ api project(':echosvg-transcoder-api')
+ api project(':echosvg-transcoder-svg')
+ api project(':echosvg-transcoder-svg2svg')
+ api project(':echosvg-transcoder-tosvg')
}
description = 'io.sf.carte:echosvg-transcoder'
publishing.publications.maven(MavenPublication).pom {
- description = "EchoSVG SVG transcoder"
+ description = "EchoSVG SVG transcoder aggregate module"
}
diff --git a/echosvg-transcoder/src/main/java/module-info.java b/echosvg-transcoder/src/main/java/module-info.java
index b84e7f8aa..d5dd29249 100644
--- a/echosvg-transcoder/src/main/java/module-info.java
+++ b/echosvg-transcoder/src/main/java/module-info.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020-2022 Carlos Amengual
+ * Copyright (c) 2020-2024 Carlos Amengual
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,25 +15,13 @@
*/
/**
- * SVG transcoder.
+ * SVG transcoder meta-module.
*/
module io.sf.carte.echosvg.transcoder {
- exports io.sf.carte.echosvg.transcoder;
- exports io.sf.carte.echosvg.transcoder.image;
- exports io.sf.carte.echosvg.transcoder.image.resources;
- exports io.sf.carte.echosvg.transcoder.keys;
- exports io.sf.carte.echosvg.transcoder.print;
- exports io.sf.carte.echosvg.transcoder.svg2svg;
- exports io.sf.carte.echosvg.transcoder.util;
- exports io.sf.carte.echosvg.transcoder.wmf;
- exports io.sf.carte.echosvg.transcoder.wmf.tosvg;
- requires transitive io.sf.carte.echosvg.bridge;
- requires transitive io.sf.carte.echosvg.svggen;
- requires io.sf.carte.echosvg.codec;
- requires io.sf.carte.echosvg.i18n;
- requires io.sf.carte.echosvg.xml;
+ requires transitive io.sf.carte.echosvg.transcoder.api;
+ requires transitive io.sf.carte.echosvg.transcoder.svg;
+ requires transitive io.sf.carte.echosvg.transcoder.svg2svg;
+ requires transitive io.sf.carte.echosvg.transcoder.tosvg;
- requires io.sf.carte.xml.dtd;
- requires io.sf.carte.css4j.awt;
}
diff --git a/echosvg-xml/build.gradle b/echosvg-xml/build.gradle
index ade5c07b1..13f4ae7ca 100644
--- a/echosvg-xml/build.gradle
+++ b/echosvg-xml/build.gradle
@@ -4,7 +4,7 @@ plugins {
dependencies {
api project(':echosvg-util')
- implementation project(':echosvg-i18n')
+ api project(':echosvg-i18n')
}
description = 'io.sf.carte:echosvg-xml'
diff --git a/settings.gradle b/settings.gradle
index 9e9f09a59..3d32c28ef 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -28,6 +28,10 @@ include(':echosvg-script')
include(':echosvg-swing')
include(':echosvg-codec')
include(':echosvg-transcoder')
+include(':echosvg-transcoder-api')
+include(':echosvg-transcoder-svg')
+include(':echosvg-transcoder-svg2svg')
+include(':echosvg-transcoder-tosvg')
include(':echosvg-extension')
include(':echosvg-svgpp')
include(':echosvg-ttf2svg')