@@ -5,6 +5,30 @@ projects.
55
66<br />
77
8+ ## Why the Web APIs project?
9+
10+ [ EchoSVG] ( https://github.com/css4j/echosvg ) is a fork of Apache Batik, an SVG
11+ toolkit in the Java language. Both projects require Java bindings based on old
12+ versions of the SVG and SMIL DOM APIs.
13+
14+ Apache Batik uses the ` xml-apis-ext-1.3.04.jar ` package, which is unsuitable for
15+ modular Java due to the fact that it also contains the SAC package which is found
16+ in other packages.
17+
18+ This project offers separate packages for SVGOM and SMIL which aren't the exact
19+ ones shipped by ` xml-apis-ext-1.3.04 ` but are compatible with both EchoSVG and
20+ Batik.
21+
22+ The code is based on old Java bindings downloaded from the W3C, and several
23+ method signatures had to be modified so they matched the implementations in
24+ EchoSVG/Batik. Although it would have been easy to upgrade EchoSVG instead, that
25+ would have created problems in cases where both ` xml-apis-ext-1.3.04.jar ` and
26+ ` svgom-api ` or ` smil-api ` were found in the classpath or modulepath (which is
27+ conceivable if, for example, somebody is using EchoSVG and Apache FOP in the
28+ same project).
29+
30+ <br />
31+
832## Building from source
933
1034### Requirements
@@ -13,6 +37,7 @@ To build `web-apis` you need the following software installed:
1337
1438- The [ Git version control system] ( https://git-scm.com/downloads ) is required to
1539obtain the sources. Any recent version should suffice.
40+
1641- Java 11 or later. You can install it from your favourite package manager or by
1742downloading from [ Adoptium] ( https://adoptium.net/ ) .
1843
@@ -34,7 +59,9 @@ or just `gradlew build` (without the `./`) on a Windows command prompt.
3459### Deploying to a Maven repository
3560
3661Use:
62+
3763- ` gradlew build publishToMavenLocal ` to install in your local Maven repository.
64+
3865- ` gradlew publish ` to deploy to a (generally remote) Maven repository.
3966
4067Before deploying to a remote Maven repository, please read the
@@ -50,6 +77,7 @@ to learn which properties you need to set (like `mavenReleaseRepoUrl`or
5077
5178If your Gradle project depends on any of the web-apis modules, you can use this
5279project's own Maven repository in a ` repositories ` section of your build file:
80+
5381``` groovy
5482repositories {
5583 maven {
0 commit comments