diff options
author | Andreas Beeker <kiwiwings@apache.org> | 2020-08-16 23:18:19 +0000 |
---|---|---|
committer | Andreas Beeker <kiwiwings@apache.org> | 2020-08-16 23:18:19 +0000 |
commit | b57da2dadafa52b0e1f93845d01e572f118c23d2 (patch) | |
tree | 4cc478eb183628ec6870d6c04dff0a5738df3ad9 /src/java/org/apache | |
parent | d6a97ce38d1fe4f266949110b76b38741149f2c3 (diff) | |
download | poi-b57da2dadafa52b0e1f93845d01e572f118c23d2.tar.gz poi-b57da2dadafa52b0e1f93845d01e572f118c23d2.zip |
#64036 - Replace reflection calls in factories for Java 9+
ImageRenderer implementation are now loaded via ServiceLoader
fixed the ServiceLoader.load invocations to pass a sensible ClassLoader as OSGi preparation
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1880909 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache')
4 files changed, 10 insertions, 6 deletions
diff --git a/src/java/org/apache/poi/extractor/ExtractorFactory.java b/src/java/org/apache/poi/extractor/ExtractorFactory.java index bdeb740e20..ccab16a213 100644 --- a/src/java/org/apache/poi/extractor/ExtractorFactory.java +++ b/src/java/org/apache/poi/extractor/ExtractorFactory.java @@ -81,7 +81,8 @@ public final class ExtractorFactory { private ExtractorFactory() { - ServiceLoader.load(ExtractorProvider.class).forEach(provider::add); + ClassLoader cl = ExtractorFactory.class.getClassLoader(); + ServiceLoader.load(ExtractorProvider.class, cl).forEach(provider::add); } /** diff --git a/src/java/org/apache/poi/sl/draw/ImageRenderer.java b/src/java/org/apache/poi/sl/draw/ImageRenderer.java index 0289fce7bf..5051d4593b 100644 --- a/src/java/org/apache/poi/sl/draw/ImageRenderer.java +++ b/src/java/org/apache/poi/sl/draw/ImageRenderer.java @@ -31,7 +31,8 @@ import org.apache.poi.util.Dimension2DDouble; /** * Classes can implement this interfaces to support other formats, for - * example, use Apache Batik to render WMF, PICT can be rendered using Apple QuickTime API for Java: + * example, use Apache Batik to render WMF (since POI 4.0, there's an internal WMF/EMF/EMF+ renderer in POI), + * PICT can be rendered using Apple QuickTime API for Java: * * <pre> * <code> @@ -132,11 +133,11 @@ public interface ImageRenderer { /** * @param dim the dimension in pixels of the returned image * @return the image as buffered image or null if image could not be loaded - * + * * @since POI 3.15-beta2 */ BufferedImage getImage(Dimension2D dim); - + /** * Render picture data into the supplied graphics * diff --git a/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java b/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java index 200120b211..8155fccb8d 100644 --- a/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java +++ b/src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java @@ -48,7 +48,8 @@ public final class SlideShowFactory { private final List<SlideShowProvider<?,?>> provider = new ArrayList<>(); private SlideShowFactory() { - ServiceLoader.load(SlideShowProvider.class).forEach(provider::add); + ClassLoader cl = SlideShowFactory.class.getClassLoader(); + ServiceLoader.load(SlideShowProvider.class, cl).forEach(provider::add); } /** diff --git a/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java b/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java index e755b09f5e..965666904c 100644 --- a/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java +++ b/src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java @@ -54,7 +54,8 @@ public final class WorkbookFactory { private final List<WorkbookProvider> provider = new ArrayList<>(); private WorkbookFactory() { - ServiceLoader.load(WorkbookProvider.class).forEach(provider::add); + ClassLoader cl = WorkbookFactory.class.getClassLoader(); + ServiceLoader.load(WorkbookProvider.class, cl).forEach(provider::add); } |