From a9450223f17be10bf5f5c5953a03ccdd4b80fc58 Mon Sep 17 00:00:00 2001 From: serge-rider Date: Thu, 8 Mar 2018 22:32:46 +0300 Subject: [PATCH] SVG (batik) dependencies fix --- .../feature.xml | 14 ++------------ .../feature.xml | 9 +-------- .../META-INF/MANIFEST.MF | 4 +--- .../jkiss/dbeaver/ext/ui/svg/ERDExportSVG.java | 15 +++++++++++---- 4 files changed, 15 insertions(+), 27 deletions(-) diff --git a/features/org.jkiss.dbeaver.ext.office.feature/feature.xml b/features/org.jkiss.dbeaver.ext.office.feature/feature.xml index b41ef6dcc8ed..c549f2491ea1 100644 --- a/features/org.jkiss.dbeaver.ext.office.feature/feature.xml +++ b/features/org.jkiss.dbeaver.ext.office.feature/feature.xml @@ -18,17 +18,7 @@ %license - - - + + diff --git a/features/org.jkiss.dbeaver.ext.ui.svg.feature/feature.xml b/features/org.jkiss.dbeaver.ext.ui.svg.feature/feature.xml index 06322e340123..514bee33df84 100644 --- a/features/org.jkiss.dbeaver.ext.ui.svg.feature/feature.xml +++ b/features/org.jkiss.dbeaver.ext.ui.svg.feature/feature.xml @@ -19,13 +19,6 @@ - - - - - - - - + diff --git a/plugins/org.jkiss.dbeaver.ext.ui.svg/META-INF/MANIFEST.MF b/plugins/org.jkiss.dbeaver.ext.ui.svg/META-INF/MANIFEST.MF index 92255441cb1c..653f995a24c9 100644 --- a/plugins/org.jkiss.dbeaver.ext.ui.svg/META-INF/MANIFEST.MF +++ b/plugins/org.jkiss.dbeaver.ext.ui.svg/META-INF/MANIFEST.MF @@ -12,8 +12,6 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.gef, org.jkiss.dbeaver.core, org.jkiss.dbeaver.ext.erd, - org.apache.xmlgraphics.batik-svggen;bundle-version="1.9.1", - org.apache.xmlgraphics.batik-awt-util;bundle-version="1.9.1", - org.apache.xmlgraphics.batik-codec;bundle-version="1.9.1" + org.jkiss.bundle.apache.batik Bundle-ActivationPolicy: lazy Bundle-Localization: OSGI-INF/l10n/bundle diff --git a/plugins/org.jkiss.dbeaver.ext.ui.svg/src/org/jkiss/dbeaver/ext/ui/svg/ERDExportSVG.java b/plugins/org.jkiss.dbeaver.ext.ui.svg/src/org/jkiss/dbeaver/ext/ui/svg/ERDExportSVG.java index cac3365f8ec6..a28a1f836f64 100644 --- a/plugins/org.jkiss.dbeaver.ext.ui.svg/src/org/jkiss/dbeaver/ext/ui/svg/ERDExportSVG.java +++ b/plugins/org.jkiss.dbeaver.ext.ui.svg/src/org/jkiss/dbeaver/ext/ui/svg/ERDExportSVG.java @@ -40,14 +40,21 @@ public class ERDExportSVG implements ERDExportFormatHandler { private static final Log log = Log.getLog(ERDExportSVG.class); - static { - // For some reason image writers aren't registered in Batik registry automatically - // Probably because of cut dependencies (which are fucking huge for Batic codec) - ImageWriterRegistry.getInstance().register(new PNGImageWriter()); + private static boolean pngWriterRegistered; + + private static synchronized void checkWriterRegister() { + if (!pngWriterRegistered) { + // For some reason image writers aren't registered in Batik registry automatically + // Probably because of cut dependencies (which are fucking huge for Batic codec) + ImageWriterRegistry.getInstance().register(new PNGImageWriter()); + pngWriterRegistered = true; + } } @Override public void exportDiagram(EntityDiagram diagram, IFigure diagramFigure, DiagramPart diagramPart, File targetFile) throws DBException { + checkWriterRegister(); + try { IFigure figure = diagramPart.getFigure(); Rectangle contentBounds = figure instanceof FreeformLayeredPane ? ((FreeformLayeredPane) figure).getFreeformExtent() : figure.getBounds();