code: JavaArchive createWarpArchive() {
          JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "arquillian-warp.jar");
  
          // API
          archive.addClass(Inspection.class);
          archive.addClasses(BeforeServlet.class, AfterServlet.class);
  
          for (String packageName : REQUIRED_WARP_PACKAGES) {
              archive.addPackage(packageName);
          }
  
          archive.addAsManifestResource(getWebFragmentAsset(), "web-fragment.xml");
  
          archive.addClasses(REQUIRED_WARP_INNER_CLASSES);
  
          // register remote extension
          archive.addClass(WarpRemoteExtension.class);
          archive.addAsServiceProvider(RemoteLoadableExtension.class.getName(), WarpRemoteExtension.class.getName(),
              "!org.jboss.arquillian.protocol.servlet.runner.ServletRemoteExtension");
          archive.addAsServiceProvider(LifecycleManagerStore.class, LifecycleManagerStoreImpl.class);
  
          // register RequestProcessingDelegationService
          archive.addAsServiceProvider(RequestDelegationService.class, CommandBusOnServer.class);
  
          return archive;
      }
docs: creates a {@link JavaArchive} as composition of resources required by Warp runtime in a container