[
https://issues.apache.org/jira/browse/OPENNLP-1665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17906177#comment-17906177
]
ASF GitHub Bot commented on OPENNLP-1665:
-----------------------------------------
rzo1 commented on code in PR #197:
URL: https://github.com/apache/opennlp-sandbox/pull/197#discussion_r1887428955
##########
opennlp-grpc/opennlp-grpc-service/src/main/java/opennlp/service/classpath/DirectoryModelFinder.java:
##########
@@ -0,0 +1,182 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package opennlp.service.classpath;
+
+import java.io.IOException;
+import java.net.JarURLConnection;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Locale;
+import java.util.Objects;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.regex.Pattern;
+import java.util.stream.Stream;
+
+import org.slf4j.LoggerFactory;
+
+import opennlp.tools.models.AbstractClassPathModelFinder;
+import opennlp.tools.models.ClassPathModelFinder;
+
+/**
+ * The {@code DirectoryModelFinder} class is responsible for finding model
files in a given directory
+ * on the classpath.
+ *
+ * <p>This class allows searching for models based on wildcard patterns,
either in plain directory structures
+ * or within JAR files. The search can be performed recursively depending on
the specified configuration.
+ *
+ * <p><b>Usage:</b>
+ * <ul>
+ * <li>Provide the prefix for models to be found in JAR files using the
{@code jarModelPrefix} parameter.</li>
+ * <li>Specify the directory to search and whether to enable recursive
scanning.</li>
+ * <li>The class supports resolving both direct file matches and entries
within JAR archives.</li>
+ * </ul>
+ *
+ * @see AbstractClassPathModelFinder
+ * @see ClassPathModelFinder
+ */
+public class DirectoryModelFinder extends AbstractClassPathModelFinder
implements ClassPathModelFinder {
Review Comment:
Can be moved after sandbox phase.
> gRPC Backend for Multi-Language Support
> ---------------------------------------
>
> Key: OPENNLP-1665
> URL: https://issues.apache.org/jira/browse/OPENNLP-1665
> Project: OpenNLP
> Issue Type: New Feature
> Reporter: Richard Zowalla
> Assignee: Richard Zowalla
> Priority: Major
>
> Taken from the slack discussion. Goal is to broaden the application of
> OpenNLP and usage in different programming language.
> To do so, we can build a component based on gRPC as a module into opennlp
> itself and implement the server side component for the most common tasks (can
> be a growing thing, if community is going to like it) in Java using
> [gRPC|https://grpc.io/] - with the gRPC spec for OpenNLP in place, we can
> simply generate appropriate clients for every supported language (Python, Go,
> etc.) - that would make it easier to maintain since we can just tell the
> people how to generate the client based on the gRPC spec.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)