Example usage for com.google.gson JsonPrimitive JsonPrimitive

List of usage examples for com.google.gson JsonPrimitive JsonPrimitive

Introduction

In this page you can find the example usage for com.google.gson JsonPrimitive JsonPrimitive.

Prototype

public JsonPrimitive(Character c) 

Source Link

Document

Create a primitive containing a character.

Usage

From source file:basic.AcknowledgeExample.java

License:Open Source License

@Override
public void onMessage(String data, IOAcknowledge ack) {
    // acknowledges a package
    ack.ack(new JsonPrimitive("argument1"), new JsonPrimitive(23.42), new JsonPrimitive("argument3"));
}

From source file:basic.BasicExample.java

License:Open Source License

public BasicExample() throws Exception {
    socket = new SocketIO();
    socket.connect("http://127.0.0.1:3001/", this);

    // Sends a string to the server.
    socket.send("Hello Server");

    // Sends a JSON object to the server.
    JsonObject json = new JsonObject();

    json.add("key", new JsonPrimitive("value"));
    json.add("key2", new JsonPrimitive("another value"));
    socket.send(json);//ww  w .  j  a v a 2s . com

    // Emits an event to the server.
    socket.emit("event", "argument1", "argument2", 13.37);
}

From source file:be.iminds.iot.dianne.builder.DianneBuilder.java

License:Open Source License

private void getAvailableModules(PrintWriter writer) {
    List<ModuleTypeDTO> moduleTypes = new ArrayList<ModuleTypeDTO>();
    synchronized (factories) {
        for (ModuleFactory f : factories) {
            moduleTypes.addAll(f.getAvailableModuleTypes());
        }/* ww w . j  a  va2s  .c  om*/
    }

    JsonArray jsonModules = new JsonArray();
    for (ModuleTypeDTO moduleType : moduleTypes) {
        JsonObject jsonModule = new JsonObject();
        jsonModule.add("type", new JsonPrimitive(moduleType.type));
        jsonModule.add("category", new JsonPrimitive(moduleType.category));
        if (moduleType.trainable) {
            jsonModule.add("trainable", new JsonPrimitive(true));
        }
        jsonModules.add(jsonModule);
    }
    writer.write(jsonModules.toString());
    writer.flush();
}

From source file:be.iminds.iot.dianne.builder.DianneData.java

License:Open Source License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");
    String action = request.getParameter("action");

    if (action.equals("available-datasets")) {
        JsonArray result = new JsonArray();
        synchronized (datasets) {
            for (DatasetDTO d : datasets.getDatasets()) {
                JsonObject r = new JsonObject();
                r.add("dataset", new JsonPrimitive(d.name));
                r.add("size", new JsonPrimitive(d.size));
                if (d.inputType != null)
                    r.add("inputType", new JsonPrimitive(d.inputType));
                if (d.targetType != null)
                    r.add("targetType", new JsonPrimitive(d.targetType));
                String[] ll = d.labels;
                if (ll != null) {
                    JsonArray labels = new JsonArray();
                    for (String l : ll) {
                        labels.add(new JsonPrimitive(l));
                    }/*from   w  ww. j  a v a  2 s. c  o m*/
                    r.add("labels", labels);
                }
                result.add(r);
            }
        }
        response.getWriter().println(result.toString());
        response.getWriter().flush();
    } else if (action.equals("sample")) {
        String dataset = request.getParameter("dataset");
        Dataset d = datasets.getDataset(dataset);
        if (d != null && d.size() > 0) {
            int index = rand.nextInt(d.size());
            Sample s = d.getSample(index);
            JsonObject sample = converter.toJson(s.input);
            sample.add("index", new JsonPrimitive(index));
            String[] labels = d.getLabels();
            if (labels != null) {
                sample.add("target", new JsonPrimitive(labels[TensorOps.argmax(s.target)]));
            } else {
                if (s.target.size() < 10) {
                    JsonObject target = converter.toJson(s.target);
                    sample.add("target", target.get("data").getAsJsonArray());
                }
            }

            response.getWriter().println(sample.toString());
            response.getWriter().flush();
        }
    }
}

