private static Map<String, String> resolveProperties(
      final OperationContext context, final ModelNode model) throws OperationFailedException {
    Map<String, String> configurationProperties;
    if (model.hasDefined(PROPERTY)) {
      List<Property> propertyList = model.require(PROPERTY).asPropertyList();
      configurationProperties = new HashMap<String, String>(propertyList.size());

      for (Property current : propertyList) {
        String propertyName = current.getName();
        ModelNode valueNode =
            PropertyResourceDefinition.VALUE.resolveModelAttribute(context, current.getValue());
        String value = valueNode.isDefined() ? valueNode.asString() : null;
        configurationProperties.put(propertyName, value);
      }
      configurationProperties = Collections.unmodifiableMap(configurationProperties);
    } else {
      configurationProperties = Collections.emptyMap();
    }
    return configurationProperties;
  }