@Override
 public DeploymentPackager getPackager() {
   if (archiveHolderInst.get() == null) {
     archiveHolderInst.set(new ServiceArchiveHolder());
   }
   return new JMXProtocolPackager(archiveHolderInst.get());
 }
 private Map<String, String> resolveServerUriByOperativeSystem(
     Map<String, String> cubeConfiguration) {
   if (!cubeConfiguration.containsKey(CubeDockerConfiguration.DOCKER_URI)) {
     if (isDockerMachineSet(cubeConfiguration)) {
       String serverUri = OperatingSystemFamily.MACHINE.getServerUri();
       cubeConfiguration.put(CubeDockerConfiguration.DOCKER_URI, serverUri);
     } else {
       OperatingSystemFamily operatingSystemFamily = operatingSystemFamilyInstanceProducer.get();
       String serverUri = operatingSystemFamily.getServerUri();
       cubeConfiguration.put(CubeDockerConfiguration.DOCKER_URI, serverUri);
     }
   }
   return cubeConfiguration;
 }
 public void updateTestContextWithAppServerInfo(@Observes(precedence = 1) BeforeClass event) {
   testContext = testContextProducer.get();
   String appServerQualifier = getAppServerQualifier(testContext.getTestClass());
   for (ContainerInfo container : testContext.getSuiteContext().getContainers()) {
     if (container.getQualifier().equals(appServerQualifier)) {
       testContext.setAppServerInfo(updateWithAppServerInfo(container));
     }
   }
   // validate app server
   if (appServerQualifier != null && testContext.getAppServerInfo() == null) {
     throw new RuntimeException(
         String.format(
             "No app server container matching '%s' was activated. Check if defined and enabled in arquillian.xml.",
             appServerQualifier));
   }
   log.info("\n\n" + testContext);
 }
  /**
   * Creates all resources related to this container after its start so we can further use them by
   * injection points.
   *
   * @param event
   */
  public void onAfterContainerStart(@Observes AfterStart event) {
    if (event.getDeployableContainer().getConfigurationClass()
        == AndroidContainerConfiguration.class) {
      activityDeploymentMapper.set(getActivityDeploymentMapper());
      activityWebDriverMapper.set(getActivityWebDriverMapper());
      extensionDroneMapper.set(getWebDriverPortMapper());
      deploymentWebDriverMapper.set(getDeploymentWebDriverMapper());
      deploymentInstrumentationMapper.set(getDeploymentInstrumentationMapper());

      selendroidServerManager.set(getSelendroidServerManager());
      selendroidRebuilder.set(getSelendroidRebuilder());
      selendroidDeploymentRegister.set(new SelendroidDeploymentRegister());

      NativeActivityManager activityManager =
          new NativeActivityManager(activityWebDriverMapper.get());
      androidDevice.get().getActivityManagerProvider().setActivityManager(activityManager);
    }
  }
 /** Stops the Event Bus */
 void stopEventBus(@Observes StopBus event) {
   CommandBusOnClient bus = commandBusInst.get();
   bus.stopBus();
 }
 private Context createContext() throws Exception {
   if (contextInst.get() == null) {
     contextInst.set(new InitialContext());
   }
   return contextInst.get();
 }