Esempio n. 1
0
  @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));
          }
        });
  }