You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2017/04/16 22:32:37 UTC

[46/72] [abbrv] [partial] flex-blazeds git commit: - Major code scrub

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/log/Logger.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/log/Logger.java b/common/src/flex/messaging/log/Logger.java
deleted file mode 100644
index 8684a3e..0000000
--- a/common/src/flex/messaging/log/Logger.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.log;
-
-import flex.messaging.util.PrettyPrinter;
-import flex.messaging.util.StringUtils;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-/**
- * The <code>Logger</code> class is used to log out information. It provides named
- * methods to log information out at the desired level. Each <code>Logger</code>
- * will log information out for a log category that is settable.
- *
- *
- */
-public class Logger
-{
-    /**
-     * The category this logger send messages for.
-     */
-    private volatile String category;
-
-    /**
-     * The list of targets that this logger will dispatch log events to.
-     */
-    private final ArrayList targets;
-
-    /**
-     * Constructs a <code>Logger</code> instance that will log
-     * information out to the specified category.
-     *
-     * @param category The category to log information for.
-     */
-    public Logger(String category)
-    {
-        this.category = category;
-        targets = new ArrayList();
-    }
-
-    /**
-     * Returns the category this <code>Logger</code> logs information for.
-     *
-     * @return The category this <code>Logger</code> logs information for.
-     */
-    public String getCategory()
-    {
-        return category;
-    }
-
-    /**
-     * Determines whether the <code>Logger</code> has at least one target.
-     * 
-     * @return True if the <code>Logger</code> has one or more targets.
-     */
-    public boolean hasTarget()
-    {
-        synchronized (targets)
-        {
-            return !targets.isEmpty();
-        }
-    }
-    /**
-     * Adds a <code>Target</code> that will format and output log events
-     * generated by this <code>Logger</code>.
-     *
-     * @param target The <code>Target</code> to add.
-     */
-    void addTarget(Target target)
-    {
-        synchronized (targets)
-        {
-            if (!targets.contains(target))
-                targets.add(target);
-        }
-    }
-
-    /**
-     * Removes a <code>Target</code> from this <code>Logger</code>.
-     *
-     * @param target The <code>Target</code> to remove.
-     */
-    void removeTarget(Target target)
-    {
-        synchronized (targets)
-        {
-            targets.remove(target);
-        }
-    }
-
-    /*
-     *  DEBUG
-     */
-    /**
-     * Logs out a debug message.
-     *
-     * @param message The message to log.
-     */
-    public void debug(String message)
-    {
-        log(LogEvent.DEBUG, message, null, null);
-    }
-
-    /**
-     * Logs out a debug message associated with a <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void debug(String message, Throwable t)
-    {
-        log(LogEvent.DEBUG, message, null, t);
-    }
-
-    /**
-     * Logs out a debug message supporting positional parameter substitutions.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     */
-    public void debug(String message, Object[] parameters)
-    {
-        log(LogEvent.DEBUG, message, parameters, null);
-    }
-
-    /**
-     * Logs out a debug message supporting positional parameter substitutions and an
-     * associated <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void debug(String message, Object[] parameters, Throwable t)
-    {
-        log(LogEvent.DEBUG, message, parameters, t);
-    }
-
-    /*
-     *  INFO
-     */
-    /**
-     * Logs out an info message.
-     *
-     * @param message The message to log.
-     */
-    public void info(String message)
-    {
-        log(LogEvent.INFO, message, null, null);
-    }
-
-    /**
-     * Logs out an info message associated with a <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void info(String message, Throwable t)
-    {
-        log(LogEvent.INFO, message, null, t);
-    }
-
-    /**
-     * Logs out an info message supporting positional parameter substitutions.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     */
-    public void info(String message, Object[] parameters)
-    {
-        log(LogEvent.INFO, message, parameters, null);
-    }
-
-    /**
-     * Logs out an info message supporting positional parameter substitutions and an
-     * associated <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void info(String message, Object[] parameters, Throwable t)
-    {
-        log(LogEvent.INFO, message, parameters, t);
-    }
-
-    /*
-     *  WARN
-     */
-    /**
-     * Logs out a warn message.
-     *
-     * @param message The message to log.
-     */
-    public void warn(String message)
-    {
-        log(LogEvent.WARN, message, null, null);
-    }
-
-    /**
-     * Logs out a warn message associated with a <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void warn(String message, Throwable t)
-    {
-        log(LogEvent.WARN, message, null, t);
-    }
-
-    /**
-     * Logs out a warn message supporting positional parameter substitutions.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     */
-    public void warn(String message, Object[] parameters)
-    {
-        log(LogEvent.WARN, message, parameters, null);
-    }
-
-    /**
-     * Logs out a warn message supporting positional parameter substitutions and an
-     * associated <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void warn(String message, Object[] parameters, Throwable t)
-    {
-        log(LogEvent.WARN, message, parameters, t);
-    }
-
-    /*
-     *  ERROR
-     */
-    /**
-     * Logs out an error message.
-     *
-     * @param message The message to log.
-     */
-    public void error(String message)
-    {
-        log(LogEvent.ERROR, message, null, null);
-    }
-
-    /**
-     * Logs out an error message associated with a <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void error(String message, Throwable t)
-    {
-        log(LogEvent.ERROR, message, null, t);
-    }
-
-    /**
-     * Logs out an error message supporting positional parameter substitutions.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     */
-    public void error(String message, Object[] parameters)
-    {
-        log(LogEvent.ERROR, message, parameters, null);
-    }
-
-    /**
-     * Logs out an error message supporting positional parameter substitutions and an
-     * associated <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void error(String message, Object[] parameters, Throwable t)
-    {
-        log(LogEvent.ERROR, message, parameters, t);
-    }
-
-    /*
-    *  FATAL
-    */
-    /**
-     * Logs out a fatal message.
-     *
-     * @param message The message to log.
-     */
-    public void fatal(String message)
-    {
-        log(LogEvent.FATAL, message, null, null);
-    }
-
-    /**
-     * Logs out a fatal message associated with a <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void fatal(String message, Throwable t)
-    {
-        log(LogEvent.FATAL, message, null, t);
-    }
-
-    /**
-     * Logs out a fatal message supporting positional parameter substitutions.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     */
-    public void fatal(String message, Object[] parameters)
-    {
-        log(LogEvent.FATAL, message, parameters, null);
-    }
-
-    /**
-     * Logs out a fatal message supporting positional parameter substitutions and an
-     * associated <code>Throwable</code>.
-     *
-     * @param message The message to log.
-     * @param parameters Parameters to substitute into the message.
-     * @param t The associated <code>Throwable</code>.
-     */
-    public void fatal(String message, Object[] parameters, Throwable t)
-    {
-        log(LogEvent.FATAL, message, parameters, t);
-    }
-
-    /**
-     *
-     * The methods named according to log level delegate to this method to log.
-     *
-     * @param level The log level.
-     * @param message The message to log.
-     * @param parameters Substitution parameters (may be null).
-     * @param t The associated <code>Throwable</code> (may be null).
-     */
-    public void log(short level, String message, Object[] parameters, Throwable t)
-    {
-        log(level, message, parameters, t, true);
-    }
-
-    /**
-     *
-     * Logs a passed message if its level verifies as high enough.
-     *
-     * @param level The log level.
-     * @param message The message to log.
-     * @param parameters Substitution parameters (may be null).
-     * @param t The associated <code>Throwable</code>.
-     * @param verifyLevel <code>true</code> to verify the log level; otherwise log without verifying the level.
-     */
-    public void log(short level, String message, Object[] parameters, Throwable t, boolean verifyLevel)
-    {
-        if (targets.size() > 0 && (!verifyLevel || (level >= Log.getTargetLevel())))
-        {
-            if (parameters != null)
-            {
-                PrettyPrinter prettyPrinter = Log.getPrettyPrinter();
-
-                // replace all of the parameters in the msg string
-                for(int i = 0; i < parameters.length; i++)
-                {
-                    String replacement = parameters[i] != null ? prettyPrinter.prettify(parameters[i]) : "null";
-
-                    //this guy runs into problems if the replacement has a \ or $ in it
-                    //message = message.replaceAll("\\{" + i + "\\}", replacement);
-                    message = StringUtils.substitute(message, "{" + i + "}", replacement);
-                }
-            }
-            LogEvent event = new LogEvent(this, message, level, t);
-            Target tgt;
-            synchronized (targets)
-            {
-                for (Iterator iter = targets.iterator(); iter.hasNext();)
-                {
-                    tgt = (Target) iter.next();
-                    if (!verifyLevel || (level >= tgt.getLevel()))
-                        tgt.logEvent(event);
-                }
-            }
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/log/Target.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/log/Target.java b/common/src/flex/messaging/log/Target.java
deleted file mode 100644
index 7a39fb5..0000000
--- a/common/src/flex/messaging/log/Target.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.log;
-
-import java.util.List;
-
-import flex.messaging.config.ConfigMap;
-
-/**
- * All logger target implementations within the logging framework must
- * implement this interface. <code>Target</code> implementations receive log events
- * and output information from these events to the appropriate output
- * destination which may be a console, log file or some other custom
- * destination.
- */
-public interface Target
-{
-    /**
-     * Initializes the target with id and properties.
-     *
-     * @param id id for the target.
-     * @param properties ConfigMap of properties for the target.
-     */
-    void initialize(String id, ConfigMap properties);
-
-    /**
-     * Returns the category filters defined for the <code>Target</code>.
-     *
-     * @return The category filters defined for the <code>Target</code>.
-     */
-    List getFilters();
-
-    /**
-     * Sets the category filters that the <code>Target</code> will process
-     * log events for.
-     *
-     * @param value The category filters that the <code>Target</code> will process
-     */
-    void setFilters(List value);
-
-    /**
-     * Adds the category filteer that the <code>Target</code> will process
-     * log events for.
-     *
-     * @param value The new category filter to add to the <code>Target</code>'s list of filters.
-     */
-    void addFilter(String value);
-
-    /**
-     * Removes a category filter from the list of filters the <code>Target</code> will
-     * process log events for.
-     *
-     * @param value The category filter to remove from the <code>Target</code>'s list of filters.
-     */
-    void removeFilter(String value);
-
-    /**
-     * Returns the log level that the <code>Target</code> will process log
-     * events for. Log events at this level, or at a higher priority level
-     * will be processed.
-     *
-     * @return The log level that the <code>Target</code> will process log events for.
-     */
-    short getLevel();
-
-    /**
-     * Sets the log level that the <code>Target</code> will process log events
-     * for. Log events at this level, or at a higher priority level will be
-     * processed.
-     *
-     * @param value The log level that the <code>Target</code> will process log events for.
-     */
-    void setLevel(short value);
-
-    /**
-     * Adds a <code>Logger</code> whose category matches the filters list for
-     * the <code>Target</code>. The <code>Logger</code> will dispatch log events
-     * to this <code>Target</code> to be output.
-     *
-     * @param logger The <code>Logger</code> to add.
-     */
-    void addLogger(Logger logger);
-
-    /**
-     * Removes a <code>Logger</code> from the <code>Target</code>.
-     *
-     * @param logger The <code>Logger</code> to remove.
-     */
-    void removeLogger(Logger logger);
-
-    /**
-     * Logs a log event out to the <code>Target</code>s output destination,
-     * which may be the console or a log file.
-     *
-     * @param event The <code>LogEvent</code> containing the information to output.
-     */
-    void logEvent(LogEvent event);
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/BasicPrettyPrinter.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/BasicPrettyPrinter.java b/common/src/flex/messaging/util/BasicPrettyPrinter.java
deleted file mode 100644
index 19fa547..0000000
--- a/common/src/flex/messaging/util/BasicPrettyPrinter.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.Method;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Map;
-
-/**
- * Prettifies the representation of an Object as a String. Complex
- * types are not traversed.
- *
- *
- */
-public class BasicPrettyPrinter implements PrettyPrinter
-{
-    protected ObjectTrace trace;
-
-    public BasicPrettyPrinter()
-    {
-    }
-
-    /**
-     * Prettifies the representation of an Object as a String.
-     * <ul>
-     *   <li>Simple types are simply toString'ed.</li>
-     *   <li>XML strings are formatted with line feeds and indentations.</li>
-     *   <li>Complex types report their class names.</li>
-     *   <li>Collections, Maps and native Arrays also report their size/length.</li>
-     * </ul>
-     * @return A prettified version of an Object as a String.
-     */
-    public String prettify(Object o)
-    {
-        try
-        {
-            trace = new ObjectTrace();
-            internalPrettify(o);
-            return trace.toString();
-        }
-        catch (Throwable t)
-        {
-            return trace.toString();
-        }
-        finally
-        {
-            trace = null;
-        }
-    }
-
-    protected void internalPrettify(Object o)
-    {
-        if (o == null)
-        {
-            trace.writeNull();
-        }
-        else if (o instanceof String)
-        {
-            String string = (String)o;
-            if (string.startsWith("<?xml"))
-            {
-                trace.write(StringUtils.prettifyXML(string));
-            }
-            else
-            {
-                trace.write(string);
-            }
-        }
-        else if (o instanceof Number || o instanceof Boolean || o instanceof Date
-                || o instanceof Calendar || o instanceof Character)
-        {
-            trace.write(o);
-        }
-        else
-        {
-            prettifyComplexType(o);
-        }
-    }
-
-    protected void prettifyComplexType(Object o)
-    {
-        StringBuffer header = new StringBuffer();
-
-        if (o instanceof PrettyPrintable)
-        {
-            PrettyPrintable pp = (PrettyPrintable)o;
-            header.append(pp.toStringHeader());
-        }
-
-        Class c = o.getClass();
-        String className = c.getName();
-
-        if (o instanceof Collection)
-        {
-            header.append(className).append(" (Collection size:").append(((Collection)o).size()).append(")");
-        }
-        else if (o instanceof Map)
-        {
-            header.append(className).append(" (Map size:").append(((Map)o).size()).append(")");
-        }
-        else if (c.isArray() && c.getComponentType() != null)
-        {
-            Class componentType = c.getComponentType();
-            className = componentType.getName();
-            header.append(className).append("[] (Array length:").append(Array.getLength(o)).append(")");
-        }
-        else
-        {
-            header.append(className);
-        }
-
-        trace.startObject(header.toString());
-        trace.endObject();
-    }
-
-    /**
-     * If the definition of toString is not from java.lang.Object or any class in the
-     * java.util.* package then we consider it a custom implementation in which case
-     * we'll use it instead of introspecting the class.
-     *
-     * @param c The class to check for a custom toString definition.
-     * @return Whether this class declares a custom toString() method.
-     */
-    protected boolean hasCustomToStringMethod(Class c)
-    {
-        try
-        {
-            Method toStringMethod = c.getMethod("toString", (Class[])null);
-            Class declaringClass = toStringMethod.getDeclaringClass();
-            if (declaringClass != Object.class
-                    && !declaringClass.getName().startsWith("java.util"))
-            {
-                return true;
-            }
-        }
-        catch (Throwable t)
-        {
-        }
-
-        return false;
-    }
-
-    public Object copy()
-    {
-        return new BasicPrettyPrinter();
-    }
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/ExceptionUtil.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/ExceptionUtil.java b/common/src/flex/messaging/util/ExceptionUtil.java
deleted file mode 100644
index 595077a..0000000
--- a/common/src/flex/messaging/util/ExceptionUtil.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
-
-/**
- *
- */
-public class ExceptionUtil
-{
-    /**
-     * List of no-arg methods that are known to return a wrapped throwable.
-     **/
-    public static String[] unwrapMethods = { "getRootCause", "getTargetException",
-                                             "getTargetError", "getException",
-                                             "getCausedByException", "getLinkedException" };
-
-    /**
-     * Get the wrapped Exception object from the Throwable object.
-     * @param t the Throwable object
-     * @return Throwable the wrapped exception object if any
-     */
-    public static Throwable wrappedException(Throwable t)
-    {
-        // Handle these statically since they are core to Java
-        return (t instanceof InvocationTargetException)? 
-                ((InvocationTargetException)t).getTargetException() : getRootCauseWithReflection(t);
-    }
-
-    /**
-     * Get to the base exception (if any).
-     * @param t the Throwable object
-     * @return the base Exception object
-     */
-    public static Throwable baseException(Throwable t) 
-    {
-        Throwable wrapped = wrappedException(t);
-        return wrapped != null? baseException(wrapped) : t;
-    }
-
-    /**
-     * Return the stack trace in a String.
-     * @param t the Throwable object
-     * @return String the String presentation of the Throwable object
-     */
-    public static String toString(Throwable t) 
-    {
-        StringWriter strWrt = new StringWriter();
-        t.printStackTrace(new PrintWriter(strWrt));
-
-        return strWrt.toString();
-    }
-
-    /**
-     * Return the stack trace up to the first line that starts with prefix.
-     *
-     * <p>Example: ExceptionUtil.getStackTraceUpTo(exception, "jrunx.");</p>
-     * @param t the Throwable object
-     * @param prefix the prefix message that we are looking for
-     * @return String the String of stack trace lines till the prefix message is located
-     */
-    public static String getStackTraceUpTo(Throwable t, String prefix) 
-    {
-        StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r");
-        StringBuffer trace = new StringBuffer();
-        boolean done = false;
-
-        String lookingFor = "at " + prefix;
-        while (!done && tokens.hasMoreElements())
-        {
-            String token = tokens.nextToken();
-            if (token.indexOf(lookingFor) == -1)
-                trace.append(token);
-            else
-                done = true;
-            trace.append(StringUtils.NEWLINE);
-        }
-
-        return trace.toString();
-    }
-
-    /**
-     * return the top n lines of this stack trace.
-     *
-     * <p>Example: ExceptionUtil.getStackTraceLines(exception, 10);</p>
-     * @param t the Throwable object
-     * @param numLines number of lines we should trace down
-     * @return String the String of stack trace lines
-     */
-    public static String getStackTraceLines(Throwable t, int numLines) 
-    {
-        StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r");
-
-        StringBuffer trace = new StringBuffer();
-
-        for (int i=0; i<numLines; i++)
-        {
-            String token = tokens.nextToken();
-            trace.append(token);
-            trace.append(StringUtils.NEWLINE);
-        }
-
-        return trace.toString();
-    }
-
-    /**
-     * Return the "nth" method call from the stack trace of "t", where 0 is
-     * the top.
-     * @param t the Throwable object
-     * @param nth the line number of the message should we skip
-     * @return String the callAt String
-     */
-    public static String getCallAt(Throwable t, int nth) 
-    {
-        StringTokenizer tokens = new StringTokenizer(toString(t), "\n\r");
-        try 
-        {
-            // Skip the first line - the exception message
-            for(int i = 0; i <= nth; ++i)
-                tokens.nextToken();
-
-            // get the method name from the next token
-            String token = tokens.nextToken();
-            int index1 = token.indexOf(' ');
-            int index2 = token.indexOf('(');
-            StringBuffer call = new StringBuffer();
-            call.append(token.substring(index1 < 0 ? 0 : index1 + 1, index2 < 0 ? call.length() : index2));
-
-            int index3 = token.indexOf(':', index2 < 0 ? 0 : index2);
-            if(index3 >= 0) 
-            {
-                int index4 = token.indexOf(')', index3);
-                call.append(token.substring(index3, index4 < 0 ? token.length() : index4));
-            }
-            return call.toString();
-        }
-        catch(NoSuchElementException e) {}
-
-        return "unknown";
-    }
-
-
-    /**
-     * Utility method for converting an exception into a string. This
-     * method unwinds all wrapped exceptions
-     * @param t The throwable exception
-     * @return The printable exception
-     */
-    public static String exceptionToString(Throwable t)
-    {
-        StringWriter sw = new StringWriter();
-        PrintWriter out = new PrintWriter(sw);
-
-        //print out the exception stack.
-        printExceptionStack(t, out, 0);
-        return sw.toString();
-    }
-    
-    /**
-     * Utility method for converting an exception and all chained root causes into a
-     * string. Unlike <code>exceptionToString(Throwable)</code> which prints the chain
-     * from most nested root cause down to the top-level exception, this method prints 
-     * from the top-level exception down to the most nested root cause.
-     * 
-     * @param t The throwable exception.
-     * @return The printable exception.
-     */
-    public static String exceptionFollowedByRootCausesToString(Throwable t)
-    {
-        StringBuffer output = new StringBuffer();
-        Throwable root = t;
-        while (root != null)
-        {
-            output.append((root == t) ? ((root instanceof Exception) ? "  Exception: " : "  Error: ") : "  Root cause: ");
-            output.append(ExceptionUtil.toString(root));
-            // Do not recurse if the root cause has already been printed; this will have happened if the root cause has
-            // been assigned to the current Throwable via initCause() or as a constructor argument.
-            Throwable cause = root.getCause();
-            root = ExceptionUtil.wrappedException(root);
-            if (cause == root)
-                break;
-        }
-        return output.toString();
-    }
-
-    /**
-     * Recursively prints out a stack of wrapped exceptions.
-     *
-     * @param th the Throwable object
-     * @param out the output writer to print to
-     * @param depth the number of levels the stack should be printed
-     */
-    protected static void printExceptionStack(Throwable th, PrintWriter out, int depth){
-        //only print the stack depth if the depth is greater than 0
-        boolean printStackDepth = depth>0;
-
-        Throwable wrappedException = ExceptionUtil.wrappedException(th);
-        if (wrappedException != null)
-        {
-            printStackDepth = true;
-            printExceptionStack(wrappedException, out, depth + 1);
-        }
-
-        if(printStackDepth){
-            out.write("[" + depth + "]");
-        }
-
-        th.printStackTrace(out);
-    }
-
-    private static Throwable getRootCauseWithReflection(Throwable t)
-    {
-        for(int i = 0; i < unwrapMethods.length; i++)
-        {
-            Method m = null;
-
-            try
-            {
-                m = t.getClass().getMethod(unwrapMethods[i], (Class[])null);
-                return (Throwable) m.invoke(t, (Object[])null);
-            }
-            catch(Exception nsme)
-            {
-                // ignore
-            }
-        }
-
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/FileUtils.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/FileUtils.java b/common/src/flex/messaging/util/FileUtils.java
deleted file mode 100644
index 31e8d30..0000000
--- a/common/src/flex/messaging/util/FileUtils.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package flex.messaging.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- *
- */
-public class FileUtils
-{
-    public static final String UTF_8 = "UTF-8";
-    public static final String UTF_16 = "UTF-16";
-
-    /**
-     * Sets a mark in the InputStream for 3 bytes to check for a BOM. If the BOM
-     * stands for UTF-8 encoded content then the stream will not be reset, otherwise
-     * for UTF-16 with a BOM or any other encoding situation the stream is reset to the
-     * mark (as for UTF-16 the parser will handle the BOM).
-     *
-     * @param in InputStream containing BOM and must support mark().
-     * @param default_encoding The default character set encoding. null or "" =&gt; system default
-     * @return The file character set encoding.
-     * @throws IOException an IOException, if something went wrong.
-     */
-    public static final String consumeBOM(InputStream in, String default_encoding) throws IOException
-    {
-        in.mark(3);
-
-        // Determine file encoding...
-        // ASCII - no header (use the supplied encoding)
-        // UTF8  - EF BB BF
-        // UTF16 - FF FE or FE FF (decoder chooses endian-ness)
-        if (in.read() == 0xef && in.read() == 0xbb && in.read() == 0xbf)
-        {
-            // UTF-8 reader does not consume BOM, so do not reset
-            if (System.getProperty("flex.platform.CLR") != null)
-            {
-                return "UTF8";
-            }
-            else
-            {
-                return UTF_8;
-            }
-        }
-        else
-        {
-            in.reset();
-            int b0 = in.read();
-            int b1 = in.read();
-            if (b0 == 0xff && b1 == 0xfe || b0 == 0xfe && b1 == 0xff)
-            {
-                in.reset();
-                // UTF-16 reader will consume BOM
-                if (System.getProperty("flex.platform.CLR") != null)
-                {
-                    return "UTF16";
-                }
-                else
-                {
-                    return UTF_16;
-                }
-            }
-            else
-            {
-                // no BOM found
-                in.reset();
-                if (default_encoding != null && default_encoding.length() != 0)
-                {
-                    return default_encoding;
-                }
-                else
-                {
-                    return System.getProperty("file.encoding");
-                }
-            }
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/LocaleUtils.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/LocaleUtils.java b/common/src/flex/messaging/util/LocaleUtils.java
deleted file mode 100644
index 5800433..0000000
--- a/common/src/flex/messaging/util/LocaleUtils.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.util.Locale;
-
-/**
- *
- */
-public class LocaleUtils
-{
-    /**
-     * Builds a <code>Locale</code> instance from the passed string. If the string
-     * is <code>null</code> this method will return the default locale for the JVM.
-     *
-     * @param locale The locale as a string.
-     * @return The Locale instance built from the passed string.
-     */
-    public static Locale buildLocale(String locale)
-    {
-        if (locale == null)
-        {
-            return Locale.getDefault();
-        }
-        else
-        {
-            int index = locale.indexOf('_');
-            if (index == -1)
-            {
-                return new Locale(locale);
-            }
-            String language = locale.substring(0, index);
-            String rest = locale.substring(index + 1);
-            index = rest.indexOf('_');
-            if (index == -1)
-            {
-                return new Locale(language, rest);
-            }
-            String country = rest.substring(0, index);
-            rest = rest.substring(index + 1);
-            return new Locale(language, country, rest);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/ObjectTrace.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/ObjectTrace.java b/common/src/flex/messaging/util/ObjectTrace.java
deleted file mode 100644
index 646d72f..0000000
--- a/common/src/flex/messaging/util/ObjectTrace.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import flex.messaging.log.Log;
-
-/**
- * Simple utility to trace an Object graph out to a StringBuffer.
- *
- * Note that new lines are NOT added after the individual values
- * in complex type properties.
- *
- *
- */
-public class ObjectTrace
-{
-
-
-    /* This boolean is used for suppressing debug output for selected properties.
-     * The logger will check this before printing a property.
-     */
-    public boolean nextElementExclude;
-
-    public ObjectTrace()
-    {
-        buffer = new StringBuffer(4096);
-    }
-
-    public ObjectTrace(int bufferSize)
-    {
-        buffer = new StringBuffer(bufferSize);
-    }
-
-    public String toString()
-    {
-        return buffer.toString();
-    }
-
-    public void write(Object o)
-    {
-        if (m_nested <= 0)
-            buffer.append(indentString());
-
-        buffer.append(String.valueOf(o));
-    }
-
-    public void writeNull()
-    {
-        if (m_nested <= 0)
-            buffer.append(indentString());
-
-        buffer.append("null");
-    }
-
-    public void writeRef(int ref)
-    {
-        if (m_nested <= 0)
-            buffer.append(indentString());
-
-        buffer.append("(Ref #").append(ref).append(")");
-    }
-
-    public void writeString(String s)
-    {
-        if (m_nested <= 0)
-            buffer.append(indentString());
-
-        buffer.append("\"").append(s).append("\"");
-    }
-
-    public void startArray(String header)
-    {
-        if (header != null && header.length() > 0)
-        {
-            if (m_nested <= 0)
-                buffer.append(indentString());
-
-            buffer.append(header).append(newLine);
-        }
-
-        m_indent++;
-        m_nested++;
-    }
-
-    public void arrayElement(int index)
-    {
-        buffer.append(indentString()).append("[").append(index).append("] = ");
-    }
-
-    public void endArray()
-    {
-        m_indent--;
-        m_nested--;
-    }
-
-    public void startObject(String header)
-    {
-        if (header != null && header.length() > 0)
-        {
-            if (m_nested <= 0)
-                buffer.append(indentString());
-
-            buffer.append(header).append(newLine);
-        }
-
-        m_indent++;
-        m_nested++;
-    }
-
-    public void namedElement(String name)
-    {
-        if (Log.isExcludedProperty(name))
-        {
-            nextElementExclude = true;
-        }
-
-        buffer.append(indentString()).append(name).append(" = ");
-    }
-
-    public void endObject()
-    {
-        m_indent--;
-        m_nested--;
-    }
-
-    public void newLine()
-    {
-        boolean alreadyPadded = false;
-        int length = buffer.length();
-
-        if (length > 3)
-        {
-            String tail = buffer.substring(length - 3, length - 1); //Get last two chars in buffer
-            alreadyPadded = tail.equals(newLine);
-        }
-
-        if (!alreadyPadded)
-            buffer.append(newLine);
-    }
-
-    /**
-     * Uses the static member, m_indent to create a string of spaces of
-     * the appropriate indentation.
-     *
-     * @return the ident string.
-     */
-    protected String indentString()
-    {
-        StringBuffer sb = new StringBuffer();
-        for (int i = 0; i < m_indent; ++i)
-        {
-            sb.append("  ");
-        }
-        return sb.toString();
-    }
-
-    protected StringBuffer buffer;
-    protected int m_indent;
-    protected int m_nested;
-    public static String newLine = StringUtils.NEWLINE;
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/PrettyPrintable.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/PrettyPrintable.java b/common/src/flex/messaging/util/PrettyPrintable.java
deleted file mode 100644
index 68fcc6e..0000000
--- a/common/src/flex/messaging/util/PrettyPrintable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-/**
- * Allows an Object to customize how it is pretty printed in
- * logging/debugging output.
- *
- *
- */
-public interface PrettyPrintable
-{
-    String toStringHeader();
-
-    String toStringCustomProperty(String name);
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/PrettyPrinter.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/PrettyPrinter.java b/common/src/flex/messaging/util/PrettyPrinter.java
deleted file mode 100644
index d0f9de0..0000000
--- a/common/src/flex/messaging/util/PrettyPrinter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-/**
- * Implementations convert Object graphs to Strings for
- * logging and debugging.
- *
- *
- */
-public interface PrettyPrinter
-{
-    String prettify(Object o);
-
-    Object copy();
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/PropertyStringResourceLoader.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/PropertyStringResourceLoader.java b/common/src/flex/messaging/util/PropertyStringResourceLoader.java
deleted file mode 100644
index 21c2f59..0000000
--- a/common/src/flex/messaging/util/PropertyStringResourceLoader.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeSet;
-
-import flex.messaging.log.Log;
-import flex.messaging.log.Logger;
-import flex.messaging.log.LogCategories;
-
-/**
- * Implementation of <code>ResourceLoader</code> that loads string resources
- * from property files.
- * <p>
- * This class uses <code>MessageFormat</code> to perform substitutions
- * within parameterized strings.
- * </p>
- *
- * @see MessageFormat
- *
- */
-public class PropertyStringResourceLoader implements ResourceLoader
-{
-    // The property file bundle that contains localized error strings for BlazeDS.
-    public static final String PROPERTY_BUNDLE = "flex/messaging/errors";
-
-    // The property file bundle that contains localized error strings for BlazeDS 
-    // code specific to vendors (eg. LoginCommands for specific application serves)
-    public static final String VENDORS_BUNDLE = "flex/messaging/vendors";
-    
-    // The property file bundle that contains localized error strings for LCDS.
-    public static final String LCDS_PROPERTY_BUNDLE = "flex/data/errors";
-
-    // The category to write log entries under.
-    private static final String LOG_CATEGORY = LogCategories.RESOURCE;
-
-    // The property bundle names to use in string lookups.
-    private String[] propertyBundles;
-
-    // The default FDS locale.
-    private Locale defaultLocale;
-
-    // The set of locales that have strings loaded.
-    private Set loadedLocales = new TreeSet();
-
-    // A map of all loaded strings.
-    private Map strings = new HashMap();
-
-    // The logger for this instance.
-    private Logger logger;
-
-    /**
-     * Constructs a <code>PropertyStringResourceLoader</code> using the default
-     * property bundles specified by the <code>PROPERTY_BUNDLE</code> and
-     * <code>LCDS_PROPERTY_BUNDLE</code> fields.
-     */
-    public PropertyStringResourceLoader()
-    {
-        this(new String[] {PROPERTY_BUNDLE, LCDS_PROPERTY_BUNDLE});
-    }
-
-    /**
-     * Constructs a <code>PropertyStringResourceLoader</code> that will use the
-     * specified property bundle to use for string lookups.
-     *
-     * @param propertyBundle The property bundles to use for lookups.
-     */
-    public PropertyStringResourceLoader(String propertyBundle)
-    {
-        this(new String[] {propertyBundle});
-    }
-
-    /**
-     * Constructs a <code>PropertyStringResourceLoader</code> that will use the
-     * specified property bundles to use for string lookups.
-     *
-     * @param propertyBundles The list of the property bundles to use for lookups.
-     */
-    public PropertyStringResourceLoader(String[] propertyBundles)
-    {
-        this.propertyBundles = propertyBundles;
-        logger = Log.getLogger(LOG_CATEGORY);
-    }
-
-    // Implements flex.messaging.util.ResourceLoader.init; inherits javadoc specification.
-    public void init(Map properties)
-    {}
-
-    // Implements flex.messaging.util.ResourceLoader.getString; inherits javadoc specification.
-    public String getString(String key)
-    {
-        return getString(key, null, null);
-    }
-
-    // Implements flex.messaging.util.ResourceLoader.getString; inherits javadoc specification.
-    public String getString(String key, Object[] arguments)
-    {
-        return getString(key, null, arguments);
-    }
-
-    // Implements flex.messaging.util.ResourceLoader.getString; inherits javadoc specification.
-    public String getString(String key, Locale locale)
-    {
-        return getString(key, locale, null);
-    }
-
-    // Implements flex.messaging.util.ResourceLoader.getString; inherits javadoc specification.
-    public String getString(String key, Locale locale, Object[] arguments)
-    {
-        synchronized(strings)
-        {
-            if (defaultLocale == null)
-            {
-                defaultLocale = getDefaultLocale();
-            }
-        }
-        String value = null;
-        String stringKey = null;
-        String localeKey = (locale != null) ?
-                           generateLocaleKey(locale) :
-                           generateLocaleKey(defaultLocale);
-        String originalStringKey = generateStringKey(key, localeKey);
-        int trimIndex = 0;
-
-        /*
-         * Attempt to get a string for the target locale - fail back to less specific
-         * versions of the locale.
-         */
-        while (true)
-        {
-            loadStrings(localeKey);
-            stringKey = generateStringKey(key, localeKey);
-            synchronized(strings)
-            {
-                value = (String) strings.get(stringKey);
-                if (value != null)
-                {
-                    if (!stringKey.equals(originalStringKey))
-                    {
-                        strings.put(originalStringKey, value);
-                    }
-                    return substituteArguments(value, arguments);
-                }
-            }
-            trimIndex = localeKey.lastIndexOf('_');
-            if (trimIndex != -1)
-            {
-                localeKey = localeKey.substring(0, trimIndex);
-            }
-            else
-            {
-                break;
-            }
-        }
-
-        /*
-         * Attempt to get the string in our default locale if it is
-         * different than the requested locale.
-         */
-        if ((locale != null) && (!locale.equals(defaultLocale)))
-        {
-            localeKey = generateLocaleKey(defaultLocale);
-            stringKey = generateStringKey(key, localeKey);
-            synchronized(strings)
-            {
-                value = (String) strings.get(stringKey);
-                if (value != null)
-                {
-                    strings.put(originalStringKey, value);
-                    return substituteArguments(value, arguments);
-                }
-            }
-        }
-
-        // As a last resort, try to get a non-locale-specific string.
-        loadStrings("");
-        stringKey = generateStringKey(key, "");
-        synchronized(strings)
-        {
-            value = (String) strings.get(stringKey);
-            if (value != null)
-            {
-                strings.put(originalStringKey, value);
-                return substituteArguments(value, arguments);
-            }
-        }
-
-        // No string is available. Return a formatted missing string value.
-        return ("???" + key + "???");
-    }
-
-    /**
-     * Sets the default locale to be used when locating resources. The
-     * string will be converted into a Locale.
-     *
-     * @param locale The default locale to be used.
-     */
-    public void setDefaultLocale(String locale)
-    {
-        defaultLocale = LocaleUtils.buildLocale(locale);
-    }
-
-    /**
-     * Sets the default locale to be used when locating resources.
-     *
-     * @param locale The default locale to be used.
-     */
-    public void setDefaultLocale(Locale locale)
-    {
-        defaultLocale = locale;
-    }
-
-    /**
-     * The default locale to be used when locating resources.
-     * @return Locale the default Locale object
-     */
-    public Locale getDefaultLocale()
-    {
-        if (defaultLocale == null)
-            defaultLocale = Locale.getDefault();
-
-        return defaultLocale;
-    }
-
-    /**
-     * Loads localized strings for the specified locale from a property file.
-     *
-     * @param localeKey The locale to load strings for.
-     */
-    protected synchronized void loadStrings(String localeKey)
-    {
-        if (loadedLocales.contains(localeKey))
-        {
-            return;
-        }
-
-        if (propertyBundles != null)
-        {
-            for (int i = 0; i < propertyBundles.length; i++)
-            {
-                String propertyBundle = propertyBundles[i];
-                loadProperties(localeKey, propertyBundle);
-            }
-        }
-    }
-
-    protected InputStream loadFile(String filename)
-    {
-        ClassLoader loader = Thread.currentThread().getContextClassLoader();
-        InputStream stream = loader.getResourceAsStream(filename);
-        
-        // Try the properties file in our classloader too - just in case
-        if (stream == null)
-        {
-            stream = PropertyStringResourceLoader.class.getClassLoader().getResourceAsStream(filename);
-        }
-        
-        return stream;
-    }
-    
-    // Helper method for loadStrings.
-    protected void loadProperties(String localeKey, String propertyBundle)
-    {
-        // Build the path to the target property file.
-        String filename = propertyBundle;
-        if (localeKey.length() > 0)
-        {
-            filename += "_" + localeKey;
-        }
-        filename += ".properties";
-        // Load the property file.
-        InputStream stream = loadFile(filename); 
-            
-        Properties props = new Properties();
-        if (stream != null)
-        {
-            try
-            {
-                props.load(stream);
-            }
-            catch (IOException ioe)
-            {
-                logger.warn("There was a problem reading the string resource property file '" + filename + "' stream.", ioe);
-            }
-            catch (IllegalArgumentException iae)
-            {
-                logger.warn("The string resource property file '" + filename + "' contains a malformed Unicode escape sequence.", iae);
-            }
-            finally
-            {
-                try
-                {
-                    stream.close();
-                }
-                catch (IOException ioe)
-                {
-                    logger.warn("The string resource property file '" + filename + "' stream failed to close.", ioe);
-                }
-            }
-        }
-        else
-        {
-            logger.warn("The class loader could not locate the string resource property file '" + filename + "'. This may not be an issue if a property file is available for a less specific locale or the default locale.");
-        }
-        // Move strings into string cache.
-        if (props.size() > 0)
-        {
-            synchronized(strings)
-            {
-                Iterator iter = props.keySet().iterator();
-                while (iter.hasNext())
-                {
-                    String key = (String) iter.next();
-                    strings.put(generateStringKey(key, localeKey), props.getProperty(key));
-                }
-            }
-        }
-    }
-
-    /**
-     * Generates a locale cache key.
-     *
-     * @param locale The locale to generate a cache key for.
-     * @return The generated cache key.
-     */
-    private String generateLocaleKey(Locale locale)
-    {
-        return (locale == null) ? "" : locale.toString();
-    }
-
-    /**
-     * Generates a cache key for a string resource.
-     *
-     * @param key The string to generate a cache key for.
-     * @param locale The locale to retrieve the string for.
-     * @return The generated cache key for the string resource.
-     */
-    private String generateStringKey(String key, String locale)
-    {
-        return (key + "-" + locale);
-    }
-
-    /**
-     * Substitutes the specified arguments into a parameterized string.
-     *
-     * @param parameterized The string containing parameter tokens for substitution.
-     * @param arguments The arguments to substitute into the parameterized string.
-     * @return The resulting substituted string.
-     */
-    private String substituteArguments(String parameterized, Object[] arguments)
-    {
-        return MessageFormat.format(parameterized, arguments).trim();
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/ResourceLoader.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/ResourceLoader.java b/common/src/flex/messaging/util/ResourceLoader.java
deleted file mode 100644
index e980f4b..0000000
--- a/common/src/flex/messaging/util/ResourceLoader.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * The root interface for classes that provide access to localized resources.
- *
- *
- */
-public interface ResourceLoader
-{
-    /**
-     * Initializes the <code>ResourceLoader</code> using the specified properties.
-     *
-     * @param properties The initialization properties.
-     */
-    void init(Map properties);
-
-    /**
-     * Sets the default locale to be used when locating resources. The
-     * string will be converted into a Locale.
-     *
-     * @param locale The default locale to be used.
-     */
-    void setDefaultLocale(String locale);
-
-    /**
-     * Sets the default locale to be used when locating resources.
-     *
-     * @param locale The default locale to be used.
-     */
-    void setDefaultLocale(Locale locale);
-
-    /**
-     * The default locale to be used when locating resources.
-     *
-     * @return The default locale.
-     */
-    Locale getDefaultLocale();
-
-    /**
-     * Gets a string for the given key.
-     *
-     * @param key The key for the target string.
-     * @return The string for the given key.
-     */
-    String getString(String key);
-
-    /**
-     * Gets a parameterized string for the given key and substitutes
-     * the parameters using the passed array of arguments.
-     *
-     * @param key The key for the target string.
-     * @param arguments The arguments to substitute into the parameterized string.
-     * @return The substituted string for the given key.
-     * @exception IllegalArgumentException If the parameterized string is invalid,
-     *            or if an argument in the <code>arguments</code> array
-     *            is not of the type expected by the format element(s)
-     *            that use it.
-     */
-    String getString(String key, Object[] arguments);
-
-    /**
-     * Gets a string for the given key and locale.
-     *
-     * @param key The key for the target string.
-     * @param locale The target locale for the string.
-     * @return The localized string for the given key.
-     */
-    String getString(String key, Locale locale);
-
-    /**
-     * Gets a parameterized string for the given key and locale and substitutes the
-     * parameters using the passed array of arguments.
-     *
-     * @param key The key for the target string.
-     * @param locale The target locale for the string.
-     * @param arguments The arguments to substitute into the parameterized string.
-     * @return The substituted localized string for the given key.
-     * @exception IllegalArgumentException If the parameterized string is invalid,
-     *            or if an argument in the <code>arguments</code> array
-     *            is not of the type expected by the format element(s)
-     *            that use it.
-     */
-    String getString(String key, Locale locale, Object[] arguments);
-
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/StringUtils.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/StringUtils.java b/common/src/flex/messaging/util/StringUtils.java
deleted file mode 100644
index 5a33f2e..0000000
--- a/common/src/flex/messaging/util/StringUtils.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-/**
- *
- */
-public class StringUtils
-{
-    /**
-     * The String to use for an OS specific line separator.
-     */
-    public static final String NEWLINE = System.getProperty("line.separator");
-
-    public static String substitute(String str, String from, String to)
-    {
-        if (from == null || from.equals("") || to == null)
-            return str;
-
-        int index = str.indexOf(from);
-
-        if (index == -1)
-            return str;
-
-        StringBuffer buf = new StringBuffer(str.length());
-        int lastIndex = 0;
-
-        while (index != -1)
-        {
-            buf.append(str.substring(lastIndex, index));
-            buf.append(to);
-            lastIndex = index + from.length();
-            index = str.indexOf(from, lastIndex);
-        }
-
-        // add in last chunk
-        buf.append(str.substring(lastIndex));
-
-        return buf.toString();
-    }
-
-    public static boolean findMatchWithWildcard(char[] src, char[] pat)
-    {
-        if (src == null || pat == null)
-            return false;
-
-        // we consider an empty pattern to be a don't-match-anything pattern
-        if (pat.length == 0)
-            return false;
-
-        if (src.length == 0)
-            return (pat.length == 0 || (pat.length == 1 && (pat[0] == '*' || pat[0] == '?')));
-
-        boolean star = false;
-
-        int srcLen = src.length;
-        int patLen = pat.length;
-        int srcIdx = 0;
-        int patIdx = 0;
-
-        for (; srcIdx < srcLen; srcIdx++)
-        {
-            if (patIdx == patLen)
-            {
-                if (patLen < (srcLen - srcIdx))
-                    patIdx = 0; //Start the search again
-                else
-                    return false;
-            }
-
-            char s = src[srcIdx];
-            char m = pat[patIdx];
-
-            switch (m)
-            {
-                case '*':
-                    // star on the end
-                    if (patIdx == pat.length - 1)
-                        return true;
-                    star = true;
-                    ++patIdx;
-                    break;
-
-                case '?':
-                    ++patIdx;
-                    break;
-
-                default:
-                    if (s != m)
-                    {
-                        if (!star)
-                        {
-                            if (patLen < (srcLen - srcIdx))
-                                patIdx = 0; //Start the search again
-                            else
-                                return false;
-                        }
-                    }
-                    else
-                    {
-                        star = false;
-                        ++patIdx;
-                    }
-                    break;
-            }
-        }
-
-        if (patIdx < patLen)
-        {
-            //read off the rest of the pattern and make sure it's all wildcard
-            for (; patIdx < patLen; patLen++)
-            {
-                if (pat[patIdx] != '*')
-                {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-
-        return !star;
-    }
-
-    /**
-     * Returns a prettified version of the XML, with indentations and
-     * linefeeds.  Returns the original string if there was an error.
-     * @param xml the xml string
-     * @return String the prettified xml string
-     */
-    public static String prettifyXML(String xml)
-    {
-        String result = xml;
-        try
-        {
-            StringReader reader = new StringReader(xml);
-            StringWriter writer = new StringWriter();
-            Transformer transformer =
-                TransformerFactory.newInstance().newTransformer();
-            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
-            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-            transformer.transform
-                (new StreamSource(reader), new StreamResult(writer));
-            writer.close();
-
-            result = writer.toString();
-        }
-        catch (TransformerFactoryConfigurationError error)
-        {
-            // Ignore.
-        }
-        catch (TransformerException error)
-        {
-            // Ignore.
-        }
-        catch (IOException error)
-        {
-            // Ignore.
-        }
-        return result;
-    }
-
-    /**
-     * Returns a prettified version of the string, or the original
-     * string if the operation is not possible.
-     * @param string the string to check
-     * @return String the prettified string
-     */
-    public static String prettifyString(String string)
-    {
-        String result = string;
-        if (string.startsWith("<?xml"))
-        {
-            result = prettifyXML(string);
-        }
-        return result;
-    }
-
-    /**
-     * Returns true if a string is null or empty.
-     * @param string the String to check
-     * @return boolean true if the string is an empty string
-     */
-    public static boolean isEmpty(String string)
-    {
-        return string == null || string.length() == 0;
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/flex/messaging/util/UUIDUtils.java
----------------------------------------------------------------------
diff --git a/common/src/flex/messaging/util/UUIDUtils.java b/common/src/flex/messaging/util/UUIDUtils.java
deleted file mode 100644
index 9fd3c57..0000000
--- a/common/src/flex/messaging/util/UUIDUtils.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package flex.messaging.util;
-
-import java.util.Random;
-import java.util.UUID;
-
-public class UUIDUtils
-{
-    private static Random _weakRand = new Random();
-	
-    /**
-     * The spec indicates that our time value should be based on 100 nano
-     * second increments but our time granularity is in milliseconds.
-     * The spec also says we can approximate the time by doing an increment
-     * when we dole out new ids in the same millisecond.  We can fit 10,000
-     * 100 nanos into a single millisecond.
-     */
-    private static final int MAX_IDS_PER_MILLI = 10000;
-	
-    /**
-     *  Any given time-of-day value can only be used once; remember the last used
-     *  value so we don't reuse them.
-     *  <p>NOTE: this algorithm assumes the clock will not be turned back.
-     */
-    private static long lastUsedTOD = 0;
-    /** Counter to use when we need more than one id in the same millisecond. */
-    private static int numIdsThisMilli = 0;
-	
-    /**  Hex digits, used for padding UUID strings with random characters. */
-    private static final String alphaNum = "0123456789ABCDEF";
-	
-    /** 4 bits per hex character. */
-    private static final int BITS_PER_DIGIT = 4;
-	
-    private static final int BITS_PER_INT = 32;
-    private static final int BITS_PER_LONG = 64;
-    private static final int DIGITS_PER_INT = BITS_PER_INT / BITS_PER_DIGIT;
-    private static final int DIGITS_PER_LONG = BITS_PER_LONG / BITS_PER_DIGIT;
-	
-    /**
-     *  @private
-     */
-    private static char[] UPPER_DIGITS = new char[] {
-	'0', '1', '2', '3', '4', '5', '6', '7',
-	'8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
-    };
-	
-    /**
-     * Private constructor to prevent instances from being created.
-     */
-    private UUIDUtils()
-    {
-    }
-	
-    /**
-     *
-     * Use the createUUID function when you need a unique string that you will
-     * use as a persistent identifier in a distributed environment. To a very
-     * high degree of certainty, this function returns a unique value; no other
-     * invocation on the same or any other system should return the same value.
-     *
-     * @return a Universally Unique Identifier (UUID)
-     * Proper Format: `XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
-     * where `X' stands for a hexadecimal digit (0-9 or A-F).
-     */
-    public static String createUUID()
-    {
-		return createUUID(false);
-	}
-	
-    public static String createUUID(boolean secure) throws Error
-    {
-        Random rand = _weakRand;
-		if (secure)
-			throw new Error("Secure UUIDs not implemented");
-		
-        StringBuffer s = new StringBuffer(36);
-		
-        appendHexString(uniqueTOD(), false, 11, s);
-		
-        //  Just use random padding characters, but ensure that the high bit
-        //  is set to eliminate chances of collision with an IEEE 802 address.
-        s.append(  alphaNum.charAt( rand.nextInt(16) | 8 ) );
-		
-        //  Add random padding characters.
-        appendRandomHexChars(32 - s.length(), rand, s);
-		
-        //insert dashes in proper position. so the format matches CF
-        s.insert(8,"-");
-        s.insert(13,"-");
-        s.insert(18,"-");
-        s.insert(23,"-");
-		
-        return s.toString();
-    }
-
-    /**
-     * Converts a 128-bit UID encoded as a byte[] to a String representation.
-     * The format matches that generated by createUID. If a suitable byte[]
-     * is not provided, null is returned.
-     *
-     * @param ba byte[] 16 bytes in length representing a 128-bit UID.
-     *
-     * @return String representation of the UID, or null if an invalid
-     * byte[] is provided.
-     */
-    public static String fromByteArray(byte[] ba)
-    {
-        if (ba == null || ba.length != 16)
-            return null;
-
-        StringBuffer result = new StringBuffer(36);
-        for (int i = 0; i < 16; i++)
-        {
-            if (i == 4 || i == 6 || i == 8 || i == 10)
-                result.append('-');
-
-            result.append(UPPER_DIGITS[(ba[i] & 0xF0) >>> 4]);
-            result.append(UPPER_DIGITS[(ba[i] & 0x0F)]);
-        }
-        return result.toString();
-    }
-
-	
-    /**
-     * A utility method to check whether a String value represents a
-     * correctly formatted UID value. UID values are expected to be
-     * in the format generated by createUID(), implying that only
-     * capitalized A-F characters in addition to 0-9 digits are
-     * supported.
-     *
-     * @param uid The value to test whether it is formatted as a UID.
-     *
-     * @return Returns true if the value is formatted as a UID.
-     */
-    public static boolean isUID(String uid)
-    {
-        if (uid == null || uid.length() != 36)
-            return false;
-
-        char[] chars = uid.toCharArray();
-        for (int i = 0; i < 36; i++)
-        {
-            char c = chars[i];
-
-            // Check for correctly placed hyphens
-            if (i == 8 || i == 13 || i == 18 || i == 23)
-            {
-                if (c != '-')
-                    return false;
-            }
-            // We allow capital alpha-numeric hex digits only
-            else if (c < 48 || c > 70 || (c > 57 && c < 65))
-            {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Converts a UID formatted String to a byte[]. The UID must be in the
-     * format generated by createUID, otherwise null is returned.
-     *
-     * @param uid String representing a 128-bit UID.
-     *
-     * @return byte[] 16 bytes in length representing the 128-bits of the
-     * UID or null if the uid could not be converted.
-     */
-    public static byte[] toByteArray(String uid)
-    {
-        if (!isUID(uid))
-            return null;
-
-        byte[] result = new byte[16];
-        char[] chars = uid.toCharArray();
-        int r = 0;
-
-        for (int i = 0; i < chars.length; i++)
-        {
-            if (chars[i] == '-')
-                continue;
-            int h1 = Character.digit(chars[i], 16);
-            i++;
-            int h2 = Character.digit(chars[i], 16);
-            result[r++] = (byte)(((h1 << 4) | h2) & 0xFF);
-        }
-        return result;
-    }
-
-    private static void appendRandomHexChars(int n, Random rand, StringBuffer result)
-    {
-        int digitsPerInt = DIGITS_PER_INT;
-        while (n > 0)
-        {
-            int digitsToUse = Math.min(n, digitsPerInt);
-            n -= digitsToUse;
-            appendHexString(rand.nextInt(), true, digitsToUse, result);
-        }
-    }
-
-    private static void appendHexString
-        (long value, boolean prependZeroes, int nLeastSignificantDigits,
-         StringBuffer result)
-    {
-        int bitsPerDigit = BITS_PER_DIGIT;
-
-        long mask = (1L << bitsPerDigit) - 1;
-
-        if (nLeastSignificantDigits < DIGITS_PER_LONG)
-        {
-            // Clear the bits that we don't care about.
-            value &= (1L << (bitsPerDigit * nLeastSignificantDigits)) - 1;
-        }
-
-        // Reorder the sequence so that the first set of bits will become the
-        // last set of bits.
-        int i = 0;
-        long reorderedValue = 0;
-        if (value == 0)
-        {
-            // One zero is dumped.
-            i++;
-        }
-        else
-        {
-            do
-            {
-                reorderedValue = (reorderedValue << bitsPerDigit) | (value & mask);
-                value >>>= bitsPerDigit;
-                i++;
-            } while (value != 0);
-        }
-
-        if (prependZeroes)
-        {
-            for (int j = nLeastSignificantDigits - i; j > 0; j--)
-            {
-                result.append('0');
-            }
-        }
-
-
-        // Dump the reordered sequence, with the most significant character
-        // first.
-        for (; i > 0; i--)
-        {
-            result.append(alphaNum.charAt((int) (reorderedValue & mask)));
-            reorderedValue >>>= bitsPerDigit;
-        }
-    }
-
-    private static String createInsecureUUID()
-    {
-        StringBuffer s = new StringBuffer(36);
-
-        appendHexString(uniqueTOD(), false, 11, s);
-
-        //  Just use random padding characters, but ensure that the high bit
-        //  is set to eliminate chances of collision with an IEEE 802 address.
-        s.append(  alphaNum.charAt( _weakRand.nextInt(16) | 8 ) );
-
-        //  Add random padding characters.
-        appendRandomHexChars(32 - s.length(), _weakRand, s);
-
-        //insert dashes in proper position. so the format matches CF
-        s.insert(8,"-");
-        s.insert(13,"-");
-        s.insert(18,"-");
-        s.insert(23,"-");
-
-        return s.toString();
-    }
-
-    /**
-     *  @return a time value, unique for calls to this method loaded by the same classloader.
-     */
-    private static synchronized long uniqueTOD()
-    {
-        long currentTOD = System.currentTimeMillis();
-
-        // Clock was set back... do not hang in this case waiting to catch up.
-        // Instead, rely on the random number part to differentiate the ids.
-        if (currentTOD < lastUsedTOD)
-            lastUsedTOD = currentTOD;
-
-        if (currentTOD == lastUsedTOD)
-        {
-            numIdsThisMilli++;
-            /*
-             * Fall back to the old technique of sleeping if we allocate
-             * too many ids in one time interval.
-             */
-            if (numIdsThisMilli >= MAX_IDS_PER_MILLI)
-            {
-                while ( currentTOD == lastUsedTOD )
-                {
-                    try { Thread.sleep(1); } catch ( Exception interrupt ) { /* swallow, wake up */ }
-                    currentTOD = System.currentTimeMillis();
-                }
-                lastUsedTOD = currentTOD;
-                numIdsThisMilli = 0;
-            }
-        }
-        else
-        {
-            //  We have a new TOD, reset the counter
-            lastUsedTOD = currentTOD;
-            numIdsThisMilli = 0;
-        }
-
-        return lastUsedTOD * MAX_IDS_PER_MILLI + (long)numIdsThisMilli;
-    }
-}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/main/java/flex/graphics/ImageSnapshot.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/flex/graphics/ImageSnapshot.java b/common/src/main/java/flex/graphics/ImageSnapshot.java
new file mode 100644
index 0000000..1dc97f0
--- /dev/null
+++ b/common/src/main/java/flex/graphics/ImageSnapshot.java
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+package flex.graphics;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This class corresponds to mx.graphics.ImageSnapshot on the client.  Clients may choose
+ * to capture images and send them to the server via a RemoteObject call.  The PDF generation 
+ * feature of LCDS may then be used to generate PDF's from these images.  
+ *
+ */
+public class ImageSnapshot extends HashMap
+{
+    private static final long serialVersionUID = 7914317354403674061L;
+
+    /**
+     * Default constructor.
+     */
+    public ImageSnapshot()
+    {
+    }
+
+    private Map properties;
+    private String contentType;
+    private byte[] data;
+    private int height;
+    private int width;
+
+    /**
+     * The content type for the image encoding format that was used to capture
+     * this snapshot.
+     * 
+     * @return content type of this image
+     */
+    public String getContentType()
+    {
+        return contentType;
+    }
+
+    /**
+     * Sets content type of this snapshot.
+     * 
+     * @param value content type
+     */
+    public void setContentType(String value)
+    {
+        contentType = value;
+    }
+
+    /**
+     * The encoded data representing the image snapshot.
+     * 
+     * @return encoded image data
+     */
+    public byte[] getData()
+    {
+        return data;
+    }
+
+    /**
+     * Set the encoded data representing the image snapshot.
+     * 
+     * @param value byte array of image data
+     */
+    public void setData(byte[] value)
+    {
+        data = value;
+    }
+
+    /**
+     * The image height in pixels.
+     * 
+     * @return image height in pixels
+     */
+    public int getHeight()
+    {
+        return height;
+    }
+
+    /**
+     * Set image height in pixels.
+     * 
+     * @param value image height in pixels.
+     */
+    public void setHeight(int value)
+    {
+        height = value;
+    }
+
+    /**
+     * Additional properties of the image.
+     * 
+     * @return a map containing the dynamically set properties on this snapshot
+     */
+    public Map getProperties()
+    {
+        return properties;
+    }
+
+    /**
+     * Sets the map of dynamic properties for this snapshot.
+     * 
+     * @param value map containing dynamic properties for this snapshot
+     */
+    public void setProperties(Map value)
+    {
+        properties = value;
+    }
+
+    /**
+     * The image width in pixels.
+     * 
+     * @return width in pixels
+     */
+    public int getWidth()
+    {
+        return width;
+    }
+
+    /**
+     * Set width in pixels.
+     * 
+     * @param value width in pixels.
+     */
+    public void setWidth(int value)
+    {
+        width = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/common/src/main/java/flex/graphics/package-info.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/flex/graphics/package-info.java b/common/src/main/java/flex/graphics/package-info.java
new file mode 100644
index 0000000..87093bf
--- /dev/null
+++ b/common/src/main/java/flex/graphics/package-info.java
@@ -0,0 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package flex.graphics;
\ No newline at end of file