예제 #1
0
  public CanvasItemImpl(Config config, CounterSupport counterSupport) {
    super(config);

    lastSavedHash = DigestUtils.md5Hex(config.xmlText());

    this.counterSupport = counterSupport;

    scheduler = BeanInjector.getBean(ScheduledExecutorService.class);
    componentRegistry = BeanInjector.getBean(ComponentRegistry.class);

    componentList = CollectionEventSupport.of(this, COMPONENTS);
    connectionList = CollectionEventSupport.of(this, CONNECTIONS);

    statisticHolderSupport = new StatisticHolderSupport(this);
    counterStatisticSupport = new CounterStatisticSupport(this);

    StatisticVariable.Mutable requestVariable =
        statisticHolderSupport.addStatisticVariable(REQUEST_VARIABLE);
    statisticHolderSupport.addStatisticsWriter(CounterStatisticsWriter.TYPE, requestVariable);
    counterStatisticSupport.addCounterVariable(REQUEST_COUNTER, requestVariable);

    StatisticVariable.Mutable failuresVariable =
        statisticHolderSupport.addStatisticVariable(FAILURE_VARIABLE);
    statisticHolderSupport.addStatisticsWriter(CounterStatisticsWriter.TYPE, failuresVariable);
    counterStatisticSupport.addCounterVariable(FAILURE_COUNTER, failuresVariable);

    StatisticVariable.Mutable assertionFailuresVariable =
        statisticHolderSupport.addStatisticVariable(ASSERTION_FAILURE_VARIABLE);
    statisticHolderSupport.addStatisticsWriter(
        CounterStatisticsWriter.TYPE, assertionFailuresVariable);
    counterStatisticSupport.addCounterVariable(
        ASSERTION_FAILURE_COUNTER, assertionFailuresVariable);

    StatisticVariable.Mutable requestFailuresVariable =
        statisticHolderSupport.addStatisticVariable(REQUEST_FAILURE_VARIABLE);
    statisticHolderSupport.addStatisticsWriter(
        CounterStatisticsWriter.TYPE, requestFailuresVariable);
    counterStatisticSupport.addCounterVariable(REQUEST_FAILURE_COUNTER, requestFailuresVariable);

    abortOnFinish = createProperty(ABORT_ON_FINISH_PROPERTY, Boolean.class, false);
  }