diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/util/CustomPortService.java b/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/util/CustomPortService.java
deleted file mode 100644
index 75e5b01f92..0000000000
--- a/core/che-core-api-core/src/main/java/org/eclipse/che/api/core/util/CustomPortService.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2012-2018 Red Hat, Inc.
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- */
-package org.eclipse.che.api.core.util;
-
-import java.io.IOException;
-import java.net.DatagramSocket;
-import java.net.ServerSocket;
-import java.security.SecureRandom;
-import java.util.Random;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-import org.eclipse.che.commons.lang.Pair;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Helps to find free ports. Usage:
- *
- *
Note: It is important to release port when it is not needed any more, otherwise it will be not
- * possible to reuse ports.
- *
- * @author andrew00x
- * @see #MIN_PORT
- * @see #MAX_PORT
- */
-@Singleton
-public class CustomPortService {
- /** Name of configuration parameter that sets min port number. */
- public static final String MIN_PORT = "sys.resources.min_port";
- /** Name of configuration parameter that sets max port number. */
- public static final String MAX_PORT = "sys.resources.max_port";
-
- private static final Logger LOG = LoggerFactory.getLogger(CustomPortService.class);
-
- private final Random rnd;
- private final ConcurrentMap portsInUse;
- private final Pair range;
-
- @Inject
- public CustomPortService(@Named(MIN_PORT) int minPort, @Named(MAX_PORT) int maxPort) {
- this(Pair.of(minPort, maxPort));
- }
-
- public CustomPortService(Pair range) {
- if (range.first < 0 || range.second > 65535) {
- throw new IllegalArgumentException(
- String.format("Invalid port range: [%d:%d]", range.first, range.second));
- }
- this.range = range;
- rnd = new SecureRandom();
- portsInUse = new ConcurrentHashMap<>();
- }
-
- /**
- * This service stores allocated ports in internal storage to avoid checking ports that already in
- * use. After calling this method storage is cleared. For next port allocation this service will
- * iterates through range of configured ports until finds free port. It may be expensive since
- * checking port means trying to open {@link ServerSocket} and {@link DatagramSocket} on each port
- * in the range.
- *
- * @see #MIN_PORT
- * @see #MAX_PORT
- */
- public void reset() {
- portsInUse.clear();
- }
-
- /**
- * Returns range of ports that service uses for lookup free port. Modifications to the returned
- * {@code Pair} will not affect the internal {@code Pair}.
- */
- public Pair getRange() {
- return Pair.of(range.first, range.second);
- }
-
- /**
- * Get free port from the whole range of possible ports.
- *
- * @return free port or {@code -1} if there is no free port
- */
- public int acquire() {
- return doAcquire(range.first, range.second);
- }
-
- /**
- * Get free port from the specified range. Specified range may not be wider than configured range
- * otherwise IllegalArgumentException is thrown. Configured range may be checked with method
- * {@link #getRange()}.
- *
- * @return free port or {@code -1} if there is no free port
- * @throws IllegalArgumentException if {@code min > range.first} or if {@code min > range.second}
- * @see #getRange()
- * @see #MIN_PORT
- * @see #MAX_PORT
- */
- public int acquire(int min, int max) {
- if (min < range.first) {
- throw new IllegalArgumentException(
- String.format("Min port value may not be less than %d", range.first));
- }
- if (max > range.second) {
- throw new IllegalArgumentException(
- String.format("Max port value may not be greater than %d", range.second));
- }
- return doAcquire(min, max);
- }
-
- public void release(int port) {
- if (port != -1) {
- portsInUse.remove(port);
- }
- LOG.debug("Release port {}", port);
- }
-
- private int doAcquire(int min, int max) {
- // Use this for getting ports for web applications but unfortunately get issue with browser
- // cache.
- // If different applications reuse the same port sometimes user can see previous application.
- // Make number of port in 'more random' way instead of checking from min to max until find free
- // port.
- final int m = min + rnd.nextInt((max - min) + 1);
- final boolean ev = (m % 2) == 0;
- int port;
- if (ev) {
- port = lookupForward(m, max);
- if (port < 0) {
- port = lookupBackward(m, min);
- }
- } else {
- port = lookupBackward(m, min);
- if (port < 0) {
- port = lookupForward(m, max);
- }
- }
- return port;
- }
-
- private int lookupForward(int min, int max) {
- for (int port = min; port <= max; port++) {
- if (checkPort(port)) {
- return port;
- }
- }
- return -1;
- }
-
- private int lookupBackward(int max, int min) {
- for (int port = max; port >= min; port--) {
- if (checkPort(port)) {
- return port;
- }
- }
- return -1;
- }
-
- private boolean checkPort(int port) {
- if (portsInUse.putIfAbsent(port, Boolean.TRUE) == null) {
- ServerSocket ss = null;
- DatagramSocket ds = null;
- try {
- ss = new ServerSocket(port);
- ds = new DatagramSocket(port);
- LOG.debug("Acquire port {}", port);
- return true;
- } catch (IOException ignored) {
- portsInUse.remove(port);
- } finally {
- if (ds != null) {
- ds.close();
- }
- if (ss != null) {
- try {
- ss.close();
- } catch (IOException ignored) {
- }
- }
- }
- }
- return false;
- }
-}
diff --git a/core/che-core-api-core/src/main/java/org/eclipse/che/everrest/CheAsynchronousJobPool.java b/core/che-core-api-core/src/main/java/org/eclipse/che/everrest/CheAsynchronousJobPool.java
deleted file mode 100644
index 7d6d690916..0000000000
--- a/core/che-core-api-core/src/main/java/org/eclipse/che/everrest/CheAsynchronousJobPool.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2012-2018 Red Hat, Inc.
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- */
-package org.eclipse.che.everrest;
-
-import java.lang.reflect.Method;
-import java.util.concurrent.Callable;
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.ws.rs.ext.ContextResolver;
-import javax.ws.rs.ext.Provider;
-import org.eclipse.che.commons.lang.concurrent.ThreadLocalPropagateContext;
-import org.everrest.core.impl.EverrestConfiguration;
-import org.everrest.core.impl.async.AsynchronousJobPool;
-
-/** @author Vitaly Parfonov */
-@Singleton
-@Provider
-public class CheAsynchronousJobPool extends AsynchronousJobPool
- implements ContextResolver {
-
- @Inject
- public CheAsynchronousJobPool(EverrestConfiguration everrestConfiguration) {
- super(everrestConfiguration);
- }
-
- @Override
- protected Callable