From source file:be.iminds.iot.dianne.builder.DianneDatasets.java

License:Open Source License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String action = request.getParameter("action");

    if (action.equals("available-datasets")) {
        JsonArray result = new JsonArray();
        synchronized (datasets) {
            for (Dataset d : datasets.values()) {
                JsonObject r = new JsonObject();
                r.add("dataset", new JsonPrimitive(d.getName()));
                r.add("size", new JsonPrimitive(d.size()));
                JsonArray labels = new JsonArray();
                for (String l : d.getLabels()) {
                    labels.add(new JsonPrimitive(l));
                }//w ww  .j  a va2s  .  c o  m
                r.add("labels", labels);
                result.add(r);
            }
        }
        response.getWriter().println(result.toString());
        response.getWriter().flush();
    } else if (action.equals("sample")) {
        String dataset = request.getParameter("dataset");
        Dataset d = datasets.get(dataset);
        if (d != null) {
            JsonObject sample = new JsonObject();

            Tensor t = d.getInputSample(rand.nextInt(d.size()));

            if (t.dims().length == 3) {
                sample.add("channels", new JsonPrimitive(t.dims()[0]));
                sample.add("height", new JsonPrimitive(t.dims()[1]));
                sample.add("width", new JsonPrimitive(t.dims()[2]));
            } else {
                sample.add("channels", new JsonPrimitive(1));
                sample.add("height", new JsonPrimitive(t.dims()[0]));
                sample.add("width", new JsonPrimitive(t.dims()[1]));
            }
            sample.add("data", parser.parse(Arrays.toString(t.get())));
            response.getWriter().println(sample.toString());
            response.getWriter().flush();
        }
    }
}

From source file:be.iminds.iot.dianne.builder.DianneDeployer.java

