blob: a13cf985a9c075fd5c5c28601e7157183863cd4e [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE document SYSTEM "./dtd/document-v10.dtd">
<!--
Copyright 2000-2003 The Apache Software Foundation
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.
-->
<!-- ====================================================================== -->
<!-- author Thierry.Kormann@sophia.inria.fr -->
<!-- author vincent.hardy@eng.sun.com -->
<!-- version $Id$ -->
<!-- ====================================================================== -->
<document>
<header>
<title>Batik Status</title>
<subtitle>Implementation Status and Code Metrics</subtitle>
<authors>
<person name="Vincent Hardy" email="vincent.hardy@eng.sun.com" />
<person name="Thierry Kormann" email="Thierry.Kormann@sophia.inria.fr" />
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
This page provides information about Batik's
implementation status in terms of code metrics and SVG
support. It is broken down into the following
sections:</p>
<ul>
<li><link href="#status">Batik status</link> provides
information about what Batik roadmap and current
support of SVG features. This section is further
broken down into:<ul>
<li><link href="#roadmap">Roadmap</link> describes
the upcoming milestones in the Batik
implementation</li>
<li><link href="#elementStatus">SVG Elements and
Attributes</link> which defines which elements and
attributes are supported by the Batik
project.</li>
<li><link href="#propertiesStatus">CSS
Properties</link> which defines which CSS
properties are supported by the Batik
components.</li>
<li><link href="#svgDomStatus">SVG DOM</link>
which defines which portions of the SVG DOM are
supported by the Batik implementation.
</li>
<li><link href="#beSuiteStatus">SVG BE
Suite</link> which defines which tests of the SVG
1.0 BE Suite are successfully passed by the Batik
browser (Squiggle).</li>
</ul></li>
<li><link href="#metrics">Batik metrics</link>
provides metrics for the Batik project: binary size
for the various modules, source code size, lines of
code, number of files etc...</li>
</ul>
</s1>
<anchor id="status" />
<s1 title="Batik Status" />
<anchor id="roadmap" />
<s1 title="Batik roadmap">
<ul>
<li><strong>Batik 1.1</strong> (December 2001) was
focused on supporting all static SVG features. In
addition, Batik 1.1 supported hyperlinking and
'one-way' scripting (which means that scripts could
handle events but modifications to the SVG document by
scripts would not be reflected visually by the Batik
viewing component.
</li>
<li><strong>Batik 1.5</strong> (Summer 2003) is
focussed on supporting SVG scripting fully. The
following sections provide details on the exact support
of the SVG scripting features.</li>
</ul>
</s1>
<anchor id="elementStatus" />
<s1 title="SVG Elements and Attributes Support" >
<p> The <link href="supportedElements.html">supported elements table</link> lists all the elements part of the SVG
specification that are supported in the Batik toolkit rendering
components (i.e., the <code>ImageTranscoder</code> and the <code>JSVGCanvas</code> Swing
component). </p>
</s1>
<anchor id="propertiesStatus" />
<s1 title="CSS Properties Support" >
<p> The <link href="supportedProperties.html">supported properties table</link> lists all the CSS properties part of the SVG
specification or the CSS2 specification that are supported in the
Batik toolkit rendering components (i.e., the <code>ImageTranscoder</code> and the
<code>JSVGCanvas</code> Swing component). </p>
</s1>
<anchor id="svgDomStatus" />
<s1 title="SVG DOM Support" >
<p>The <link href="SVGDOMstatus.html">SVG DOM implementation
table</link> lists all SVG DOM interfaces and indicates for all
methods the status of the implementation in Batik.</p>
</s1>
<anchor id="beSuiteStatus" />
<s1 title="SVG BE Suite Status">
<p>
The <link href="http://www.w3.org/Graphics/SVG/Test/">SVG BE Test suite</link> is developed by the W3C SVG working
group to allow implementation to check their level of
conformance with the SVG specification. In that spirit,
the table below shows how much of the test suite the
SVG Viewer included in the Batik distribution passes.
</p>
<p>
There are two sections: the first one shows the tests
Batik passes and the second shows the tests that
Batik does not pass (althought it will eventually).
Each section lists
static and dynamic SVG tests separately.
</p>
<p>
Static ratings : passed: 93, not passed: 0 (Total: 93/93)
</p>
<p>
Dynamic ratings : passed: 10, not passed 23 (Total: 10/33)
</p>
<p><em>Note</em> that the Batik tests go beyond the SVG Working Group BE test suite
and that the <link href="test.html">Batik test suite infrastructure</link> contains
several hundreds of tests in addition to the BE test suite.</p>
<p><strong>Static Tests Passed by Batik</strong></p>
<table>
<!-- ############################################################## -->
<tr><td>color-datatypes-BE-01.svg</td><td>color-property-BE-02.svg</td><td>color-colorProf-BE-03.svg</td></tr>
<!-- ############################################################## -->
<tr><td>coords-transforms-BE-02.svg</td><td>coords-units-BE-01.svg</td><td>coords-unitsProc-BE-05.svg</td></tr>
<tr><td>coords-viewBox-BE-03.svg</td><td>filters-convolve-BE-06.svg</td><td>filters-diffuseLt-BE-07.svg</td></tr>
<tr><td>filters-lights-BE-09.svg</td><td>filters-many-BE-01.svg</td><td>filters-specularLt-BE-08.svg</td></tr>
<tr><td>filters-blend-BE-02.svg</td><td>filters-blur-BE-12.svg</td><td>filters-dispMap-BE-16.svg</td></tr>
<tr><td>filters-feImage-BE-13.svg</td><td>filters-feTile-BE-14.svg</td><td>filters-fldMrgOff-BE-15.svg</td></tr>
<tr><td>filters-morph-BE-10.svg</td><td>filters-transfer-BE-04.svg</td><td>filters-turb-BE-11.svg</td></tr>
<tr><td>filters-colorMtrx-BE-03.svg</td><td>filters-composite-BE-05.svg</td><td>masking-mask-BE-05.svg</td></tr>
<tr><td>masking-mask-BE-06.svg</td><td>masking-property-BE-07.svg</td><td>gradPatt-linearGr-BE-01.svg</td></tr>
<tr><td>gradPatt-linearGr-BE-02.svg</td><td>gradPatt-linearGr-BE-03.svg</td><td>gradPatt-pattern-BE-07.svg</td></tr>
<tr><td>gradPatt-radialGr-BE-04.svg</td><td>gradPatt-radialGr-BE-04.svg</td><td>gradPatt-referenc-BE-08.svg</td></tr>
<tr><td>gradPatt-stop-BE-06.svg</td><td>gradPatt-stop-BE-10.svg</td><td>gradPatt-transfrm-BE-09.svg</td></tr>
<tr><td>masking-clipPath-BE-01.svg</td><td>masking-clipPath-BE-02.svg</td><td>masking-clipPath-BE-08.svg</td></tr>
<tr><td>masking-clipRule-BE-03.svg</td><td>masking-groupOpac-BE-04.svg</td><td>masking-vportClip-BE-09.svg</td></tr>
<tr><td>paint-colIntProp-BE-05.svg</td><td>paint-inherit-BE-06.svg</td><td>paint-stroke-BE-02.svg</td></tr>
<tr><td>paint-fill-BE-01.svg</td><td>paint-markers-BE-03.svg</td><td>paint-markers-BE-04.svg</td></tr>
<tr><td>path-curves-BE-02.svg</td><td>path-curves-BE-03.svg</td><td>path-curves-BE-04.svg</td></tr>
<tr><td>path-lines-BE-01.svg</td><td>rendering-orderGr-BE-01.svg</td><td>rendering-shape-BE-03.svg</td></tr>
<tr><td>rendering-text-BE-02.svg</td><td>shapes-circle-BE-03.svg</td><td>shapes-ellipse-BE-02.svg</td></tr>
<tr><td>shapes-line-BE-04.svg</td><td>shapes-polygon-BE-05.svg</td><td>shapes-polyline-BE-06.svg</td></tr>
<tr><td>shapes-rect-BE-01.svg</td><td>structure-allElem-BE-09.svg</td><td>structure-basicG-BE-03.svg</td></tr>
<tr><td>structure-defs-BE-04.svg</td><td>structure-empty-BE-01.svg</td><td>structure-extRef-BE-10.svg</td></tr>
<tr><td>structure-image-BE-06.svg</td><td>structure-lang-BE-08.svg</td><td>structure-nested-BE-02.svg</td></tr>
<tr><td>structure-switch-BE-07.svg</td><td>structure-symbol-BE-05.svg</td><td>style-selector-BE-01.svg</td></tr>
<tr><td>style-selector-BE-02.svg</td><td>style-selector-BE-03.svg</td><td>text-text-BE-01.svg</td></tr>
<tr><td>text-tspan-BE-02.svg</td><td>text-textOnPath-BE-03.svg</td><td>text-tref-BE-04.svg</td></tr>
<tr><td>text-textAnchor-BE-05.svg</td><td>text-whiteSpace-BE-06.svg</td><td>text-altGlyph-BE-07.svg</td></tr>
<tr><td>text-i18n-BE-09.svg</td><td>text-alignment-BE-10.svg</td><td>text-alignment-BE-11.svg</td></tr>
<tr><td>text-selection-BE-13.svg</td><td>text-spacing-BE-14.svg</td><td>text-font-BE-15.svg</td></tr>
<tr><td>text-font-BE-16.svg</td><td>text-textLength-BE-17.svg</td><td>text-extTref-BE-18.svg</td></tr>
<tr><td>fonts-fontElement-BE-01.svg</td><td>metadata-sample-BE-01.svg</td><td>text-decoration-BE-12.svg</td></tr>
</table>
<anchor id="DynamicTest" />
<p><strong>Dynamic Tests Passed by Batik</strong></p>
<table>
<tr><td>linking-outBound-BE-01.svg</td><td>linking-xlinkAttr-BE-02.svg</td><td>linking-inBound-BE-03.svg</td></tr>
<tr><td >linking-view-BE-04.svg</td><td >linking-view-BE-05.svg</td><td>script-eventDom-BE-01.svg</td></tr>
<tr><td>script-uiEvents-BE-02.svg</td><td>dom-core-BE-01.svg</td><td>dom-featureString-BE-03.svg</td></tr>
<tr><td>dom-eventListener-BE-04.svg</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>
<p><strong>Dynamic Tests Not Passed by Batik</strong></p>
<table >
<tr>
<td>animation-inherit-BE-10.svg</td>
<td>animation-overall-BE-01.svg</td>
<td>animation-timing-BE-05.svg</td>
</tr>
<tr>
<td>animation-values-BE-08.svg</td>
<td>extend-multiNS-BE-01.svg</td>
<td>interact-bubble-BE-04.svg</td>
</tr>
<tr>
<td>interact-pEvents-BE-05.svg</td>
<td>interact-zoomPan-BE-02.svg</td>
<td>animation-add-BE-09.svg</td>
</tr>
<tr>
<td>animation-href-BE-02.svg</td>
<td>animation-motion-BE-11.svg</td>
<td>animation-motion-BE-12.svg</td>
</tr>
<tr>
<td>animation-targAtt-BE-04.svg</td>
<td>animation-targElt-BE-03.svg</td>
<td>animation-values-BE-06.svg</td>
</tr>
<tr>
<td>animation-values-BE-07.svg</td>
<td>dom-svg-BE-02.svg</td>
<td>interact-bubble-BE-04-targ.svg</td>
</tr>
<tr>
<td>interact-cursor-BE-08.svg</td>
<td>interact-onload-BE-07.svg</td>
<td>interact-pEvents-BE-06.svg</td>
</tr>
<tr>
<td>interact-zoomPan-BE-01.svg</td>
<td>interact-zoomPan-BE-03.svg</td>
<td>&nbsp;</td>
</tr>
</table>
</s1>
<anchor id="metrics" />
<s1 title="Batik Metrics">
<p>The following numbers are as of July 10th 2003</p>
<p><strong>Modules Binary size</strong></p>
<table>
<tr>
<td>Java API, AWT and Swing Extensions
(batik-awt-util.jar,
org.apache.batik.ext.awt and
org.apache.batik.ext.swing)</td>
<td>354,700</td>
</tr>
<tr>
<td>Bridge module (batik-bridge.jar,
org.apache.batik.bridge)</td>
<td>240,925</td>
</tr>
<tr>
<td>CSS 2 support (batik-css.jar,
org.apache.batik.css)</td>
<td>221,112</td>
</tr>
<tr>
<td>Batik DOM support (batik-dom.jar,
org.apache.batik.dom)</td>
<td>79,168</td>
</tr>
<tr>
<td>W3C and XML APIs (batik-ext.jar, org.w3c)</td>
<td>76,733</td>
</tr>
<tr>
<td>Sample extensions (batik-extensions.jar,
org.apache.batik.extension)</td>
<td>43,870</td>
</tr>
<tr>
<td>User interface utilities (batik-gui-util.jar,
org.apache.batik.dom)</td>
<td>135,636</td>
</tr>
<tr>
<td>GVT (batik-gvt.jar,
org.apache.batik.gvt)</td>
<td>143,429</td>
</tr>
<tr>
<td>Micro Parsers (batik-parser.jar,
org.apache.batik.parser)</td>
<td>35,078</td>
</tr>
<tr>
<td>Scripting engines infrastructure (batik-script.jar,
org.apache.batik.script)</td>
<td>30,842</td>
</tr>
<tr>
<td>Batik SVG Dom Implementation (batik-svg-dom.jar,
org.apache.batik.dom.svg)</td>
<td>376,951</td>
</tr>
<tr>
<td>SVG Generator (batik-svggen.jar,
includes SVG font converter)</td>
<td>162,171</td>
</tr>
<tr>
<td>JSVG Canvas (batik-swing.jar,
org.apache.batik.swing)</td>
<td>126,040</td>
</tr>
<tr>
<td>Transcoder module (batik-transcoder.jar,
org.apache.batik.transcoder)</td>
<td>61,780</td>
</tr>
<tr>
<td>Utilities (batik-util.jar, org.apache.batik.util
and org.apache.batik.i18n)</td>
<td>75,679</td>
</tr>
<tr>
<td>XML Parsing utilities (batik-xml.jar,
org.apache.batik.xml)</td>
<td>19,876</td>
</tr>
</table>
<p><strong>External packages</strong></p>
<table>
<tr>
<td>ECMA Script Engine (js.jar)</td>
<td>593,919</td>
</tr>
<tr>
<td>Parser (xerces_2_5_0.jar)</td>
<td>934,835</td>
</tr>
<tr>
<td>XML Interfaces (xml-apis.jar)</td>
<td>107,431</td>
</tr>
<tr>
<td>FOP PDF Transcoder (pdf-transcoder.jar)</td>
<td>302,896</td>
</tr>
</table>
<p><strong>Source Metrics</strong></p>
<table>
<tr>
<td>Number of source lines overall (includes comments and empty lines)</td>
<td>242,137</td>
</tr>
<tr>
<td>Number of source files overall</td>
<td>1,348</td>
</tr>
</table>
</s1>
</body>
</document>