@Override public <R extends HttpRequest> R bindToRequest(R request, Object payload) { checkArgument( checkNotNull(payload, "memoryInMB") instanceof Integer, "this binder is only valid for Integers!"); Integer memoryInMB = Integer.class.cast(payload); XMLBuilder cpuItem; try { cpuItem = XMLBuilder.create("Item").a("xmlns", ns).a("xmlns:rasd", RESOURCE_ALLOCATION_NS); cpuItem.e("rasd:AllocationUnits").t("byte * 2^20"); cpuItem.e("rasd:Description").t("Memory Size"); cpuItem.e("rasd:ElementName").t(memoryInMB.toString() + " MB of memory"); cpuItem.e("rasd:InstanceID").t("5"); cpuItem.e("rasd:Reservation").t("0"); cpuItem.e("rasd:ResourceType").t(ResourceType.MEMORY.value()); cpuItem.e("rasd:VirtualQuantity").t(memoryInMB.toString()); cpuItem.e("rasd:Weight").t("0"); Properties outputProperties = new Properties(); outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes"); request = super.bindToRequest(request, cpuItem.asString(outputProperties)); } catch (Exception e) { Throwables.propagate(e); } return request; }