All Downloads are FREE. Search and download functionalities are using the official Maven repository.

qa.justtestlah.log.ApplicationInfoEnricher Maven / Gradle / Ivy

package qa.justtestlah.log;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.LoggerContextListener;
import ch.qos.logback.core.Context;
import ch.qos.logback.core.spi.ContextAwareBase;
import ch.qos.logback.core.spi.LifeCycle;
import qa.justtestlah.configuration.PropertiesHolder;
import qa.justtestlah.mobile.tools.ApplicationInfo;
import qa.justtestlah.mobile.tools.ApplicationInfoService;

/** Enrich meta information about the application under test to the log file. */
@Deprecated(forRemoval = true)
public class ApplicationInfoEnricher extends ContextAwareBase
    implements LoggerContextListener, LifeCycle {

  private boolean started = false;

  private ApplicationInfoService applicationInfoService = new ApplicationInfoService();

  private PropertiesHolder props = new PropertiesHolder();

  @Override
  public void start() {
    if (started) {
      return;
    }
    props.getProperties();
    Context context = getContext();
    String platform = props.getProperty("platform");

    StringBuilder strBuilder = new StringBuilder(platform.toUpperCase());
    if (platform.equalsIgnoreCase("android") || platform.equalsIgnoreCase("ios")) {
      String appPath = props.getProperty(platform + ".appPath");
      ApplicationInfo appInfo = applicationInfoService.getAppInfo(appPath);
      if (appInfo != null && !appInfo.toString().isEmpty()) {
        strBuilder.append(" ");
        strBuilder.append(appInfo);
      }
    }
    context.putProperty("appInfo", strBuilder.toString());
    started = true;
  }

  @Override
  public void stop() {
    // do nothing
  }

  @Override
  public boolean isStarted() {
    return started;
  }

  @Override
  public boolean isResetResistant() {
    return true;
  }

  @Override
  public void onStart(LoggerContext context) {
    // do nothing
  }

  @Override
  public void onReset(LoggerContext context) {
    // do nothing
  }

  @Override
  public void onStop(LoggerContext context) {
    // do nothing
  }

  @Override
  public void onLevelChange(Logger logger, Level level) {
    // do nothing
  }

  protected void setApplicationInfoService(ApplicationInfoService applicationInfoService) {
    this.applicationInfoService = applicationInfoService;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy