cleanup
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Tue, 26 Apr 2016 13:40:30 +0000 (15:40 +0200)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Tue, 26 Apr 2016 13:40:30 +0000 (15:40 +0200)
platform/built-in-server/src/org/jetbrains/ide/XmlRpcServerImpl.java
platform/built-in-server/src/org/jetbrains/io/SubServer.java
platform/platform-api/src/com/intellij/ide/XmlRpcServer.java
platform/platform-impl/src/org/jetbrains/io/DelegatingHttpRequestHandlerBase.kt
platform/platform-impl/src/org/jetbrains/io/PortUnificationServerHandler.java

index 782136dd77f9a55b81d91f6c3450efb80150a050..4ad9a213b92571d17fafe66006528d33392898e9 100644 (file)
@@ -75,48 +75,45 @@ public class XmlRpcServerImpl implements XmlRpcServer {
   }
 
   @Override
-  public boolean process(@NotNull String path, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context, @Nullable Map<String, Object> handlers) throws IOException {
+  public boolean process(@NotNull String path, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context, @Nullable Map<String, Object> handlers) {
     if (!(path.isEmpty() || (path.length() == 1 && path.charAt(0) == '/') || path.equalsIgnoreCase("/rpc2"))) {
       return false;
     }
 
-    if (request.method() == HttpMethod.POST) {
-      ByteBuf result;
-      ByteBuf content = request.content();
-      if (content.readableBytes() == 0) {
-        Responses.send(HttpResponseStatus.BAD_REQUEST, context.channel(), request);
-        return true;
-      }
+    if (request.method() != HttpMethod.POST) {
+      return false;
+    }
 
-      ByteBufInputStream in = new ByteBufInputStream(content);
-      try {
-        XmlRpcServerRequest xmlRpcServerRequest = new XmlRpcRequestProcessor().decodeRequest(in);
-        if (StringUtil.isEmpty(xmlRpcServerRequest.getMethodName())) {
-          LOG.warn("method name empty");
-          return false;
-        }
+    ByteBuf content = request.content();
+    if (content.readableBytes() == 0) {
+      Responses.send(HttpResponseStatus.BAD_REQUEST, context.channel(), request);
+      return true;
+    }
 
-        Object response = invokeHandler(getHandler(xmlRpcServerRequest.getMethodName(), handlers == null ? handlerMapping : handlers), xmlRpcServerRequest);
-        result = Unpooled.wrappedBuffer(new XmlRpcResponseProcessor().encodeResponse(response, CharsetToolkit.UTF8));
-      }
-      catch (SAXParseException e) {
-        LOG.warn(e);
-        Responses.send(HttpResponseStatus.BAD_REQUEST, context.channel(), request);
-        return true;
-      }
-      catch (Throwable e) {
-        context.channel().close();
-        LOG.error(e);
-        return true;
-      }
-      finally {
-        in.close();
+    ByteBuf result;
+    try (ByteBufInputStream in = new ByteBufInputStream(content)) {
+      XmlRpcServerRequest xmlRpcServerRequest = new XmlRpcRequestProcessor().decodeRequest(in);
+      if (StringUtil.isEmpty(xmlRpcServerRequest.getMethodName())) {
+        LOG.warn("method name empty");
+        return false;
       }
 
-      Responses.send(Responses.response("text/xml", result), context.channel(), request);
+      Object response = invokeHandler(getHandler(xmlRpcServerRequest.getMethodName(), handlers == null ? handlerMapping : handlers), xmlRpcServerRequest);
+      result = Unpooled.wrappedBuffer(new XmlRpcResponseProcessor().encodeResponse(response, CharsetToolkit.UTF8));
+    }
+    catch (SAXParseException e) {
+      LOG.warn(e);
+      Responses.send(HttpResponseStatus.BAD_REQUEST, context.channel(), request);
       return true;
     }
-    return false;
+    catch (Throwable e) {
+      context.channel().close();
+      LOG.error(e);
+      return true;
+    }
+
+    Responses.send(Responses.response("text/xml", result), context.channel(), request);
+    return true;
   }
 
   private static Object getHandler(@NotNull String methodName, @NotNull Map<String, Object> handlers) {
index c5e58d805f36a4adc7b1cb42695483e018b7c061..67a52d832d21e1242ecbef37d5274e988d7c3b08 100644 (file)
@@ -31,7 +31,6 @@ import io.netty.handler.codec.http.QueryStringDecoder;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.ide.CustomPortServerManager;
 
-import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.Map;
 
@@ -123,7 +122,7 @@ public final class SubServer implements CustomPortServerManager.CustomPortServic
     }
 
     @Override
-    protected boolean process(@NotNull ChannelHandlerContext context, @NotNull FullHttpRequest request, @NotNull QueryStringDecoder urlDecoder) throws IOException {
+    protected boolean process(@NotNull ChannelHandlerContext context, @NotNull FullHttpRequest request, @NotNull QueryStringDecoder urlDecoder) {
       if (handlers.isEmpty()) {
         // not yet initialized, for example, P2PTransport could add handlers after we bound.
         return false;
index 16dafdcd8775ce9045a132268f60016cd0ed4606..eed4583c5ab01aacb54225a55d094b0af08d7d24 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2016 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.
@@ -21,7 +21,6 @@ import io.netty.handler.codec.http.FullHttpRequest;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import java.io.IOException;
 import java.util.Map;
 
 public interface XmlRpcServer {
@@ -31,7 +30,7 @@ public interface XmlRpcServer {
 
   void removeHandler(String name);
 
-  boolean process(@NotNull String path, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context, @Nullable Map<String, Object> handlers) throws IOException;
+  boolean process(@NotNull String path, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context, @Nullable Map<String, Object> handlers);
 
   final class SERVICE {
     private SERVICE() {
index bfe0014ae145f60aff02a5fa2d5e967efa96af04..d8c1914c8e398bf4bf29ba80345bdda879a6c959 100644 (file)
@@ -16,6 +16,7 @@
 package org.jetbrains.io
 
 import com.intellij.openapi.diagnostic.Logger
+import com.intellij.openapi.diagnostic.debug
 import io.netty.channel.ChannelHandlerContext
 import io.netty.handler.codec.http.FullHttpRequest
 import io.netty.handler.codec.http.HttpResponseStatus
@@ -23,16 +24,13 @@ import io.netty.handler.codec.http.QueryStringDecoder
 
 internal abstract class DelegatingHttpRequestHandlerBase : SimpleChannelInboundHandlerAdapter<FullHttpRequest>() {
   override fun messageReceived(context: ChannelHandlerContext, message: FullHttpRequest) {
-    if (Logger.getInstance(BuiltInServer::class.java).isDebugEnabled) {
-      Logger.getInstance(BuiltInServer::class.java).debug("IN HTTP: " + message.uri())
-    }
+    Logger.getInstance(BuiltInServer::class.java).debug { "IN HTTP: $message" }
 
     if (!process(context, message, QueryStringDecoder(message.uri()))) {
       HttpResponseStatus.NOT_FOUND.send(context.channel(), message)
     }
   }
 
-  @Throws(Exception::class)
   protected abstract fun process(context: ChannelHandlerContext,
                                  request: FullHttpRequest,
                                  urlDecoder: QueryStringDecoder): Boolean
index 749487e22890cf28a4cfffc294f81e7896b27a0c..2ccd269c6fc8ca54a799c408474b54c8de010cbc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2015 JetBrains s.r.o.
+ * Copyright 2000-2016 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.
@@ -34,8 +34,6 @@ import java.security.KeyStore;
 import java.security.Security;
 import java.util.UUID;
 
-import static io.netty.handler.codec.http.HttpHeaders.Names.CONTENT_TYPE;
-
 @ChannelHandler.Sharable
 class PortUnificationServerHandler extends Decoder {
   // keytool -genkey -keyalg RSA -alias selfsigned -keystore cert.jks -storepass jetbrains -validity 10000 -keysize 2048
@@ -114,7 +112,7 @@ class PortUnificationServerHandler extends Decoder {
             public void write(ChannelHandlerContext context, Object message, ChannelPromise promise) throws Exception {
               if (message instanceof HttpResponse) {
                 HttpResponse response = (HttpResponse)message;
-                logger.debug("OUT HTTP: " + response.status().code() + " " + response.headers().getAsString(CONTENT_TYPE));
+                logger.debug("OUT HTTP: " + response.toString());
               }
               super.write(context, message, promise);
             }