[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