/** Check whether device model is populated and offer to bootstrap system if not. */ protected void verifyDeviceModel() { try { IDeviceModelInitializer init = (IDeviceModelInitializer) SERVER_SPRING_CONTEXT.getBean(SiteWhereServerBeans.BEAN_DEVICE_MODEL_INITIALIZER); ISearchResults<ISite> sites = getDeviceManagement().listSites(new SearchCriteria(1, 1)); if (sites.getNumResults() == 0) { List<String> messages = new ArrayList<String>(); messages.add( "There are currently no sites defined in the system. You have the option of loading " + "a default dataset for previewing system functionality. Would you like to load the default " + "dataset?"); String message = StringMessageUtils.getBoilerPlate(messages, '*', 60); LOGGER.info("\n" + message + "\n"); System.out.println("Load default dataset? Yes/No (Default is Yes)"); String response = readLine(); if ((response == null) && (init.isInitializeIfNoConsole())) { response = "Y"; } else if ((response == null) && (!init.isInitializeIfNoConsole())) { response = "N"; } if ((response.length() == 0) || (response.toLowerCase().startsWith("y"))) { init.initialize(getDeviceManagement()); } } } catch (NoSuchBeanDefinitionException e) { LOGGER.info("No device model initializer found in Spring bean configuration. Skipping."); return; } catch (SiteWhereException e) { LOGGER.warn("Unable to read from device model.", e); } }
/** * Test API calls for listing and removing group elements. * * @param group * @throws SiteWhereException */ protected void testListAndRemoveNetworkElements(IDeviceGroup group) throws SiteWhereException { ISearchResults<IDeviceGroupElement> groupElements = getDeviceManagement().listDeviceGroupElements(group.getToken(), new SearchCriteria(0, 10)); LOGGER.info("Matched " + groupElements.getResults().size() + " group elements."); List<IDeviceGroupElementCreateRequest> delete = new ArrayList<IDeviceGroupElementCreateRequest>(); for (IDeviceGroupElement current : groupElements.getResults()) { DeviceGroupElementCreateRequest delElm = new DeviceGroupElementCreateRequest(); delElm.setType(current.getType()); delElm.setElementId(current.getElementId()); delete.add(delElm); } List<IDeviceGroupElement> deleted = getDeviceManagement().removeDeviceGroupElements(group.getToken(), delete); LOGGER.info("Deleted " + deleted.size() + " group elements."); groupElements = getDeviceManagement().listDeviceGroupElements(group.getToken(), new SearchCriteria(0, 100)); LOGGER.info("Remaining was " + groupElements.getResults().size() + " group elements."); }