SensorResource extends AbstractBrooklynRestResource implements SensorApi { @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void setFromMap(String application, String entityToken, Map newValues) { final Entity entity = brooklyn().getEntity(application, entityToken); if (!Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.MODIFY_ENTITY, entity)) { throw WebResourceUtils.forbidden("User '%s' is not authorized to modify entity '%s'", Entitlements.getEntitlementContext().user(), entity); } if (log.isDebugEnabled()) log.debug("REST user "+Entitlements.getEntitlementContext()+" setting sensors "+newValues); for (Object entry: newValues.entrySet()) { String sensorName = Strings.toString(((Map.Entry)entry).getKey()); Object newValue = ((Map.Entry)entry).getValue(); AttributeSensor sensor = findSensor(entity, sensorName); entity.sensors().set(sensor, newValue); } }  @Override List<SensorSummary> list(final String application, final String entityToken); @Override Map<String, Object> batchSensorRead(final String application, final String entityToken, final Boolean raw); @Override String getPlain(String application, String entityToken, String sensorName, final Boolean raw); @Override Object get(final String application, final String entityToken, String sensorName, final Boolean raw); @SuppressWarnings({ "rawtypes", "unchecked" }) @Override void setFromMap(String application, String entityToken, Map newValues); @SuppressWarnings({ "rawtypes", "unchecked" }) @Override void set(String application, String entityToken, String sensorName, Object newValue); @Override void delete(String application, String entityToken, String sensorName);  }
@Test public void testSetFromMap() throws Exception { try { Response response = client().path(SENSORS_ENDPOINT) .type(MediaType.APPLICATION_JSON_TYPE) .post(MutableMap.of(SENSOR_NAME, 67890)); assertEquals(response.getStatus(), Response.Status.NO_CONTENT.getStatusCode()); assertEquals(entity.getAttribute(SENSOR), (Integer)67890); } finally { addAmphibianSensor(entity); } }