License:Open Source License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");

    String action = request.getParameter("action");
    if (action.equals("deploy")) {
        String id = request.getParameter("id");
        if (id == null) {
            id = UUID.randomUUID().toString();
        }/*  ww  w.j a  v a  2s .co m*/
        String name = request.getParameter("name");
        if (name == null) {
            name = "unknown";
        }
        String[] tags = null;
        String t = request.getParameter("tags");
        if (t != null && !t.isEmpty()) {
            tags = t.split(",");
        }

        List<ModuleDTO> toDeploy = new ArrayList<ModuleDTO>();
        if (request.getParameter("modules") != null) {
            String modulesJsonString = request.getParameter("modules");
            NeuralNetworkDTO nn = DianneJSONConverter.parseJSON(modulesJsonString);
            toDeploy.addAll(nn.modules.values());
        } else if (request.getParameter("module") != null) {
            String moduleJsonString = request.getParameter("module");
            ModuleDTO module = DianneJSONConverter.parseModuleJSON(moduleJsonString);
            toDeploy.add(module);
        }

        try {
            String target = request.getParameter("target");
            if (target == null) {
                throw new Exception("No DIANNE runtime selected to deploy to");
            }
            UUID runtimeId = UUID.fromString(target);

            UUID nnId = UUID.fromString(id);
            List<ModuleInstanceDTO> moduleInstances = platform.deployModules(nnId, name, toDeploy, runtimeId,
                    tags);

            // return json object with deployment
            JsonObject result = new JsonObject();
            JsonObject deployment = deploymentToJSON(moduleInstances);
            result.add("id", new JsonPrimitive(id));
            result.add("deployment", deployment);
            try {
                response.getWriter().write(result.toString());
                response.getWriter().flush();
            } catch (IOException e) {
            }

        } catch (Exception ex) {
            System.out.println("Failed to deploy modules: " + ex.getMessage());
            JsonObject result = new JsonObject();
            result.add("error", new JsonPrimitive("Failed to deploy modules: " + ex.getMessage()));
            try {
                response.getWriter().write(result.toString());
                response.getWriter().flush();
            } catch (IOException e) {
            }
        }

    } else if (action.equals("undeploy")) {
        String id = request.getParameter("id");
        String moduleId = request.getParameter("moduleId");
        if (id != null) {
            NeuralNetworkInstanceDTO nn = platform.getNeuralNetworkInstance(UUID.fromString(id));
            if (nn != null) {
                ModuleInstanceDTO moduleInstance = nn.modules.get(UUID.fromString(moduleId));
                if (moduleInstance != null)
                    platform.undeployModules(Collections.singletonList(moduleInstance));

                response.getWriter().write(new JsonPrimitive(id).toString());
                response.getWriter().flush();
            }
        }
    } else if (action.equals("targets")) {
        JsonArray targets = new JsonArray();

        Map<UUID, String> runtimes = platform.getRuntimes();
        runtimes.entrySet().stream().forEach(e -> {
            JsonObject o = new JsonObject();
            o.add("id", new JsonPrimitive(e.getKey().toString()));
            o.add("name", new JsonPrimitive(e.getValue()));
            targets.add(o);
        });

        response.getWriter().write(targets.toString());
        response.getWriter().flush();
    } else if ("recover".equals(action)) {
        String id = request.getParameter("id");
        if (id == null) {
            // list all options
            JsonArray nns = new JsonArray();
            platform.getNeuralNetworkInstances().stream().forEach(nni -> {
                JsonObject o = new JsonObject();
                o.add("id", new JsonPrimitive(nni.id.toString()));
                o.add("name", new JsonPrimitive(nni.name));
                if (nni.description != null) {
                    o.add("description", new JsonPrimitive(nni.description));
                }
                nns.add(o);
            });
            response.getWriter().write(nns.toString());
            response.getWriter().flush();

        } else {
            NeuralNetworkInstanceDTO nni = platform.getNeuralNetworkInstance(UUID.fromString(id));
            if (nni == null) {
                System.out.println("Failed to recover " + id + " , instance not found");
                return;
            }

            try {
                response.getWriter().write("{\"nn\":");
                NeuralNetworkDTO nn = repository.loadNeuralNetwork(nni.name);
                String s = DianneJSONConverter.toJsonString(nn);
                response.getWriter().write(s);
                response.getWriter().write(", \"layout\":");
                String layout = repository.loadLayout(nni.name);
                response.getWriter().write(layout);
                response.getWriter().write(", \"deployment\":");
                JsonObject deployment = deploymentToJSON(nni.modules.values());
                response.getWriter().write(deployment.toString());
                response.getWriter().write(", \"id\":");
                response.getWriter().write("\"" + id + "\"");
                response.getWriter().write("}");
                response.getWriter().flush();
            } catch (Exception e) {
                System.out.println("Failed to recover " + nni.name + " " + nni.id);
            }
        }
    }

}

From source file:be.iminds.iot.dianne.builder.DianneDeployer.java

License:Open Source License

private JsonObject deploymentToJSON(Collection<ModuleInstanceDTO> moduleInstances) {
    JsonObject deployment = new JsonObject();
    for (ModuleInstanceDTO moduleInstance : moduleInstances) {
        String runtime = moduleInstance.runtimeId.toString();
        if (runtime == null) {
            runtime = moduleInstance.runtimeId.toString();
        }/*  ww  w  .  j a  v a2s.  c  o  m*/
        deployment.add(moduleInstance.moduleId.toString(), new JsonPrimitive(runtime));
    }
    return deployment;
}

From source file:be.iminds.iot.dianne.builder.DianneInput.java

