List of usage examples for io.vertx.core.json JsonArray add
public JsonArray add(Object value)
From source file:se.liquidbytes.jel.system.device.DeviceManager.java
License:Apache License
public void listAdapterDevices(String adapterId, Handler<AsyncResult<JsonArray>> resultHandler) { DeliveryOptions options = new DeliveryOptions(); options.addHeader("action", "listDevices"); DeployedAdapter adapter = JelService.adapterManager().getAdapter(adapterId); if (adapter == null) { resultHandler//from w w w.ja v a2 s.co m .handle(Future.failedFuture(String.format("Adapter with id %s does not exist.", adapterId))); } else { // Send message to adapter to report back its devices. JelService.vertx().eventBus().send(String.format("%s.%s@%s:%d", AdapterEvents.EVENTBUS_ADAPTERS, adapter.config().getType(), adapter.config().getAddress(), adapter.config().getPort()), null, options, res -> { if (res.succeeded()) { JsonArray devices = new JsonArray(); JsonObject result = (JsonObject) res.result().body(); result.getJsonArray("result").forEach((d) -> { JsonObject tmpDevice = (JsonObject) d; // Sync found devices with allDevices-collection in case we are out of sync and have missed an event! addToDeviceCollections(new JsonObject().put("adapterId", adapterId) .put("name", tmpDevice.getString("name")) .put("type", tmpDevice.getString("type")) .put("hwId", tmpDevice.getString("hwId"))); devices.add(new JsonObject() .put("deviceId", generateDeviceId(adapterId, tmpDevice.getString("hwId"))) .put("type", tmpDevice.getString("type")) .put("name", tmpDevice.getString("name"))); }); resultHandler.handle(Future.succeededFuture(devices)); } else { resultHandler.handle(Future.failedFuture(res.cause())); } }); } }
From source file:se.liquidbytes.jel.system.device.DeviceManager.java
License:Apache License
/** * Returns a list of all available devices for all adapters. * * @param resultHandler Promise will give the list of devices or a error if one has occured. *//*from w w w. j a v a 2 s . c o m*/ public void listAllDevices(Handler<AsyncResult<JsonArray>> resultHandler) { DeliveryOptions options = new DeliveryOptions(); options.addHeader("action", "listDevices"); List<DeployedAdapter> adapters = JelService.adapterManager().getAdapters(); if (adapters.isEmpty()) { resultHandler.handle(Future.succeededFuture(new JsonArray())); } else { Promise promise = JelService.promiseFactory().create(); adapters.stream().forEach((_item) -> { // Send message to all adapters to report back their devices. promise.then((context, onResult) -> { JelService.vertx().eventBus().send(String.format("%s.%s@%s:%d", AdapterEvents.EVENTBUS_ADAPTERS, _item.config().getType(), _item.config().getAddress(), _item.config().getPort()), null, options, res -> { if (res.succeeded()) { // All adapters fills in turn a json-array named "adapterDevices". JsonArray adapterDevices = context.getJsonArray("adapterDevices"); // If we are the first adapter to report back, create the array. if (adapterDevices == null) { adapterDevices = new JsonArray(); } JsonObject result = (JsonObject) res.result().body(); adapterDevices.add(new JsonObject() .put("adapterId", result.getString("adapterId")) .put("devices", new JsonArray().addAll(result.getJsonArray("result")))); context.put("adapterDevices", adapterDevices); onResult.accept(true); } else { context.put("errorMessage", res.cause().toString()); onResult.accept(false); } }); }); }); promise.done((onSuccess) -> { // When we are done, all adapters devices should be here. JsonArray adapterDevices = onSuccess.getJsonArray("adapterDevices"); JsonArray devices = new JsonArray(); adapterDevices.forEach((adl) -> { JsonObject adapterDeviceList = (JsonObject) adl; String adapterId = adapterDeviceList.getString("adapterId"); adapterDeviceList.getJsonArray("devices").forEach((ad) -> { JsonObject tmpDevice = (JsonObject) ad; devices.add(new JsonObject().put("adapterId", adapterId) .put("deviceId", generateDeviceId(adapterId, tmpDevice.getString("hwId"))) .put("type", tmpDevice.getString("type")).put("name", tmpDevice.getString("name"))); // Sync found devices with allDevices-collection in case we are out of sync and have missed an event! addToDeviceCollections(new JsonObject().put("adapterId", adapterId) .put("hwId", tmpDevice.getString("hwId")).put("type", tmpDevice.getString("type")) .put("name", tmpDevice.getString("name"))); }); }); resultHandler.handle(Future.succeededFuture(devices)); }).except((onError) -> { resultHandler.handle(Future.failedFuture(onError.getString("errorMessage"))); }).eval(); } }
From source file:se.liquidbytes.jel.system.impl.JelServiceImpl.java
License:Apache License
@Override public void listInstalledPlugins(Handler<AsyncResult<JsonArray>> resultHandler) { try {//from www . ja va 2s. c o m List<PluginDesc> plugins = JelService.pluginManager().getInstalledPlugins(); JsonArray list = new JsonArray(); plugins.stream().forEach((plugin) -> { list.add(plugin.toApi()); }); resultHandler.handle(Future.succeededFuture(list)); } catch (Exception ex) { resultHandler.handle(Future.failedFuture(ex.getMessage())); } }
From source file:se.liquidbytes.jel.system.impl.JelServiceImpl.java
License:Apache License
@Override public void listAvailableAdapterTypes(Handler<AsyncResult<JsonArray>> resultHandler) { try {/*from w w w.ja v a2 s . co m*/ List<PluginDesc> adapterTypes = JelService.adapterManager().getAvailableAdapterTypes(); JsonArray list = new JsonArray(); adapterTypes.stream().forEach((adapterType) -> { list.add(adapterType.toApi()); }); resultHandler.handle(Future.succeededFuture(list)); } catch (Exception ex) { resultHandler.handle(Future.failedFuture(ex.getMessage())); } }
From source file:se.liquidbytes.jel.system.impl.JelServiceImpl.java
License:Apache License
@Override public void listAdapters(Handler<AsyncResult<JsonArray>> resultHandler) { try {/*from w w w . ja v a 2 s .co m*/ List<DeployedAdapter> adapters = JelService.adapterManager().getAdapters(); JsonArray list = new JsonArray(); adapters.stream().forEach((adapter) -> { list.add(adapter.toApi()); }); resultHandler.handle(Future.succeededFuture(list)); } catch (Exception ex) { resultHandler.handle(Future.failedFuture(ex.getMessage())); } }
From source file:se.liquidbytes.jel.SystemInfo.java
License:Apache License
/** * Get useful system information. This information is mostly static (does not change frequently). * * @return Document with system information. *//*from w w w . ja v a2 s .c om*/ public static JsonObject getSystemInformation() { JsonObject info = new JsonObject(); info.put("applicationVersion", getVersion()); info.put("applicationBuildnumber", getBuildNumber()); info.put("applicationStarttime", GetApplicationStarttime()); info.put("serverCurrenttime", LocalDateTime.now().toString()); JsonObject java = new JsonObject(); java.put("virtualMachine", getJavaVirtualMachine()); java.put("vendor", getJavaVendor()); java.put("version", getJavaVersion()); java.put("javaHome", getJavaHome()); java.put("runtime", getJavaRuntime()); java.put("specificationName", getJavaSpecificationName()); info.put("java", java); JsonObject os = new JsonObject(); os.put("name", getOsName()); os.put("architecture", getOsArchitecture()); os.put("description", getOsDescription()); os.put("version", getOsVersion()); info.put("os", os); JsonObject hardware = new JsonObject(); hardware.put("availableCPUs", getAvailableCPUs()); hardware.put("ipAddress", getIP()); hardware.put("gatewayAddress", getGatewayIP()); hardware.put("serverEndpoint", Settings.getServerEndpoint()); hardware.put("bogoMIPS", getBogoMIPS()); info.put("hardware", hardware); if (isRaspberryPi()) { JsonObject raspberry = new JsonObject(); raspberry.put("boardType", getRaspberryBoardType()); raspberry.put("clockFrequencyArm", getRaspberryClockFrequencyArm()); raspberry.put("clockFrequencyCore", getRaspberryClockFrequencyCore()); raspberry.put("clockFrequencyH264", getRaspberryClockFrequencyH264()); raspberry.put("clockFrequencyPWM", getRaspberryClockFrequencyPWM()); raspberry.put("clockFrequencyUART", getRaspberryClockFrequencyUART()); raspberry.put("codecH264Enabled", getRaspberryCodecH264Enabled()); raspberry.put("codecMPG2Enabled", getRaspberryCodecMPG2Enabled()); raspberry.put("codecWVC1Enabled", getRaspberryCodecWVC1Enabled()); raspberry.put("cpuArchitecture", getRaspberryCpuArchitecture()); JsonArray features = new JsonArray(); for (String feature : getRaspberryCpuFeatures()) { features.add(feature); } raspberry.put("cpuFeatures", features); raspberry.put("cpuImplementer", getRaspberryCpuImplementer()); raspberry.put("cpuPart", getRaspberryCpuPart()); raspberry.put("cpuRevision", getRaspberryCpuRevision()); raspberry.put("cpuVariant", getRaspberryCpuVariant()); raspberry.put("cpuVoltage", getRaspberryCpuVoltage()); raspberry.put("hardware", getRaspberryHardware()); raspberry.put("osFirmwareBuild", getRaspberryOsFirmwareBuild()); raspberry.put("osFirmwareDate", getRaspberryOsFirmwareDate()); raspberry.put("revision", getRaspberryRevision()); raspberry.put("serial", getRaspberrySerial()); hardware.put("details", raspberry); } return info; }
From source file:se.liquidbytes.jel.web.api.AdapterApi.java
License:Apache License
public void list(RoutingContext context) { service.listAdapters((r) -> {// ww w . j a v a 2 s . c o m if (r.succeeded()) { JsonArray adapters = new JsonArray(); r.result().forEach(a -> { JsonObject adapter = (JsonObject) a; adapter.put("devices", String.format("%s/adapters/%s/devices", API_ENDPOINT, adapter.getString("id"))); adapter.put("supportedDevices", String.format("%s/adapters/%s/supportedDevices", API_ENDPOINT, adapter.getString("id"))); adapters.add(adapter); }); JsonObject result = new JsonObject().put("devices", API_ENDPOINT + "/adapters/devices") .put("adapters", adapters); context.response().end(result.encodePrettily()); } else { context.fail(r.cause()); } }); }