[ 
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)

Reply via email to