License:Open Source License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");

    String action = request.getParameter("action");
    if ("available-inputs".equals(action)) {
        JsonArray availableInputs = new JsonArray();
        synchronized (inputs) {
            for (DianneInputs i : inputs) {
                for (InputDescription input : i.getAvailableInputs()) {
                    JsonObject o = new JsonObject();
                    o.add("name", new JsonPrimitive(input.getName()));
                    o.add("type", new JsonPrimitive(input.getType()));
                    availableInputs.add(o);
                }/*from www.  j  ava  2  s.c o m*/
            }
        }
        response.getWriter().write(availableInputs.toString());
        response.getWriter().flush();
    } else if ("setinput".equals(action)) {
        String nnId = request.getParameter("nnId");
        String inputId = request.getParameter("inputId");
        String input = request.getParameter("input");

        synchronized (inputs) {
            // TODO select the right one instead of forwarding to all?
            for (DianneInputs i : inputs) {
                i.setInput(UUID.fromString(nnId), UUID.fromString(inputId), input);
            }

            ForwardListener inputListener = new ForwardListener() {
                @Override
                public void onForward(UUID moduleId, Tensor output, String... tags) {
                    if (sses.get(input) != null) {
                        JsonObject json = converter.toJson(output);
                        StringBuilder builder = new StringBuilder();
                        builder.append("data: ").append(json.toString()).append("\n\n");
                        String msg = builder.toString();

                        List<AsyncContext> list = sses.get(input);
                        Iterator<AsyncContext> it = list.iterator();
                        while (it.hasNext()) {
                            AsyncContext sse = it.next();
                            try {
                                PrintWriter writer = sse.getResponse().getWriter();
                                writer.write(msg);
                                writer.flush();
                                if (writer.checkError()) {
                                    System.err.println("Writer error: removing async endpoint.");
                                    writer.close();
                                    it.remove();
                                }
                            } catch (Exception e) {
                                try {
                                    sse.getResponse().getWriter().close();
                                } catch (Exception ignore) {
                                }
                                it.remove();
                                e.printStackTrace();
                            }
                        }
                    }
                }

                @Override
                public void onError(UUID moduleId, ModuleException e, String... tags) {
                    e.printStackTrace();
                }
            };
            Dictionary<String, Object> properties = new Hashtable<String, Object>();
            properties.put("targets", new String[] { nnId + ":" + inputId });
            properties.put("aiolos.unique", true);
            ServiceRegistration<ForwardListener> r = context.registerService(ForwardListener.class,
                    inputListener, properties);
            inputListeners.put(UUID.fromString(inputId), r);
        }
    } else if ("unsetinput".equals(action)) {
        String nnId = request.getParameter("nnId");
        String inputId = request.getParameter("inputId");
        String input = request.getParameter("input");

        synchronized (inputs) {
            for (DianneInputs i : inputs) {
                i.unsetInput(UUID.fromString(nnId), UUID.fromString(inputId), input);
            }
        }

        ServiceRegistration<ForwardListener> r = inputListeners.get(UUID.fromString(inputId));
        if (r != null) {
            r.unregister();
        }
    }
}

From source file:be.iminds.iot.dianne.builder.DianneLearner.java

