@Override public void createXADataSource( XADataSource datasource, final AsyncCallback<ResponseWrapper<Boolean>> callback) { ModelNode operation = new ModelNode(); operation.get(OP).set(COMPOSITE); operation.get(ADDRESS).setEmptyList(); List<ModelNode> steps = new ArrayList<ModelNode>(); // create XA datasource AddressBinding address = xadsMetaData.getAddress(); ModelNode addressModel = address.asResource(baseadress.getAdress(), datasource.getName()); ModelNode createResource = xaDataSourceAdapter.fromEntity(datasource); createResource.get(OP).set(ADD); createResource.get(ADDRESS).set(addressModel.get(ADDRESS)); steps.add(createResource); // create xa properties for (PropertyRecord prop : datasource.getProperties()) { ModelNode createProperty = new ModelNode(); createProperty.get(ADDRESS).set(addressModel.get(ADDRESS)); createProperty.get(ADDRESS).add("xa-datasource-properties", prop.getKey()); createProperty.get(OP).set(ADD); createProperty.get(VALUE).set(prop.getValue()); steps.add(createProperty); } operation.get(STEPS).set(steps); dispatcher.execute( new DMRAction(operation), new SimpleCallback<DMRResponse>() { @Override public void onFailure(Throwable caught) { callback.onFailure(caught); } @Override public void onSuccess(DMRResponse result) { callback.onSuccess(ModelAdapter.wrapBooleanResponse(result)); } }); }