[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