[jboss-cvs] JBossAS SVN: r91030 - 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
Thu Jul 9 19:25:40 EDT 2009
Author: david.lloyd at jboss.com
Date: 2009-07-09 19:25:40 -0400 (Thu, 09 Jul 2009)
New Revision: 91030
Modified:
projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/ConsoleHandlerMetaData.java
projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/FileHandlerMetaData.java
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/RefMetaData.java
projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/SizeRotatingFileHandlerMetaData.java
Log:
More fixes; also forgot to finish part of the handlers parser
Modified: projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/ConsoleHandlerMetaData.java
===================================================================
--- projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/ConsoleHandlerMetaData.java 2009-07-09 22:37:28 UTC (rev 91029)
+++ projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/ConsoleHandlerMetaData.java 2009-07-09 23:25:40 UTC (rev 91030)
@@ -35,7 +35,7 @@
return target;
}
- @XmlAttribute(name = "target")
+ @XmlAttribute(required = true)
public void setTarget(final Target target) {
this.target = target;
}
Modified: projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/FileHandlerMetaData.java
===================================================================
--- projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/FileHandlerMetaData.java 2009-07-09 22:37:28 UTC (rev 91029)
+++ projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/FileHandlerMetaData.java 2009-07-09 23:25:40 UTC (rev 91030)
@@ -34,7 +34,7 @@
return fileName;
}
- @XmlAttribute(name = "file-name")
+ @XmlAttribute(name = "file-name", required = true)
public void setFileName(final String fileName) {
this.fileName = fileName;
}
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 2009-07-09 22:37:28 UTC (rev 91029)
+++ projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/LoggingMetaDataHelper.java 2009-07-09 23:25:40 UTC (rev 91030)
@@ -53,6 +53,11 @@
import org.jboss.logmanager.handlers.SizeRotatingFileHandler;
import org.jboss.dependency.spi.ControllerMode;
import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.EnumMap;
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Handler;
@@ -72,17 +77,20 @@
// context should be "system" by default
throw new NullPointerException("context is null");
}
- for (AbstractLoggerMetaData abstractLoggerMetaData : loggingMetaData.getLoggerMetaDataList()) {
+ final List<AbstractLoggerMetaData> abstractLoggerMetaDataList = loggingMetaData.getLoggerMetaDataList();
+ if (abstractLoggerMetaDataList != null) for (AbstractLoggerMetaData abstractLoggerMetaData : abstractLoggerMetaDataList) {
createLoggerBeanMetaData(beanMetaDataList, abstractLoggerMetaData, context);
}
- for (AbstractHandlerMetaData abstractHandlerMetaData : loggingMetaData.getHandlerMetaDataList()) {
+ final List<AbstractHandlerMetaData> handlerMetaDataList = loggingMetaData.getHandlerMetaDataList();
+ if (handlerMetaDataList != null) for (AbstractHandlerMetaData abstractHandlerMetaData : handlerMetaDataList) {
getValue(beanMetaDataList, abstractHandlerMetaData, context);
}
- for (InstallHandlerMetaData installMetaData : loggingMetaData.getInstallHandlerMetaDataList()) {
+ final List<InstallHandlerMetaData> installHandlerMetaDataList = loggingMetaData.getInstallHandlerMetaDataList();
+ if (installHandlerMetaDataList != null) for (InstallHandlerMetaData installMetaData : installHandlerMetaDataList) {
final String installerName = getInstallerName(context, "*");
final RefMetaData handlerRef = installMetaData.getHandlerRef();
final List<AbstractLoggerRefMetaData> loggerRefs = installMetaData.getLoggerRefList();
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(HandlerInstallerHelper.class.getName(), installerName);
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(installerName, HandlerInstallerHelper.class.getName());
final List<ValueMetaData> handlerList = builder.createList();
final List<ValueMetaData> targetList = builder.createList();
handlerList.add(builder.createInject(getName(context, Kind.HANDLER, handlerRef.getName())));
@@ -111,7 +119,7 @@
name = "";
humanName = "<root>";
}
- final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(Logger.class.getName(), getName(context, Kind.LOGGER, humanName));
+ final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(getName(context, Kind.LOGGER, humanName), Logger.class.getName());
builder.setFactory(builder.createInject(getContextName(context)));
builder.setFactoryMethod("getLogger");
builder.addConstructorParameter(String.class.getName(), name);
@@ -128,45 +136,66 @@
}
final BeanMetaData loggerBeanMetaData = builder.getBeanMetaData();
// now install handlers
- final BeanMetaDataBuilder installerBuilder = BeanMetaDataBuilder.createBuilder(HandlerInstallerHelper.class.getName(), getInstallerName(context, name));
final List<Object> handlerMetaDataList = abstractLoggerMetaData.getHandlerMetaDataList();
- final List<ValueMetaData> handlerList = builder.createList();
- for (Object handlerMetaData : handlerMetaDataList) {
- if (handlerMetaData instanceof AbstractHandlerMetaData) {
- handlerList.add(getValue(beanMetaDataList, (AbstractHandlerMetaData)handlerMetaData, context));
- } else if (handlerMetaData instanceof ValueMetaData) {
- handlerList.add((ValueMetaData) handlerMetaData);
- } else {
- handlerList.add(builder.createInject(getName(context, Kind.HANDLER, ((RefMetaData)handlerMetaData).getName())));
+ if (handlerMetaDataList != null) {
+ final BeanMetaDataBuilder installerBuilder = BeanMetaDataBuilder.createBuilder(getInstallerName(context, name), HandlerInstallerHelper.class.getName());
+ final List<ValueMetaData> handlerList = builder.createList();
+ for (Object handlerMetaData : handlerMetaDataList) {
+ if (handlerMetaData instanceof AbstractHandlerMetaData) {
+ handlerList.add(getValue(beanMetaDataList, (AbstractHandlerMetaData) handlerMetaData, context));
+ } else if (handlerMetaData instanceof ValueMetaData) {
+ handlerList.add((ValueMetaData) handlerMetaData);
+ } else {
+ handlerList.add(builder.createInject(getName(context, Kind.HANDLER, ((RefMetaData) handlerMetaData).getName())));
+ }
}
+ final List<ValueMetaData> targetList = builder.createList();
+ targetList.add(loggerBeanMetaData);
+ installerBuilder.addPropertyMetaData("handlerList", (ValueMetaData) handlerList);
+ installerBuilder.addPropertyMetaData("targetList", (ValueMetaData) targetList);
+ beanMetaDataList.add(installerBuilder.getBeanMetaData());
}
- final List<ValueMetaData> targetList = builder.createList();
- targetList.add(loggerBeanMetaData);
- installerBuilder.addPropertyMetaData("handlerList", (ValueMetaData) handlerList);
- installerBuilder.addPropertyMetaData("targetList", (ValueMetaData) targetList);
beanMetaDataList.add(loggerBeanMetaData);
- beanMetaDataList.add(installerBuilder.getBeanMetaData());
}
+ private static final Map<ConsoleHandlerMetaData.Target, ConsoleHandler.Target> targetMap = new EnumMap<ConsoleHandlerMetaData.Target, ConsoleHandler.Target>(ConsoleHandlerMetaData.Target.class);
+
+ static {
+ targetMap.put(ConsoleHandlerMetaData.Target.SYSTEM_ERR, ConsoleHandler.Target.SYSTEM_ERR);
+ targetMap.put(ConsoleHandlerMetaData.Target.SYSTEM_OUT, ConsoleHandler.Target.SYSTEM_OUT);
+ }
+
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));
+ final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name == null ? getAnonymousName(context, Kind.HANDLER) : getName(context, Kind.HANDLER, name), null);
if (handlerMetaData instanceof HandlerMetaData) {
builder.setBean(((HandlerMetaData)handlerMetaData).getClassName());
} else if (handlerMetaData instanceof AsyncHandlerMetaData) {
builder.setBean(AsyncHandler.class.getName());
} else if (handlerMetaData instanceof ConsoleHandlerMetaData) {
+ final ConsoleHandlerMetaData consoleHandlerMetaData = (ConsoleHandlerMetaData) handlerMetaData;
builder.setBean(ConsoleHandler.class.getName());
+ builder.addPropertyMetaData("target", targetMap.get(consoleHandlerMetaData.getTarget()));
} else if (handlerMetaData instanceof FileHandlerMetaData) {
- builder.setBean(FileHandler.class.getName());
+ final FileHandlerMetaData fileHandlerMetaData = (FileHandlerMetaData) handlerMetaData;
+ if (handlerMetaData instanceof PeriodicRotatingFileHandlerMetaData) {
+ final PeriodicRotatingFileHandlerMetaData periodicRotatingFileHandlerMetaData = (PeriodicRotatingFileHandlerMetaData) handlerMetaData;
+ builder.setBean(PeriodicRotatingFileHandler.class.getName());
+ builder.addPropertyMetaData("suffix", periodicRotatingFileHandlerMetaData.getSuffix());
+ } else if (handlerMetaData instanceof SizeRotatingFileHandlerMetaData) {
+ final SizeRotatingFileHandlerMetaData sizeRotatingFileHandlerMetaData = (SizeRotatingFileHandlerMetaData) handlerMetaData;
+ builder.setBean(SizeRotatingFileHandler.class.getName());
+ builder.addPropertyMetaData("maxBackupIndex", Integer.valueOf(sizeRotatingFileHandlerMetaData.getMaxBackupIndex()));
+ final String sizeString = sizeRotatingFileHandlerMetaData.getRotateSizeString();
+ builder.addPropertyMetaData("rotateSize", Long.valueOf(parseSizeString(sizeString)));
+ } else {
+ builder.setBean(FileHandler.class.getName());
+ }
+ builder.addPropertyMetaData("fileName", fileHandlerMetaData.getFileName());
} else if (handlerMetaData instanceof Log4jAppenderMetaData) {
builder.setBean(Log4jAppenderHandler.class.getName());
} else if (handlerMetaData instanceof NullHandlerMetaData) {
builder.setBean(NullHandler.class.getName());
- } else if (handlerMetaData instanceof PeriodicRotatingFileHandlerMetaData) {
- builder.setBean(PeriodicRotatingFileHandler.class.getName());
- } else if (handlerMetaData instanceof SizeRotatingFileHandlerMetaData) {
- builder.setBean(SizeRotatingFileHandler.class.getName());
}
builder.setStop("close");
builder.setMode(ControllerMode.ON_DEMAND);
@@ -179,7 +208,7 @@
}
// properties
final List<PropertyMetaData> properties = handlerMetaData.getPropertyMetaDataList();
- for (PropertyMetaData property : properties) {
+ if (properties != null) for (PropertyMetaData property : properties) {
builder.addPropertyMetaData(property.getName(), property.getValue());
}
// error-manager
@@ -204,7 +233,7 @@
// formatter
final FormatterMetaData formatter = handlerMetaData.getFormatterMetaData();
if (formatter != null) {
- builder.addPropertyMetaData("formatter", getValue(formatter, context));
+ builder.addPropertyMetaData("formatter", getValue(beanMetaDataList, formatter, context));
}
// sub-handlers
final List<AbstractHandlerMetaData> subHandlers = handlerMetaData.getSubHandlerMetaDataList();
@@ -216,11 +245,12 @@
builder.addPropertyMetaData("handlers", (ValueMetaData) subHandlerValueList);
}
final BeanMetaData handlerBeanMetaData = builder.getBeanMetaData();
+ beanMetaDataList.add(handlerBeanMetaData);
// loggers
final List<AbstractLoggerRefMetaData> loggers = handlerMetaData.getLoggerMetaDataList();
if (loggers != null) {
final String installerName = getInstallerName(context, "*");
- final BeanMetaDataBuilder installerBuilder = BeanMetaDataBuilder.createBuilder(HandlerInstallerHelper.class.getName(), installerName);
+ final BeanMetaDataBuilder installerBuilder = BeanMetaDataBuilder.createBuilder(installerName, HandlerInstallerHelper.class.getName());
final List<ValueMetaData> targetList = installerBuilder.createList();
for (AbstractLoggerRefMetaData loggerRef : loggers) {
final String refContext = loggerRef.getContext();
@@ -241,18 +271,59 @@
return handlerBeanMetaData;
}
+ private static final Pattern SIZE_PATTERN = Pattern.compile("(\\d+)([bBkKmMgGtT]?)");
+
+ private static long parseSizeString(final String sizeString) {
+ final Matcher matcher = SIZE_PATTERN.matcher(sizeString);
+ if (matcher.matches()) {
+ final long size = Long.parseLong(matcher.group(1));
+ final String multStr = matcher.group(2);
+ final char multChar;
+ if (multStr.length() == 0) {
+ multChar = 'b';
+ } else {
+ multChar = Character.toLowerCase(multStr.charAt(0));
+ }
+ switch (multChar) {
+ case 'b': break;
+ case 'k': return size * 1024L;
+ case 'm': return size * 1024L * 1024L;
+ case 'g': return size * 1024L * 1024L * 1024L;
+ case 't': return size * 1024L * 1024L * 1024L * 1024L;
+ }
+ throw new IllegalStateException();
+ } else {
+ throw new IllegalArgumentException("Invalid size string \"" + sizeString + "\"");
+ }
+ }
+
private static ValueMetaData getLevelInjectValue(final String context, final String name) {
- final AbstractValueFactoryMetaData avfmd = new AbstractValueFactoryMetaData(null, "getLevelByName");
+ if (context == null) {
+ throw new NullPointerException("context is null");
+ }
+ if (name == null) {
+ throw new NullPointerException("name is null");
+ }
+ final AbstractValueFactoryMetaData avfmd = new AbstractValueFactoryMetaData(getContextName(context), "getLevelForName");
+// avfmd.setBean(Level.class.getName());
avfmd.setBean(getContextName(context));
- final List<ParameterMetaData> parameterList = avfmd.getParameters();
+ final List<ParameterMetaData> parameterList = new ArrayList<ParameterMetaData>(1);
+ avfmd.setParameters(parameterList);
parameterList.add(new AbstractParameterMetaData(String.class.getName(), name));
return avfmd;
}
private static ValueMetaData getLoggerInjectValue(final String context, final String category) {
- final AbstractValueFactoryMetaData avfmd = new AbstractValueFactoryMetaData(null, "getLogger");
- avfmd.setBean(getContextName(context));
- final List<ParameterMetaData> parameterList = avfmd.getParameters();
+ if (context == null) {
+ throw new NullPointerException("context is null");
+ }
+ if (category == null) {
+ throw new NullPointerException("category is null");
+ }
+ final AbstractValueFactoryMetaData avfmd = new AbstractValueFactoryMetaData(getContextName(context), "getLogger");
+ avfmd.setBean(Logger.class.getName());
+ final List<ParameterMetaData> parameterList = new ArrayList<ParameterMetaData>(1);
+ avfmd.setParameters(parameterList);
parameterList.add(new AbstractParameterMetaData(String.class.getName(), category));
return avfmd;
}
@@ -326,7 +397,7 @@
throw new IllegalStateException();
}
- private static ValueMetaData getValue(final FormatterMetaData formatter, final String context) {
+ private static ValueMetaData getValue(final List<BeanMetaData> beanMetaDataList, final FormatterMetaData formatter, final String context) {
final RefMetaData refMetaData = formatter.getFormatterRefMetaData();
if (refMetaData != null) {
return new AbstractInjectionValueMetaData(refMetaData.getName());
@@ -341,7 +412,9 @@
}
final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(getAnonymousName(context, Kind.FORMATTER), PatternFormatter.class.getName());
builder.addConstructorParameter(String.class.getName(), metaData.getPattern());
- return builder.getBeanMetaData();
+ final BeanMetaData beanMetaData = builder.getBeanMetaData();
+ beanMetaDataList.add(beanMetaData);
+ return beanMetaData;
}
public static String getName(String context, Kind kind, String name) {
Modified: projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/RefMetaData.java
===================================================================
--- projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/RefMetaData.java 2009-07-09 22:37:28 UTC (rev 91029)
+++ projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/RefMetaData.java 2009-07-09 23:25:40 UTC (rev 91030)
@@ -23,6 +23,7 @@
package org.jboss.logging.metadata;
import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAttribute;
@XmlType(name = "refType", propOrder = {})
public class RefMetaData {
@@ -32,6 +33,7 @@
return name;
}
+ @XmlAttribute(required = true)
public void setName(final String name) {
this.name = name;
}
Modified: projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/SizeRotatingFileHandlerMetaData.java
===================================================================
--- projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/SizeRotatingFileHandlerMetaData.java 2009-07-09 22:37:28 UTC (rev 91029)
+++ projects/logging-service-metadata/trunk/src/main/java/org/jboss/logging/metadata/SizeRotatingFileHandlerMetaData.java 2009-07-09 23:25:40 UTC (rev 91030)
@@ -34,7 +34,7 @@
return rotateSizeString;
}
- @XmlAttribute(name = "rotate-size")
+ @XmlAttribute(name = "rotate-size", required = true)
public void setRotateSizeString(final String rotateSizeString) {
this.rotateSizeString = rotateSizeString;
}
More information about the jboss-cvs-commits
mailing list