diff --git a/platform/built-in-server/src/org/jetbrains/ide/BuiltInServerManagerImpl.java b/platform/built-in-server/src/org/jetbrains/ide/BuiltInServerManagerImpl.java
index d16f60bc1006..577a2f32dffa 100644
--- a/platform/built-in-server/src/org/jetbrains/ide/BuiltInServerManagerImpl.java
+++ b/platform/built-in-server/src/org/jetbrains/ide/BuiltInServerManagerImpl.java
@@ -14,6 +14,7 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.io.BuiltInServer;
+import org.jetbrains.io.SubServer;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@@ -97,6 +98,7 @@ public class BuiltInServerManagerImpl extends BuiltInServerManager {
try {
server = BuiltInServer.start(workerCount, defaultPort, PORTS_COUNT, true);
+ bindCustomPorts(server);
}
catch (Throwable e) {
LOG.info(e);
@@ -127,4 +129,19 @@ public class BuiltInServerManagerImpl extends BuiltInServerManager {
public Disposable getServerDisposable() {
return server;
}
+
+ private static void bindCustomPorts(@NotNull BuiltInServer server) {
+ if (ApplicationManager.getApplication().isUnitTestMode()) {
+ return;
+ }
+
+ for (CustomPortServerManager customPortServerManager : CustomPortServerManager.EP_NAME.getExtensions()) {
+ try {
+ new SubServer(customPortServerManager, server).bind(customPortServerManager.getPort());
+ }
+ catch (Throwable e) {
+ LOG.error(e);
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/platform/built-in-server/src/org/jetbrains/io/SubServer.java b/platform/built-in-server/src/org/jetbrains/io/SubServer.java
index 82f670ce4b5c..393c9c89767d 100644
--- a/platform/built-in-server/src/org/jetbrains/io/SubServer.java
+++ b/platform/built-in-server/src/org/jetbrains/io/SubServer.java
@@ -34,7 +34,7 @@ import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.Map;
-final class SubServer implements CustomPortServerManager.CustomPortService, Disposable {
+public final class SubServer implements CustomPortServerManager.CustomPortService, Disposable {
private ChannelRegistrar channelRegistrar;
private final CustomPortServerManager user;
diff --git a/platform/platform-impl/platform-impl.iml b/platform/platform-impl/platform-impl.iml
index 70b50f7e0888..64dc847f675a 100644
--- a/platform/platform-impl/platform-impl.iml
+++ b/platform/platform-impl/platform-impl.iml
@@ -41,5 +41,6 @@
+
\ No newline at end of file
diff --git a/platform/built-in-server/src/org/jetbrains/io/BuiltInServer.java b/platform/platform-impl/src/org/jetbrains/io/BuiltInServer.java
similarity index 84%
rename from platform/built-in-server/src/org/jetbrains/io/BuiltInServer.java
rename to platform/platform-impl/src/org/jetbrains/io/BuiltInServer.java
index 00ee54626d05..50244dd1e367 100644
--- a/platform/built-in-server/src/org/jetbrains/io/BuiltInServer.java
+++ b/platform/platform-impl/src/org/jetbrains/io/BuiltInServer.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
package org.jetbrains.io;
import com.intellij.openapi.Disposable;
-import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.net.NetUtils;
@@ -24,7 +23,6 @@ import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.*;
import io.netty.channel.nio.NioEventLoopGroup;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.ide.CustomPortServerManager;
import org.jetbrains.ide.PooledThreadExecutor;
import java.io.IOException;
@@ -55,10 +53,7 @@ public class BuiltInServer implements Disposable {
ChannelRegistrar channelRegistrar = new ChannelRegistrar();
ServerBootstrap bootstrap = NettyUtil.nioServerBootstrap(eventLoopGroup);
configureChildHandler(bootstrap, channelRegistrar);
- int port = bind(firstPort, portsCount, tryAnyPort, bootstrap, channelRegistrar);
- BuiltInServer server = new BuiltInServer(eventLoopGroup, port);
- bindCustomPorts(server);
- return server;
+ return new BuiltInServer(eventLoopGroup, bind(firstPort, portsCount, tryAnyPort, bootstrap, channelRegistrar));
}
public int getPort() {
@@ -75,21 +70,6 @@ public class BuiltInServer implements Disposable {
});
}
- private static void bindCustomPorts(@NotNull BuiltInServer server) {
- if (ApplicationManager.getApplication().isUnitTestMode()) {
- return;
- }
-
- for (CustomPortServerManager customPortServerManager : CustomPortServerManager.EP_NAME.getExtensions()) {
- try {
- new SubServer(customPortServerManager, server).bind(customPortServerManager.getPort());
- }
- catch (Throwable e) {
- LOG.error(e);
- }
- }
- }
-
private static int bind(int firstPort, int portsCount, boolean tryAnyPort, @NotNull ServerBootstrap bootstrap, @NotNull ChannelRegistrar channelRegistrar) throws Throwable {
InetAddress loopbackAddress = NetUtils.getLoopbackAddress();
for (int i = 0; i < portsCount; i++) {
diff --git a/platform/built-in-server/src/org/jetbrains/io/ChannelRegistrar.java b/platform/platform-impl/src/org/jetbrains/io/ChannelRegistrar.java
similarity index 71%
rename from platform/built-in-server/src/org/jetbrains/io/ChannelRegistrar.java
rename to platform/platform-impl/src/org/jetbrains/io/ChannelRegistrar.java
index 179d2db5cf81..ccbc57a67d2d 100644
--- a/platform/built-in-server/src/org/jetbrains/io/ChannelRegistrar.java
+++ b/platform/platform-impl/src/org/jetbrains/io/ChannelRegistrar.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2000-2015 JetBrains s.r.o.
+ *
+ * Licensed 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.jetbrains.io;
import io.netty.channel.*;
diff --git a/platform/built-in-server/src/org/jetbrains/io/DelegatingHttpRequestHandler.java b/platform/platform-impl/src/org/jetbrains/io/DelegatingHttpRequestHandler.java
similarity index 100%
rename from platform/built-in-server/src/org/jetbrains/io/DelegatingHttpRequestHandler.java
rename to platform/platform-impl/src/org/jetbrains/io/DelegatingHttpRequestHandler.java
diff --git a/platform/built-in-server/src/org/jetbrains/io/DelegatingHttpRequestHandlerBase.java b/platform/platform-impl/src/org/jetbrains/io/DelegatingHttpRequestHandlerBase.java
similarity index 100%
rename from platform/built-in-server/src/org/jetbrains/io/DelegatingHttpRequestHandlerBase.java
rename to platform/platform-impl/src/org/jetbrains/io/DelegatingHttpRequestHandlerBase.java
diff --git a/platform/built-in-server/src/org/jetbrains/io/FileResponses.java b/platform/platform-impl/src/org/jetbrains/io/FileResponses.java
similarity index 99%
rename from platform/built-in-server/src/org/jetbrains/io/FileResponses.java
rename to platform/platform-impl/src/org/jetbrains/io/FileResponses.java
index b572d3972441..ff4197b0a775 100644
--- a/platform/built-in-server/src/org/jetbrains/io/FileResponses.java
+++ b/platform/platform-impl/src/org/jetbrains/io/FileResponses.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/platform/built-in-server/src/org/jetbrains/io/PortUnificationServerHandler.java b/platform/platform-impl/src/org/jetbrains/io/PortUnificationServerHandler.java
similarity index 100%
rename from platform/built-in-server/src/org/jetbrains/io/PortUnificationServerHandler.java
rename to platform/platform-impl/src/org/jetbrains/io/PortUnificationServerHandler.java
diff --git a/platform/built-in-server/src/org/jetbrains/io/Responses.java b/platform/platform-impl/src/org/jetbrains/io/Responses.java
similarity index 100%
rename from platform/built-in-server/src/org/jetbrains/io/Responses.java
rename to platform/platform-impl/src/org/jetbrains/io/Responses.java