anchor.diff:  }
   ----
   
  -#### `ArchivePreparer`
  -
  -If your fraction needs an opportunity to alter or otherwise prepare all deployed
  -archives, you may implement the `org.wildfly.swarm.spi.api.ArchivePreparer` interface.
  -
  -[source,java]
  -----
  -@ApplicationScoped
  -public class MyArchivePreparer implements ArchivePreparer {
  +#### `DeploymentProcessor`
  +
  +If your fraction needs an opportunity to process the deployment, e.g. to alter or otherwise prepare the deployed archive or to process Jandex metadata of the deployed
  +archive, you may implement the `org.wildfly.swarm.spi.api.DeploymentProcessor` interface. The implementation class should be marked as `@DeploymentScoped`.
  +
  +[source,java]
  +----
  +@DeploymentScoped
  +public class MyDeploymentProcessor implements DeploymentProcessor {
   
     @Inject
     private MyFraction myFraction;
   
  -  public void prepareArchive(Archive<?> archive) {
  -    archive.as( WARArchive.class ).setContextRoot( myFraction.getContextRoot() );
  -  }
  -}
  -----
  -
  -#### `ArchiveMetadataProcessor`
  -
  -If your fraction needs an opportunity to process the Jandex metadata of all deployed
  -archives, you may implement the `org.wildfly.swarm.spi.api.ArchiveMetadataProcessor`
  -interface.
  -
  -[source,java]
  -----
  -@ApplicationScoped
  -public class MyArchiveMetadataProcessor implements ArchiveMetadataProcessor {
  -
  -  @Inject
  -  private MyFraction myFraction;
  -
  -  public void processArchive(Archive<?> archive, Index index) {
  -    // ...
  +  @Inject
  +  private Archive archive;
  +
  +  @Inject
  +  private IndexView index;
  +
  +  public void process() {
  +     archive.as(WARArchive.class).setContextRoot(myFraction.getContextRoot());
     }
   }
   
  
positive.code: components may be used.  Within these classes, you can use typical CDI mechanisms
  such as `@Inject`, `@Produces`, and `Instance<>` in order to accomplish whatever
  is required for your fraction.  Typically these components would, at the minimum,
  inject their own fraction. They should each be marked as `@ApplicationScoped`.
  
  [source,java]
  ----
  @ApplicationScoped
  public class MyComponents implements Whatever {
  
    @Inject
    private MyFraction myFraction;
  
negative.code: }
  ----
  
  Now, typesafe logging may occur such as
  
  [source,java]
  ----
  