docs: public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
  
          //Persistent is hidden from CLI users so let's set this to true here if it is not defined
          if (!operation.hasDefined(PERSISTENT.getName())) {
              operation.get(PERSISTENT.getName()).set(true);
          }
          boolean persistent = PERSISTENT.resolveModelAttribute(context, operation).asBoolean();
  
          final Resource resource = Resource.Factory.create(!persistent);
          context.addResource(PathAddress.EMPTY_ADDRESS, resource);
  
          ModelNode newModel = resource.getModel();
          // The 'persistent' and 'owner' parameters are hidden internal API, so handle them specifically
          PERSISTENT.validateAndSet(operation, newModel);
          OWNER.validateAndSet(operation, newModel);
          // Store the rest of the parameters that are documented parameters to this op.
          for (AttributeDefinition def : SERVER_ADD_ATTRIBUTES) {
              def.validateAndSet(operation, newModel);
          }
  
          // TODO: JBAS-9020: for the moment overlays are not supported, so there is a single content item
          ModelNode contentItemNode = newModel.require(CONTENT_RESOURCE_ALL.getName()).require(0);
          final ModelNode opAddr = operation.get(OP_ADDR);
          final PathAddress address = PathAddress.pathAddress(opAddr);
          final String name = address.getLastElement().getValue();
          final String runtimeName = operation.hasDefined(RUNTIME_NAME.getName()) ? operation.get(RUNTIME_NAME.getName()).asString() : name;
          newModel.get(RUNTIME_NAME.getName()).set(runtimeName);
  
          final DeploymentHandlerUtil.ContentItem contentItem;
          if (contentItemNode.hasDefined(CONTENT_HASH.getName())) {
              contentItem = addFromHash(contentItemNode, name, address, context);
          } else if (contentItemNode.hasDefined(EMPTY.getName())) {
              contentItem = addEmptyContentDir();
              contentItemNode = new ModelNode();
              contentItemNode.get(CONTENT_HASH.getName()).set(contentItem.getHash());
              contentItemNode.get(CONTENT_ARCHIVE.getName()).set(false);
              ModelNode content = new ModelNode();
              content.add(contentItemNode);
              newModel.get(CONTENT_RESOURCE_ALL.getName()).set(content);
          } else if(hasValidContentAdditionParameterDefined(contentItemNode)) {
              contentItem = addFromContentAdditionParameter(context, contentItemNode);
              // Store a hash-based contentItemNode back to the model
              contentItemNode = new ModelNode();
              contentItemNode.get(CONTENT_HASH.getName()).set(contentItem.getHash());
              ModelNode content = new ModelNode();
              content.add(contentItemNode);
              newModel.get(CONTENT_RESOURCE_ALL.getName()).set(content);
          } else {
              contentItem = addUnmanaged(contentItemNode);
          }
  
          if (context.getProcessType() == ProcessType.STANDALONE_SERVER) {
              // Add a step to validate uniqueness of runtime names
              context.addStep(new OperationStepHandler() {
                  @Override
                  public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
                      validateRuntimeNames(name, context);
                  }
              }, OperationContext.Stage.MODEL);
          }
  
          if (ENABLED.resolveModelAttribute(context, newModel).asBoolean() && context.isNormalServer()) {
              DeploymentHandlerUtil.deploy(context, operation, runtimeName, name, vaultReader, contentItem);
              DeploymentUtils.enableAttribute(newModel);
          }
  
          if (contentItem.getHash() != null) {
              final byte[] contentHash = contentItem.getHash();
              addFlushHandler(context, contentRepository,new OperationContext.ResultHandler() {
                  @Override
                  public void handleResult(ResultAction resultAction, OperationContext context, ModelNode operation) {
                      if (resultAction == ResultAction.KEEP) {
                          contentRepository.addContentReference(ModelContentReference.fromModelAddress(address, contentHash));
                      }
                  }
              });
          }
      }