]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Allow optimizations
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 15 Jul 2010 12:20:11 +0000 (12:20 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 15 Jul 2010 12:20:11 +0000 (12:20 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@3702 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

modules/agent/org.argeo.slc.agent/META-INF/MANIFEST.MF
modules/agent/org.argeo.slc.agent/META-INF/spring/agent.xml [new file with mode: 0644]
modules/agent/org.argeo.slc.agent/META-INF/spring/common.xml
modules/agent/org.argeo.slc.agent/META-INF/spring/manager.xml [deleted file]
modules/agent/org.argeo.slc.agent/agent.properties [new file with mode: 0644]
runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/log4j/SlcExecutionAppender.java

index 9af4c105ac3a0c967e340e04ced95774fe61509d..4ed8eb7e8f9e98021f2cd97cacfb75fbfd0aa8ce 100644 (file)
@@ -6,4 +6,5 @@ Bundle-Name: Argeo SLC Agent
 Bundle-SymbolicName: org.argeo.slc.agent
 Import-Package: org.apache.xalan.processor,
  org.apache.xerces.jaxp,
- org.argeo.slc.log4j
+ org.argeo.slc.log4j,
+ org.springframework.beans.factory.config;specification-version="2.5.6.SEC01"
diff --git a/modules/agent/org.argeo.slc.agent/META-INF/spring/agent.xml b/modules/agent/org.argeo.slc.agent/META-INF/spring/agent.xml
new file mode 100644 (file)
index 0000000..1ec0887
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"\r
+       xsi:schemaLocation="\r
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+       <!-- Manager -->\r
+       <bean id="modulesManager" class="org.argeo.slc.osgi.OsgiExecutionModulesManager">\r
+               <property name="slcExecutionNotifiers" ref="slcExecutionListeners" />\r
+               <property name="executionModulesListeners" ref="executionModulesListeners" />\r
+               <property name="bundlesManager" ref="bundlesManager" />\r
+       </bean>\r
+\r
+       <bean id="bundlesManager" class="org.argeo.slc.osgi.BundlesManager" />\r
+\r
+       <!-- Logging -->\r
+       <bean id="log4Notification" class="org.argeo.slc.log4j.SlcExecutionAppender">\r
+               <property name="disabled" value="${slc.agent.log4Notification.disabled}" />\r
+               <property name="level" value="${slc.agent.log4Notification.level}" />\r
+               <property name="onlyExecutionThread"\r
+                       value="${slc.agent.log4Notification.onlyExecutionThread}" />\r
+       </bean>\r
+\r
+       <bean id="treeTestResultLogger" class="org.argeo.slc.core.test.tree.TreeTestResultLogger" />\r
+\r
+\r
+</beans>
\ No newline at end of file
index dfb3f259ac4cf177203c5cafe5d1ec2adc902e40..2a3f36cfb8d8e631ea22c6f73679dedeabe87864 100644 (file)
@@ -4,6 +4,11 @@
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
        default-lazy-init="false">
 
-       <bean id="treeTestResultLogger" class="org.argeo.slc.core.test.tree.TreeTestResultLogger" />
-
+       <bean
+               class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+               <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
+               <property name="locations">
+                       <value>osgibundle:agent.properties</value>
+               </property>
+       </bean>
 </beans>
\ No newline at end of file
diff --git a/modules/agent/org.argeo.slc.agent/META-INF/spring/manager.xml b/modules/agent/org.argeo.slc.agent/META-INF/spring/manager.xml
deleted file mode 100644 (file)
index 50e9d5a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans xmlns="http://www.springframework.org/schema/beans"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"\r
-       xsi:schemaLocation="\r
-       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
-\r
-       <bean id="modulesManager" class="org.argeo.slc.osgi.OsgiExecutionModulesManager">\r
-               <property name="slcExecutionNotifiers" ref="slcExecutionListeners" />\r
-               <property name="executionModulesListeners" ref="executionModulesListeners" />\r
-               <property name="bundlesManager" ref="bundlesManager" />\r
-       </bean>\r
-\r
-       <bean id="bundlesManager" class="org.argeo.slc.osgi.BundlesManager" />\r
-\r
-       <bean class="org.argeo.slc.log4j.SlcExecutionAppender" />\r
-</beans>
\ No newline at end of file
diff --git a/modules/agent/org.argeo.slc.agent/agent.properties b/modules/agent/org.argeo.slc.agent/agent.properties
new file mode 100644 (file)
index 0000000..d4cea2e
--- /dev/null
@@ -0,0 +1,7 @@
+
+# Disable LOG4J notification to the process
+slc.agent.log4Notification.disabled=false
+# Notification level
+slc.agent.log4Notification.level=
+# Do not log sub threads (those started by the process)
+slc.agent.log4Notification.onlyExecutionThread=false
index 4193fd925ba9c85c144cef6e60cde0af5efc1d01..a40c98e5ac29cc2320e9b78a068f54bc139847b9 100644 (file)
@@ -34,6 +34,12 @@ import org.springframework.beans.factory.InitializingBean;
 public class SlcExecutionAppender extends AppenderSkeleton implements
                InitializingBean, DisposableBean {
 
+       private Boolean disabled = false;
+
+       private String level = null;
+
+       private Level log4jLevel = null;
+
        /** Marker to prevent stack overflow */
        private ThreadLocal<Boolean> dispatching = new ThreadLocal<Boolean>() {
 
@@ -57,9 +63,30 @@ public class SlcExecutionAppender extends AppenderSkeleton implements
 
        @Override
        protected void append(LoggingEvent event) {
+               if (disabled)
+                       return;
+
                if (dispatching.get())
                        return;
 
+               if (level != null && !level.trim().equals("")) {
+                       if (log4jLevel == null || !log4jLevel.toString().equals(level))
+                               try {
+                                       log4jLevel = Level.toLevel(level);
+                               } catch (Exception e) {
+                                       System.err
+                                                       .println("Log4j level could not be set for level '"
+                                                                       + level + "', resetting it to null.");
+                                       e.printStackTrace();
+                                       level = null;
+                               }
+
+                       if (log4jLevel != null
+                                       && !event.getLevel().isGreaterOrEqual(log4jLevel)) {
+                               return;
+                       }
+               }
+
                Thread currentThread = Thread.currentThread();
                if (currentThread.getThreadGroup() instanceof ProcessThreadGroup) {
                        if (onlyExecutionThread
@@ -117,4 +144,12 @@ public class SlcExecutionAppender extends AppenderSkeleton implements
                this.onlyExecutionThread = onlyExecutionThread;
        }
 
+       public void setDisabled(Boolean disabled) {
+               this.disabled = disabled;
+       }
+
+       public void setLevel(String level) {
+               this.level = level;
+       }
+
 }