[ https://issues.apache.org/jira/browse/BATIK-1322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Bischof updated BATIK-1322: ---------------------------------- Description: Several applications and frameworks are OSGi based. To use batik in this applications is a bit tricky, because batik does not declare Exportes and Imported packages in the MANIFEST.MF file of the jars. Also the Service class has some issues because it is not sure that correct classloader is used. So most developers repackage the batik jars and add the needed information. Or they use repackages batik versions of eclipse or apache. e.g. `org.apache.servicemix.bundles:org.apache.servicemix.bundles.batik` Best way to is to do the full suport in the main repos. I would like to add a better OSGi Support for Batik. So I made a PR on GitHub. Could somebody give some comments/review before I start the SVN-Process Topics: * use bnd to create OSGi-Bundle Manifests and simplify build * generate META-INF/services files using |@ServiceProvider ( relocate ||META-INF/services to correct jar)|| * use ServiceLoader to avoid ClassLoader issues in Service.class could also add ass osgi-based tests if needed PR: [https://github.com/apache/xmlgraphics-batik/pull/30] Example Manifest for batik-all {code:java} Manifest-Version: 1.0 Bnd-LastModified: 1647041193864 Bundle-Description: Batik aggregate artifact Bundle-DocURL: http://xmlgraphics.apache.org/batik/batik-all/ Bundle-License: "The Apache Software License, Version 2.0";link="http: //www.apache.org/licenses/LICENSE-2.0.txt" Bundle-ManifestVersion: 2 Bundle-Name: org.apache.xmlgraphics:batik-all Bundle-SCM: url="scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/ batik/trunk/batik-all/",connection="scm:svn:https://svn.apache.org/re pos/asf/xmlgraphics/batik/trunk/batik-all/",tag=HEAD Bundle-SymbolicName: org.apache.xmlgraphics.batik-all Bundle-Vendor: Apache Software Foundation Bundle-Version: 1.14.0.202203112326 Created-By: 17.0.2 (Eclipse Adoptium) Export-Package: org.apache.batik;version="1.14.0",org.apache.batik.ani m;uses:="org.apache.batik.anim.dom,org.apache.batik.anim.timing,org.a pache.batik.anim.values,org.apache.batik.ext.awt.geom,org.apache.bati k.util,org.w3c.dom";version="1.14.0",org.apache.batik.anim.dom;uses:= "org.apache.batik.anim.values,org.apache.batik.css.dom,org.apache.bat ik.css.engine,org.apache.batik.css.engine.value,org.apache.batik.css. parser,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.ba tik.dom.svg,org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.ap ache.batik.i18n,org.apache.batik.parser,org.apache.batik.util,org.w3c .dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.stylesheets,org.w 3c.dom.svg,org.w3c.dom.views,org.xml.sax";version="1.14.0",org.apache .batik.anim.dom.resources;version="1.14.0",org.apache.batik.anim.reso urces;version="1.14.0",org.apache.batik.anim.timing;uses:="org.apache .batik.anim,org.apache.batik.i18n,org.apache.batik.parser,org.apache. batik.util,org.w3c.dom,org.w3c.dom.events";version="1.14.0",org.apach e.batik.anim.values;uses:="org.apache.batik.anim.dom,org.apache.batik .dom.svg";version="1.14.0",org.apache.batik.apps.rasterizer;uses:="or g.apache.batik.i18n,org.apache.batik.transcoder";version="1.14.0",org .apache.batik.apps.rasterizer.resources;version="1.14.0",org.apache.b atik.apps.slideshow;uses:="javax.swing";version="1.14.0",org.apache.b atik.apps.svgbrowser;uses:="javax.swing,javax.swing.event,javax.swing .filechooser,javax.swing.table,javax.swing.tree,javax.xml.transform,o rg.apache.batik.bridge,org.apache.batik.ext.swing,org.apache.batik.gv t,org.apache.batik.i18n,org.apache.batik.swing,org.apache.batik.swing .gvt,org.apache.batik.swing.svg,org.apache.batik.util,org.apache.bati k.util.gui,org.apache.batik.util.gui.resource,org.apache.batik.util.g ui.xmleditor,org.apache.batik.util.resources,org.w3c.dom,org.w3c.dom. css,org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.b atik.apps.svgbrowser.resources;version="1.14.0",org.apache.batik.apps .svgpp;uses:="org.apache.batik.i18n,org.apache.batik.transcoder";vers ion="1.14.0",org.apache.batik.apps.svgpp.resources;version="1.14.0",o rg.apache.batik.apps.ttf2svg;version="1.14.0",org.apache.batik.bridge ;uses:="org.apache.batik.anim,org.apache.batik.anim.dom,org.apache.ba tik.anim.timing,org.apache.batik.anim.values,org.apache.batik.constan ts,org.apache.batik.css.engine,org.apache.batik.css.engine.value,org. apache.batik.css.engine.value.svg,org.apache.batik.css.engine.value.s vg12,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.bati k.dom.svg,org.apache.batik.dom.xbl,org.apache.batik.ext.awt,org.apach e.batik.ext.awt.color,org.apache.batik.ext.awt.geom,org.apache.batik. ext.awt.image,org.apache.batik.ext.awt.image.renderable,org.apache.ba tik.ext.awt.image.spi,org.apache.batik.gvt,org.apache.batik.gvt.event ,org.apache.batik.gvt.filter,org.apache.batik.gvt.font,org.apache.bat ik.gvt.renderer,org.apache.batik.gvt.text,org.apache.batik.i18n,org.a pache.batik.parser,org.apache.batik.script,org.apache.batik.script.rh ino,org.apache.batik.util,org.apache.batik.w3c.dom,org.apache.xmlgrap hics.java2d.color,org.mozilla.javascript,org.w3c.dom,org.w3c.dom.css, org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.batik .bridge.resources;version="1.14.0",org.apache.batik.bridge.svg12;uses :="javax.swing.event,org.apache.batik.anim.dom,org.apache.batik.bridg e,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.d om.svg12,org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.apach e.batik.gvt,org.apache.batik.gvt.event,org.apache.batik.gvt.flow,org. apache.batik.gvt.text,org.apache.batik.parser,org.apache.batik.script ,org.apache.batik.util,org.apache.xml.utils,org.apache.xpath,org.w3c. dom,org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.b atik.constants;version="1.14.0",org.apache.batik.css;version="1.14.0" ,org.apache.batik.css.dom;uses:="org.apache.batik.css.engine,org.apac he.batik.css.engine.value,org.w3c.dom,org.w3c.dom.css,org.w3c.dom.svg ,org.w3c.dom.views";version="1.14.0",org.apache.batik.css.engine;uses :="org.apache.batik.css.engine.sac,org.apache.batik.css.engine.value, org.apache.batik.css.parser,org.apache.batik.i18n,org.apache.batik.ut il,org.w3c.css.sac,org.w3c.dom,org.w3c.dom.events";version="1.14.0",o rg.apache.batik.css.engine.resources;version="1.14.0",org.apache.bati k.css.engine.sac;uses:="org.w3c.css.sac,org.w3c.dom";version="1.14.0" ,org.apache.batik.css.engine.value;uses:="org.apache.batik.css.engine ,org.apache.batik.i18n,org.apache.batik.util,org.w3c.css.sac,org.w3c. dom";version="1.14.0",org.apache.batik.css.engine.value.css2;uses:="o rg.apache.batik.css.engine,org.apache.batik.css.engine.value,org.w3c. css.sac,org.w3c.dom";version="1.14.0",org.apache.batik.css.engine.val ue.resources;version="1.14.0",org.apache.batik.css.engine.value.svg;u ses:="org.apache.batik.css.engine,org.apache.batik.css.engine.value,o rg.w3c.css.sac,org.w3c.dom";version="1.14.0",org.apache.batik.css.eng ine.value.svg12;uses:="org.apache.batik.css.engine,org.apache.batik.c ss.engine.value,org.apache.batik.css.engine.value.svg,org.w3c.css.sac ,org.w3c.dom";version="1.14.0",org.apache.batik.css.parser;uses:="org .apache.batik.i18n,org.apache.batik.util.io,org.w3c.css.sac";version= "1.14.0",org.apache.batik.css.parser.resources;version="1.14.0",org.a pache.batik.dom;uses:="javax.xml.transform,org.apache.batik.css.engin e,org.apache.batik.css.engine.value,org.apache.batik.css.parser,org.a pache.batik.dom.events,org.apache.batik.dom.traversal,org.apache.bati k.dom.xbl,org.apache.batik.i18n,org.apache.batik.util,org.apache.bati k.w3c.dom,org.apache.xml.utils,org.apache.xpath,org.apache.xpath.obje cts,org.w3c.dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.styles heets,org.w3c.dom.traversal,org.w3c.dom.views,org.w3c.dom.xpath";vers ion="1.14.0",org.apache.batik.dom.events;uses:="org.apache.batik.dom, org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.apache.batik.w 3c.dom.events,org.w3c.dom,org.w3c.dom.events,org.w3c.dom.smil,org.w3c .dom.views";version="1.14.0",org.apache.batik.dom.resources;version=" 1.14.0",org.apache.batik.dom.svg;uses:="org.apache.batik.css.engine,o rg.apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.dom. util,org.apache.batik.parser,org.apache.batik.util,org.w3c.dom,org.w3 c.dom.smil,org.w3c.dom.svg";version="1.14.0",org.apache.batik.dom.svg .resources;version="1.14.0",org.apache.batik.dom.svg12;uses:="org.apa che.batik.dom.events,org.apache.batik.dom.xbl,org.w3c.dom.events,org. w3c.dom.views";version="1.14.0",org.apache.batik.dom.traversal;uses:= "org.apache.batik.dom,org.w3c.dom,org.w3c.dom.traversal";version="1.1 4.0",org.apache.batik.dom.util;uses:="org.apache.batik.constants,org. apache.batik.util,org.apache.batik.xml,org.w3c.dom,org.w3c.dom.css,or g.xml.sax,org.xml.sax.ext,org.xml.sax.helpers";version="1.14.0",org.a pache.batik.dom.xbl;uses:="org.w3c.dom,org.w3c.dom.events";version="1 .14.0",org.apache.batik.ext.awt;version="1.14.0",org.apache.batik.ext .awt.color;uses:="org.apache.batik.util,org.apache.xmlgraphics.java2d .color";version="1.14.0",org.apache.batik.ext.awt.font;version="1.14. 0",org.apache.batik.ext.awt.g2d;version="1.14.0",org.apache.batik.ext .awt.geom;version="1.14.0",org.apache.batik.ext.awt.image;uses:="org. apache.batik.ext.awt.image.renderable,org.apache.batik.ext.awt.image. rendered,org.apache.batik.util";version="1.14.0",org.apache.batik.ext .awt.image.codec;version="1.14.0",org.apache.batik.ext.awt.image.code c.imageio;uses:="javax.imageio,javax.imageio.event,javax.imageio.meta data,org.apache.batik.ext.awt.image.renderable,org.apache.batik.ext.a wt.image.spi,org.apache.batik.transcoder,org.apache.batik.transcoder. image,org.apache.batik.util,org.w3c.dom";version="1.14.0",org.apache. batik.ext.awt.image.codec.png;uses:="org.apache.batik.ext.awt.image.c odec.util,org.apache.batik.ext.awt.image.renderable,org.apache.batik. ext.awt.image.rendered,org.apache.batik.ext.awt.image.spi,org.apache. batik.transcoder,org.apache.batik.transcoder.image,org.apache.batik.u til";version="1.14.0",org.apache.batik.ext.awt.image.codec.util;uses: ="org.apache.batik.i18n";version="1.14.0",org.apache.batik.ext.awt.im age.renderable;uses:="org.apache.batik.ext.awt.image,org.apache.batik .ext.awt.image.rendered,org.apache.xmlgraphics.java2d.color";version= "1.14.0",org.apache.batik.ext.awt.image.rendered;uses:="org.apache.ba tik.ext.awt.image,org.apache.batik.util,org.apache.xmlgraphics.java2d .color";version="1.14.0",org.apache.batik.ext.awt.image.spi;uses:="or g.apache.batik.ext.awt.image,org.apache.batik.ext.awt.image.renderabl e,org.apache.batik.util,org.apache.xmlgraphics.java2d.color";version= "1.14.0",org.apache.batik.ext.awt.image.spi.resources;version="1.14.0 ",org.apache.batik.ext.swing;uses:="javax.swing,javax.swing.text,org. apache.batik.i18n,org.apache.batik.util.resources";version="1.14.0",o rg.apache.batik.ext.swing.resources;version="1.14.0",org.apache.batik .extension;uses:="org.apache.batik.anim.dom,org.apache.batik.css.engi ne,org.apache.batik.dom,org.apache.batik.util,org.w3c.dom,org.w3c.dom .css,org.w3c.dom.svg";version="1.14.0",org.apache.batik.extension.svg ;uses:="org.apache.batik.anim.dom,org.apache.batik.bridge,org.apache. batik.dom,org.apache.batik.ext.awt.image.renderable,org.apache.batik. ext.awt.image.rendered,org.apache.batik.extension,org.apache.batik.gv t,org.apache.batik.gvt.font,org.apache.batik.gvt.text,org.apache.bati k.parser,org.w3c.dom";version="1.14.0",org.apache.batik.extensions;ve rsion="1.14.0",org.apache.batik.gvt;uses:="javax.swing.event,org.apac he.batik.ext.awt.geom,org.apache.batik.ext.awt.image.renderable,org.a pache.batik.gvt.event,org.apache.batik.gvt.filter";version="1.14.0",o rg.apache.batik.gvt.event;uses:="javax.swing.event,org.apache.batik.g vt";version="1.14.0",org.apache.batik.gvt.filter;uses:="org.apache.ba tik.ext.awt.image.renderable,org.apache.batik.ext.awt.image.rendered, org.apache.batik.gvt";version="1.14.0",org.apache.batik.gvt.flow;uses :="org.apache.batik.ext.awt.geom,org.apache.batik.gvt.font";version=" 1.14.0",org.apache.batik.gvt.font;uses:="org.apache.batik.gvt,org.apa che.batik.gvt.text,org.apache.batik.util";version="1.14.0",org.apache .batik.gvt.renderer;uses:="org.apache.batik.ext.awt.geom,org.apache.b atik.ext.awt.image.renderable,org.apache.batik.ext.awt.image.rendered ,org.apache.batik.gvt";version="1.14.0",org.apache.batik.gvt.text;ver sion="1.14.0",org.apache.batik.i18n;version="1.14.0",org.apache.batik .parser;uses:="org.apache.batik.ext.awt.geom,org.apache.batik.i18n,or g.apache.batik.util.io,org.w3c.dom";version="1.14.0",org.apache.batik .parser.resources;version="1.14.0",org.apache.batik.parser.style.reso urces;version="1.14.0",org.apache.batik.script;uses:="org.apache.bati k.i18n,org.w3c.dom";version="1.14.0",org.apache.batik.script.jpython; uses:="org.apache.batik.script";version="1.14.0",org.apache.batik.scr ipt.rhino;uses:="org.apache.batik.i18n,org.mozilla.javascript";versio n="1.14.0",org.apache.batik.script.rhino.resources;version="1.14.0",o rg.apache.batik.svggen;uses:="javax.swing,org.apache.batik.constants, org.apache.batik.ext.awt.g2d,org.apache.batik.util,org.w3c.dom";versi on="1.14.0",org.apache.batik.svggen.font;uses:="org.apache.batik.cons tants,org.apache.batik.i18n,org.apache.batik.svggen.font.table,org.ap ache.batik.util";version="1.14.0",org.apache.batik.svggen.font.resour ces;version="1.14.0",org.apache.batik.svggen.font.table;version="1.14 .0",org.apache.batik.swing;uses:="javax.swing,javax.swing.event,org.a pache.batik.bridge,org.apache.batik.constants,org.apache.batik.i18n,o rg.apache.batik.swing.gvt,org.apache.batik.swing.svg,org.w3c.dom,org. w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.batik.swi ng.gvt;uses:="javax.swing,org.apache.batik.bridge,org.apache.batik.gv t,org.apache.batik.gvt.event,org.apache.batik.gvt.renderer,org.apache .batik.util";version="1.14.0",org.apache.batik.swing.resources;versio n="1.14.0",org.apache.batik.swing.svg;uses:="javax.swing.filechooser, org.apache.batik.anim.dom,org.apache.batik.bridge,org.apache.batik.gv t,org.apache.batik.gvt.event,org.apache.batik.gvt.renderer,org.apache .batik.i18n,org.apache.batik.script,org.apache.batik.swing.gvt,org.ap ache.batik.util,org.w3c.dom,org.w3c.dom.svg";version="1.14.0",org.apa che.batik.swing.svg.resources;version="1.14.0",org.apache.batik.trans coder;uses:="org.apache.batik.anim.dom,org.apache.batik.bridge,org.ap ache.batik.dom.util,org.apache.batik.gvt,org.apache.batik.svggen,org. apache.batik.util,org.w3c.dom,org.xml.sax";version="1.14.0",org.apach e.batik.transcoder.image;uses:="org.apache.batik.bridge,org.apache.ba tik.gvt.renderer,org.apache.batik.transcoder,org.w3c.dom";version="1. 14.0",org.apache.batik.transcoder.image.resources;uses:="org.apache.b atik.i18n";version="1.14.0",org.apache.batik.transcoder.keys;uses:="o rg.apache.batik.transcoder";version="1.14.0",org.apache.batik.transco der.print;uses:="org.apache.batik.transcoder,org.w3c.dom";version="1. 14.0",org.apache.batik.transcoder.svg2svg;uses:="org.apache.batik.tra nscoder,org.apache.batik.xml";version="1.14.0",org.apache.batik.trans coder.wmf;version="1.14.0",org.apache.batik.transcoder.wmf.tosvg;uses :="org.apache.batik.transcoder";version="1.14.0",org.apache.batik.uti l;uses:="org.apache.batik.constants,org.apache.batik.i18n,org.apache. batik.util.resources";version="1.14.0",org.apache.batik.util.gui;uses :="javax.swing,javax.swing.event,javax.swing.filechooser,org.apache.b atik.util.gui.resource,org.apache.batik.util.resources";version="1.14 .0",org.apache.batik.util.gui.resource;uses:="javax.swing,org.apache. batik.util.resources";version="1.14.0",org.apache.batik.util.gui.reso urces;version="1.14.0",org.apache.batik.util.gui.resources.flags;vers ion="1.14.0",org.apache.batik.util.gui.xmleditor;uses:="javax.swing,j avax.swing.text,javax.swing.undo";version="1.14.0",org.apache.batik.u til.io;uses:="org.apache.batik.i18n";version="1.14.0",org.apache.bati k.util.io.resources;version="1.14.0",org.apache.batik.util.resources; uses:="org.apache.batik.i18n";version="1.14.0",org.apache.batik.w3c.d om;uses:="org.w3c.dom";version="1.14.0",org.apache.batik.w3c.dom.even ts;uses:="org.w3c.dom,org.w3c.dom.events,org.w3c.dom.views";version=" 1.14.0",org.apache.batik.xml;uses:="org.apache.batik.i18n,org.apache. batik.util.io";version="1.14.0",org.apache.batik.xml.scanner.resource s;version="1.14.0" Import-Package: com.apple.eawt;resolution=optional,javax.imageio,javax .imageio.event,javax.imageio.metadata,javax.imageio.plugins.jpeg,java x.imageio.stream,javax.swing,javax.swing.border,javax.swing.event,jav ax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.sw ing.table,javax.swing.text,javax.swing.tree,javax.swing.undo,javax.xm l.parsers,javax.xml.transform,javax.xml.transform.dom,javax.xml.trans form.stream,org.apache.batik,org.apache.batik.anim,org.apache.batik.a nim.dom,org.apache.batik.anim.timing,org.apache.batik.anim.values,org .apache.batik.bridge,org.apache.batik.bridge.svg12,org.apache.batik.c onstants,org.apache.batik.css.dom,org.apache.batik.css.engine,org.apa che.batik.css.engine.sac,org.apache.batik.css.engine.value,org.apache .batik.css.engine.value.css2,org.apache.batik.css.engine.value.svg,or g.apache.batik.css.engine.value.svg12,org.apache.batik.css.parser,org .apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.dom.sv g,org.apache.batik.dom.svg12,org.apache.batik.dom.traversal,org.apach e.batik.dom.util,org.apache.batik.dom.xbl,org.apache.batik.ext.awt,or g.apache.batik.ext.awt.color,org.apache.batik.ext.awt.g2d,org.apache. batik.ext.awt.geom,org.apache.batik.ext.awt.image,org.apache.batik.ex t.awt.image.codec.util,org.apache.batik.ext.awt.image.renderable,org. apache.batik.ext.awt.image.rendered,org.apache.batik.ext.awt.image.sp i,org.apache.batik.ext.swing,org.apache.batik.extension,org.apache.ba tik.gvt,org.apache.batik.gvt.event,org.apache.batik.gvt.filter,org.ap ache.batik.gvt.flow,org.apache.batik.gvt.font,org.apache.batik.gvt.re nderer,org.apache.batik.gvt.text,org.apache.batik.i18n,org.apache.bat ik.parser,org.apache.batik.script,org.apache.batik.script.rhino,org.a pache.batik.svggen,org.apache.batik.svggen.font,org.apache.batik.svgg en.font.table,org.apache.batik.swing,org.apache.batik.swing.gvt,org.a pache.batik.swing.svg,org.apache.batik.transcoder,org.apache.batik.tr anscoder.image,org.apache.batik.transcoder.image.resources,org.apache .batik.transcoder.keys,org.apache.batik.transcoder.print,org.apache.b atik.transcoder.svg2svg,org.apache.batik.util,org.apache.batik.util.g ui,org.apache.batik.util.gui.resource,org.apache.batik.util.gui.xmled itor,org.apache.batik.util.io,org.apache.batik.util.resources,org.apa che.batik.w3c.dom,org.apache.batik.w3c.dom.events,org.apache.batik.xm l,org.apache.fop.svg,org.apache.xml.utils,org.apache.xmlgraphics.java 2d.color,org.apache.xmlgraphics.java2d.color.profile,org.apache.xpath ,org.apache.xpath.objects,org.mozilla.javascript,org.mozilla.javascri pt.tools.debugger,org.python.core,org.python.util,org.w3c.css.sac,org .w3c.dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.smil,org.w3c. dom.stylesheets,org.w3c.dom.svg,org.w3c.dom.traversal,org.w3c.dom.vie ws,org.w3c.dom.xpath,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers Main-Class: org.apache.batik.apps.svgbrowser.Main Provide-Capability: osgi.service;objectClass:List<String>="javax.image io.ImageWriter";mimeType="image/jpeg";codec=ImageIO;effective:=active ,osgi.service;objectClass:List<String>="javax.imageio.ImageWriter";mi meType="image/png";codec=ImageIO;effective:=active,osgi.service;objec tClass:List<String>="javax.imageio.ImageWriter";mimeType="image/tiff" ;codec=ImageIO;effective:=active,osgi.service;objectClass:List<String >="org.apache.batik.bridge.BridgeExtension";effective:=active,osgi.se rvice;objectClass:List<String>="org.apache.batik.dom.DomExtension";ef fective:=active,osgi.service;objectClass:List<String>="org.apache.bat ik.ext.awt.image.spi.RegistryEntry";mimeTypes:List<String>="image/gif ";extensions:List<String>="";effective:=active,osgi.service;objectCla ss:List<String>="org.apache.batik.ext.awt.image.spi.RegistryEntry";mi meTypes:List<String>="image/jpeg,image/jpg";extensions:List<String>=" jpg,jpeg";effective:=active,osgi.service;objectClass:List<String>="or g.apache.batik.ext.awt.image.spi.RegistryEntry";mimeTypes:List<String >="image/png";extensions:List<String>=png;effective:=active,osgi.serv ice;objectClass:List<String>="org.apache.batik.ext.awt.image.spi.Regi stryEntry";mimeTypes:List<String>="image/tif,image/tiff";extensions:L ist<String>="tif,tiff";effective:=active,osgi.service;objectClass:Lis t<String>="org.apache.batik.script.InterpreterFactory";mimeTypes:List <String>="text/javascript,text/ecmascript,application/javascript,appl ication/ecmascript";effective:=active,osgi.service;objectClass:List<S tring>="org.apache.batik.script.InterpreterFactory";mimeTypes:List<St ring>="text/python";effective:=active,osgi.serviceloader;osgi.service loader="javax.imageio.ImageWriter";register:="org.apache.batik.ext.aw t.image.codec.imageio.ImageIOJPEGImageWriter";mimeType="image/jpeg";c odec=ImageIO,osgi.serviceloader;osgi.serviceloader="javax.imageio.Ima geWriter";register:="org.apache.batik.ext.awt.image.codec.imageio.Ima geIOPNGImageWriter";mimeType="image/png";codec=ImageIO,osgi.servicelo ader;osgi.serviceloader="javax.imageio.ImageWriter";register:="org.ap ache.batik.ext.awt.image.codec.imageio.ImageIOTIFFImageWriter";mimeTy pe="image/tiff";codec=ImageIO,osgi.serviceloader;osgi.serviceloader=" org.apache.batik.bridge.BridgeExtension";register:="org.apache.batik. bridge.SVGBridgeExtension",osgi.serviceloader;osgi.serviceloader="org .apache.batik.bridge.BridgeExtension";register:="org.apache.batik.bri dge.svg12.SVG12BridgeExtension",osgi.serviceloader;osgi.serviceloader ="org.apache.batik.bridge.BridgeExtension";register:="org.apache.bati k.extension.svg.BatikBridgeExtension",osgi.serviceloader;osgi.service loader="org.apache.batik.dom.DomExtension";register:="org.apache.bati k.extension.svg.BatikDomExtension",osgi.serviceloader;osgi.serviceloa der="org.apache.batik.ext.awt.image.spi.RegistryEntry";register:="org .apache.batik.ext.awt.image.codec.imageio.ImageIOJPEGRegistryEntry";m imeTypes:List<String>="image/jpeg,image/jpg";extensions:List<String>= "jpg,jpeg",osgi.serviceloader;osgi.serviceloader="org.apache.batik.ex t.awt.image.spi.RegistryEntry";register:="org.apache.batik.ext.awt.im age.codec.imageio.ImageIOPNGRegistryEntry";mimeTypes:List<String>="im age/png";extensions:List<String>=png,osgi.serviceloader;osgi.servicel oader="org.apache.batik.ext.awt.image.spi.RegistryEntry";register:="o rg.apache.batik.ext.awt.image.codec.imageio.ImageIOTIFFRegistryEntry" ;mimeTypes:List<String>="image/tif,image/tiff";extensions:List<String >="tif,tiff",osgi.serviceloader;osgi.serviceloader="org.apache.batik. ext.awt.image.spi.RegistryEntry";register:="org.apache.batik.ext.awt. image.codec.png.PNGRegistryEntry";mimeTypes:List<String>="image/png"; extensions:List<String>=png,osgi.serviceloader;osgi.serviceloader="or g.apache.batik.ext.awt.image.spi.RegistryEntry";register:="org.apache .batik.ext.awt.image.spi.JDKRegistryEntry";mimeTypes:List<String>="im age/gif";extensions:List<String>="",osgi.serviceloader;osgi.servicelo ader="org.apache.batik.script.InterpreterFactory";register:="org.apac he.batik.bridge.RhinoInterpreterFactory";mimeTypes:List<String>="text /javascript,text/ecmascript,application/javascript,application/ecmasc ript",osgi.serviceloader;osgi.serviceloader="org.apache.batik.script. InterpreterFactory";register:="org.apache.batik.script.jpython.JPytho nInterpreterFactory";mimeTypes:List<String>="text/python" Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi celoader.registrar)(version>=1.0.0)(!(version>=2.0.0)))",osgi.ee;filt er:="(&(osgi.ee=JavaSE)(version=1.7))" Tool: Bnd-6.2.0.202202251641 {code} was: Several applications and frameworks are OSGi based. To use batik in this applications is a bit tricky, because batik does not declare Exportes and Imported packages in the MANIFEST.MF file of the jars. Also the Service class has some issues because it is not sure that correct classloader is used. So most developers repackage the batik jars and add the needed information. Or they use repackages batik versions of eclipse or apache. e.g. `org.apache.servicemix.bundles:org.apache.servicemix.bundles.batik` Best way to is to do the full suport in the main repos. I would like to add a better OSGi Support for Batik. So I made a PR on GitHub. Could somebody give some comments/review before I start the SVN-Process Topics: * use bnd to create OSGi-Bundle Manifests and simplify build * generate META-INF/services files using |@ServiceProvider ( relocate ||META-INF/services to correct jar) | * use ServiceLoader to avoid ClassLoader issues in Service.class could also add ass osgi-based tests if needed PR: https://github.com/apache/xmlgraphics-batik/pull/30 Example Manifest for batik-all {code:java} Manifest-Version: 1.0 Bnd-LastModified: 1647041193864 Bundle-Description: Batik aggregate artifact Bundle-DocURL: http://xmlgraphics.apache.org/batik/batik-all/ Bundle-License: "The Apache Software License, Version 2.0";link="http: //www.apache.org/licenses/LICENSE-2.0.txt" Bundle-ManifestVersion: 2 Bundle-Name: org.apache.xmlgraphics:batik-all Bundle-SCM: url="scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/ batik/trunk/batik-all/",connection="scm:svn:https://svn.apache.org/re pos/asf/xmlgraphics/batik/trunk/batik-all/",tag=HEAD Bundle-SymbolicName: org.apache.xmlgraphics.batik-all Bundle-Vendor: Apache Software Foundation Bundle-Version: 1.14.0.202203112326 Created-By: 17.0.2 (Eclipse Adoptium) Export-Package: org.apache.batik;version="1.14.0",org.apache.batik.ani m;uses:="org.apache.batik.anim.dom,org.apache.batik.anim.timing,org.a pache.batik.anim.values,org.apache.batik.ext.awt.geom,org.apache.bati k.util,org.w3c.dom";version="1.14.0",org.apache.batik.anim.dom;uses:= "org.apache.batik.anim.values,org.apache.batik.css.dom,org.apache.bat ik.css.engine,org.apache.batik.css.engine.value,org.apache.batik.css. parser,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.ba tik.dom.svg,org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.ap ache.batik.i18n,org.apache.batik.parser,org.apache.batik.util,org.w3c .dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.stylesheets,org.w 3c.dom.svg,org.w3c.dom.views,org.xml.sax";version="1.14.0",org.apache .batik.anim.dom.resources;version="1.14.0",org.apache.batik.anim.reso urces;version="1.14.0",org.apache.batik.anim.timing;uses:="org.apache .batik.anim,org.apache.batik.i18n,org.apache.batik.parser,org.apache. batik.util,org.w3c.dom,org.w3c.dom.events";version="1.14.0",org.apach e.batik.anim.values;uses:="org.apache.batik.anim.dom,org.apache.batik .dom.svg";version="1.14.0",org.apache.batik.apps.rasterizer;uses:="or g.apache.batik.i18n,org.apache.batik.transcoder";version="1.14.0",org .apache.batik.apps.rasterizer.resources;version="1.14.0",org.apache.b atik.apps.slideshow;uses:="javax.swing";version="1.14.0",org.apache.b atik.apps.svgbrowser;uses:="javax.swing,javax.swing.event,javax.swing .filechooser,javax.swing.table,javax.swing.tree,javax.xml.transform,o rg.apache.batik.bridge,org.apache.batik.ext.swing,org.apache.batik.gv t,org.apache.batik.i18n,org.apache.batik.swing,org.apache.batik.swing .gvt,org.apache.batik.swing.svg,org.apache.batik.util,org.apache.bati k.util.gui,org.apache.batik.util.gui.resource,org.apache.batik.util.g ui.xmleditor,org.apache.batik.util.resources,org.w3c.dom,org.w3c.dom. css,org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.b atik.apps.svgbrowser.resources;version="1.14.0",org.apache.batik.apps .svgpp;uses:="org.apache.batik.i18n,org.apache.batik.transcoder";vers ion="1.14.0",org.apache.batik.apps.svgpp.resources;version="1.14.0",o rg.apache.batik.apps.ttf2svg;version="1.14.0",org.apache.batik.bridge ;uses:="org.apache.batik.anim,org.apache.batik.anim.dom,org.apache.ba tik.anim.timing,org.apache.batik.anim.values,org.apache.batik.constan ts,org.apache.batik.css.engine,org.apache.batik.css.engine.value,org. apache.batik.css.engine.value.svg,org.apache.batik.css.engine.value.s vg12,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.bati k.dom.svg,org.apache.batik.dom.xbl,org.apache.batik.ext.awt,org.apach e.batik.ext.awt.color,org.apache.batik.ext.awt.geom,org.apache.batik. ext.awt.image,org.apache.batik.ext.awt.image.renderable,org.apache.ba tik.ext.awt.image.spi,org.apache.batik.gvt,org.apache.batik.gvt.event ,org.apache.batik.gvt.filter,org.apache.batik.gvt.font,org.apache.bat ik.gvt.renderer,org.apache.batik.gvt.text,org.apache.batik.i18n,org.a pache.batik.parser,org.apache.batik.script,org.apache.batik.script.rh ino,org.apache.batik.util,org.apache.batik.w3c.dom,org.apache.xmlgrap hics.java2d.color,org.mozilla.javascript,org.w3c.dom,org.w3c.dom.css, org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.batik .bridge.resources;version="1.14.0",org.apache.batik.bridge.svg12;uses :="javax.swing.event,org.apache.batik.anim.dom,org.apache.batik.bridg e,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.d om.svg12,org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.apach e.batik.gvt,org.apache.batik.gvt.event,org.apache.batik.gvt.flow,org. apache.batik.gvt.text,org.apache.batik.parser,org.apache.batik.script ,org.apache.batik.util,org.apache.xml.utils,org.apache.xpath,org.w3c. dom,org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.b atik.constants;version="1.14.0",org.apache.batik.css;version="1.14.0" ,org.apache.batik.css.dom;uses:="org.apache.batik.css.engine,org.apac he.batik.css.engine.value,org.w3c.dom,org.w3c.dom.css,org.w3c.dom.svg ,org.w3c.dom.views";version="1.14.0",org.apache.batik.css.engine;uses :="org.apache.batik.css.engine.sac,org.apache.batik.css.engine.value, org.apache.batik.css.parser,org.apache.batik.i18n,org.apache.batik.ut il,org.w3c.css.sac,org.w3c.dom,org.w3c.dom.events";version="1.14.0",o rg.apache.batik.css.engine.resources;version="1.14.0",org.apache.bati k.css.engine.sac;uses:="org.w3c.css.sac,org.w3c.dom";version="1.14.0" ,org.apache.batik.css.engine.value;uses:="org.apache.batik.css.engine ,org.apache.batik.i18n,org.apache.batik.util,org.w3c.css.sac,org.w3c. dom";version="1.14.0",org.apache.batik.css.engine.value.css2;uses:="o rg.apache.batik.css.engine,org.apache.batik.css.engine.value,org.w3c. css.sac,org.w3c.dom";version="1.14.0",org.apache.batik.css.engine.val ue.resources;version="1.14.0",org.apache.batik.css.engine.value.svg;u ses:="org.apache.batik.css.engine,org.apache.batik.css.engine.value,o rg.w3c.css.sac,org.w3c.dom";version="1.14.0",org.apache.batik.css.eng ine.value.svg12;uses:="org.apache.batik.css.engine,org.apache.batik.c ss.engine.value,org.apache.batik.css.engine.value.svg,org.w3c.css.sac ,org.w3c.dom";version="1.14.0",org.apache.batik.css.parser;uses:="org .apache.batik.i18n,org.apache.batik.util.io,org.w3c.css.sac";version= "1.14.0",org.apache.batik.css.parser.resources;version="1.14.0",org.a pache.batik.dom;uses:="javax.xml.transform,org.apache.batik.css.engin e,org.apache.batik.css.engine.value,org.apache.batik.css.parser,org.a pache.batik.dom.events,org.apache.batik.dom.traversal,org.apache.bati k.dom.xbl,org.apache.batik.i18n,org.apache.batik.util,org.apache.bati k.w3c.dom,org.apache.xml.utils,org.apache.xpath,org.apache.xpath.obje cts,org.w3c.dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.styles heets,org.w3c.dom.traversal,org.w3c.dom.views,org.w3c.dom.xpath";vers ion="1.14.0",org.apache.batik.dom.events;uses:="org.apache.batik.dom, org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.apache.batik.w 3c.dom.events,org.w3c.dom,org.w3c.dom.events,org.w3c.dom.smil,org.w3c .dom.views";version="1.14.0",org.apache.batik.dom.resources;version=" 1.14.0",org.apache.batik.dom.svg;uses:="org.apache.batik.css.engine,o rg.apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.dom. util,org.apache.batik.parser,org.apache.batik.util,org.w3c.dom,org.w3 c.dom.smil,org.w3c.dom.svg";version="1.14.0",org.apache.batik.dom.svg .resources;version="1.14.0",org.apache.batik.dom.svg12;uses:="org.apa che.batik.dom.events,org.apache.batik.dom.xbl,org.w3c.dom.events,org. w3c.dom.views";version="1.14.0",org.apache.batik.dom.traversal;uses:= "org.apache.batik.dom,org.w3c.dom,org.w3c.dom.traversal";version="1.1 4.0",org.apache.batik.dom.util;uses:="org.apache.batik.constants,org. apache.batik.util,org.apache.batik.xml,org.w3c.dom,org.w3c.dom.css,or g.xml.sax,org.xml.sax.ext,org.xml.sax.helpers";version="1.14.0",org.a pache.batik.dom.xbl;uses:="org.w3c.dom,org.w3c.dom.events";version="1 .14.0",org.apache.batik.ext.awt;version="1.14.0",org.apache.batik.ext .awt.color;uses:="org.apache.batik.util,org.apache.xmlgraphics.java2d .color";version="1.14.0",org.apache.batik.ext.awt.font;version="1.14. 0",org.apache.batik.ext.awt.g2d;version="1.14.0",org.apache.batik.ext .awt.geom;version="1.14.0",org.apache.batik.ext.awt.image;uses:="org. apache.batik.ext.awt.image.renderable,org.apache.batik.ext.awt.image. rendered,org.apache.batik.util";version="1.14.0",org.apache.batik.ext .awt.image.codec;version="1.14.0",org.apache.batik.ext.awt.image.code c.imageio;uses:="javax.imageio,javax.imageio.event,javax.imageio.meta data,org.apache.batik.ext.awt.image.renderable,org.apache.batik.ext.a wt.image.spi,org.apache.batik.transcoder,org.apache.batik.transcoder. image,org.apache.batik.util,org.w3c.dom";version="1.14.0",org.apache. batik.ext.awt.image.codec.png;uses:="org.apache.batik.ext.awt.image.c odec.util,org.apache.batik.ext.awt.image.renderable,org.apache.batik. ext.awt.image.rendered,org.apache.batik.ext.awt.image.spi,org.apache. batik.transcoder,org.apache.batik.transcoder.image,org.apache.batik.u til";version="1.14.0",org.apache.batik.ext.awt.image.codec.util;uses: ="org.apache.batik.i18n";version="1.14.0",org.apache.batik.ext.awt.im age.renderable;uses:="org.apache.batik.ext.awt.image,org.apache.batik .ext.awt.image.rendered,org.apache.xmlgraphics.java2d.color";version= "1.14.0",org.apache.batik.ext.awt.image.rendered;uses:="org.apache.ba tik.ext.awt.image,org.apache.batik.util,org.apache.xmlgraphics.java2d .color";version="1.14.0",org.apache.batik.ext.awt.image.spi;uses:="or g.apache.batik.ext.awt.image,org.apache.batik.ext.awt.image.renderabl e,org.apache.batik.util,org.apache.xmlgraphics.java2d.color";version= "1.14.0",org.apache.batik.ext.awt.image.spi.resources;version="1.14.0 ",org.apache.batik.ext.swing;uses:="javax.swing,javax.swing.text,org. apache.batik.i18n,org.apache.batik.util.resources";version="1.14.0",o rg.apache.batik.ext.swing.resources;version="1.14.0",org.apache.batik .extension;uses:="org.apache.batik.anim.dom,org.apache.batik.css.engi ne,org.apache.batik.dom,org.apache.batik.util,org.w3c.dom,org.w3c.dom .css,org.w3c.dom.svg";version="1.14.0",org.apache.batik.extension.svg ;uses:="org.apache.batik.anim.dom,org.apache.batik.bridge,org.apache. batik.dom,org.apache.batik.ext.awt.image.renderable,org.apache.batik. ext.awt.image.rendered,org.apache.batik.extension,org.apache.batik.gv t,org.apache.batik.gvt.font,org.apache.batik.gvt.text,org.apache.bati k.parser,org.w3c.dom";version="1.14.0",org.apache.batik.extensions;ve rsion="1.14.0",org.apache.batik.gvt;uses:="javax.swing.event,org.apac he.batik.ext.awt.geom,org.apache.batik.ext.awt.image.renderable,org.a pache.batik.gvt.event,org.apache.batik.gvt.filter";version="1.14.0",o rg.apache.batik.gvt.event;uses:="javax.swing.event,org.apache.batik.g vt";version="1.14.0",org.apache.batik.gvt.filter;uses:="org.apache.ba tik.ext.awt.image.renderable,org.apache.batik.ext.awt.image.rendered, org.apache.batik.gvt";version="1.14.0",org.apache.batik.gvt.flow;uses :="org.apache.batik.ext.awt.geom,org.apache.batik.gvt.font";version=" 1.14.0",org.apache.batik.gvt.font;uses:="org.apache.batik.gvt,org.apa che.batik.gvt.text,org.apache.batik.util";version="1.14.0",org.apache .batik.gvt.renderer;uses:="org.apache.batik.ext.awt.geom,org.apache.b atik.ext.awt.image.renderable,org.apache.batik.ext.awt.image.rendered ,org.apache.batik.gvt";version="1.14.0",org.apache.batik.gvt.text;ver sion="1.14.0",org.apache.batik.i18n;version="1.14.0",org.apache.batik .parser;uses:="org.apache.batik.ext.awt.geom,org.apache.batik.i18n,or g.apache.batik.util.io,org.w3c.dom";version="1.14.0",org.apache.batik .parser.resources;version="1.14.0",org.apache.batik.parser.style.reso urces;version="1.14.0",org.apache.batik.script;uses:="org.apache.bati k.i18n,org.w3c.dom";version="1.14.0",org.apache.batik.script.jpython; uses:="org.apache.batik.script";version="1.14.0",org.apache.batik.scr ipt.rhino;uses:="org.apache.batik.i18n,org.mozilla.javascript";versio n="1.14.0",org.apache.batik.script.rhino.resources;version="1.14.0",o rg.apache.batik.svggen;uses:="javax.swing,org.apache.batik.constants, org.apache.batik.ext.awt.g2d,org.apache.batik.util,org.w3c.dom";versi on="1.14.0",org.apache.batik.svggen.font;uses:="org.apache.batik.cons tants,org.apache.batik.i18n,org.apache.batik.svggen.font.table,org.ap ache.batik.util";version="1.14.0",org.apache.batik.svggen.font.resour ces;version="1.14.0",org.apache.batik.svggen.font.table;version="1.14 .0",org.apache.batik.swing;uses:="javax.swing,javax.swing.event,org.a pache.batik.bridge,org.apache.batik.constants,org.apache.batik.i18n,o rg.apache.batik.swing.gvt,org.apache.batik.swing.svg,org.w3c.dom,org. w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.batik.swi ng.gvt;uses:="javax.swing,org.apache.batik.bridge,org.apache.batik.gv t,org.apache.batik.gvt.event,org.apache.batik.gvt.renderer,org.apache .batik.util";version="1.14.0",org.apache.batik.swing.resources;versio n="1.14.0",org.apache.batik.swing.svg;uses:="javax.swing.filechooser, org.apache.batik.anim.dom,org.apache.batik.bridge,org.apache.batik.gv t,org.apache.batik.gvt.event,org.apache.batik.gvt.renderer,org.apache .batik.i18n,org.apache.batik.script,org.apache.batik.swing.gvt,org.ap ache.batik.util,org.w3c.dom,org.w3c.dom.svg";version="1.14.0",org.apa che.batik.swing.svg.resources;version="1.14.0",org.apache.batik.trans coder;uses:="org.apache.batik.anim.dom,org.apache.batik.bridge,org.ap ache.batik.dom.util,org.apache.batik.gvt,org.apache.batik.svggen,org. apache.batik.util,org.w3c.dom,org.xml.sax";version="1.14.0",org.apach e.batik.transcoder.image;uses:="org.apache.batik.bridge,org.apache.ba tik.gvt.renderer,org.apache.batik.transcoder,org.w3c.dom";version="1. 14.0",org.apache.batik.transcoder.image.resources;uses:="org.apache.b atik.i18n";version="1.14.0",org.apache.batik.transcoder.keys;uses:="o rg.apache.batik.transcoder";version="1.14.0",org.apache.batik.transco der.print;uses:="org.apache.batik.transcoder,org.w3c.dom";version="1. 14.0",org.apache.batik.transcoder.svg2svg;uses:="org.apache.batik.tra nscoder,org.apache.batik.xml";version="1.14.0",org.apache.batik.trans coder.wmf;version="1.14.0",org.apache.batik.transcoder.wmf.tosvg;uses :="org.apache.batik.transcoder";version="1.14.0",org.apache.batik.uti l;uses:="org.apache.batik.constants,org.apache.batik.i18n,org.apache. batik.util.resources";version="1.14.0",org.apache.batik.util.gui;uses :="javax.swing,javax.swing.event,javax.swing.filechooser,org.apache.b atik.util.gui.resource,org.apache.batik.util.resources";version="1.14 .0",org.apache.batik.util.gui.resource;uses:="javax.swing,org.apache. batik.util.resources";version="1.14.0",org.apache.batik.util.gui.reso urces;version="1.14.0",org.apache.batik.util.gui.resources.flags;vers ion="1.14.0",org.apache.batik.util.gui.xmleditor;uses:="javax.swing,j avax.swing.text,javax.swing.undo";version="1.14.0",org.apache.batik.u til.io;uses:="org.apache.batik.i18n";version="1.14.0",org.apache.bati k.util.io.resources;version="1.14.0",org.apache.batik.util.resources; uses:="org.apache.batik.i18n";version="1.14.0",org.apache.batik.w3c.d om;uses:="org.w3c.dom";version="1.14.0",org.apache.batik.w3c.dom.even ts;uses:="org.w3c.dom,org.w3c.dom.events,org.w3c.dom.views";version=" 1.14.0",org.apache.batik.xml;uses:="org.apache.batik.i18n,org.apache. batik.util.io";version="1.14.0",org.apache.batik.xml.scanner.resource s;version="1.14.0" Import-Package: com.apple.eawt;resolution=optional,javax.imageio,javax .imageio.event,javax.imageio.metadata,javax.imageio.plugins.jpeg,java x.imageio.stream,javax.swing,javax.swing.border,javax.swing.event,jav ax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.sw ing.table,javax.swing.text,javax.swing.tree,javax.swing.undo,javax.xm l.parsers,javax.xml.transform,javax.xml.transform.dom,javax.xml.trans form.stream,org.apache.batik,org.apache.batik.anim,org.apache.batik.a nim.dom,org.apache.batik.anim.timing,org.apache.batik.anim.values,org .apache.batik.bridge,org.apache.batik.bridge.svg12,org.apache.batik.c onstants,org.apache.batik.css.dom,org.apache.batik.css.engine,org.apa che.batik.css.engine.sac,org.apache.batik.css.engine.value,org.apache .batik.css.engine.value.css2,org.apache.batik.css.engine.value.svg,or g.apache.batik.css.engine.value.svg12,org.apache.batik.css.parser,org .apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.dom.sv g,org.apache.batik.dom.svg12,org.apache.batik.dom.traversal,org.apach e.batik.dom.util,org.apache.batik.dom.xbl,org.apache.batik.ext.awt,or g.apache.batik.ext.awt.color,org.apache.batik.ext.awt.g2d,org.apache. batik.ext.awt.geom,org.apache.batik.ext.awt.image,org.apache.batik.ex t.awt.image.codec.util,org.apache.batik.ext.awt.image.renderable,org. apache.batik.ext.awt.image.rendered,org.apache.batik.ext.awt.image.sp i,org.apache.batik.ext.swing,org.apache.batik.extension,org.apache.ba tik.gvt,org.apache.batik.gvt.event,org.apache.batik.gvt.filter,org.ap ache.batik.gvt.flow,org.apache.batik.gvt.font,org.apache.batik.gvt.re nderer,org.apache.batik.gvt.text,org.apache.batik.i18n,org.apache.bat ik.parser,org.apache.batik.script,org.apache.batik.script.rhino,org.a pache.batik.svggen,org.apache.batik.svggen.font,org.apache.batik.svgg en.font.table,org.apache.batik.swing,org.apache.batik.swing.gvt,org.a pache.batik.swing.svg,org.apache.batik.transcoder,org.apache.batik.tr anscoder.image,org.apache.batik.transcoder.image.resources,org.apache .batik.transcoder.keys,org.apache.batik.transcoder.print,org.apache.b atik.transcoder.svg2svg,org.apache.batik.util,org.apache.batik.util.g ui,org.apache.batik.util.gui.resource,org.apache.batik.util.gui.xmled itor,org.apache.batik.util.io,org.apache.batik.util.resources,org.apa che.batik.w3c.dom,org.apache.batik.w3c.dom.events,org.apache.batik.xm l,org.apache.fop.svg,org.apache.xml.utils,org.apache.xmlgraphics.java 2d.color,org.apache.xmlgraphics.java2d.color.profile,org.apache.xpath ,org.apache.xpath.objects,org.mozilla.javascript,org.mozilla.javascri pt.tools.debugger,org.python.core,org.python.util,org.w3c.css.sac,org .w3c.dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.smil,org.w3c. dom.stylesheets,org.w3c.dom.svg,org.w3c.dom.traversal,org.w3c.dom.vie ws,org.w3c.dom.xpath,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers Main-Class: org.apache.batik.apps.svgbrowser.Main Provide-Capability: osgi.service;objectClass:List<String>="javax.image io.ImageWriter";mimeType="image/jpeg";codec=ImageIO;effective:=active ,osgi.service;objectClass:List<String>="javax.imageio.ImageWriter";mi meType="image/png";codec=ImageIO;effective:=active,osgi.service;objec tClass:List<String>="javax.imageio.ImageWriter";mimeType="image/tiff" ;codec=ImageIO;effective:=active,osgi.service;objectClass:List<String >="org.apache.batik.bridge.BridgeExtension";effective:=active,osgi.se rvice;objectClass:List<String>="org.apache.batik.dom.DomExtension";ef fective:=active,osgi.service;objectClass:List<String>="org.apache.bat ik.ext.awt.image.spi.RegistryEntry";mimeTypes:List<String>="image/gif ";extensions:List<String>="";effective:=active,osgi.service;objectCla ss:List<String>="org.apache.batik.ext.awt.image.spi.RegistryEntry";mi meTypes:List<String>="image/jpeg,image/jpg";extensions:List<String>=" jpg,jpeg";effective:=active,osgi.service;objectClass:List<String>="or g.apache.batik.ext.awt.image.spi.RegistryEntry";mimeTypes:List<String >="image/png";extensions:List<String>=png;effective:=active,osgi.serv ice;objectClass:List<String>="org.apache.batik.ext.awt.image.spi.Regi stryEntry";mimeTypes:List<String>="image/tif,image/tiff";extensions:L ist<String>="tif,tiff";effective:=active,osgi.service;objectClass:Lis t<String>="org.apache.batik.script.InterpreterFactory";mimeTypes:List <String>="text/javascript,text/ecmascript,application/javascript,appl ication/ecmascript";effective:=active,osgi.service;objectClass:List<S tring>="org.apache.batik.script.InterpreterFactory";mimeTypes:List<St ring>="text/python";effective:=active,osgi.serviceloader;osgi.service loader="javax.imageio.ImageWriter";register:="org.apache.batik.ext.aw t.image.codec.imageio.ImageIOJPEGImageWriter";mimeType="image/jpeg";c odec=ImageIO,osgi.serviceloader;osgi.serviceloader="javax.imageio.Ima geWriter";register:="org.apache.batik.ext.awt.image.codec.imageio.Ima geIOPNGImageWriter";mimeType="image/png";codec=ImageIO,osgi.servicelo ader;osgi.serviceloader="javax.imageio.ImageWriter";register:="org.ap ache.batik.ext.awt.image.codec.imageio.ImageIOTIFFImageWriter";mimeTy pe="image/tiff";codec=ImageIO,osgi.serviceloader;osgi.serviceloader=" org.apache.batik.bridge.BridgeExtension";register:="org.apache.batik. bridge.SVGBridgeExtension",osgi.serviceloader;osgi.serviceloader="org .apache.batik.bridge.BridgeExtension";register:="org.apache.batik.bri dge.svg12.SVG12BridgeExtension",osgi.serviceloader;osgi.serviceloader ="org.apache.batik.bridge.BridgeExtension";register:="org.apache.bati k.extension.svg.BatikBridgeExtension",osgi.serviceloader;osgi.service loader="org.apache.batik.dom.DomExtension";register:="org.apache.bati k.extension.svg.BatikDomExtension",osgi.serviceloader;osgi.serviceloa der="org.apache.batik.ext.awt.image.spi.RegistryEntry";register:="org .apache.batik.ext.awt.image.codec.imageio.ImageIOJPEGRegistryEntry";m imeTypes:List<String>="image/jpeg,image/jpg";extensions:List<String>= "jpg,jpeg",osgi.serviceloader;osgi.serviceloader="org.apache.batik.ex t.awt.image.spi.RegistryEntry";register:="org.apache.batik.ext.awt.im age.codec.imageio.ImageIOPNGRegistryEntry";mimeTypes:List<String>="im age/png";extensions:List<String>=png,osgi.serviceloader;osgi.servicel oader="org.apache.batik.ext.awt.image.spi.RegistryEntry";register:="o rg.apache.batik.ext.awt.image.codec.imageio.ImageIOTIFFRegistryEntry" ;mimeTypes:List<String>="image/tif,image/tiff";extensions:List<String >="tif,tiff",osgi.serviceloader;osgi.serviceloader="org.apache.batik. ext.awt.image.spi.RegistryEntry";register:="org.apache.batik.ext.awt. image.codec.png.PNGRegistryEntry";mimeTypes:List<String>="image/png"; extensions:List<String>=png,osgi.serviceloader;osgi.serviceloader="or g.apache.batik.ext.awt.image.spi.RegistryEntry";register:="org.apache .batik.ext.awt.image.spi.JDKRegistryEntry";mimeTypes:List<String>="im age/gif";extensions:List<String>="",osgi.serviceloader;osgi.servicelo ader="org.apache.batik.script.InterpreterFactory";register:="org.apac he.batik.bridge.RhinoInterpreterFactory";mimeTypes:List<String>="text /javascript,text/ecmascript,application/javascript,application/ecmasc ript",osgi.serviceloader;osgi.serviceloader="org.apache.batik.script. InterpreterFactory";register:="org.apache.batik.script.jpython.JPytho nInterpreterFactory";mimeTypes:List<String>="text/python" Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi celoader.registrar)(version>=1.0.0)(!(version>=2.0.0)))",osgi.ee;filt er:="(&(osgi.ee=JavaSE)(version=1.7))" Tool: Bnd-6.2.0.202202251641 {code} > OSGi Support > ------------ > > Key: BATIK-1322 > URL: https://issues.apache.org/jira/browse/BATIK-1322 > Project: Batik > Issue Type: New Feature > Reporter: Stefan Bischof > Priority: Major > > Several applications and frameworks are OSGi based. To use batik in this > applications is a bit tricky, because batik does not declare Exportes and > Imported packages in the MANIFEST.MF file of the jars. Also the Service class > has some issues because it is not sure that correct classloader is used. So > most developers repackage the batik jars and add the needed information. Or > they use repackages batik versions of eclipse or apache. e.g. > `org.apache.servicemix.bundles:org.apache.servicemix.bundles.batik` > Best way to is to do the full suport in the main repos. > I would like to add a better OSGi Support for Batik. So I made a PR on > GitHub. > Could somebody give some comments/review before I start the SVN-Process > Topics: > * use bnd to create OSGi-Bundle Manifests and simplify build > * generate META-INF/services files using |@ServiceProvider ( relocate > ||META-INF/services to correct jar)|| > * use ServiceLoader to avoid ClassLoader issues in Service.class > could also add ass osgi-based tests if needed > PR: > [https://github.com/apache/xmlgraphics-batik/pull/30] > Example Manifest for batik-all > {code:java} > Manifest-Version: 1.0 > Bnd-LastModified: 1647041193864 > Bundle-Description: Batik aggregate artifact > Bundle-DocURL: http://xmlgraphics.apache.org/batik/batik-all/ > Bundle-License: "The Apache Software License, Version 2.0";link="http: > //www.apache.org/licenses/LICENSE-2.0.txt" > Bundle-ManifestVersion: 2 > Bundle-Name: org.apache.xmlgraphics:batik-all > Bundle-SCM: url="scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/ > batik/trunk/batik-all/",connection="scm:svn:https://svn.apache.org/re > pos/asf/xmlgraphics/batik/trunk/batik-all/",tag=HEAD > Bundle-SymbolicName: org.apache.xmlgraphics.batik-all > Bundle-Vendor: Apache Software Foundation > Bundle-Version: 1.14.0.202203112326 > Created-By: 17.0.2 (Eclipse Adoptium) > Export-Package: org.apache.batik;version="1.14.0",org.apache.batik.ani > m;uses:="org.apache.batik.anim.dom,org.apache.batik.anim.timing,org.a > pache.batik.anim.values,org.apache.batik.ext.awt.geom,org.apache.bati > k.util,org.w3c.dom";version="1.14.0",org.apache.batik.anim.dom;uses:= > "org.apache.batik.anim.values,org.apache.batik.css.dom,org.apache.bat > ik.css.engine,org.apache.batik.css.engine.value,org.apache.batik.css. > parser,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.ba > tik.dom.svg,org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.ap > ache.batik.i18n,org.apache.batik.parser,org.apache.batik.util,org.w3c > .dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.stylesheets,org.w > 3c.dom.svg,org.w3c.dom.views,org.xml.sax";version="1.14.0",org.apache > .batik.anim.dom.resources;version="1.14.0",org.apache.batik.anim.reso > urces;version="1.14.0",org.apache.batik.anim.timing;uses:="org.apache > .batik.anim,org.apache.batik.i18n,org.apache.batik.parser,org.apache. > batik.util,org.w3c.dom,org.w3c.dom.events";version="1.14.0",org.apach > e.batik.anim.values;uses:="org.apache.batik.anim.dom,org.apache.batik > .dom.svg";version="1.14.0",org.apache.batik.apps.rasterizer;uses:="or > g.apache.batik.i18n,org.apache.batik.transcoder";version="1.14.0",org > .apache.batik.apps.rasterizer.resources;version="1.14.0",org.apache.b > atik.apps.slideshow;uses:="javax.swing";version="1.14.0",org.apache.b > atik.apps.svgbrowser;uses:="javax.swing,javax.swing.event,javax.swing > .filechooser,javax.swing.table,javax.swing.tree,javax.xml.transform,o > rg.apache.batik.bridge,org.apache.batik.ext.swing,org.apache.batik.gv > t,org.apache.batik.i18n,org.apache.batik.swing,org.apache.batik.swing > .gvt,org.apache.batik.swing.svg,org.apache.batik.util,org.apache.bati > k.util.gui,org.apache.batik.util.gui.resource,org.apache.batik.util.g > ui.xmleditor,org.apache.batik.util.resources,org.w3c.dom,org.w3c.dom. > css,org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.b > atik.apps.svgbrowser.resources;version="1.14.0",org.apache.batik.apps > .svgpp;uses:="org.apache.batik.i18n,org.apache.batik.transcoder";vers > ion="1.14.0",org.apache.batik.apps.svgpp.resources;version="1.14.0",o > rg.apache.batik.apps.ttf2svg;version="1.14.0",org.apache.batik.bridge > ;uses:="org.apache.batik.anim,org.apache.batik.anim.dom,org.apache.ba > tik.anim.timing,org.apache.batik.anim.values,org.apache.batik.constan > ts,org.apache.batik.css.engine,org.apache.batik.css.engine.value,org. > apache.batik.css.engine.value.svg,org.apache.batik.css.engine.value.s > vg12,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.bati > k.dom.svg,org.apache.batik.dom.xbl,org.apache.batik.ext.awt,org.apach > e.batik.ext.awt.color,org.apache.batik.ext.awt.geom,org.apache.batik. > ext.awt.image,org.apache.batik.ext.awt.image.renderable,org.apache.ba > tik.ext.awt.image.spi,org.apache.batik.gvt,org.apache.batik.gvt.event > ,org.apache.batik.gvt.filter,org.apache.batik.gvt.font,org.apache.bat > ik.gvt.renderer,org.apache.batik.gvt.text,org.apache.batik.i18n,org.a > pache.batik.parser,org.apache.batik.script,org.apache.batik.script.rh > ino,org.apache.batik.util,org.apache.batik.w3c.dom,org.apache.xmlgrap > hics.java2d.color,org.mozilla.javascript,org.w3c.dom,org.w3c.dom.css, > org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.batik > .bridge.resources;version="1.14.0",org.apache.batik.bridge.svg12;uses > :="javax.swing.event,org.apache.batik.anim.dom,org.apache.batik.bridg > e,org.apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.d > om.svg12,org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.apach > e.batik.gvt,org.apache.batik.gvt.event,org.apache.batik.gvt.flow,org. > apache.batik.gvt.text,org.apache.batik.parser,org.apache.batik.script > ,org.apache.batik.util,org.apache.xml.utils,org.apache.xpath,org.w3c. > dom,org.w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.b > atik.constants;version="1.14.0",org.apache.batik.css;version="1.14.0" > ,org.apache.batik.css.dom;uses:="org.apache.batik.css.engine,org.apac > he.batik.css.engine.value,org.w3c.dom,org.w3c.dom.css,org.w3c.dom.svg > ,org.w3c.dom.views";version="1.14.0",org.apache.batik.css.engine;uses > :="org.apache.batik.css.engine.sac,org.apache.batik.css.engine.value, > org.apache.batik.css.parser,org.apache.batik.i18n,org.apache.batik.ut > il,org.w3c.css.sac,org.w3c.dom,org.w3c.dom.events";version="1.14.0",o > rg.apache.batik.css.engine.resources;version="1.14.0",org.apache.bati > k.css.engine.sac;uses:="org.w3c.css.sac,org.w3c.dom";version="1.14.0" > ,org.apache.batik.css.engine.value;uses:="org.apache.batik.css.engine > ,org.apache.batik.i18n,org.apache.batik.util,org.w3c.css.sac,org.w3c. > dom";version="1.14.0",org.apache.batik.css.engine.value.css2;uses:="o > rg.apache.batik.css.engine,org.apache.batik.css.engine.value,org.w3c. > css.sac,org.w3c.dom";version="1.14.0",org.apache.batik.css.engine.val > ue.resources;version="1.14.0",org.apache.batik.css.engine.value.svg;u > ses:="org.apache.batik.css.engine,org.apache.batik.css.engine.value,o > rg.w3c.css.sac,org.w3c.dom";version="1.14.0",org.apache.batik.css.eng > ine.value.svg12;uses:="org.apache.batik.css.engine,org.apache.batik.c > ss.engine.value,org.apache.batik.css.engine.value.svg,org.w3c.css.sac > ,org.w3c.dom";version="1.14.0",org.apache.batik.css.parser;uses:="org > .apache.batik.i18n,org.apache.batik.util.io,org.w3c.css.sac";version= > "1.14.0",org.apache.batik.css.parser.resources;version="1.14.0",org.a > pache.batik.dom;uses:="javax.xml.transform,org.apache.batik.css.engin > e,org.apache.batik.css.engine.value,org.apache.batik.css.parser,org.a > pache.batik.dom.events,org.apache.batik.dom.traversal,org.apache.bati > k.dom.xbl,org.apache.batik.i18n,org.apache.batik.util,org.apache.bati > k.w3c.dom,org.apache.xml.utils,org.apache.xpath,org.apache.xpath.obje > cts,org.w3c.dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.styles > heets,org.w3c.dom.traversal,org.w3c.dom.views,org.w3c.dom.xpath";vers > ion="1.14.0",org.apache.batik.dom.events;uses:="org.apache.batik.dom, > org.apache.batik.dom.util,org.apache.batik.dom.xbl,org.apache.batik.w > 3c.dom.events,org.w3c.dom,org.w3c.dom.events,org.w3c.dom.smil,org.w3c > .dom.views";version="1.14.0",org.apache.batik.dom.resources;version=" > 1.14.0",org.apache.batik.dom.svg;uses:="org.apache.batik.css.engine,o > rg.apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.dom. > util,org.apache.batik.parser,org.apache.batik.util,org.w3c.dom,org.w3 > c.dom.smil,org.w3c.dom.svg";version="1.14.0",org.apache.batik.dom.svg > .resources;version="1.14.0",org.apache.batik.dom.svg12;uses:="org.apa > che.batik.dom.events,org.apache.batik.dom.xbl,org.w3c.dom.events,org. > w3c.dom.views";version="1.14.0",org.apache.batik.dom.traversal;uses:= > "org.apache.batik.dom,org.w3c.dom,org.w3c.dom.traversal";version="1.1 > 4.0",org.apache.batik.dom.util;uses:="org.apache.batik.constants,org. > apache.batik.util,org.apache.batik.xml,org.w3c.dom,org.w3c.dom.css,or > g.xml.sax,org.xml.sax.ext,org.xml.sax.helpers";version="1.14.0",org.a > pache.batik.dom.xbl;uses:="org.w3c.dom,org.w3c.dom.events";version="1 > .14.0",org.apache.batik.ext.awt;version="1.14.0",org.apache.batik.ext > .awt.color;uses:="org.apache.batik.util,org.apache.xmlgraphics.java2d > .color";version="1.14.0",org.apache.batik.ext.awt.font;version="1.14. > 0",org.apache.batik.ext.awt.g2d;version="1.14.0",org.apache.batik.ext > .awt.geom;version="1.14.0",org.apache.batik.ext.awt.image;uses:="org. > apache.batik.ext.awt.image.renderable,org.apache.batik.ext.awt.image. > rendered,org.apache.batik.util";version="1.14.0",org.apache.batik.ext > .awt.image.codec;version="1.14.0",org.apache.batik.ext.awt.image.code > c.imageio;uses:="javax.imageio,javax.imageio.event,javax.imageio.meta > data,org.apache.batik.ext.awt.image.renderable,org.apache.batik.ext.a > wt.image.spi,org.apache.batik.transcoder,org.apache.batik.transcoder. > image,org.apache.batik.util,org.w3c.dom";version="1.14.0",org.apache. > batik.ext.awt.image.codec.png;uses:="org.apache.batik.ext.awt.image.c > odec.util,org.apache.batik.ext.awt.image.renderable,org.apache.batik. > ext.awt.image.rendered,org.apache.batik.ext.awt.image.spi,org.apache. > batik.transcoder,org.apache.batik.transcoder.image,org.apache.batik.u > til";version="1.14.0",org.apache.batik.ext.awt.image.codec.util;uses: > ="org.apache.batik.i18n";version="1.14.0",org.apache.batik.ext.awt.im > age.renderable;uses:="org.apache.batik.ext.awt.image,org.apache.batik > .ext.awt.image.rendered,org.apache.xmlgraphics.java2d.color";version= > "1.14.0",org.apache.batik.ext.awt.image.rendered;uses:="org.apache.ba > tik.ext.awt.image,org.apache.batik.util,org.apache.xmlgraphics.java2d > .color";version="1.14.0",org.apache.batik.ext.awt.image.spi;uses:="or > g.apache.batik.ext.awt.image,org.apache.batik.ext.awt.image.renderabl > e,org.apache.batik.util,org.apache.xmlgraphics.java2d.color";version= > "1.14.0",org.apache.batik.ext.awt.image.spi.resources;version="1.14.0 > ",org.apache.batik.ext.swing;uses:="javax.swing,javax.swing.text,org. > apache.batik.i18n,org.apache.batik.util.resources";version="1.14.0",o > rg.apache.batik.ext.swing.resources;version="1.14.0",org.apache.batik > .extension;uses:="org.apache.batik.anim.dom,org.apache.batik.css.engi > ne,org.apache.batik.dom,org.apache.batik.util,org.w3c.dom,org.w3c.dom > .css,org.w3c.dom.svg";version="1.14.0",org.apache.batik.extension.svg > ;uses:="org.apache.batik.anim.dom,org.apache.batik.bridge,org.apache. > batik.dom,org.apache.batik.ext.awt.image.renderable,org.apache.batik. > ext.awt.image.rendered,org.apache.batik.extension,org.apache.batik.gv > t,org.apache.batik.gvt.font,org.apache.batik.gvt.text,org.apache.bati > k.parser,org.w3c.dom";version="1.14.0",org.apache.batik.extensions;ve > rsion="1.14.0",org.apache.batik.gvt;uses:="javax.swing.event,org.apac > he.batik.ext.awt.geom,org.apache.batik.ext.awt.image.renderable,org.a > pache.batik.gvt.event,org.apache.batik.gvt.filter";version="1.14.0",o > rg.apache.batik.gvt.event;uses:="javax.swing.event,org.apache.batik.g > vt";version="1.14.0",org.apache.batik.gvt.filter;uses:="org.apache.ba > tik.ext.awt.image.renderable,org.apache.batik.ext.awt.image.rendered, > org.apache.batik.gvt";version="1.14.0",org.apache.batik.gvt.flow;uses > :="org.apache.batik.ext.awt.geom,org.apache.batik.gvt.font";version=" > 1.14.0",org.apache.batik.gvt.font;uses:="org.apache.batik.gvt,org.apa > che.batik.gvt.text,org.apache.batik.util";version="1.14.0",org.apache > .batik.gvt.renderer;uses:="org.apache.batik.ext.awt.geom,org.apache.b > atik.ext.awt.image.renderable,org.apache.batik.ext.awt.image.rendered > ,org.apache.batik.gvt";version="1.14.0",org.apache.batik.gvt.text;ver > sion="1.14.0",org.apache.batik.i18n;version="1.14.0",org.apache.batik > .parser;uses:="org.apache.batik.ext.awt.geom,org.apache.batik.i18n,or > g.apache.batik.util.io,org.w3c.dom";version="1.14.0",org.apache.batik > .parser.resources;version="1.14.0",org.apache.batik.parser.style.reso > urces;version="1.14.0",org.apache.batik.script;uses:="org.apache.bati > k.i18n,org.w3c.dom";version="1.14.0",org.apache.batik.script.jpython; > uses:="org.apache.batik.script";version="1.14.0",org.apache.batik.scr > ipt.rhino;uses:="org.apache.batik.i18n,org.mozilla.javascript";versio > n="1.14.0",org.apache.batik.script.rhino.resources;version="1.14.0",o > rg.apache.batik.svggen;uses:="javax.swing,org.apache.batik.constants, > org.apache.batik.ext.awt.g2d,org.apache.batik.util,org.w3c.dom";versi > on="1.14.0",org.apache.batik.svggen.font;uses:="org.apache.batik.cons > tants,org.apache.batik.i18n,org.apache.batik.svggen.font.table,org.ap > ache.batik.util";version="1.14.0",org.apache.batik.svggen.font.resour > ces;version="1.14.0",org.apache.batik.svggen.font.table;version="1.14 > .0",org.apache.batik.swing;uses:="javax.swing,javax.swing.event,org.a > pache.batik.bridge,org.apache.batik.constants,org.apache.batik.i18n,o > rg.apache.batik.swing.gvt,org.apache.batik.swing.svg,org.w3c.dom,org. > w3c.dom.events,org.w3c.dom.svg";version="1.14.0",org.apache.batik.swi > ng.gvt;uses:="javax.swing,org.apache.batik.bridge,org.apache.batik.gv > t,org.apache.batik.gvt.event,org.apache.batik.gvt.renderer,org.apache > .batik.util";version="1.14.0",org.apache.batik.swing.resources;versio > n="1.14.0",org.apache.batik.swing.svg;uses:="javax.swing.filechooser, > org.apache.batik.anim.dom,org.apache.batik.bridge,org.apache.batik.gv > t,org.apache.batik.gvt.event,org.apache.batik.gvt.renderer,org.apache > .batik.i18n,org.apache.batik.script,org.apache.batik.swing.gvt,org.ap > ache.batik.util,org.w3c.dom,org.w3c.dom.svg";version="1.14.0",org.apa > che.batik.swing.svg.resources;version="1.14.0",org.apache.batik.trans > coder;uses:="org.apache.batik.anim.dom,org.apache.batik.bridge,org.ap > ache.batik.dom.util,org.apache.batik.gvt,org.apache.batik.svggen,org. > apache.batik.util,org.w3c.dom,org.xml.sax";version="1.14.0",org.apach > e.batik.transcoder.image;uses:="org.apache.batik.bridge,org.apache.ba > tik.gvt.renderer,org.apache.batik.transcoder,org.w3c.dom";version="1. > 14.0",org.apache.batik.transcoder.image.resources;uses:="org.apache.b > atik.i18n";version="1.14.0",org.apache.batik.transcoder.keys;uses:="o > rg.apache.batik.transcoder";version="1.14.0",org.apache.batik.transco > der.print;uses:="org.apache.batik.transcoder,org.w3c.dom";version="1. > 14.0",org.apache.batik.transcoder.svg2svg;uses:="org.apache.batik.tra > nscoder,org.apache.batik.xml";version="1.14.0",org.apache.batik.trans > coder.wmf;version="1.14.0",org.apache.batik.transcoder.wmf.tosvg;uses > :="org.apache.batik.transcoder";version="1.14.0",org.apache.batik.uti > l;uses:="org.apache.batik.constants,org.apache.batik.i18n,org.apache. > batik.util.resources";version="1.14.0",org.apache.batik.util.gui;uses > :="javax.swing,javax.swing.event,javax.swing.filechooser,org.apache.b > atik.util.gui.resource,org.apache.batik.util.resources";version="1.14 > .0",org.apache.batik.util.gui.resource;uses:="javax.swing,org.apache. > batik.util.resources";version="1.14.0",org.apache.batik.util.gui.reso > urces;version="1.14.0",org.apache.batik.util.gui.resources.flags;vers > ion="1.14.0",org.apache.batik.util.gui.xmleditor;uses:="javax.swing,j > avax.swing.text,javax.swing.undo";version="1.14.0",org.apache.batik.u > til.io;uses:="org.apache.batik.i18n";version="1.14.0",org.apache.bati > k.util.io.resources;version="1.14.0",org.apache.batik.util.resources; > uses:="org.apache.batik.i18n";version="1.14.0",org.apache.batik.w3c.d > om;uses:="org.w3c.dom";version="1.14.0",org.apache.batik.w3c.dom.even > ts;uses:="org.w3c.dom,org.w3c.dom.events,org.w3c.dom.views";version=" > 1.14.0",org.apache.batik.xml;uses:="org.apache.batik.i18n,org.apache. > batik.util.io";version="1.14.0",org.apache.batik.xml.scanner.resource > s;version="1.14.0" > Import-Package: com.apple.eawt;resolution=optional,javax.imageio,javax > .imageio.event,javax.imageio.metadata,javax.imageio.plugins.jpeg,java > x.imageio.stream,javax.swing,javax.swing.border,javax.swing.event,jav > ax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.sw > ing.table,javax.swing.text,javax.swing.tree,javax.swing.undo,javax.xm > l.parsers,javax.xml.transform,javax.xml.transform.dom,javax.xml.trans > form.stream,org.apache.batik,org.apache.batik.anim,org.apache.batik.a > nim.dom,org.apache.batik.anim.timing,org.apache.batik.anim.values,org > .apache.batik.bridge,org.apache.batik.bridge.svg12,org.apache.batik.c > onstants,org.apache.batik.css.dom,org.apache.batik.css.engine,org.apa > che.batik.css.engine.sac,org.apache.batik.css.engine.value,org.apache > .batik.css.engine.value.css2,org.apache.batik.css.engine.value.svg,or > g.apache.batik.css.engine.value.svg12,org.apache.batik.css.parser,org > .apache.batik.dom,org.apache.batik.dom.events,org.apache.batik.dom.sv > g,org.apache.batik.dom.svg12,org.apache.batik.dom.traversal,org.apach > e.batik.dom.util,org.apache.batik.dom.xbl,org.apache.batik.ext.awt,or > g.apache.batik.ext.awt.color,org.apache.batik.ext.awt.g2d,org.apache. > batik.ext.awt.geom,org.apache.batik.ext.awt.image,org.apache.batik.ex > t.awt.image.codec.util,org.apache.batik.ext.awt.image.renderable,org. > apache.batik.ext.awt.image.rendered,org.apache.batik.ext.awt.image.sp > i,org.apache.batik.ext.swing,org.apache.batik.extension,org.apache.ba > tik.gvt,org.apache.batik.gvt.event,org.apache.batik.gvt.filter,org.ap > ache.batik.gvt.flow,org.apache.batik.gvt.font,org.apache.batik.gvt.re > nderer,org.apache.batik.gvt.text,org.apache.batik.i18n,org.apache.bat > ik.parser,org.apache.batik.script,org.apache.batik.script.rhino,org.a > pache.batik.svggen,org.apache.batik.svggen.font,org.apache.batik.svgg > en.font.table,org.apache.batik.swing,org.apache.batik.swing.gvt,org.a > pache.batik.swing.svg,org.apache.batik.transcoder,org.apache.batik.tr > anscoder.image,org.apache.batik.transcoder.image.resources,org.apache > .batik.transcoder.keys,org.apache.batik.transcoder.print,org.apache.b > atik.transcoder.svg2svg,org.apache.batik.util,org.apache.batik.util.g > ui,org.apache.batik.util.gui.resource,org.apache.batik.util.gui.xmled > itor,org.apache.batik.util.io,org.apache.batik.util.resources,org.apa > che.batik.w3c.dom,org.apache.batik.w3c.dom.events,org.apache.batik.xm > l,org.apache.fop.svg,org.apache.xml.utils,org.apache.xmlgraphics.java > 2d.color,org.apache.xmlgraphics.java2d.color.profile,org.apache.xpath > ,org.apache.xpath.objects,org.mozilla.javascript,org.mozilla.javascri > pt.tools.debugger,org.python.core,org.python.util,org.w3c.css.sac,org > .w3c.dom,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.smil,org.w3c. > dom.stylesheets,org.w3c.dom.svg,org.w3c.dom.traversal,org.w3c.dom.vie > ws,org.w3c.dom.xpath,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers > Main-Class: org.apache.batik.apps.svgbrowser.Main > Provide-Capability: osgi.service;objectClass:List<String>="javax.image > io.ImageWriter";mimeType="image/jpeg";codec=ImageIO;effective:=active > ,osgi.service;objectClass:List<String>="javax.imageio.ImageWriter";mi > meType="image/png";codec=ImageIO;effective:=active,osgi.service;objec > tClass:List<String>="javax.imageio.ImageWriter";mimeType="image/tiff" > ;codec=ImageIO;effective:=active,osgi.service;objectClass:List<String > >="org.apache.batik.bridge.BridgeExtension";effective:=active,osgi.se > rvice;objectClass:List<String>="org.apache.batik.dom.DomExtension";ef > fective:=active,osgi.service;objectClass:List<String>="org.apache.bat > ik.ext.awt.image.spi.RegistryEntry";mimeTypes:List<String>="image/gif > ";extensions:List<String>="";effective:=active,osgi.service;objectCla > ss:List<String>="org.apache.batik.ext.awt.image.spi.RegistryEntry";mi > meTypes:List<String>="image/jpeg,image/jpg";extensions:List<String>=" > jpg,jpeg";effective:=active,osgi.service;objectClass:List<String>="or > g.apache.batik.ext.awt.image.spi.RegistryEntry";mimeTypes:List<String > >="image/png";extensions:List<String>=png;effective:=active,osgi.serv > ice;objectClass:List<String>="org.apache.batik.ext.awt.image.spi.Regi > stryEntry";mimeTypes:List<String>="image/tif,image/tiff";extensions:L > ist<String>="tif,tiff";effective:=active,osgi.service;objectClass:Lis > t<String>="org.apache.batik.script.InterpreterFactory";mimeTypes:List > <String>="text/javascript,text/ecmascript,application/javascript,appl > ication/ecmascript";effective:=active,osgi.service;objectClass:List<S > tring>="org.apache.batik.script.InterpreterFactory";mimeTypes:List<St > ring>="text/python";effective:=active,osgi.serviceloader;osgi.service > loader="javax.imageio.ImageWriter";register:="org.apache.batik.ext.aw > t.image.codec.imageio.ImageIOJPEGImageWriter";mimeType="image/jpeg";c > odec=ImageIO,osgi.serviceloader;osgi.serviceloader="javax.imageio.Ima > geWriter";register:="org.apache.batik.ext.awt.image.codec.imageio.Ima > geIOPNGImageWriter";mimeType="image/png";codec=ImageIO,osgi.servicelo > ader;osgi.serviceloader="javax.imageio.ImageWriter";register:="org.ap > ache.batik.ext.awt.image.codec.imageio.ImageIOTIFFImageWriter";mimeTy > pe="image/tiff";codec=ImageIO,osgi.serviceloader;osgi.serviceloader=" > org.apache.batik.bridge.BridgeExtension";register:="org.apache.batik. > bridge.SVGBridgeExtension",osgi.serviceloader;osgi.serviceloader="org > .apache.batik.bridge.BridgeExtension";register:="org.apache.batik.bri > dge.svg12.SVG12BridgeExtension",osgi.serviceloader;osgi.serviceloader > ="org.apache.batik.bridge.BridgeExtension";register:="org.apache.bati > k.extension.svg.BatikBridgeExtension",osgi.serviceloader;osgi.service > loader="org.apache.batik.dom.DomExtension";register:="org.apache.bati > k.extension.svg.BatikDomExtension",osgi.serviceloader;osgi.serviceloa > der="org.apache.batik.ext.awt.image.spi.RegistryEntry";register:="org > .apache.batik.ext.awt.image.codec.imageio.ImageIOJPEGRegistryEntry";m > imeTypes:List<String>="image/jpeg,image/jpg";extensions:List<String>= > "jpg,jpeg",osgi.serviceloader;osgi.serviceloader="org.apache.batik.ex > t.awt.image.spi.RegistryEntry";register:="org.apache.batik.ext.awt.im > age.codec.imageio.ImageIOPNGRegistryEntry";mimeTypes:List<String>="im > age/png";extensions:List<String>=png,osgi.serviceloader;osgi.servicel > oader="org.apache.batik.ext.awt.image.spi.RegistryEntry";register:="o > rg.apache.batik.ext.awt.image.codec.imageio.ImageIOTIFFRegistryEntry" > ;mimeTypes:List<String>="image/tif,image/tiff";extensions:List<String > >="tif,tiff",osgi.serviceloader;osgi.serviceloader="org.apache.batik. > ext.awt.image.spi.RegistryEntry";register:="org.apache.batik.ext.awt. > image.codec.png.PNGRegistryEntry";mimeTypes:List<String>="image/png"; > extensions:List<String>=png,osgi.serviceloader;osgi.serviceloader="or > g.apache.batik.ext.awt.image.spi.RegistryEntry";register:="org.apache > .batik.ext.awt.image.spi.JDKRegistryEntry";mimeTypes:List<String>="im > age/gif";extensions:List<String>="",osgi.serviceloader;osgi.servicelo > ader="org.apache.batik.script.InterpreterFactory";register:="org.apac > he.batik.bridge.RhinoInterpreterFactory";mimeTypes:List<String>="text > /javascript,text/ecmascript,application/javascript,application/ecmasc > ript",osgi.serviceloader;osgi.serviceloader="org.apache.batik.script. > InterpreterFactory";register:="org.apache.batik.script.jpython.JPytho > nInterpreterFactory";mimeTypes:List<String>="text/python" > Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.servi > celoader.registrar)(version>=1.0.0)(!(version>=2.0.0)))",osgi.ee;filt > er:="(&(osgi.ee=JavaSE)(version=1.7))" > Tool: Bnd-6.2.0.202202251641 > {code} > -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: batik-dev-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: batik-dev-h...@xmlgraphics.apache.org