[
https://issues.apache.org/jira/browse/FLINK-7711?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16364742#comment-16364742
]
ASF GitHub Bot commented on FLINK-7711:
---------------------------------------
Github user GJL commented on a diff in the pull request:
https://github.com/apache/flink/pull/5455#discussion_r168302562
--- Diff:
flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/ng/JarListHandler.java
---
@@ -0,0 +1,156 @@
+/*
+ * 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 org.apache.flink.runtime.webmonitor.handlers.ng;
+
+import org.apache.flink.api.common.time.Time;
+import org.apache.flink.client.program.PackagedProgram;
+import org.apache.flink.runtime.concurrent.FutureUtils;
+import org.apache.flink.runtime.rest.handler.AbstractRestHandler;
+import org.apache.flink.runtime.rest.handler.HandlerRequest;
+import org.apache.flink.runtime.rest.handler.RestHandlerException;
+import org.apache.flink.runtime.rest.messages.EmptyMessageParameters;
+import org.apache.flink.runtime.rest.messages.EmptyRequestBody;
+import org.apache.flink.runtime.rest.messages.MessageHeaders;
+import org.apache.flink.runtime.webmonitor.RestfulGateway;
+import org.apache.flink.runtime.webmonitor.retriever.GatewayRetriever;
+import org.apache.flink.util.FlinkException;
+
+import javax.annotation.Nonnull;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.CompletionException;
+import java.util.concurrent.Executor;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+
+import static java.util.Objects.requireNonNull;
+import static org.apache.flink.util.Preconditions.checkState;
+
+/**
+ * Handle request for listing uploaded jars.
+ */
+public class JarListHandler extends AbstractRestHandler<RestfulGateway,
EmptyRequestBody, JarListInfo, EmptyMessageParameters> {
+
+ private final File jarDir;
+
+ private final Executor executor;
+
+ public JarListHandler(
+ CompletableFuture<String> localRestAddress,
+ GatewayRetriever<? extends RestfulGateway>
leaderRetriever,
+ Time timeout,
+ Map<String, String> responseHeaders,
+ MessageHeaders<EmptyRequestBody, JarListInfo,
EmptyMessageParameters> messageHeaders,
+ File jarDir,
+ Executor executor) {
+ super(localRestAddress, leaderRetriever, timeout,
responseHeaders, messageHeaders);
+
+ this.jarDir = requireNonNull(jarDir);
+ this.executor = requireNonNull(executor);
+ }
+
+ @Override
+ protected CompletableFuture<JarListInfo> handleRequest(@Nonnull
HandlerRequest<EmptyRequestBody, EmptyMessageParameters> request, @Nonnull
RestfulGateway gateway) throws RestHandlerException {
+ final String localAddress;
+ checkState(localAddressFuture.isDone());
+
+ try {
+ localAddress = localAddressFuture.get();
+ } catch (Exception e) {
+ return FutureUtils.completedExceptionally(e);
+ }
+
+ return CompletableFuture.supplyAsync(() -> {
+ try {
+ List<JarListInfo.JarFileInfo> jarFileList = new
ArrayList<>();
+ File[] list = jarDir.listFiles(new
FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String
name) {
+ return name.endsWith(".jar");
+ }
+ });
+ // last modified ascending order
+ Arrays.sort(list, (f1, f2) ->
Long.compare(f2.lastModified(), f1.lastModified()));
+
+ for (File f : list) {
--- End diff --
ok
> Port JarListHandler to new REST endpoint
> ----------------------------------------
>
> Key: FLINK-7711
> URL: https://issues.apache.org/jira/browse/FLINK-7711
> Project: Flink
> Issue Type: Sub-task
> Components: Distributed Coordination, REST, Webfrontend
> Reporter: Tzu-Li (Gordon) Tai
> Assignee: Gary Yao
> Priority: Major
> Labels: flip-6
> Fix For: 1.5.0
>
>
> Port {{JarListHandler}} to new REST endpoint
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)