summaryrefslogtreecommitdiffstats
path: root/src/java/org/apache
diff options
context:
space:
mode:
authorAndreas Beeker <kiwiwings@apache.org>2020-08-16 23:18:19 +0000
committerAndreas Beeker <kiwiwings@apache.org>2020-08-16 23:18:19 +0000
commitb57da2dadafa52b0e1f93845d01e572f118c23d2 (patch)
tree4cc478eb183628ec6870d6c04dff0a5738df3ad9 /src/java/org/apache
parentd6a97ce38d1fe4f266949110b76b38741149f2c3 (diff)
downloadpoi-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')
-rw-r--r--src/java/org/apache/poi/extractor/ExtractorFactory.java3
-rw-r--r--src/java/org/apache/poi/sl/draw/ImageRenderer.java7
-rw-r--r--src/java/org/apache/poi/sl/usermodel/SlideShowFactory.java3
-rw-r--r--src/java/org/apache/poi/ss/usermodel/WorkbookFactory.java3
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);
}