[seam-dev] Re: [seam-commits] Seam SVN: r10542 - in modules/trunk: logging and 15 other directories.
Pete Muir
pmuir at redhat.com
Tue Apr 21 06:06:15 EDT 2009
The Web Beans version is implementation independent (check out the
Extensions chapter :-)
On 21 Apr 2009, at 11:00, Shane Bryzak wrote:
> Do we want a dependency on webbeans though? I thought this stuff was
> supposed to be implementation-independent.
>
> Pete Muir wrote:
>> Shane,
>>
>> We've already developed the logging module for webbeans - see
>> org.jboss.webbeans:webbeans-logger and org.jboss.webbeans:webbeans-
>> logging
>>
>> On 21 Apr 2009, at 10:38, seam-commits at lists.jboss.org wrote:
>>
>>> Author: shane.bryzak at jboss.com
>>> Date: 2009-04-21 05:38:36 -0400 (Tue, 21 Apr 2009)
>>> New Revision: 10542
>>>
>>> Added:
>>> modules/trunk/logging/
>>> modules/trunk/logging/pom.xml
>>> modules/trunk/logging/src/
>>> modules/trunk/logging/src/main/
>>> modules/trunk/logging/src/main/java/
>>> modules/trunk/logging/src/main/java/org/
>>> modules/trunk/logging/src/main/java/org/jboss/
>>> modules/trunk/logging/src/main/java/org/jboss/seam/
>>> modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> JDKProvider.java
>>> modules/trunk/logging/src/main/java/org/jboss/seam/log/Log.java
>>> modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Log4JProvider.java
>>> modules/trunk/logging/src/main/java/org/jboss/seam/log/LogImpl.java
>>> modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> LogProvider.java
>>> modules/trunk/logging/src/main/java/org/jboss/seam/log/Logging.java
>>> modules/trunk/logging/target/
>>> modules/trunk/logging/target/classes/
>>> modules/trunk/logging/target/classes/org/
>>> modules/trunk/logging/target/classes/org/jboss/
>>> modules/trunk/logging/target/classes/org/jboss/seam/
>>> modules/trunk/logging/target/classes/org/jboss/seam/log/
>>> modules/trunk/parent/
>>> modules/trunk/parent/pom.xml
>>> Modified:
>>> modules/trunk/security/pom.xml
>>> modules/trunk/version-matrix/pom.xml
>>> Log:
>>> added logging module, parent pom, updated version-matrix pom
>>>
>>> Added: modules/trunk/logging/pom.xml
>>> ===================================================================
>>> --- modules/trunk/logging/pom.xml (rev 0)
>>> +++ modules/trunk/logging/pom.xml 2009-04-21 09:38:36 UTC (rev
>>> 10542)
>>> @@ -0,0 +1,22 @@
>>> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
>>> " xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
>>> ">
>>> + <parent>
>>> + <artifactId>seam-parent</artifactId>
>>> + <groupId>org.jboss.seam</groupId>
>>> + <version>3.0.0-SNAPSHOT</version>
>>> + </parent>
>>> +
>>> + <modelVersion>4.0.0</modelVersion>
>>> + <groupId>org.jboss.seam</groupId>
>>> + <artifactId>seam-logging</artifactId>
>>> + <version>3.0.0-SNAPSHOT</version>
>>> + <name>Seam Logging</name>
>>> + <dependencies>
>>> +
>>> + <dependency>
>>> + <groupId>log4j</groupId>
>>> + <artifactId>log4j</artifactId>
>>> + <optional>true</optional>
>>> + </dependency>
>>> +
>>> + </dependencies>
>>> +</project>
>>>
>>> Added: modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> JDKProvider.java
>>> ===================================================================
>>> --- modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> JDKProvider.java (rev 0)
>>> +++ modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> JDKProvider.java 2009-04-21 09:38:36 UTC (rev 10542)
>>> @@ -0,0 +1,140 @@
>>> +package org.jboss.seam.log;
>>> +
>>> +import java.util.logging.Level;
>>> +import java.util.logging.Logger;
>>> +
>>> +/**
>>> + *
>>> + * @author Gavin King
>>> + *
>>> + */
>>> +class JDKProvider implements LogProvider
>>> +{
>>> + private final Logger logger;
>>> + private final boolean isWrapped;
>>> +
>>> + JDKProvider(String category, boolean wrapped)
>>> + {
>>> + this.logger = Logger.getLogger(category);
>>> + this.isWrapped = wrapped;
>>> + }
>>> +
>>> + private void log(Level level, Object object, Throwable ex)
>>> + {
>>> +
>>> + if (logger.isLoggable(level))
>>> + {
>>> + Throwable dummyException = new Throwable();
>>> + StackTraceElement locations[] =
>>> dummyException.getStackTrace();
>>> + String className = "unknown";
>>> + String methodName = "unknown";
>>> + int depth = isWrapped ? 3 : 2;
>>> + if (locations != null && locations.length > depth)
>>> + {
>>> + StackTraceElement caller = locations[depth];
>>> + className = caller.getClassName();
>>> + methodName = caller.getMethodName();
>>> + }
>>> + if (ex == null)
>>> + {
>>> + logger.logp(level, className, methodName,
>>> String.valueOf(object));
>>> + }
>>> + else
>>> + {
>>> + logger.logp(level, className, methodName,
>>> String.valueOf(object), ex);
>>> + }
>>> + }
>>> +
>>> + }
>>> +
>>> + public void debug(Object object, Throwable t)
>>> + {
>>> + log(Level.FINE, object, t);
>>> + }
>>> +
>>> + public void debug(Object object)
>>> + {
>>> + log(Level.FINE, object, null);
>>> + }
>>> +
>>> + public void error(Object object, Throwable t)
>>> + {
>>> + log(Level.SEVERE, object, t);
>>> + }
>>> +
>>> + public void error(Object object)
>>> + {
>>> + log(Level.SEVERE, object, null);
>>> + }
>>> +
>>> + public void fatal(Object object, Throwable t)
>>> + {
>>> + log(Level.SEVERE, object, t);
>>> + }
>>> +
>>> + public void fatal(Object object)
>>> + {
>>> + log(Level.SEVERE, object, null);
>>> + }
>>> +
>>> + public void info(Object object, Throwable t)
>>> + {
>>> + log(Level.INFO, object, t);
>>> + }
>>> +
>>> + public void info(Object object)
>>> + {
>>> + log(Level.INFO, object, null);
>>> + }
>>> +
>>> + public boolean isDebugEnabled()
>>> + {
>>> + return logger.isLoggable(Level.FINE);
>>> + }
>>> +
>>> + public boolean isErrorEnabled()
>>> + {
>>> + return logger.isLoggable(Level.SEVERE);
>>> + }
>>> +
>>> + public boolean isFatalEnabled()
>>> + {
>>> + return logger.isLoggable(Level.SEVERE);
>>> + }
>>> +
>>> + public boolean isInfoEnabled()
>>> + {
>>> + return logger.isLoggable(Level.INFO);
>>> + }
>>> +
>>> + public boolean isTraceEnabled()
>>> + {
>>> + return logger.isLoggable(Level.FINER);
>>> + }
>>> +
>>> + public boolean isWarnEnabled()
>>> + {
>>> + return logger.isLoggable(Level.WARNING);
>>> + }
>>> +
>>> + public void trace(Object object, Throwable t)
>>> + {
>>> + log(Level.FINER, object, t);
>>> + }
>>> +
>>> + public void trace(Object object)
>>> + {
>>> + log(Level.FINER, object, null);
>>> + }
>>> +
>>> + public void warn(Object object, Throwable t)
>>> + {
>>> + log(Level.WARNING, object, t);
>>> + }
>>> +
>>> + public void warn(Object object)
>>> + {
>>> + log(Level.WARNING, object, null);
>>> + }
>>> +
>>> +}
>>>
>>> Added: modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Log.java
>>> ===================================================================
>>> --- modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Log.java (rev 0)
>>> +++ modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Log.java 2009-04-21 09:38:36 UTC (rev 10542)
>>> @@ -0,0 +1,86 @@
>>> +package org.jboss.seam.log;
>>> +
>>> +/**
>>> + * <p>A <code>Log</code> object is used to log messages.
>>> + * They will be logged in any environment that has setup a
>>> logging service
>>> + * such as Log4J or the standard JDK logging facilities. In
>>> fact, this
>>> + * logging interface is very similar to the other facilities with
>>> the
>>> + * difference that logging methods also take any number of optional
>>> + * parameters beyond the message object for later interpolation
>>> + * into the message.</p>
>>> + *
>>> + * <p>The idea of using interpolation parameters is very
>>> important for
>>> + * performance reasons in production code. Normally developers
>>> write
>>> + * logging messages similar to this one:
>>> + * <pre>
>>> + * log.debug("Started processing of " + obj1 + " with action "
>>> + obj2);
>>> + * </pre>
>>> + * The problem that arises at runtime in production systems, is
>>> that DEBUG
>>> + * level logging may not be enabled. And even if this logging is
>>> going to
>>> + * be a no-op call, Java must still build the string dynamically
>>> that is the
>>> + * argument to the call. It is the building of this string that
>>> can be quite
>>> + * time consuming. The more complex the objects being
>>> concatenated are, the
>>> + * worse the time penalty incurred is. And this time is
>>> completely wasted
>>> + * since the string may never be used.</p>
>>> + *
>>> + * <p>Normally to combat the problem of making this call and
>>> building the
>>> + * string dynamically, the developer uses a conditional statement
>>> to invoke
>>> + * the call only if the corresponding logging level is enabled.
>>> So the above
>>> + * call may end up looking like:
>>> + * <pre>
>>> + * if (log.isDebugEnabled())
>>> + * {
>>> + * log.debug("Started processing of " + obj1 + " with
>>> action " + obj2);
>>> + * }
>>> + * </pre>
>>> + * Ideally, this structure should always be used to avoid the
>>> cost of building the
>>> + * dynamic string (concatenation) and making the unnecessary
>>> call. The only
>>> + * drawback to this is that code can become less readable. In
>>> some cases, there
>>> + * might be more code devoted to logging than the actual behavior
>>> required by a
>>> + * method.</p>
>>> + *
>>> + * <p>A cleaner way to do the logging is to use this interface
>>> where simple
>>> + * objects without any concatenation are passed as arguments.
>>> Albeit the call
>>> + * itself may still be a no-op when the logging level is not
>>> enabled, this is
>>> + * still much smaller than the concatenation process with dynamic
>>> strings. Each
>>> + * of the methods defined here will first check to see if the
>>> logging level is enabled,
>>> + * if that feature exists in the underlying logging system. If
>>> and only if that logging
>>> + * level is enabled, will the implementation proceed with
>>> concatenation of the strings
>>> + * and objects passed. So the above code using this interface
>>> becomes:
>>> + * <pre>
>>> + * log.debug("Started processing of {0} with action {1}, obj1,
>>> obj2);
>>> + * </pre>
>>> + * </p>
>>> + *
>>> + * <p>The interpolation of parameters into the message string are
>>> done using
>>> + * {@link java.text.MessageFormat}. See the documentation on
>>> that class for
>>> + * more ideas of interpolation possibilities. In the above code,
>>> <code>obj1</code>
>>> + * and <code>obj2</code> simply have their <code>toString()</
>>> code> methods invoked
>>> + * to produce a string which is then concatenated.</p>
>>> + *
>>> + * @author Gavin King
>>> + * @author David Allen
>>> + *
>>> + */
>>> +public interface Log
>>> +{
>>> + public boolean isDebugEnabled();
>>> + public boolean isErrorEnabled();
>>> + public boolean isFatalEnabled();
>>> + public boolean isInfoEnabled();
>>> + public boolean isTraceEnabled();
>>> + public boolean isWarnEnabled();
>>> + public void trace(Object object, Object... params);
>>> + public void trace(Object object, Throwable t, Object... params);
>>> + public void debug(Object object, Object... params);
>>> + public void debug(Object object, Throwable t, Object... params);
>>> + public void info(Object object, Object... params);
>>> + public void info(Object object, Throwable t, Object... params);
>>> + public void warn(Object object, Object... params);
>>> + public void warn(Object object, Throwable t, Object... params);
>>> + public void error(Object object, Object... params);
>>> + public void error(Object object, Throwable t, Object... params);
>>> + public void fatal(Object object, Object... params);
>>> + public void fatal(Object object, Throwable t, Object... params);
>>> +
>>> +}
>>> \ No newline at end of file
>>>
>>> Added: modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Log4JProvider.java
>>> ===================================================================
>>> --- modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Log4JProvider.java (rev 0)
>>> +++ modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Log4JProvider.java 2009-04-21 09:38:36 UTC (rev 10542)
>>> @@ -0,0 +1,135 @@
>>> +package org.jboss.seam.log;
>>> +
>>> +import org.apache.log4j.Level;
>>> +import org.apache.log4j.Logger;
>>> +
>>> +/**
>>> + *
>>> + * @author Gavin King
>>> + *
>>> + */
>>> +final class Log4JProvider implements LogProvider
>>> +{
>>> + private final Logger logger;
>>> + private final boolean isWrapped;
>>> +
>>> + private static final String LOG_IMPL_FQCN =
>>> LogImpl.class.getName();
>>> + private static final String LOG_PROVIDER_FQCN =
>>> Log4JProvider.class.getName();
>>> +
>>> + private static final Level TRACE;
>>> + static
>>> + {
>>> + Object trace;
>>> + try
>>> + {
>>> + trace = Level.class.getDeclaredField("TRACE").get(null);
>>> + }
>>> + catch (Exception e)
>>> + {
>>> + trace = Level.DEBUG;
>>> + }
>>> + TRACE = (Level) trace;
>>> + }
>>> +
>>> + Log4JProvider(String category, boolean wrapped)
>>> + {
>>> + logger = Logger.getLogger(category);
>>> + isWrapped = wrapped;
>>> + }
>>> +
>>> + private String getFQCN()
>>> + {
>>> + return isWrapped ? LOG_IMPL_FQCN : LOG_PROVIDER_FQCN;
>>> + }
>>> +
>>> + public void debug(Object object)
>>> + {
>>> + logger.log(getFQCN(), Level.DEBUG, object, null);
>>> + }
>>> +
>>> + public void debug(Object object, Throwable t)
>>> + {
>>> + logger.log(getFQCN(), Level.DEBUG, object, t);
>>> + }
>>> +
>>> + public void error(Object object)
>>> + {
>>> + logger.log(getFQCN(), Level.ERROR, object, null);
>>> + }
>>> +
>>> + public void error(Object object, Throwable t)
>>> + {
>>> + logger.log(getFQCN(), Level.ERROR, object, t);
>>> + }
>>> +
>>> + public void fatal(Object object)
>>> + {
>>> + logger.log(getFQCN(), Level.FATAL, object, null);
>>> + }
>>> +
>>> + public void fatal(Object object, Throwable t)
>>> + {
>>> + logger.log(getFQCN(), Level.FATAL, object, t);
>>> + }
>>> +
>>> + public void info(Object object)
>>> + {
>>> + logger.log(getFQCN(), Level.INFO, object, null);
>>> + }
>>> +
>>> + public void info(Object object, Throwable t)
>>> + {
>>> + logger.log(getFQCN(), Level.INFO, object, t);
>>> + }
>>> +
>>> + public boolean isDebugEnabled()
>>> + {
>>> + return logger.isEnabledFor(Level.DEBUG);
>>> + }
>>> +
>>> + public boolean isErrorEnabled()
>>> + {
>>> + return logger.isEnabledFor(Level.ERROR);
>>> + }
>>> +
>>> + public boolean isFatalEnabled()
>>> + {
>>> + return logger.isEnabledFor(Level.FATAL);
>>> + }
>>> +
>>> + public boolean isInfoEnabled()
>>> + {
>>> + return logger.isEnabledFor(Level.INFO);
>>> + }
>>> +
>>> + public boolean isTraceEnabled()
>>> + {
>>> + return logger.isEnabledFor(TRACE);
>>> + }
>>> +
>>> + public boolean isWarnEnabled()
>>> + {
>>> + return logger.isEnabledFor(Level.WARN);
>>> + }
>>> +
>>> + public void trace(Object object)
>>> + {
>>> + logger.log(getFQCN(), TRACE, object, null);
>>> + }
>>> +
>>> + public void trace(Object object, Throwable t)
>>> + {
>>> + logger.log(getFQCN(), TRACE, object, t);
>>> + }
>>> +
>>> + public void warn(Object object)
>>> + {
>>> + logger.log(getFQCN(), Level.WARN, object, null);
>>> + }
>>> +
>>> + public void warn(Object object, Throwable t)
>>> + {
>>> + logger.log(getFQCN(), Level.WARN, object, t);
>>> + }
>>> +
>>> +}
>>>
>>> Added: modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> LogImpl.java
>>> ===================================================================
>>> --- modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> LogImpl.java (rev 0)
>>> +++ modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> LogImpl.java 2009-04-21 09:38:36 UTC (rev 10542)
>>> @@ -0,0 +1,184 @@
>>> +package org.jboss.seam.log;
>>> +
>>> +import java.io.Externalizable;
>>> +import java.io.IOException;
>>> +import java.io.ObjectInput;
>>> +import java.io.ObjectOutput;
>>> +import java.text.MessageFormat;
>>> +import java.util.Arrays;
>>> +
>>> +/**
>>> + *
>>> + * @author Gavin King
>>> + *
>>> + */
>>> +class LogImpl implements Log, Externalizable
>>> +{
>>> + private transient LogProvider log;
>>> + private String category;
>>> +
>>> + public LogImpl()
>>> + {
>>> + }
>>> +
>>> + LogImpl(String category)
>>> + {
>>> + this.category = category;
>>> + this.log = Logging.getLogProvider(category, true);
>>> + }
>>> +
>>> + public boolean isDebugEnabled()
>>> + {
>>> + return log.isDebugEnabled();
>>> + }
>>> +
>>> + public boolean isErrorEnabled()
>>> + {
>>> + return log.isErrorEnabled();
>>> + }
>>> +
>>> + public boolean isFatalEnabled()
>>> + {
>>> + return log.isFatalEnabled();
>>> + }
>>> +
>>> + public boolean isInfoEnabled()
>>> + {
>>> + return log.isInfoEnabled();
>>> + }
>>> +
>>> + public boolean isTraceEnabled()
>>> + {
>>> + return log.isTraceEnabled();
>>> + }
>>> +
>>> + public boolean isWarnEnabled()
>>> + {
>>> + return log.isWarnEnabled();
>>> + }
>>> +
>>> + public void trace(Object object, Object... params)
>>> + {
>>> + if (isTraceEnabled())
>>> + {
>>> + log.trace(interpolate(object, params));
>>> + }
>>> + }
>>> +
>>> + public void trace(Object object, Throwable t, Object... params)
>>> + {
>>> + if (isTraceEnabled())
>>> + {
>>> + log.trace(interpolate(object, params), t);
>>> + }
>>> + }
>>> +
>>> + public void debug(Object object, Object... params)
>>> + {
>>> + if (isDebugEnabled())
>>> + {
>>> + log.debug(interpolate(object, params));
>>> + }
>>> + }
>>> +
>>> + public void debug(Object object, Throwable t, Object... params)
>>> + {
>>> + if (isDebugEnabled())
>>> + {
>>> + log.debug(interpolate(object, params), t);
>>> + }
>>> + }
>>> +
>>> + public void info(Object object, Object... params)
>>> + {
>>> + if (isInfoEnabled())
>>> + {
>>> + log.info(interpolate(object, params));
>>> + }
>>> + }
>>> +
>>> + public void info(Object object, Throwable t, Object... params)
>>> + {
>>> + if (isInfoEnabled())
>>> + {
>>> + log.info(interpolate(object, params), t);
>>> + }
>>> + }
>>> +
>>> + public void warn(Object object, Object... params)
>>> + {
>>> + if (isWarnEnabled())
>>> + {
>>> + log.warn(interpolate(object, params));
>>> + }
>>> + }
>>> +
>>> + public void warn(Object object, Throwable t, Object... params)
>>> + {
>>> + if (isWarnEnabled())
>>> + {
>>> + log.warn(interpolate(object, params), t);
>>> + }
>>> + }
>>> +
>>> + public void error(Object object, Object... params)
>>> + {
>>> + if (isErrorEnabled())
>>> + {
>>> + log.error(interpolate(object, params));
>>> + }
>>> + }
>>> +
>>> + public void error(Object object, Throwable t, Object... params)
>>> + {
>>> + if (isErrorEnabled())
>>> + {
>>> + log.error(interpolate(object, params), t);
>>> + }
>>> + }
>>> +
>>> + public void fatal(Object object, Object... params)
>>> + {
>>> + if (isFatalEnabled())
>>> + {
>>> + log.fatal(interpolate(object, params));
>>> + }
>>> + }
>>> +
>>> + public void fatal(Object object, Throwable t, Object... params)
>>> + {
>>> + if (isFatalEnabled())
>>> + {
>>> + log.fatal(interpolate(object, params), t);
>>> + }
>>> + }
>>> +
>>> + private Object interpolate(Object message, Object... params)
>>> + {
>>> + Object interpolatedMessage = message;
>>> + if (params.length > 0)
>>> + {
>>> + for (int i = 0; i < params.length; i++)
>>> + {
>>> + if (params[i].getClass().isArray())
>>> + {
>>> + params[i] = Arrays.asList((Object[]) params[i]);
>>> + }
>>> + }
>>> + interpolatedMessage =
>>> MessageFormat.format(message.toString(), params);
>>> + }
>>> + return interpolatedMessage;
>>> + }
>>> +
>>> + public void readExternal(ObjectInput in) throws IOException,
>>> ClassNotFoundException
>>> + {
>>> + category = (String) in.readObject();
>>> + log = Logging.getLogProvider(category, true);
>>> + }
>>> +
>>> + public void writeExternal(ObjectOutput out) throws IOException
>>> + {
>>> + out.writeObject(category);
>>> + }
>>> +
>>> +}
>>>
>>> Added: modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> LogProvider.java
>>> ===================================================================
>>> --- modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> LogProvider.java (rev 0)
>>> +++ modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> LogProvider.java 2009-04-21 09:38:36 UTC (rev 10542)
>>> @@ -0,0 +1,28 @@
>>> +package org.jboss.seam.log;
>>> +
>>> +/**
>>> + *
>>> + * @author Gavin King
>>> + *
>>> + */
>>> +public interface LogProvider
>>> +{
>>> + public void trace(Object object);
>>> + public void trace(Object object, Throwable t);
>>> + public void debug(Object object);
>>> + public void debug(Object object, Throwable t);
>>> + public void info(Object object);
>>> + public void info(Object object, Throwable t);
>>> + public void warn(Object object);
>>> + public void warn(Object object, Throwable t);
>>> + public void error(Object object);
>>> + public void error(Object object, Throwable t);
>>> + public void fatal(Object object);
>>> + public void fatal(Object object, Throwable t);
>>> + public boolean isTraceEnabled();
>>> + public boolean isDebugEnabled();
>>> + public boolean isInfoEnabled();
>>> + public boolean isWarnEnabled();
>>> + public boolean isErrorEnabled();
>>> + public boolean isFatalEnabled();
>>> +}
>>>
>>> Added: modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Logging.java
>>> ===================================================================
>>> --- modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Logging.java (rev 0)
>>> +++ modules/trunk/logging/src/main/java/org/jboss/seam/log/
>>> Logging.java 2009-04-21 09:38:36 UTC (rev 10542)
>>> @@ -0,0 +1,47 @@
>>> +package org.jboss.seam.log;
>>> +
>>> +/**
>>> + *
>>> + * @author Gavin King
>>> + *
>>> + */
>>> +public class Logging
>>> +{
>>> + private static final boolean isLog4JAvailable;
>>> +
>>> + static
>>> + {
>>> + boolean available;
>>> + try
>>> + {
>>> + Class.forName("org.apache.log4j.Logger");
>>> + available = true;
>>> + }
>>> + catch (ClassNotFoundException cnfe)
>>> + {
>>> + available = false;
>>> + }
>>> + isLog4JAvailable = available;
>>> + }
>>> +
>>> + public static Log getLog(String category)
>>> + {
>>> + return new LogImpl(category);
>>> + }
>>> +
>>> + public static Log getLog(Class<?> clazz)
>>> + {
>>> + return new LogImpl(clazz.getName());
>>> + }
>>> +
>>> + static LogProvider getLogProvider(String category, boolean
>>> wrapped)
>>> + {
>>> + return isLog4JAvailable ? new Log4JProvider(category,
>>> wrapped) : new JDKProvider(category, wrapped);
>>> + }
>>> +
>>> + public static LogProvider getLogProvider(Class<?> clazz)
>>> + {
>>> + return getLogProvider(clazz.getName(), false);
>>> + }
>>> +
>>> +}
>>>
>>> Added: modules/trunk/parent/pom.xml
>>> ===================================================================
>>> --- modules/trunk/parent/pom.xml (rev 0)
>>> +++ modules/trunk/parent/pom.xml 2009-04-21 09:38:36 UTC (rev
>>> 10542)
>>> @@ -0,0 +1,206 @@
>>> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
>>> " xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
>>> ">
>>> + <modelVersion>4.0.0</modelVersion>
>>> + <groupId>org.jboss.seam</groupId>
>>> + <artifactId>seam-parent</artifactId>
>>> + <packaging>pom</packaging>
>>> + <version>3.0.0-SNAPSHOT</version>
>>> +
>>> + <parent>
>>> + <groupId>org.jboss.seam</groupId>
>>> + <artifactId>seam-version-matrix</artifactId>
>>> + <version>3.0.0-SNAPSHOT</version>
>>> + </parent>
>>> +
>>> + <name>JBoss Seam</name>
>>> + <url>http://www.seamframework.org</url>
>>> +
>>> + <description>
>>> + JBoss Seam, an Enterprise Java Framework
>>> + </description>
>>> +
>>> + <developers>
>>> + <developer>
>>> + <name>Pete Muir</name>
>>> + <roles>
>>> + <role>Project Lead</role>
>>> + </roles>
>>> + <email>pete.muir at jboss.org</email>
>>> + <organization>JBoss, a division of Red Hat</organization>
>>> + <url>http://in.relation.to/Bloggers/Pete</url>
>>> + </developer>
>>> +
>>> + <developer>
>>> + <name>Shane Bryzak</name>
>>> + <organization>JBoss, a division of Red Hat</organization>
>>> + </developer>
>>> +
>>> + <developer>
>>> + <name>Norman Richards</name>
>>> + <organization>JBoss, a division of Red Hat</organization>
>>> + </developer>
>>> +
>>> + <developer>
>>> + <name>Dan Allen</name>
>>> + <organization>JBoss, a division of Red Hat</organization>
>>> + </developer>
>>> + </developers>
>>> +
>>> + <build>
>>> + <plugins>
>>> + <plugin>
>>> + <groupId>org.apache.maven.plugins</groupId>
>>> + <artifactId>maven-source-plugin</artifactId>
>>> + <executions>
>>> + <execution>
>>> + <id>attach-sources</id>
>>> + <phase>verify</phase>
>>> + <goals>
>>> + <goal>jar</goal>
>>> + </goals>
>>> + </execution>
>>> + </executions>
>>> + </plugin>
>>> + <plugin>
>>> + <groupId>org.apache.maven.plugins</groupId>
>>> + <artifactId>maven-enforcer-plugin</artifactId>
>>> + </plugin>
>>> + <plugin>
>>> + <groupId>org.apache.maven.plugins</groupId>
>>> + <artifactId>maven-release-plugin</artifactId>
>>> + <version>2.0-beta-8</version>
>>> + <configuration>
>>> + <tagBase>https://svn.jboss.org/repos/webbeans/ri/
>>> tags</tagBase>
>>> + <autoVersionSubmodules>true</autoVersionSubmodules>
>>> + </configuration>
>>> + </plugin>
>>> + </plugins>
>>> + <defaultGoal>package</defaultGoal>
>>> +
>>> + <pluginManagement>
>>> + <plugins>
>>> + <plugin>
>>> + <groupId>org.apache.maven.plugins</groupId>
>>> + <artifactId>maven-compiler-plugin</artifactId>
>>> + <configuration>
>>> + <source>1.5</source>
>>> + <target>1.5</target>
>>> + </configuration>
>>> + </plugin>
>>> + <plugin>
>>> + <groupId>org.apache.maven.plugins</groupId>
>>> + <artifactId>maven-jar-plugin</artifactId>
>>> + <configuration>
>>> + <archive>
>>> + <manifest>
>>> + <addDefaultImplementationEntries>
>>> + true
>>> + </addDefaultImplementationEntries>
>>> + <addDefaultSpecificationEntries>
>>> + true
>>> + </addDefaultSpecificationEntries>
>>> + </manifest>
>>> + </archive>
>>> + </configuration>
>>> + </plugin>
>>> + <plugin>
>>> + <groupId>org.codehaus.mojo</groupId>
>>> + <artifactId>emma-maven-plugin</artifactId>
>>> + <configuration>
>>> + <forkMode>once</forkMode>
>>> + <metadataFile>../target/coverage.em</
>>> metadataFile>
>>> + <outputDirectory>${project.build.directory}/
>>> generated-classes</outputDirectory>
>>> + </configuration>
>>> + </plugin>
>>> + </plugins>
>>> + </pluginManagement>
>>> + </build>
>>> +
>>> + <profiles>
>>> + <profile>
>>> + <id>api-coverage</id>
>>> + <activation>
>>> + <property>
>>> + <name>apiCoverage</name>
>>> + </property>
>>> + </activation>
>>> + <build>
>>> + <plugins>
>>> + <plugin>
>>> + <groupId>org.apache.maven.plugins</groupId>
>>> + <artifactId>maven-surefire-plugin</artifactId>
>>> + <inherited>true</inherited>
>>> + <configuration>
>>> + <forkMode>once</forkMode>
>>> + </configuration>
>>> + </plugin>
>>> + </plugins>
>>> + </build>
>>> + <dependencies>
>>> + <dependency>
>>> + <groupId>emma</groupId>
>>> + <artifactId>emma</artifactId>
>>> + <version>2.0.5312</version>
>>> + <scope>test</scope>
>>> + </dependency>
>>> + </dependencies>
>>> + </profile>
>>> + </profiles>
>>> +
>>> + <ciManagement>
>>> + <system>Hudson</system>
>>> + <url />
>>> + </ciManagement>
>>> +
>>> + <issueManagement>
>>> + <system>JIRA</system>
>>> + <url>http://jira.jboss.org/browse/JBSEAM</url>
>>> + </issueManagement>
>>> +
>>> + <inceptionYear>2008</inceptionYear>
>>> +
>>> + <licenses>
>>> + <license>
>>> + <name>Lesser Gnu Public License, Version 2.1</name>
>>> + <url>http://www.gnu.org/licenses/lgpl-2.1.html</url>
>>> + </license>
>>> + </licenses>
>>> +
>>> + <scm>
>>> + <connection>scm:svn:http://anonsvn.jboss.org/repos/seam</
>>> connection>
>>> + <developerConnection>scm:svn:https://svn.jboss.org/repos/
>>> seam</developerConnection>
>>> + <url>http://fisheye.jboss.org/browse/Seam</url>
>>> + </scm>
>>> +
>>> + <distributionManagement>
>>> + <repository>
>>> + <!-- Copy the dist to the local checkout of the JBoss
>>> maven2 repo ${maven.repository.root} -->
>>> + <!-- It is anticipated that ${maven.repository.root} be
>>> set in user's settings.xml -->
>>> + <!-- todo : replace this with direct svn access once the
>>> svnkit providers are available -->
>>> + <id>repository.jboss.org</id>
>>> + <url>file://${maven.repository.root}</url>
>>> + </repository>
>>> + <snapshotRepository>
>>> + <id>snapshots.jboss.org</id>
>>> + <name>JBoss Snapshot Repository</name>
>>> + <url>dav:https://snapshots.jboss.org/maven2</url>
>>> + </snapshotRepository>
>>> + </distributionManagement>
>>> +
>>> + <reporting>
>>> + <plugins>
>>> + <plugin>
>>> + <groupId>org.codehaus.mojo</groupId>
>>> + <artifactId>cobertura-maven-plugin</artifactId>
>>> + <configuration>
>>> + <formats>
>>> + <format>html</format>
>>> + <format>xml</format>
>>> + </formats>
>>> + <instrumentation>
>>> + </instrumentation>
>>> + </configuration>
>>> + </plugin>
>>> + </plugins>
>>> + </reporting>
>>> +
>>> +</project>
>>>
>>> Modified: modules/trunk/security/pom.xml
>>> ===================================================================
>>> --- modules/trunk/security/pom.xml 2009-04-21 08:51:33 UTC (rev
>>> 10541)
>>> +++ modules/trunk/security/pom.xml 2009-04-21 09:38:36 UTC (rev
>>> 10542)
>>> @@ -1,8 +1,13 @@
>>> <project xmlns="http://maven.apache.org/POM/4.0.0"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
>>> ">
>>> - <modelVersion>4.0.0</modelVersion>
>>> -
>>> + <parent>
>>> + <artifactId>seam-parent</artifactId>
>>> + <groupId>org.jboss.seam</groupId>
>>> + <version>3.0.0-SNAPSHOT</version>
>>> + </parent>
>>> +
>>> + <modelVersion>4.0.0</modelVersion>
>>> <groupId>org.jboss.seam</groupId>
>>> <artifactId>seam-security</artifactId>
>>> <packaging>jar</packaging>
>>> @@ -13,7 +18,6 @@
>>> <dependency>
>>> <groupId>org.jboss.webbeans</groupId>
>>> <artifactId>jsr299-api</artifactId>
>>> - <version>1.0.0-SNAPSHOT</version>
>>> </dependency>
>>>
>>> </dependencies>
>>>
>>> Modified: modules/trunk/version-matrix/pom.xml
>>> ===================================================================
>>> --- modules/trunk/version-matrix/pom.xml 2009-04-21 08:51:33
>>> UTC (rev 10541)
>>> +++ modules/trunk/version-matrix/pom.xml 2009-04-21 09:38:36
>>> UTC (rev 10542)
>>> @@ -51,7 +51,6 @@
>>>
>>> <properties>
>>> <seam.version>3.0.0-SNAPSHOT</seam.version>
>>> - <webbeans.version>1.0.0-SNAPSHOT</webbeans.version>
>>> </properties>
>>>
>>> <dependencyManagement>
>>> @@ -141,31 +140,7 @@
>>> <artifactId>el-ri</artifactId>
>>> <version>1.2</version>
>>> </dependency>
>>> -
>>> - <dependency>
>>> - <groupId>org.jboss.webbeans</groupId>
>>> - <artifactId>jsr299-api</artifactId>
>>> - <version>${webbeans.version}</version>
>>> - </dependency>
>>>
>>> - <dependency>
>>> - <groupId>org.jboss.webbeans</groupId>
>>> - <artifactId>webbeans-core</artifactId>
>>> - <version>${webbeans.version}</version>
>>> - </dependency>
>>> -
>>> - <dependency>
>>> - <groupId>org.jboss.webbeans</groupId>
>>> - <artifactId>webbeans-spi</artifactId>
>>> - <version>${webbeans.version}</version>
>>> - </dependency>
>>> -
>>> - <dependency>
>>> - <groupId>org.jboss.webbeans</groupId>
>>> - <artifactId>webbeans-porting-package</artifactId>
>>> - <version>${webbeans.version}</version>
>>> - </dependency>
>>> -
>>> </dependencies>
>>> </dependencyManagement>
>>>
>>>
>>> _______________________________________________
>>> seam-commits mailing list
>>> seam-commits at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/seam-commits
>>
>> --
>> Pete Muir
>> http://www.seamframework.org
>> http://in.relation.to/Bloggers/Pete
>>
>> _______________________________________________
>> seam-dev mailing list
>> seam-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/seam-dev
>
--
Pete Muir
http://www.seamframework.org
http://in.relation.to/Bloggers/Pete
More information about the seam-dev
mailing list