project set support: sending responce

This commit is contained in:
Dmitry Avdeev
2014-09-26 17:43:54 +04:00
parent be51818993
commit 9a259efff1
2 changed files with 19 additions and 3 deletions
@@ -19,6 +19,7 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.projectImport.ProjectSetProcessor;
import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.NotNull;
@@ -31,6 +32,8 @@ import java.util.Map;
*/
public class ProjectSetReader {
private static final Logger LOG = Logger.getInstance(ProjectSetReader.class);
public void readDescriptor(@Language("JSON") @NotNull String descriptor) {
ProjectSetProcessor[] extensions = ProjectSetProcessor.EXTENSION_POINT_NAME.getExtensions();
@@ -43,6 +46,11 @@ public class ProjectSetReader {
for (Map.Entry<String, JsonElement> entry : parse.getAsJsonObject().entrySet()) {
String key = entry.getKey();
ProjectSetProcessor processor = processors.get(key);
if (processor == null) {
LOG.error("Processor not found for " + key);
continue;
}
JsonObject object = entry.getValue().getAsJsonObject();
for (Map.Entry<String, JsonElement> elementEntry : object.entrySet()) {
Object o = processor.interactWithUser();
@@ -15,13 +15,16 @@
*/
package com.intellij.platform;
import com.intellij.openapi.application.ApplicationManager;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.HttpMethod;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.QueryStringDecoder;
import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.ide.HttpRequestHandler;
import org.jetbrains.io.Responses;
import java.io.IOException;
import java.nio.charset.Charset;
@@ -40,9 +43,14 @@ public class ProjectSetRequestHandler extends HttpRequestHandler {
public boolean process(@NotNull QueryStringDecoder urlDecoder, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context)
throws IOException {
@Language("JSON") String desc = request.content().toString(Charset.defaultCharset());
new ProjectSetReader().readDescriptor(desc);
@Language("JSON") final String desc = request.content().toString(Charset.defaultCharset());
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
new ProjectSetReader().readDescriptor(desc);
}
});
Responses.sendStatus(HttpResponseStatus.OK, context.channel(), request);
return true;
}
}