License:Open Source License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");
    String id = request.getParameter("id");
    if (id == null) {
        System.out.println("No neural network instance specified");
    }/*from ww  w .  java  2  s.co m*/
    UUID nnId = UUID.fromString(id);
    NeuralNetworkInstanceDTO nni = platform.getNeuralNetworkInstance(nnId);
    if (nni == null) {
        System.out.println("Neural network instance " + id + " not deployed");
        return;
    }

    String action = request.getParameter("action");
    if (action.equals("stop")) {
        learner.stop();
        return;
    }

    String target = request.getParameter("target");
    // this list consists of all ids of modules that are needed for trainer:
    // the input, output, trainable and preprocessor modules
    String configJsonString = request.getParameter("config");

    JsonObject configJson = parser.parse(configJsonString).getAsJsonObject();

    JsonObject learnerConfig = (JsonObject) configJson.get(target);

    for (Entry<String, JsonElement> configs : configJson.entrySet()) {
        JsonObject datasetConfig = (JsonObject) configs.getValue();
        if (datasetConfig.get("category").getAsString().equals("Dataset")
                && datasetConfig.get("input") != null) {
            String dataset = datasetConfig.get("dataset").getAsString();
            if (action.equals("learn")) {
                int start = 0;
                int end = datasetConfig.get("train").getAsInt();

                int batch = learnerConfig.get("batch").getAsInt();
                float learningRate = learnerConfig.get("learningRate").getAsFloat();
                float momentum = learnerConfig.get("momentum").getAsFloat();
                float regularization = learnerConfig.get("regularization").getAsFloat();
                String criterion = learnerConfig.get("loss").getAsString();
                String method = learnerConfig.get("method").getAsString();

                boolean clean = learnerConfig.get("clean").getAsBoolean();

                Map<String, String> config = new HashMap<>();
                config.put("range", "" + start + "," + end);
                config.put("batchSize", "" + batch);
                config.put("learningRate", "" + learningRate);
                config.put("momentum", "" + momentum);
                config.put("regularization", "" + regularization);
                config.put("criterion", criterion);
                config.put("method", method);
                config.put("syncInterval", "" + interval);
                config.put("clean", clean ? "true" : "false");
                config.put("trace", "true");

                try {
                    Dataset d = datasets.getDataset(dataset);
                    if (d != null) {
                        JsonObject labels = new JsonObject();
                        labels.add(target, new JsonPrimitive(Arrays.toString(d.getLabels())));
                        response.getWriter().write(labels.toString());
                        response.getWriter().flush();
                    }

                    learner.learn(dataset, config, nni);

                } catch (Exception e) {
                    e.printStackTrace();
                }

            } else if (action.equals("evaluate")) {
                int start = datasetConfig.get("train").getAsInt();
                int end = start + datasetConfig.get("test").getAsInt();

                Map<String, String> config = new HashMap<>();
                config.put("range", "" + start + "," + end);

                try {
                    Evaluation result = evaluator.eval(dataset, config, nni);

                    JsonObject eval = new JsonObject();

                    eval.add("metric", new JsonPrimitive(result.metric()));
                    eval.add("time", new JsonPrimitive(result.time()));

                    if (result instanceof ErrorEvaluation) {
                        ErrorEvaluation ee = (ErrorEvaluation) result;
                        eval.add("error", new JsonPrimitive(ee.error()));
                    }

                    if (result instanceof ClassificationEvaluation) {
                        ClassificationEvaluation ce = (ClassificationEvaluation) result;
                        eval.add("accuracy", new JsonPrimitive(ce.accuracy() * 100));

                        Tensor confusionMatrix = ce.confusionMatrix();
                        JsonArray data = new JsonArray();
                        for (int i = 0; i < confusionMatrix.size(0); i++) {
                            for (int j = 0; j < confusionMatrix.size(1); j++) {
                                JsonArray element = new JsonArray();
                                element.add(new JsonPrimitive(i));
                                element.add(new JsonPrimitive(j));
                                element.add(new JsonPrimitive(confusionMatrix.get(i, j)));
                                data.add(element);
                            }
                        }
                        eval.add("confusionMatrix", data);
                    }

                    response.getWriter().write(eval.toString());
                    response.getWriter().flush();
                } catch (Exception e) {
                    e.printStackTrace();
                    JsonObject eval = new JsonObject();
                    eval.add("error", new JsonPrimitive(e.getCause().getMessage()));
                    response.getWriter().write(eval.toString());
                    response.getWriter().flush();
                }
            }
            break;
        }
    }
}

From source file:be.iminds.iot.dianne.builder.DianneLoader.java

License:Open Source License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("application/json");

    String action = request.getParameter("action");
    if ("list".equals(action)) {
        JsonArray names = new JsonArray();
        for (String name : repository.availableNeuralNetworks()) {
            names.add(new JsonPrimitive(name));
        }/*w  w  w.ja  v a  2 s.c  o m*/
        response.getWriter().write(names.toString());
        response.getWriter().flush();
    } else if ("load".equals(action)) {
        String name = request.getParameter("name");

        response.getWriter().write("{\"nn\":");
        NeuralNetworkDTO nn = repository.loadNeuralNetwork(name);
        String s = DianneJSONConverter.toJsonString(nn);
        response.getWriter().write(s);
        response.getWriter().write(", \"layout\":");
        String layout = repository.loadLayout(name);
        response.getWriter().write(layout);
        response.getWriter().write("}");
        response.getWriter().flush();
    }
}