mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
project set support: sending responce
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user