Exemplo n.º 1
0
  @Around("execution(@ConfigureAgentStackTracePeriodMillis void org.jmonitor..*Test.*())")
  public void aroundConfigureConfigureAgentStackTracePeriodMillisPointcut(
      ProceedingJoinPoint joinPoint) throws Throwable {

    ConfigureAgentStackTracePeriodMillis annotation =
        getAnnotation(ConfigureAgentStackTracePeriodMillis.class, joinPoint);
    AgentConfigurationImpl mutableConfiguration = getMutableAgentConfiguration();
    int previousValue = mutableConfiguration.getStackTracePeriodMillis();
    // set it to annotated value
    mutableConfiguration.setStackTracePeriodMillis(annotation.value());
    ConfigurationServiceImpl.getInstance().updateAgentConfiguration(mutableConfiguration);
    try {
      joinPoint.proceed();
    } finally {
      // set it back to original value
      mutableConfiguration.setStackTracePeriodMillis(previousValue);
      ConfigurationServiceImpl.getInstance().updateAgentConfiguration(mutableConfiguration);
    }
  }