code: private ModelNode buildAddOperation(final ModelNode address, final Map<String, String> properties) {
          final ModelNode op = ServerOperations.createAddOperation(address);
          for (Map.Entry<String, String> prop : properties.entrySet()) {
              final String[] props = prop.getKey().split(",");
              if (props.length == 0) {
                  throw new RuntimeException("Invalid property " + prop);
              }
              ModelNode node = op;
              for (int i = 0; i < props.length - 1; ++i) {
                  node = node.get(props[i]);
              }
              final String value = prop.getValue() == null ? "" : prop.getValue();
              if (value.startsWith("!!")) {
                  handleDmrString(node, props[props.length - 1], value);
              } else {
                  node.get(props[props.length - 1]).set(value);
              }
          }
          return op;
      }
docs: Creates the operation to add a resource.
  
  @param address    the address of the operation to add.
  @param properties the properties to set for the resource.
  
  @return the operation.