<commit_before>package org.jetbrains.ide;

import com.intellij.notification.Notification;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.components.ApplicationComponent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Disposer;
import org.jboss.netty.channel.ChannelException;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import org.jetbrains.io.WebServer;

import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;

public class BuiltInServerManagerImpl extends BuiltInServerManager implements ApplicationComponent{
  private static final Logger LOG = Logger.getInstance(BuiltInServerManager.class);

  @NonNls
  public static final String PROPERTY_RPC_PORT = "consulo.rpc.port";
  private static final int FIRST_PORT_NUMBER = 62242;
  private static final int PORTS_COUNT = 20;

  private volatile int myDetectedPortNumber = -1;
  private final AtomicBoolean myStarted = new AtomicBoolean(false);

  @Nullable
  private WebServer myServer;
  private boolean myEnabledInUnitTestMode;

  @Override
  public int getPort() {
    return myDetectedPortNumber == -1 ? getDefaultPort() : myDetectedPortNumber;
  }

  private static int getDefaultPort() {
    return System.getProperty(PROPERTY_RPC_PORT) == null ? FIRST_PORT_NUMBER : Integer.parseInt(System.getProperty(PROPERTY_RPC_PORT));
  }

  @Override
  public void initComponent() {
    startServerInPooledThread();
  }

  @Override
  public void disposeComponent() {
    if(myServer != null) {
      Disposer.dispose(myServer);
    }
  }

  @NotNull
  @Override
  public String getComponentName() {
    return "BuiltInServerManager";
  }

  private Future<?> startServerInPooledThread() {
    Application application = ApplicationManager.getApplication();
    if (application.isUnitTestMode() && !myEnabledInUnitTestMode) {
      return null;
    }

    if (!myStarted.compareAndSet(false, true)) {
      return null;
    }

    return application.executeOnPooledThread(new Runnable() {
      @Override
      public void run() {<commit_msg>disable buildinserver if it compiler-server<commit_after>package org.jetbrains.ide;

import com.intellij.notification.Notification;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.components.ApplicationComponent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Disposer;
import org.jboss.netty.channel.ChannelException;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import org.jetbrains.io.WebServer;

import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;

public class BuiltInServerManagerImpl extends BuiltInServerManager implements ApplicationComponent{
  private static final Logger LOG = Logger.getInstance(BuiltInServerManager.class);

  @NonNls
  public static final String PROPERTY_RPC_PORT = "consulo.rpc.port";
  private static final int FIRST_PORT_NUMBER = 62242;
  private static final int PORTS_COUNT = 20;

  private volatile int myDetectedPortNumber = -1;
  private final AtomicBoolean myStarted = new AtomicBoolean(false);

  @Nullable
  private WebServer myServer;
  private boolean myEnabledInUnitTestMode;

  @Override
  public int getPort() {
    return myDetectedPortNumber == -1 ? getDefaultPort() : myDetectedPortNumber;
  }

  private static int getDefaultPort() {
    return System.getProperty(PROPERTY_RPC_PORT) == null ? FIRST_PORT_NUMBER : Integer.parseInt(System.getProperty(PROPERTY_RPC_PORT));
  }

  @Override
  public void initComponent() {
    startServerInPooledThread();
  }

  @Override
  public void disposeComponent() {
    if(myServer != null) {
      Disposer.dispose(myServer);
    }
  }

  @NotNull
  @Override
  public String getComponentName() {
    return "BuiltInServerManager";
  }

  private Future<?> startServerInPooledThread() {
    Application application = ApplicationManager.getApplication();
    if (application.isUnitTestMode() && !myEnabledInUnitTestMode || application.isCompilerServerMode()) {
      return null;
    }

    if (!myStarted.compareAndSet(false, true)) {
      return null;
    }

    return application.executeOnPooledThread(new Runnable() {
      @Override
      public void run() {
{'fraction_non_alphanumeric': 0.08778774873195475, 'fraction_numerical': 0.00351150994927819, 'mean_word_length': 5.214545454545455, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5327607', 'n_tokens_mistral': 1502, 'n_tokens_neox': 1443, 'n_words': 305}