public synchronized static void initlize()

in Utils/azure-toolkit-ide-hdinsight-libs/hdinsight-node-common/src/com/microsoft/azure/hdinsight/spark/jobs/JobViewDummyHttpServer.java [62:168]


    public synchronized static void initlize() {
        if (isEnabled) {
            return;
        }
        try {
            server = HttpServer.create(new InetSocketAddress(PORT), 10);

            server.createContext("/clusters/", new HttpHandler() {
                @Override
                public void handle(final HttpExchange httpExchange) throws IOException {
                    requestDetail = RequestDetail.getRequestDetail(httpExchange.getRequestURI());
                    if (requestDetail == null) {
                        return;
                    }

                    IClusterDetail clusterDetail = requestDetail.getClusterDetail();
                    final String queryUrl = requestDetail.getQueryUrl();
                    if (requestDetail.getApiType() == HttpRequestType.YarnHistory) {
                        TaskExecutor.submit(new YarnHistoryTask(clusterDetail, queryUrl, new HttpFutureCallback(httpExchange) {
                            @Override
                            public void onSuccess(String str) {
                                httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                                try {
                                    // work around of get job result
                                    //TODO: get job result by REST API
                                    Document doc = Jsoup.parse(str);
                                    Elements contentElements = doc.getElementsByClass("content");
                                    if (contentElements.size() == 1) {
                                        Elements elements = contentElements.get(0).getElementsByTag("pre");
                                        if (elements.size() == 1) {
                                            str = elements.get(0).html();
                                        }
                                    }

                                    httpExchange.sendResponseHeaders(200, str.length());
                                    OutputStream stream = httpExchange.getResponseBody();
                                    stream.write(str.getBytes());
                                    stream.close();
                                } catch (IOException e) {
                                    int a = 1;
//                                    LOGGER.error("Get job history error", e);
                                }
                            }

                        }));
                    } else if (requestDetail.getApiType() == HttpRequestType.LivyBatchesRest) {
                        TaskExecutor.submit(new LivyTask(clusterDetail, queryUrl, new HttpFutureCallback(httpExchange) {
                            @Override
                            public void onSuccess(String str) {
                                httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                                try {
                                    String applicationId = requestDetail.getProperty("applicationId");
                                    if (applicationId != null) {
                                        str = JobUtils.getJobInformation(str, applicationId);
                                    }

                                    httpExchange.sendResponseHeaders(200, str.length());
                                    OutputStream stream = httpExchange.getResponseBody();
                                    stream.write(str.getBytes());
                                    stream.close();
                                } catch (IOException e) {
//                                    LOGGER.error("Get job history error", e);
                                }
                            }
                        }));
                    } else if(requestDetail.getApiType() == HttpRequestType.MultiTask){
                        TaskExecutor.submit(new MultiRestTask(clusterDetail, requestDetail.getQueryUrls(), new MultiHttpFutureCallback(httpExchange){
                            public void onSuccess(List<String> strs) {
                                httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                                try {
                                    String str = tasksDetailsConvert(strs);
                                    httpExchange.sendResponseHeaders(200, str.length());
                                    OutputStream stream = httpExchange.getResponseBody();
                                    stream.write(str.getBytes());
                                    stream.close();
                                } catch (IOException e) {
//                                    LOGGER.error("Get job history error", e);
                                }
                            }
                        }));
                    } else {
                        TaskExecutor.submit(new RestTask(clusterDetail, queryUrl, new HttpFutureCallback(httpExchange) {
                            @Override
                            public void onSuccess(@NotNull String str) {
                                httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
                                try {
                                    httpExchange.sendResponseHeaders(200, str.length());
                                    OutputStream stream = httpExchange.getResponseBody();
                                    stream.write(str.getBytes());
                                    stream.close();
                                } catch (IOException e) {
//                                    LOGGER.error("Get job history error", e);
                                }
                            }
                        }));
                    }
                }
            });
            executorService = Executors.newFixedThreadPool(NO_OF_THREADS);
            server.setExecutor(executorService);
            server.start();
            isEnabled = true;
        } catch (IOException e) {
//            LOGGER.error("Get job history error", e);
//            DefaultLoader.getUIHelper().showError(e.getClass().getName(), e.getMessage());
        }
    }