diff --git a/compiler/pom.xml b/compiler/pom.xml index 363fd879c..f079f6970 100644 --- a/compiler/pom.xml +++ b/compiler/pom.xml @@ -19,7 +19,7 @@ Copyright (C) 2018 V12 Technology Ltd. com.fluxtion root-parent-pom - 9.1.15-SNAPSHOT + 9.1.16-SNAPSHOT ../parent-root/pom.xml diff --git a/compiler/src/main/java/com/fluxtion/compiler/EventProcessorConfig.java b/compiler/src/main/java/com/fluxtion/compiler/EventProcessorConfig.java index c5b2fe5c4..04714e785 100644 --- a/compiler/src/main/java/com/fluxtion/compiler/EventProcessorConfig.java +++ b/compiler/src/main/java/com/fluxtion/compiler/EventProcessorConfig.java @@ -230,7 +230,9 @@ public Clock clock() { * the level at which method tracing will take place. */ public void addEventAudit(LogLevel tracingLogLevel) { - addAuditor(new EventLogManager().tracingOn(tracingLogLevel), EventLogManager.NODE_NAME); + if (tracingLogLevel != null) { + addAuditor(new EventLogManager().tracingOn(tracingLogLevel), EventLogManager.NODE_NAME); + } } /** diff --git a/compiler/src/main/java/com/fluxtion/compiler/extern/spring/FluxtionSpring.java b/compiler/src/main/java/com/fluxtion/compiler/extern/spring/FluxtionSpring.java index 728bd04d7..6589a32c5 100644 --- a/compiler/src/main/java/com/fluxtion/compiler/extern/spring/FluxtionSpring.java +++ b/compiler/src/main/java/com/fluxtion/compiler/extern/spring/FluxtionSpring.java @@ -4,6 +4,7 @@ import com.fluxtion.compiler.Fluxtion; import com.fluxtion.compiler.FluxtionCompilerConfig; import com.fluxtion.runtime.EventProcessor; +import com.fluxtion.runtime.audit.Auditor; import com.fluxtion.runtime.partition.LambdaReflection; import com.fluxtion.runtime.partition.LambdaReflection.SerializableConsumer; import lombok.SneakyThrows; @@ -15,6 +16,8 @@ import java.io.File; import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; import java.util.function.Consumer; /** @@ -147,10 +150,27 @@ private EventProcessor _interpret() { private void addNodes(EventProcessorConfig config) { LOGGER.debug("loading spring context:{}", context); + List auditorMap = new ArrayList<>(); for (String beanDefinitionName : context.getBeanDefinitionNames()) { Object bean = context.getBean(beanDefinitionName); - LOGGER.debug("adding bean:{} to fluxtion", beanDefinitionName); - config.addNode(bean, beanDefinitionName); + if (bean instanceof FluxtionSpringConfig) { + FluxtionSpringConfig springConfig = (FluxtionSpringConfig) bean; + auditorMap.addAll(springConfig.getAuditors()); + config.addEventAudit(springConfig.getLogLevel()); + } + } + + for (String beanDefinitionName : context.getBeanDefinitionNames()) { + Object bean = context.getBean(beanDefinitionName); + if (!(bean instanceof FluxtionSpringConfig)) { + if (bean instanceof Auditor && auditorMap.contains(bean)) { + LOGGER.debug("adding auditor:{} to fluxtion", beanDefinitionName); + config.addAuditor((Auditor) bean, beanDefinitionName); + } else { + LOGGER.debug("adding bean:{} to fluxtion", beanDefinitionName); + config.addNode(bean, beanDefinitionName); + } + } } configCustomizer.accept(config); } diff --git a/compiler/src/main/java/com/fluxtion/compiler/extern/spring/FluxtionSpringConfig.java b/compiler/src/main/java/com/fluxtion/compiler/extern/spring/FluxtionSpringConfig.java new file mode 100644 index 000000000..1f78c7f41 --- /dev/null +++ b/compiler/src/main/java/com/fluxtion/compiler/extern/spring/FluxtionSpringConfig.java @@ -0,0 +1,16 @@ +package com.fluxtion.compiler.extern.spring; + +import com.fluxtion.runtime.audit.Auditor; +import com.fluxtion.runtime.audit.EventLogControlEvent; +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; + +@Getter +@Setter +public class FluxtionSpringConfig { + private List auditors = new ArrayList<>(); + private EventLogControlEvent.LogLevel logLevel; +} \ No newline at end of file diff --git a/parent-root/pom.xml b/parent-root/pom.xml index 007dfc578..63f6f80c8 100644 --- a/parent-root/pom.xml +++ b/parent-root/pom.xml @@ -21,7 +21,7 @@ 4.0.0 com.fluxtion root-parent-pom - 9.1.15-SNAPSHOT + 9.1.16-SNAPSHOT pom fluxtion :: poms :: parent root diff --git a/pom.xml b/pom.xml index f41140868..2ec0a41f7 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ along with this program. If not, see 4.0.0 com.fluxtion fluxtion.master - 9.1.15-SNAPSHOT + 9.1.16-SNAPSHOT pom fluxtion diff --git a/runtime/pom.xml b/runtime/pom.xml index 1d56a1030..e72c32678 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -20,7 +20,7 @@ Copyright (C) 2018 V12 Technology Ltd. com.fluxtion root-parent-pom - 9.1.15-SNAPSHOT + 9.1.16-SNAPSHOT ../parent-root/pom.xml