List of usage examples for com.google.gson JsonPrimitive JsonPrimitive
public JsonPrimitive(Character c)
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(); } }