docs: public void changeIndexProviderField( MappedAttributeDefinition defn,
                                            ModelNode newValue,
                                            String indexProviderName ) throws RepositoryException, OperationFailedException {
          ModeShapeEngine engine = getEngine();
          String repositoryName = repositoryName();
  
          // Get a snapshot of the current configuration ...
          RepositoryConfiguration config = engine.getRepositoryConfiguration(repositoryName);
  
          // Now start to make changes ...
          Editor editor = config.edit();
  
          // Find the array of sequencer documents ...
          List<String> pathToContainer = defn.getPathToContainerOfField();
          EditableDocument providers = editor.getOrCreateDocument(pathToContainer.get(0));
  
          // The container should be an array ...
          for (String configuredProviderName : providers.keySet()) {
              // Look for the entry with a name that matches our sequencer name ...
              if (indexProviderName.equals(configuredProviderName)) {
                  // All these entries should be nested documents ...
                  EditableDocument provider = (EditableDocument)providers.get(configuredProviderName);
  
                  // Change the field ...
                  String fieldName = defn.getFieldName();
                  // Get the raw value from the model node ...
                  Object rawValue = defn.getTypedValue(newValue);
                  // And update the field ...
                  provider.set(fieldName, rawValue);
                  break;
              }
          }
  
          // Get and apply the changes to the current configuration. Note that the 'update' call asynchronously
          // updates the configuration, and returns a Future<JcrRepository> that we could use if we wanted to
          // wait for the changes to take place. But we don't want/need to wait, so we'll not use the Future ...
          Changes changes = editor.getChanges();
          engine.update(repositoryName, changes);
      }