[jboss-cvs] JBossAS SVN: r109452 - projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 24 12:20:26 EST 2010


Author: david.lloyd at jboss.com
Date: 2010-11-24 12:20:26 -0500 (Wed, 24 Nov 2010)
New Revision: 109452

Modified:
   projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/LoggingMetaDataHelper.java
Log:
[JBAS-8270] Fix property handling and general issues with log4j appenders

Modified: projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/LoggingMetaDataHelper.java
===================================================================
--- projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/LoggingMetaDataHelper.java	2010-11-24 16:30:46 UTC (rev 109451)
+++ projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/LoggingMetaDataHelper.java	2010-11-24 17:20:26 UTC (rev 109452)
@@ -185,7 +185,9 @@
 
     private static ValueMetaData getValue(final List<BeanMetaData> beanMetaDataList, final AbstractHandlerMetaData handlerMetaData, final String context) {
         final String name = handlerMetaData.getName();
-        final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name == null ? getAnonymousName(context, Kind.HANDLER) : getName(context, Kind.HANDLER, name), null);
+        final String targetName = name == null ? getAnonymousName(context, Kind.HANDLER) : getName(context, Kind.HANDLER, name);
+        final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(targetName, null);
+        BeanMetaDataBuilder propertyTarget = builder;
         if (handlerMetaData instanceof HandlerMetaData) {
             builder.setBean(((HandlerMetaData)handlerMetaData).getClassName());
         } else if (handlerMetaData instanceof AsyncHandlerMetaData) {
@@ -215,7 +217,13 @@
             builder.addConstructorParameter(String.class.getName(), fileHandlerMetaData.getFileName());
             builder.addConstructorParameter(boolean.class.getName(), Boolean.valueOf(fileHandlerMetaData.isAppend()));
         } else if (handlerMetaData instanceof Log4jAppenderMetaData) {
+            final Log4jAppenderMetaData appenderMetaData = (Log4jAppenderMetaData) handlerMetaData;
+            final String log4jTargetName = targetName + ":log4j";
+            final BeanMetaDataBuilder appenderBuilder = BeanMetaDataBuilder.createBuilder(log4jTargetName, null);
+            propertyTarget = appenderBuilder;
             builder.setBean(Log4jAppenderHandler.class.getName());
+            builder.addConstructorParameter("org.apache.log4j.Appender", builder.createInject(log4jTargetName));
+            appenderBuilder.setBean(appenderMetaData.getClassName());
         } else if (handlerMetaData instanceof NullHandlerMetaData) {
             builder.setBean(NullHandler.class.getName());
         }
@@ -231,7 +239,7 @@
         // properties
         final List<PropertyMetaData> properties = handlerMetaData.getPropertyMetaDataList();
         if (properties != null) for (PropertyMetaData property : properties) {
-            builder.addPropertyMetaData(property.getName(), property.getValue());
+            propertyTarget.addPropertyMetaData(property.getName(), property.getValue());
         }
         // error-manager
         final ErrorManagerMetaData errorManager = handlerMetaData.getErrorManagerMetaData();
@@ -268,6 +276,9 @@
         }
         final BeanMetaData handlerBeanMetaData = builder.getBeanMetaData();
         beanMetaDataList.add(handlerBeanMetaData);
+        if (builder != propertyTarget) {
+            beanMetaDataList.add(propertyTarget.getBeanMetaData());
+        }
         // loggers
         final List<AbstractLoggerRefMetaData> loggers = handlerMetaData.getLoggerMetaDataList();
         if (loggers != null) {



More information about the jboss-cvs-commits mailing list