You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2020/06/29 04:09:03 UTC
[lucene-solr] branch master updated: SOLR-14481: use classloader to
open resource
This is an automated email from the ASF dual-hosted git repository.
noble pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/master by this push:
new d883cd6 SOLR-14481: use classloader to open resource
d883cd6 is described below
commit d883cd69fc2884352e0a363b98e3d5a37142dd52
Author: noble <no...@apache.org>
AuthorDate: Mon Jun 29 14:03:17 2020 +1000
SOLR-14481: use classloader to open resource
---
.../java/org/apache/solr/pkg/PackageLoader.java | 58 ++++------------------
.../apache/solr/handler/TestContainerPlugin.java | 8 +--
2 files changed, 15 insertions(+), 51 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/pkg/PackageLoader.java b/solr/core/src/java/org/apache/solr/pkg/PackageLoader.java
index 63e801e..562f8a0 100644
--- a/solr/core/src/java/org/apache/solr/pkg/PackageLoader.java
+++ b/solr/core/src/java/org/apache/solr/pkg/PackageLoader.java
@@ -18,27 +18,28 @@
package org.apache.solr.pkg;
import java.io.Closeable;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.invoke.MethodHandles;
-import java.nio.ByteBuffer;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.function.Supplier;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
import org.apache.solr.common.MapWriter;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
-import org.apache.solr.util.SimplePostTool;
-import org.apache.zookeeper.server.ByteBufferInputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -343,45 +344,8 @@ public class PackageLoader implements Closeable {
}
@Override
- public InputStream openResource(String resource) throws IOException {
- for (Path path : paths) {
- try(FileInputStream in = new FileInputStream(path.toFile())) {
- ZipInputStream zis = new ZipInputStream(in);
- try {
- ZipEntry entry;
- while ((entry = zis.getNextEntry()) != null) {
- if (resource == null || resource.equals(entry.getName())) {
- SimplePostTool.BAOS out = new SimplePostTool.BAOS();
- byte[] buffer = new byte[2048];
- int size;
- while ((size = zis.read(buffer, 0, buffer.length)) != -1) {
- out.write(buffer, 0, size);
- }
- out.close();
- return new ByteBufferStream(out.getByteBuffer());
- }
- }
- } finally {
- zis.closeEntry();
- }
- }
- }
-
- return null;
- }
- }
-
- private static class ByteBufferStream extends ByteBufferInputStream implements Supplier<ByteBuffer> {
- private final ByteBuffer buf ;
-
- public ByteBufferStream(ByteBuffer buf) {
- super(buf);
- this.buf = buf;
- }
-
- @Override
- public ByteBuffer get() {
- return buf;
+ public InputStream openResource(String resource) {
+ return getClassLoader().getResourceAsStream(resource);
}
}
diff --git a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
index dea3eb6..d137b10 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
@@ -22,9 +22,9 @@ import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.Map;
import java.util.concurrent.Callable;
-import java.util.function.Supplier;
import com.google.common.collect.ImmutableMap;
+import org.apache.commons.io.IOUtils;
import org.apache.lucene.analysis.util.ResourceLoader;
import org.apache.lucene.analysis.util.ResourceLoaderAware;
import org.apache.solr.api.Command;
@@ -270,9 +270,9 @@ public class TestContainerPlugin extends SolrCloudTestCase {
this.resourceLoader = (SolrResourceLoader) loader;
try {
InputStream is = resourceLoader.openResource("org/apache/solr/handler/MyPlugin.class");
- if (is instanceof Supplier) {
- classData = ((Supplier<ByteBuffer>) is).get();
- }
+ byte[] buf = new byte[1024*5];
+ int sz = IOUtils.read(is, buf);
+ classData = ByteBuffer.wrap(buf, 0,sz);
} catch (IOException e) {
//do not do anything
}