You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by jl...@apache.org on 2007/10/25 19:10:56 UTC

svn commit: r588283 [3/18] - in /incubator/cxf/branches/jliu: ./ api/ api/src/main/java/org/apache/cxf/databinding/ api/src/main/java/org/apache/cxf/io/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/phase/ api/src/main/java...

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/logging/LogUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/logging/LogUtils.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/logging/LogUtils.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/logging/LogUtils.java Thu Oct 25 10:09:20 2007
@@ -19,6 +19,11 @@
 
 package org.apache.cxf.common.logging;
 
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
 import java.text.MessageFormat;
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
@@ -27,14 +32,19 @@
 import java.util.logging.Logger;
 
 import org.apache.cxf.common.i18n.BundleUtils;
+import org.apache.cxf.common.util.StringUtils;
 
 
 /**
  * A container for static utility methods related to logging.
  */
 public final class LogUtils {
+    public static final String KEY = "org.apache.cxf.Logger";
     
     private static final Object[] NO_PARAMETERS = new Object[0];
+
+    
+    private static Class<?> loggerClass;
     
     /**
      * Prevents instantiation.
@@ -42,6 +52,74 @@
     private LogUtils() {
     }
 
+    static {
+        try {
+            String cname = System.getProperty(KEY);
+            if (StringUtils.isEmpty(cname)) {
+                InputStream ins = Thread.currentThread().getContextClassLoader()
+                    .getResourceAsStream("META-INF/cxf/" + KEY);
+                if (ins == null) {
+                    ins = ClassLoader.getSystemResourceAsStream("META-INF/cxf/" + KEY);
+                }
+                if (ins != null) {
+                    BufferedReader din = new BufferedReader(new InputStreamReader(ins));
+                    cname = din.readLine();
+                }
+            }
+            if (!StringUtils.isEmpty(cname)) {
+                loggerClass = Class.forName(cname, true,
+                                            Thread.currentThread().getContextClassLoader());
+                getLogger(LogUtils.class).fine("Using " + loggerClass.getName() + " for logging.");
+            }
+        } catch (Exception ex) {
+            //ignore
+        }
+    }
+    
+    
+    /**
+     * Enable users to use their own logger implementation.
+     */
+    public static void setLoggerClass(Class<?> cls) {
+        loggerClass = cls;
+    }
+
+    
+    /**
+     * Get a Logger with the associated default resource bundle for the class.
+     *
+     * @param cls the Class to contain the Logger
+     * @return an appropriate Logger 
+     */
+    public static Logger getLogger(Class<?> cls) {
+        return createLogger(cls, null, cls.getName());
+    }
+    
+    /**
+     * Get a Logger with an associated resource bundle.
+     *
+     * @param cls the Class to contain the Logger
+     * @param name the resource name
+     * @return an appropriate Logger 
+     */
+    public static Logger getLogger(Class<?> cls, String resourcename) {
+        return createLogger(cls, resourcename, cls.getName());
+    }
+
+    /**
+     * Get a Logger with an associated resource bundle.
+     *
+     * @param cls the Class to contain the Logger (to find resources)
+     * @param name the resource name
+     * @param loggerName the full name for the logger
+     * @return an appropriate Logger 
+     */
+    public static Logger getLogger(Class<?> cls,
+                                     String resourcename,
+                                     String loggerName) {
+        return createLogger(cls, resourcename, loggerName);
+    }
+
     /**
      * Get a Logger with the associated default resource bundle for the class.
      *
@@ -49,11 +127,7 @@
      * @return an appropriate Logger 
      */
     public static Logger getL7dLogger(Class<?> cls) {
-        try {
-            return Logger.getLogger(cls.getName(), BundleUtils.getBundleName(cls));
-        } catch (MissingResourceException rex) {
-            return Logger.getLogger(cls.getName());
-        }
+        return createLogger(cls, null, cls.getName());
     }
     
     /**
@@ -63,8 +137,67 @@
      * @param name the resource name
      * @return an appropriate Logger 
      */
-    public static Logger getL7dLogger(Class<?> cls, String name) {
-        return Logger.getLogger(cls.getName(), BundleUtils.getBundleName(cls, name));
+    public static Logger getL7dLogger(Class<?> cls, String resourcename) {
+        return createLogger(cls, resourcename, cls.getName());
+    }
+
+    /**
+     * Get a Logger with an associated resource bundle.
+     *
+     * @param cls the Class to contain the Logger (to find resources)
+     * @param name the resource name
+     * @param loggerName the full name for the logger
+     * @return an appropriate Logger 
+     */
+    public static Logger getL7dLogger(Class<?> cls,
+                                      String resourcename,
+                                      String loggerName) {
+        return createLogger(cls, resourcename, loggerName);
+    }
+    
+    /**
+     * Create a logger
+     */
+    protected static Logger createLogger(Class<?> cls, 
+                                         String name, 
+                                         String loggerName) {
+        if (loggerClass != null) {
+            try {
+                Constructor cns = loggerClass.getConstructor(String.class, String.class);
+                if (name == null) {
+                    try {
+                        return (Logger) cns.newInstance(loggerName, BundleUtils.getBundleName(cls));
+                    } catch (InvocationTargetException ite) {
+                        if (ite.getTargetException() instanceof MissingResourceException) {
+                            return (Logger) cns.newInstance(loggerName, null);
+                        } else {
+                            throw ite;
+                        }
+                    } 
+                } else {
+                    try {
+                        return (Logger) cns.newInstance(loggerName, BundleUtils.getBundleName(cls, name));
+                    } catch (InvocationTargetException ite) {
+                        if (ite.getTargetException() instanceof MissingResourceException) {
+                            throw (MissingResourceException)ite.getTargetException();
+                        } else {
+                            throw ite;
+                        }
+                    } 
+                }
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+        if (name == null) {
+            try {
+                return Logger.getLogger(loggerName, BundleUtils.getBundleName(cls)); //NOPMD
+            } catch (MissingResourceException rex) {
+                return Logger.getLogger(loggerName, null); //NOPMD
+            }
+        } else {
+            return Logger.getLogger(loggerName, BundleUtils.getBundleName(cls, name)); //NOPMD
+        }
     }
 
     /**

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ParamReader.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ParamReader.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ParamReader.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ParamReader.java Thu Oct 25 10:09:20 2007
@@ -132,7 +132,7 @@
         try {
             // get a parameter reader
             ParamReader pr = new ParamReader(c);
-            // get the paramter names
+            // get the parameter names
             return pr.getParameterNames(method);
         } catch (IOException e) {
             // log it and leave

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ReflectionUtil.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ReflectionUtil.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ReflectionUtil.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/common/util/ReflectionUtil.java Thu Oct 25 10:09:20 2007
@@ -31,20 +31,51 @@
 
     public static List<String> getPackagesFromJar(File jarFile) throws IOException {
         List<String> packageNames = new ArrayList<String>();
-        JarResource resource = new JarResource();
-        for (String item : resource.getJarContents(jarFile)) {
-            if (!item.endsWith(".class")) {
-                continue;
-            }
-            String packageName = getPackageName(item);
-            if (!packageNames.contains(packageName)) {
-                packageNames.add(packageName);
+        if (jarFile.isDirectory()) {
+            getPackageNamesFromDir(jarFile, jarFile, packageNames);
+        } else {
+            JarResource resource = new JarResource();
+            for (String item : resource.getJarContents(jarFile)) {
+                if (!item.endsWith(".class")) {
+                    continue;
+                }
+                String packageName = getPackageName(item);
+                if (!StringUtils.isEmpty(packageName)
+                    && !packageNames.contains(packageName)) {
+                    packageNames.add(packageName);
+                }
             }
         }
         return packageNames;
     }
+    
+    private static void getPackageNamesFromDir(File base, File dir, List<String> pkgs) {
+        boolean foundClass = false;
+        for (File file : dir.listFiles()) {
+            if (file.isDirectory()) {
+                getPackageNamesFromDir(base, file, pkgs);
+            } else if (!foundClass && file.getName().endsWith(".class")) {
+                foundClass = true;
+                String pkg = "";
+                file = dir;
+                while (!file.equals(base)) {
+                    if (!"".equals(pkg)) {
+                        pkg = "." + pkg;
+                    }
+                    pkg = file.getName() + pkg;
+                    file = file.getParentFile();
+                }
+                if (!pkgs.contains(pkg)) {
+                    pkgs.add(pkg);
+                }
+            }
+        }
+    }
 
     private static String getPackageName(String clzName) {
+        if (clzName.indexOf("/") == -1) {
+            return null;
+        }
         String packageName = clzName.substring(0, clzName.lastIndexOf("/"));
         return packageName.replace("/", ".");
     }

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java Thu Oct 25 10:09:20 2007
@@ -64,6 +64,12 @@
             String val = node.getValue();
             String pre = node.getPrefix();
             String name = node.getLocalName();
+            String prefix = node.getPrefix();
+            
+            // Don't process namespaces
+            if (isNamespace(name, prefix)) {
+                continue;
+            }
             
             if ("createdFromAPI".equals(name)) {
                 bean.setAbstract(true);
@@ -84,6 +90,10 @@
             }
         } 
         return setBus;
+    }
+
+    private boolean isNamespace(String name, String prefix) {
+        return "xmlns".equals(prefix) || prefix == null && "xmlns".equals(name);
     }
     
     protected void parseChildElements(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanMap.java Thu Oct 25 10:09:20 2007
@@ -18,50 +18,26 @@
  */
 package org.apache.cxf.configuration.spring;
 
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.cxf.helpers.CastUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
+
 import org.springframework.beans.Mergeable;
 import org.springframework.beans.PropertyValue;
-import org.springframework.beans.factory.BeanInitializationException;
 import org.springframework.beans.factory.BeanIsAbstractException;
-import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.config.TypedStringValue;
 import org.springframework.beans.factory.support.ManagedList;
 import org.springframework.beans.factory.support.ManagedSet;
 import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ConfigurableApplicationContext;
 
-public class SpringBeanMap<V> implements ApplicationContextAware, InitializingBean, Map<String, V> {
-    private ApplicationContext context;
-    private Class<?> type;
-    private String idsProperty;
-    private Map<String, String> idToBeanName = new ConcurrentHashMap<String, String>();
-    private Map<String, V> putStore = new ConcurrentHashMap<String, V>();
-
-    public void setApplicationContext(ApplicationContext ctx) throws BeansException {
-        this.context = ctx;
-    }
-
-    public void afterPropertiesSet() throws Exception {
-        processBeans(context);
-    }
+public class SpringBeanMap<V> 
+    extends AbstractSpringBeanMap<String, V> {
 
-    private void processBeans(ApplicationContext beanFactory) {
+    
+    protected void processBeans(ApplicationContext beanFactory) {
         if (beanFactory == null) {
             return;
         }
@@ -117,7 +93,7 @@
                     ids = newIds;
                 }
                 for (Object id : ids) {
-                    idToBeanName.put(id.toString(), beanNames[i]);
+                    getBeanListForId(id.toString()).add(beanNames[i]);
                 }
             } catch (BeanIsAbstractException e) {
                 // The bean is abstract, we won't be doing anything with it.
@@ -126,140 +102,5 @@
         }
 
         processBeans(ctxt.getParent());
-    }
-
-    private Collection<String> getIds(Object bean) {
-        try {
-            PropertyDescriptor pd = BeanUtils.getPropertyDescriptor(bean.getClass(), idsProperty);
-            Method method = pd.getReadMethod();
-            Collection<String> c = CastUtils.cast((Collection<?>)method.invoke(bean, new Object[0]));
-
-            return c;
-        } catch (IllegalArgumentException e) {
-            throw new BeanInitializationException("Could not retrieve ids.", e);
-        } catch (IllegalAccessException e) {
-            throw new BeanInitializationException("Could not access id getter.", e);
-        } catch (InvocationTargetException e) {
-            throw new BeanInitializationException("Could not invoke id getter.", e);
-        } catch (SecurityException e) {
-            throw new BeanInitializationException("Could not invoke id getter.", e);
-        }
-    }
-
-    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
-        return bean;
-    }
-
-    public Class<?> getType() {
-        return type;
-    }
-
-    public void setType(Class<?> type) {
-        this.type = type;
-    }
-
-    public String getIdsProperty() {
-        return idsProperty;
-    }
-
-    public void setIdsProperty(String idsProperty) {
-        this.idsProperty = idsProperty;
-    }
-
-    public void clear() {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean containsKey(Object key) {
-        return idToBeanName.containsKey(key) || putStore.containsKey(key);
-    }
-
-    public boolean containsValue(Object arg0) {
-        throw new UnsupportedOperationException();
-    }
-
-    public Set<java.util.Map.Entry<String, V>> entrySet() {
-        Set<Map.Entry<String, V>> entries = new HashSet<Map.Entry<String, V>>();
-        for (String k : keySet()) {
-            entries.add(new Entry<V>(this, k));
-        }
-        return entries;
-    }
-
-    @SuppressWarnings("unchecked")
-    public V get(Object key) {
-        String name = idToBeanName.get(key);
-        if (name != null) {
-            return (V)context.getBean(name);
-        } else {
-            return putStore.get(key);
-        }
-    }
-
-    public boolean isEmpty() {
-        return idToBeanName.isEmpty() && putStore.isEmpty();
-    }
-
-    public Set<String> keySet() {
-        Set<String> keys = new HashSet<String>();
-        keys.addAll(idToBeanName.keySet());
-        keys.addAll(putStore.keySet());
-        return keys;
-    }
-
-    public V put(String key, V value) {
-        // Make sure we don't take the key from Spring any more
-        idToBeanName.remove(key);
-        return putStore.put(key, value);
-    }
-
-    public void putAll(Map<? extends String, ? extends V> m) {
-        putStore.putAll(m);
-    }
-
-    public V remove(Object key) {
-        V v = get(key);
-        if (v != null) {
-            idToBeanName.remove(key);
-        } else {
-            v = putStore.get(key);
-        }
-
-        return v;
-    }
-
-    public int size() {
-        return idToBeanName.size() + putStore.size();
-    }
-
-    public Collection<V> values() {
-        List<V> values = new ArrayList<V>();
-        values.addAll(putStore.values());
-        for (String id : idToBeanName.keySet()) {
-            values.add(get(id));
-        }
-        return values;
-    }
-    
-    public static class Entry<V> implements Map.Entry<String, V> {
-        private SpringBeanMap<V> map;
-        private String key;
-
-        public Entry(SpringBeanMap<V> map, String key) {
-            this.map = map;
-            this.key = key;
-        }
-        
-        public String getKey() {
-            return key;
-        }
-
-        public V getValue() {
-            return map.get(key);
-        }
-
-        public V setValue(V value) {
-            return map.put(key, value);
-        }
     }
 }

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java Thu Oct 25 10:09:20 2007
@@ -18,49 +18,23 @@
  */
 package org.apache.cxf.configuration.spring;
 
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
 
 import javax.xml.namespace.QName;
 
-import org.apache.cxf.helpers.CastUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
 import org.springframework.beans.Mergeable;
 import org.springframework.beans.PropertyValue;
-import org.springframework.beans.factory.BeanInitializationException;
 import org.springframework.beans.factory.BeanIsAbstractException;
-import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.beans.factory.config.BeanReference;
 import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ConfigurableApplicationContext;
 
-public class SpringBeanQNameMap<V> implements ApplicationContextAware, InitializingBean, Map<QName, V> {
-    private ApplicationContext context;
-    private Class<?> type;
-    private String idsProperty;
-    private Map<QName, String> idToBeanName = new ConcurrentHashMap<QName, String>();
-    private Map<QName, V> putStore = new ConcurrentHashMap<QName, V>();
+public class SpringBeanQNameMap<V> 
+    extends AbstractSpringBeanMap<QName, V> {
 
-    public void setApplicationContext(ApplicationContext ctx) throws BeansException {
-        this.context = ctx;
-    }
-
-    public void afterPropertiesSet() throws Exception {
-        processBeans(context);
-    }
-
-    private void processBeans(ApplicationContext beanFactory) {
+    protected void processBeans(ApplicationContext beanFactory) {
         if (beanFactory == null) {
             return;
         }
@@ -129,7 +103,7 @@
                 
                 for (Object id : ids) {
                     QName key = (QName)id;
-                    idToBeanName.put(key, beanNames[i]);
+                    getBeanListForId(key).add(beanNames[i]);
                 }
             } catch (BeanIsAbstractException e) {
                 // The bean is abstract, we won't be doing anything with it.
@@ -140,139 +114,4 @@
         processBeans(ctxt.getParent());
     }
 
-    private Collection<QName> getIds(Object bean) {
-        try {
-            PropertyDescriptor pd = BeanUtils.getPropertyDescriptor(bean.getClass(), idsProperty);
-            Method method = pd.getReadMethod();
-            Collection<QName> c = CastUtils.cast((Collection<?>)method.invoke(bean, new Object[0]),
-                QName.class);
-
-            return c;
-        } catch (IllegalArgumentException e) {
-            throw new BeanInitializationException("Could not retrieve ids.", e);
-        } catch (IllegalAccessException e) {
-            throw new BeanInitializationException("Could not access id getter.", e);
-        } catch (InvocationTargetException e) {
-            throw new BeanInitializationException("Could not invoke id getter.", e);
-        } catch (SecurityException e) {
-            throw new BeanInitializationException("Could not invoke id getter.", e);
-        }
-    }
-
-    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
-        return bean;
-    }
-
-    public Class<?> getType() {
-        return type;
-    }
-
-    public void setType(Class<?> type) {
-        this.type = type;
-    }
-
-    public String getIdsProperty() {
-        return idsProperty;
-    }
-
-    public void setIdsProperty(String idsProperty) {
-        this.idsProperty = idsProperty;
-    }
-
-    public void clear() {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean containsKey(Object key) {
-        return idToBeanName.containsKey(key) || putStore.containsKey(key);
-    }
-
-    public boolean containsValue(Object arg0) {
-        throw new UnsupportedOperationException();
-    }
-
-    public Set<java.util.Map.Entry<QName, V>> entrySet() {
-        Set<Map.Entry<QName, V>> entries = new HashSet<Map.Entry<QName, V>>();
-        for (QName k : keySet()) {
-            entries.add(new Entry<V>(this, k));
-        }
-        return entries;
-    }
-
-    @SuppressWarnings("unchecked")
-    public V get(Object key) {
-        String name = idToBeanName.get(key);
-        if (name != null) {
-            return (V)(context.getBean(name));
-        } else {
-            return putStore.get(key);
-        }
-    }
-
-    public boolean isEmpty() {
-        return idToBeanName.isEmpty() && putStore.isEmpty();
-    }
-
-    public Set<QName> keySet() {
-        Set<QName> keys = new HashSet<QName>();
-        keys.addAll(idToBeanName.keySet());
-        keys.addAll(putStore.keySet());
-        return keys;
-    }
-
-    public V put(QName key, V value) {
-        // Make sure we don't take the key from Spring any more
-        idToBeanName.remove(key);
-        return putStore.put(key, value);
-    }
-
-    public void putAll(Map<? extends QName, ? extends V> m) {
-        putStore.putAll(m);
-    }
-
-    public V remove(Object key) {
-        V v = get(key);
-        if (v != null) {
-            idToBeanName.remove(key);
-        } else {
-            v = putStore.get(key);
-        }
-
-        return v;
-    }
-
-    public int size() {
-        return idToBeanName.size() + putStore.size();
-    }
-
-    public Collection<V> values() {
-        List<V> values = new ArrayList<V>();
-        values.addAll(putStore.values());
-        for (QName id : idToBeanName.keySet()) {
-            values.add(get(id));
-        }
-        return values;
-    }
-    
-    public static class Entry<V> implements Map.Entry<QName, V> {
-        private SpringBeanQNameMap<V> map;
-        private QName key;
-
-        public Entry(SpringBeanQNameMap<V> map, QName key) {
-            this.map = map;
-            this.key = key;
-        }
-        
-        public QName getKey() {
-            return key;
-        }
-
-        public V getValue() {
-            return map.get(key);
-        }
-
-        public V setValue(V value) {
-            return map.put(key, value);
-        }
-    }
 }

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/FileUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/FileUtils.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/FileUtils.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/FileUtils.java Thu Oct 25 10:09:20 2007
@@ -20,18 +20,47 @@
 package org.apache.cxf.helpers;
 
 import java.io.File;
-import java.text.DecimalFormat;
+import java.io.IOException;
 import java.util.Locale;
-import java.util.Random;
 
 public final class FileUtils {
     private static final int RETRY_SLEEP_MILLIS = 10;
-    private static Random rand = new Random(System.currentTimeMillis()
-                                            + Runtime.getRuntime().freeMemory());
-
+    private static File defaultTempDir;
+    
+    
     private FileUtils() {
         
     }
+    
+    private static synchronized File getDefaultTempDir() {
+        if (defaultTempDir != null) {
+            return defaultTempDir;
+        }
+        String s = System.getProperty(FileUtils.class.getName() + ".TempDirectory");
+        if (s == null) {
+            int x = (int)(Math.random() * 1000000);
+            s = System.getProperty("java.io.tmpdir");
+            File f = new File(s, "cxf-tmp-" + x);
+            while (!f.mkdir()) {
+                x = (int)(Math.random() * 1000000);
+                f = new File(s, "cxf-tmp-" + x);
+            }
+            defaultTempDir = f;
+            Thread hook = new Thread() {
+                @Override
+                public void run() {
+                    removeDir(defaultTempDir);
+                }
+            };
+            Runtime.getRuntime().addShutdownHook(hook);            
+        } else {
+            //assume someone outside of us will manage the directory
+            File f = new File(s);
+            f.mkdirs();
+            defaultTempDir = f;
+        }
+        return defaultTempDir;
+    }
 
     public static void mkDir(File dir) {
         if (dir == null) {
@@ -108,26 +137,31 @@
         return osName.indexOf("windows") > -1;
     }
 
-    public static File createTempFile(String prefix, String suffix) {
-        return createTempFile(prefix, suffix, null, true);
+    public static File createTempFile(String prefix, String suffix) throws IOException {
+        return createTempFile(prefix, suffix, null, false);
     }
-
+    
     public static File createTempFile(String prefix, String suffix, File parentDir,
-                               boolean deleteOnExit) {
+                               boolean deleteOnExit) throws IOException {
         File result = null;
-        String parent = (parentDir == null)
-            ? System.getProperty("java.io.tmpdir")
-            : parentDir.getPath();
-
-        DecimalFormat fmt = new DecimalFormat("#####");
-        synchronized (rand) {
-            do {
-                result = new File(parent,
-                                  prefix + fmt.format(Math.abs(rand.nextInt()))
-                                  + suffix);
-            } while (result.exists());
-        }
-        if (deleteOnExit) {
+        File parent = (parentDir == null)
+            ? getDefaultTempDir()
+            : parentDir;
+            
+        if (suffix == null) {
+            suffix = ".tmp";
+        }
+        if (prefix == null) {
+            prefix = "cxf";
+        } else if (prefix.length() < 3) {
+            prefix = prefix + "cxf";
+        }
+        result = File.createTempFile(prefix, suffix, parent);
+
+        //if parentDir is null, we're in our default dir
+        //which will get completely wiped on exit from our exit
+        //hook.  No need to set deleteOnExit() which leaks memory.
+        if (deleteOnExit && parentDir != null) {
             result.deleteOnExit();
         }
         return result;

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java Thu Oct 25 10:09:20 2007
@@ -19,9 +19,11 @@
 
 package org.apache.cxf.helpers;
 
+import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 public final class HttpHeaderHelper {
     
@@ -37,6 +39,7 @@
 
     
     private static Map<String, String> internalHeaders = new HashMap<String, String>();
+    private static Map<String, String> encodings = new ConcurrentHashMap<String, String>();
     
     static {
         internalHeaders.put("Content-Type", "content-type");
@@ -61,5 +64,23 @@
         } else {
             return key;
         }
+    }
+    
+    //helper to map the charsets that various things send in the http Content-Type header 
+    //into something that is actually supported by Java and the Stax parsers and such.
+    public static String mapCharset(String enc) {
+        if (enc == null) {
+            return null;
+        }
+        String newenc = encodings.get(enc);
+        if (newenc == null) {
+            try {
+                newenc = Charset.forName(enc).name();
+            } catch (Exception ex) {
+                //ignore
+            }
+            encodings.put(enc, newenc);
+        }
+        return newenc == null ? enc : newenc;
     }
 }

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/helpers/IOUtils.java Thu Oct 25 10:09:20 2007
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.helpers;
 
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -39,7 +40,24 @@
         return copy(input, output, DEFAULT_BUFFER_SIZE);
     }
 
-    
+    public static int copyAndCloseInput(final InputStream input, final OutputStream output)
+        throws IOException {
+        try {
+            return copy(input, output, DEFAULT_BUFFER_SIZE);
+        } finally {
+            input.close();
+        }
+    }
+    public static int copyAndCloseInput(final InputStream input,
+                                        final OutputStream output,
+                                        int bufferSize)
+        throws IOException {
+        try {
+            return copy(input, output, bufferSize);
+        } finally {
+            input.close();
+        }
+    }
     public static int copy(final InputStream input,
                             final OutputStream output,
                             int bufferSize)
@@ -79,7 +97,7 @@
     public static String toString(final InputStream input) 
         throws IOException {
         
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         final byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
         int n = 0;
         n = input.read(buffer);
@@ -87,12 +105,13 @@
             buf.append(new String(buffer, 0, n));
             n = input.read(buffer);
         }
+        input.close();
         return buf.toString();
     }
     public static String toString(final Reader input) 
         throws IOException {
         
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         final char[] buffer = new char[DEFAULT_BUFFER_SIZE];
         int n = 0;
         n = input.read(buffer);
@@ -100,6 +119,7 @@
             buf.append(new String(buffer, 0, n));
             n = input.read(buffer);
         }
+        input.close();
         return buf.toString();
     }
     
@@ -115,17 +135,33 @@
 
         return sb.toString();
     }
+    
+    /**
+     * Load the InputStream into memory and return a ByteArrayInputStream that 
+     * represents it.  Closes the in stream.
+     * @param in
+     * @return
+     * @throws IOException
+     */
+    public static ByteArrayInputStream loadIntoBAIS(InputStream in) throws IOException {
+        int i = in.available();
+        if (i < DEFAULT_BUFFER_SIZE) {
+            i = DEFAULT_BUFFER_SIZE;
+        }
+        LoadingByteArrayOutputStream bout = new LoadingByteArrayOutputStream(i);
+        copy(in, bout);
+        in.close();
+        return bout.createInputStream();
+    }
 
     public static byte[] readBytesFromStream(InputStream in) throws IOException {
-
-        ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
-
-        for (int i = in.read(); i != -1; i = in.read()) {
-            bos.write(i);
+        int i = in.available();
+        if (i < DEFAULT_BUFFER_SIZE) {
+            i = DEFAULT_BUFFER_SIZE;
         }
-
+        ByteArrayOutputStream bos = new ByteArrayOutputStream(i);
+        copy(in, bos);
         in.close();
-
         return bos.toByteArray();
     }
 }

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/DefaultResourceManager.java Thu Oct 25 10:09:20 2007
@@ -81,6 +81,9 @@
     
     private <T> T findResource(String name, Class<T> type, boolean asStream, 
                                List<ResourceResolver> resolvers) {
+        if (resolvers == null) {
+            resolvers = registeredResolvers;
+        }
         
         if (LOG.isLoggable(Level.FINE)) { 
             LOG.fine("resolving resource <" + name + ">" + (asStream ? " as stream "  

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java Thu Oct 25 10:09:20 2007
@@ -66,13 +66,13 @@
     }
     
     public void close() {
-        try {
-            while (!resourceOpened.isEmpty()) {
+        while (!resourceOpened.isEmpty()) {
+            try {
                 InputStream in = resourceOpened.pop();
                 in.close();
+            } catch (IOException ioe) {
+                // move on...
             }
-        } catch (IOException ioe) {
-            // move on...
         }
     }
     

Modified: incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/version/Version.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/version/Version.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/version/Version.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/java/org/apache/cxf/version/Version.java Thu Oct 25 10:09:20 2007
@@ -25,6 +25,7 @@
 public final class Version {
 
     private static String version;
+    private static String name;
     
     private static final String VERSION_BASE = "/org/apache/cxf/version/";
 
@@ -47,14 +48,14 @@
 
             try {
                 InputStream ins = getResourceAsStream(VERSION_BASE + "version.properties");
-
                 p.load(ins);
                 ins.close();
             } catch (IOException ex) {
                 // ignore, will end up with defaults
             }
 
-            version = p.getProperty("product.version");
+            version = p.getProperty("product.version", "<unknown>");
+            name = p.getProperty("product.name", "Apache CXF");
         }
     }
 
@@ -63,12 +64,17 @@
         return version;
     }
 
+    public static String getName() {
+        loadProperties();
+        return name;
+    }
 
     /**
-     * Returns version string as normally used in print, such as 3.2.4
+     * Returns version string as normally used in print, such as Apache CXF 3.2.4
      *
      */
     public static String getCompleteVersionString() {
-        return getCurrentVersion();
+        loadProperties();
+        return name + " " + version;
     }
 }

Modified: incubator/cxf/branches/jliu/common/common/src/main/resources-filtered/org/apache/cxf/version/version.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/main/resources-filtered/org/apache/cxf/version/version.properties?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/main/resources-filtered/org/apache/cxf/version/version.properties (original)
+++ incubator/cxf/branches/jliu/common/common/src/main/resources-filtered/org/apache/cxf/version/version.properties Thu Oct 25 10:09:20 2007
@@ -19,3 +19,4 @@
 #
 #
 product.version=${pom.version}
+product.name=Apache CXF (incubator)
\ No newline at end of file

Modified: incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/annotation/AnnotatedGreeterImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/annotation/AnnotatedGreeterImpl.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/annotation/AnnotatedGreeterImpl.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/annotation/AnnotatedGreeterImpl.java Thu Oct 25 10:09:20 2007
@@ -31,13 +31,15 @@
 import javax.xml.ws.ResponseWrapper;
 import javax.xml.ws.WebServiceContext;
 
+import org.apache.cxf.common.logging.LogUtils;
+
 @javax.jws.WebService(name = "Greeter", serviceName = "SOAPService", 
                       targetNamespace = "http://apache.org/hello_world_soap_http")
 @HandlerChain(name = "TestHandlerChain", file = "handlers.xml")
 public class AnnotatedGreeterImpl {
 
     private static final Logger LOG = 
-        Logger.getLogger(AnnotatedGreeterImpl.class.getName());
+        LogUtils.getL7dLogger(AnnotatedGreeterImpl.class);
 
     @Resource
     private int foo; 

Modified: incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/injection/ResourceInjectorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/injection/ResourceInjectorTest.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/injection/ResourceInjectorTest.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/injection/ResourceInjectorTest.java Thu Oct 25 10:09:20 2007
@@ -19,7 +19,11 @@
 
 package org.apache.cxf.common.injection;
 
-
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Proxy;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -29,6 +33,10 @@
 import javax.annotation.Resource;
 import javax.annotation.Resources;
 
+import net.sf.cglib.proxy.Enhancer;
+import net.sf.cglib.proxy.MethodInterceptor;
+import net.sf.cglib.proxy.MethodProxy;
+
 import org.apache.cxf.resource.ResourceManager;
 import org.apache.cxf.resource.ResourceResolver;
 
@@ -64,6 +72,7 @@
         doInjectTest(new FieldTarget()); 
     }
     
+        
     @Test
     public void testFieldInSuperClassInjection() { 
         setUpResourceManager("org.apache.cxf.common.injection.FieldTarget/");
@@ -81,6 +90,18 @@
         setUpResourceManager(SetterTarget.class.getCanonicalName() + "/");
         doInjectTest(new SetterTarget()); 
     }
+    
+    @Test
+    public void testProxyInjection() {
+        setUpResourceManager(SetterTarget.class.getCanonicalName() + "/");
+        doInjectTest(getProxyObject(), SetterTarget.class);
+    }
+    
+    @Test
+    public void testEnhancedInjection() {
+        setUpResourceManager(FieldTarget.class.getCanonicalName() + "/");               
+        doInjectTest(getEnhancedObject());
+    }
 
     @Test
     public void testClassLevelInjection() {
@@ -111,15 +132,34 @@
         assertTrue(target.preDestroyCalled()); 
     }
 
-    protected void doInjectTest(Target target) { 
-
-        injector.inject(target); 
+    private void doInjectTest(Target target) {
+        doInjectTest(target, target.getClass());
+    }
+    
+    private void doInjectTest(Target target, Class<?> clazz) {
 
+        injector.inject(target, clazz);
+        injector.construct(target);
         assertNotNull(target.getResource1()); 
         assertEquals(RESOURCE_ONE, target.getResource1()); 
 
         assertNotNull(target.getResource2()); 
-        assertEquals(RESOURCE_TWO, target.getResource2()); 
+        assertEquals(RESOURCE_TWO, target.getResource2());
+         
+    }
+    
+    private Target getProxyObject() {
+        Target t = (Target)Proxy.newProxyInstance(ISetterTarget.class.getClassLoader(),
+                                                  new Class[] {ISetterTarget.class},
+                                                  new ProxyClass(new SetterTarget()));
+        return t;
+    }
+        
+    private FieldTarget getEnhancedObject() {
+        Enhancer e = new Enhancer();
+        e.setSuperclass(FieldTarget.class);        
+        e.setCallback(new CallInterceptor());
+        return (FieldTarget)e.create();        
     }
 
 }
@@ -130,6 +170,17 @@
     String getResource2(); 
 }
 
+class CallInterceptor implements MethodInterceptor {
+    
+    public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
+        Object retValFromSuper = null;
+        if (!Modifier.isAbstract(method.getModifiers())) {
+            retValFromSuper = proxy.invokeSuper(obj, args);
+        }        
+        return retValFromSuper;            
+    }
+}
+
 
 class FieldTarget implements Target {
 
@@ -160,6 +211,40 @@
     
 }
 
+interface ISetterTarget extends Target {    
+    void setResource1(final String argResource1);    
+    void setResource2(final String argResource2);
+}
+
+class ProxyClass implements InvocationHandler {
+    Object obj;
+
+    public ProxyClass(Object o) {
+        obj = o;
+    }
+
+    public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
+        Object result = null;
+        try {
+            Class[] types = new Class[0];
+            if (args != null) {
+                types = new Class[args.length];
+                for (int i = 0; i < args.length; i++) {
+                    types[i] = args[i].getClass();
+                }
+            }    
+            Method target = obj.getClass().getMethod(m.getName(), types);
+            result = target.invoke(obj, args);
+        } catch (InvocationTargetException e) {
+            // Do nothing here
+        } catch (Exception eBj) {
+            eBj.printStackTrace();
+        } finally {
+            // Do something after the method is called ...
+        }
+        return result;
+    }
+}
 class SetterTarget implements Target { 
 
     private String resource1;
@@ -183,7 +268,7 @@
     }
     
     @Resource(name = "resource2")
-    private void setResource2(final String argResource2) {
+    public void setResource2(final String argResource2) {
         this.resource2 = argResource2;
     }
 
@@ -228,7 +313,8 @@
 @Resource(name = "resource1")
 class ClassTarget implements Target {
 
-    @Resource(name = "resource2") public String resource2foo; 
+    @Resource(name = "resource2") 
+    public String resource2foo; 
     private String res1; 
 
     public final void setResource1(String res) { 

Modified: incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/logging/LogUtilsTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/logging/LogUtilsTest.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/logging/LogUtilsTest.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/common/logging/LogUtilsTest.java Thu Oct 25 10:09:20 2007
@@ -55,6 +55,7 @@
         LOG.addHandler(handler);
         // handler called *before* localization of message
         LogRecord record = new LogRecord(Level.WARNING, "FOOBAR_MSG");
+        record.setResourceBundle(LOG.getResourceBundle());
         EasyMock.reportMatcher(new LogRecordMatcher(record));
         handler.publish(record);
         EasyMock.replay(handler);
@@ -168,7 +169,12 @@
         public boolean matches(Object obj) {
             if (obj instanceof LogRecord) {
                 LogRecord other = (LogRecord)obj;
-                return record.getMessage().equals(other.getMessage())
+                String l7dString = "NOT-L7D";
+                if (record.getResourceBundle() != null) {
+                    l7dString = record.getResourceBundle().getString(record.getMessage());
+                }
+                return (record.getMessage().equals(other.getMessage()) 
+                            || l7dString.equals(other.getMessage()))
                        && record.getLevel().equals(other.getLevel())
                        && record.getThrown() == other.getThrown();
             }

Modified: incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanMapTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanMapTest.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanMapTest.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanMapTest.java Thu Oct 25 10:09:20 2007
@@ -34,7 +34,9 @@
         ClassPathXmlApplicationContext context = 
             new ClassPathXmlApplicationContext("org/apache/cxf/configuration/spring/beanMap.xml");
 
-        Map<String, Person> beans = CastUtils.cast((Map)context.getBean("mapOfPersons"));
+        
+        Map<String, Person> beans = CastUtils.cast(((MapProvider)context.getBean("mapOfPersons"))
+                                                       .createMap());
         assertNotNull(beans);
 
         assertEquals(2, beans.size());

Modified: incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanQNameMapTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanQNameMapTest.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanQNameMapTest.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/configuration/spring/SpringBeanQNameMapTest.java Thu Oct 25 10:09:20 2007
@@ -38,7 +38,8 @@
         ClassPathXmlApplicationContext context = 
             new ClassPathXmlApplicationContext("org/apache/cxf/configuration/spring/beanQNameMap.xml");
 
-        Map<QName, Person> beans = CastUtils.cast((Map)context.getBean("committers"));
+        Map<QName, Person> beans = CastUtils.cast(((MapProvider)context.getBean("committers"))
+                                                   .createMap());
         assertNotNull(beans);
 
         assertEquals(2, PersonQNameImpl.getLoadCount());

Modified: incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/version/VersionTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/version/VersionTest.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/version/VersionTest.java (original)
+++ incubator/cxf/branches/jliu/common/common/src/test/java/org/apache/cxf/version/VersionTest.java Thu Oct 25 10:09:20 2007
@@ -35,6 +35,6 @@
     public void testGetVersion() {
         String completeVersion =  Version.getCompleteVersionString();
         String currentVersion = Version.getCurrentVersion();
-        assertEquals(completeVersion, currentVersion);
+        assertTrue(completeVersion.contains(currentVersion));
     }
 }

Modified: incubator/cxf/branches/jliu/common/schemas/src/main/resources/schemas/configuration/security.xsd
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/schemas/src/main/resources/schemas/configuration/security.xsd?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/schemas/src/main/resources/schemas/configuration/security.xsd (original)
+++ incubator/cxf/branches/jliu/common/schemas/src/main/resources/schemas/configuration/security.xsd Thu Oct 25 10:09:20 2007
@@ -25,10 +25,10 @@
            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
            xmlns:tns="http://cxf.apache.org/configuration/security"
            xmlns:beans="http://www.springframework.org/schema/beans"
-  		   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  		   xsi:schemaLocation="
-  		       http://www.springframework.org/schema/beans
-  		       http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xsi:schemaLocation="
+               http://www.springframework.org/schema/beans
+               http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
            jaxb:version="2.0">
 
     <xs:import namespace="http://www.springframework.org/schema/beans"/>
@@ -116,6 +116,16 @@
     </xs:complexType>
     
     <xs:complexType name="KeyStoreType">
+      <xs:annotation>
+        <xs:documentation>
+        A KeyStoreType represents the information needed to load a collection
+        of key and certificate material from a desired location.
+        The "url", "file", and "resource" attributes are intended to be
+        mutually exclusive, though this assumption is not encoded in schema.
+        The precedence order observed by the runtime is 
+        1) "file", 2) "resource", and 3) "url".
+        </xs:documentation>
+      </xs:annotation>
         <xs:attribute name="type"     type="xs:string">
           <xs:annotation>
             <xs:documentation>
@@ -173,6 +183,49 @@
         </xs:attribute>
     </xs:complexType>
     
+    <xs:complexType name="CertStoreType">
+      <xs:annotation>
+        <xs:documentation>
+        A CertStoreType represents a catenated sequence of X.509 certificates, 
+        in PEM or DER format.
+        The "url", "file", and "resource" attributes are intended to be
+        mutually exclusive, though this assumption is not encoded in schema.
+        The precedence order observed by the runtime is 
+        1) "file", 2) "resource", and 3) "url".
+        </xs:documentation>
+      </xs:annotation>
+        <xs:attribute name="file"     type="xs:string">
+          <xs:annotation>
+            <xs:documentation>
+            This attribute specifies the File location of the certificate store.
+            This element should be a properly accessible file from the
+            working directory. Only one attribute of
+            "url", "file", or "resource" is allowed.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="resource" type="xs:string">
+          <xs:annotation>
+            <xs:documentation>
+            This attribute specifies the Resource location of the certificate store.
+            This element should be a properly accessible on the classpath.
+            Only one attribute of
+            "url", "file", or "resource" is allowed.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="url"      type="xs:string">
+          <xs:annotation>
+            <xs:documentation>
+            This attribute specifies the URL location of the certificate store.
+            This element should be a properly accessible URL, such as
+            "http://..." "file:///...", etc. Only one attribute of
+            "url", "file", or "resource" is allowed.
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+    
     <xs:complexType name="KeyManagersType">
       <xs:annotation>
         <xs:documentation>
@@ -183,37 +236,37 @@
       
          <xs:sequence>
             <xs:element name="keyStore" type="tns:KeyStoreType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element specified the Keystore for these JSSE KeyManagers.
-	            </xs:documentation>
-	          </xs:annotation>
-	        </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element specified the Keystore for these JSSE KeyManagers.
+                </xs:documentation>
+              </xs:annotation>
+            </xs:element>
          </xs:sequence>
             <xs:attribute name="keyPassword" type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the password that unlocks the keys
-	            within the keystore.
-	            </xs:documentation>
-	          </xs:annotation>
-	        </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the password that unlocks the keys
+                within the keystore.
+                </xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
             <xs:attribute name="provider" type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the KeyManagers provider name.
-	            </xs:documentation>
-	          </xs:annotation>
-	        </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the KeyManagers provider name.
+                </xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
             <xs:attribute name="factoryAlgorithm"  type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the algorithm the KeyManagers Factory
-	            will use in creating the KeyManagers from the KeyStore. Most
-	            common examples are "PKIX".
-	            </xs:documentation>
-	          </xs:annotation>
-	        </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the algorithm the KeyManagers Factory
+                will use in creating the KeyManagers from the KeyStore. Most
+                common examples are "PKIX".
+                </xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
     </xs:complexType>
     
     <xs:complexType name="TrustManagersType">
@@ -223,31 +276,40 @@
         a single Keystore used for trusted certificates.
         </xs:documentation>
       </xs:annotation>
-         <xs:sequence>
-            <xs:element name="keyStore" type="tns:KeyStoreType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the KeyStore used as a trust store.
-	            </xs:documentation>
-	          </xs:annotation>
-	        </xs:element>
-         </xs:sequence>
-            <xs:attribute name="provider" type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the KeyManagers provider name.
-	            </xs:documentation>
-	          </xs:annotation>
-	        </xs:attribute>
+      <xs:choice>
+          <xs:element name="keyStore" type="tns:KeyStoreType"
+              minOccurs="0">
+              <xs:annotation>
+                  <xs:documentation>
+                    This element contains the KeyStore used as a trust
+                    store.
+                  </xs:documentation>
+              </xs:annotation>
+          </xs:element>
+          <xs:element name="certStore" type="tns:CertStoreType" minOccurs="0">
+              <xs:annotation>
+                  <xs:documentation>
+                    This element contains the CertStore used as a trust store.
+                  </xs:documentation>
+              </xs:annotation>
+          </xs:element>
+        </xs:choice>
+      <xs:attribute name="provider" type="xs:string">
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the KeyManagers provider name.
+                </xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
             <xs:attribute name="factoryAlgorithm"  type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the algorithm the KeyManagers Factory
-	            will use in creating the KeyManagers from the KeyStore. Most
-	            common examples are "PKIX".
-	            </xs:documentation>
-	          </xs:annotation>
-	        </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the algorithm the KeyManagers Factory
+                will use in creating the KeyManagers from the KeyStore. Most
+                common examples are "PKIX".
+                </xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
     </xs:complexType>
     
     <xs:complexType name="CipherSuites">
@@ -281,122 +343,122 @@
     <xs:complexType name="TLSClientParametersType">
         <xs:all>
            <xs:element name="keyManagers" type="tns:KeyManagersType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the KeyManagers specification.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the KeyManagers specification.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="trustManagers" type="tns:TrustManagersType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the TrustManagers specification.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the TrustManagers specification.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="cipherSuites" type="tns:CipherSuites" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the the CipherSuites that will be supported.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the the CipherSuites that will be supported.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="cipherSuitesFilter" type="tns:FiltersType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the filters of the supported CipherSuites
-	            that will be supported and used if available.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the filters of the supported CipherSuites
+                that will be supported and used if available.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="secureRandomParameters" 
                        type="tns:SecureRandomParameters" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains SecureRandom specification.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains SecureRandom specification.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
         </xs:all>
            <xs:attribute name="jsseProvider"          type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the JSSE provider name.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the JSSE provider name.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:attribute>
            <xs:attribute name="secureSocketProtocol"  type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the Protocol Name. Most common
-	            example is "SSL", "TLS" or "TLSv1".
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the Protocol Name. Most common
+                example is "SSL", "TLS" or "TLSv1".
+                </xs:documentation>
+              </xs:annotation>
+           </xs:attribute>
     </xs:complexType>
     
     <xs:complexType name="TLSServerParametersType">
         <xs:all>
            <xs:element name="keyManagers" type="tns:KeyManagersType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the KeyManagers specification.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the KeyManagers specification.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="trustManagers" type="tns:TrustManagersType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the TrustManagers specification.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the TrustManagers specification.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="cipherSuites" type="tns:CipherSuites" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the the CipherSuites that will be supported.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the the CipherSuites that will be supported.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="cipherSuitesFilter" type="tns:FiltersType" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains the filters of the supported CipherSuites
-	            that will be supported and used if available.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains the filters of the supported CipherSuites
+                that will be supported and used if available.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="secureRandomParameters" 
                        type="tns:SecureRandomParameters" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains SecureRandom specification.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains SecureRandom specification.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
            <xs:element name="clientAuthentication" 
                        type="tns:ClientAuthentication" minOccurs="0">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This element contains Client Authentication specification.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:element>
+              <xs:annotation>
+                <xs:documentation>
+                This element contains Client Authentication specification.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:element>
         </xs:all>
            <xs:attribute name="jsseProvider"          type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the JSSE provider name.
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the JSSE provider name.
+                </xs:documentation>
+              </xs:annotation>
+           </xs:attribute>
            <xs:attribute name="secureSocketProtocol"  type="xs:string">
-	          <xs:annotation>
-	            <xs:documentation>
-	            This attribute contains the Protocol Name. Most common
-	            example is "SSL", "TLS" or "TLSv1".
-	            </xs:documentation>
-	          </xs:annotation>
-	       </xs:attribute>
+              <xs:annotation>
+                <xs:documentation>
+                This attribute contains the Protocol Name. Most common
+                example is "SSL", "TLS" or "TLSv1".
+                </xs:documentation>
+              </xs:annotation>
+           </xs:attribute>
     </xs:complexType>
 </xs:schema>

Modified: incubator/cxf/branches/jliu/common/xsd/src/main/java/org/apache/cxf/maven_plugin/CodegenUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/common/xsd/src/main/java/org/apache/cxf/maven_plugin/CodegenUtils.java?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/common/xsd/src/main/java/org/apache/cxf/maven_plugin/CodegenUtils.java (original)
+++ incubator/cxf/branches/jliu/common/xsd/src/main/java/org/apache/cxf/maven_plugin/CodegenUtils.java Thu Oct 25 10:09:20 2007
@@ -19,9 +19,11 @@
 
 package org.apache.cxf.maven_plugin;
 
+import java.io.File;
 import java.io.IOException;
 
 import java.net.MalformedURLException;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Enumeration;
 import java.util.jar.JarEntry;
@@ -60,20 +62,27 @@
                     return;
                 }
             }
-            JarFile jar;
+            
             try {
-                jar = new JarFile(url.getPath());
-                Enumeration entries = jar.entries();
-                while (entries.hasMoreElements()) {
-                    JarEntry entry = (JarEntry)entries.nextElement();
-                    if (!entry.isDirectory()
-                        && !entry.getName().startsWith("META")
-                        && entry.getTime() > timestamp) {
-                        
-                        timestamp = entry.getTime();
-                    }                    
+                if (url.getPath().endsWith(".class")) {
+                    timestamp = new File(url.toURI()).lastModified();
+                } else {
+                    JarFile jar = new JarFile(url.getPath());
+                    Enumeration entries = jar.entries();
+                    while (entries.hasMoreElements()) {
+                        JarEntry entry = (JarEntry)entries.nextElement();
+                        if (!entry.isDirectory()
+                            && !entry.getName().startsWith("META")
+                            && entry.getTime() > timestamp) {
+                            
+                            timestamp = entry.getTime();
+                        }                    
+                    }
                 }
             } catch (IOException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            } catch (URISyntaxException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }

Modified: incubator/cxf/branches/jliu/distribution/bundle/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/distribution/bundle/pom.xml?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/distribution/bundle/pom.xml (original)
+++ incubator/cxf/branches/jliu/distribution/bundle/pom.xml Thu Oct 25 10:09:20 2007
@@ -87,12 +87,14 @@
             <version>${pom.version}</version>
             <optional>true</optional>
         </dependency>
+        
         <dependency>
             <groupId>${pom.groupId}</groupId>
-            <artifactId>cxf-tools-java2wsdl</artifactId>
+            <artifactId>cxf-tools-java2ws</artifactId>
             <version>${pom.version}</version>
             <optional>true</optional>
-        </dependency>
+        </dependency>        
+        
         <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-xjc-ts</artifactId>

Modified: incubator/cxf/branches/jliu/distribution/manifest/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/distribution/manifest/pom.xml?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/distribution/manifest/pom.xml (original)
+++ incubator/cxf/branches/jliu/distribution/manifest/pom.xml Thu Oct 25 10:09:20 2007
@@ -74,16 +74,19 @@
             <artifactId>cxf-tools-wsdlto-databinding-jaxb</artifactId>
             <version>${pom.version}</version>
         </dependency>
+        
         <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-tools-wsdlto-frontend-jaxws</artifactId>
             <version>${pom.version}</version>
         </dependency>
+        
         <dependency>
             <groupId>${pom.groupId}</groupId>
-            <artifactId>cxf-tools-java2wsdl</artifactId>
+            <artifactId>cxf-tools-java2ws</artifactId>
             <version>${pom.version}</version>
-        </dependency>
+        </dependency>       
+        
         <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-xjc-dv</artifactId>
@@ -211,7 +214,7 @@
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-rt-frontend-jaxrs</artifactId>
             <version>${pom.version}</version>
-        </dependency>
+        </dependency>        
         <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-bundle</artifactId>
@@ -223,15 +226,9 @@
             <version>1.0-RC2</version>
         </dependency>
         <dependency>
-	    <groupId>commons-httpclient</groupId>
-	    <artifactId>commons-httpclient</artifactId>
-	    <version>3.1-rc1</version>
-        </dependency>
-         <dependency>
-             <groupId>javax.ws.rs</groupId>
-             <artifactId>jsr311-api</artifactId>
-             <version>0.3</version>
-         </dependency>     
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

Modified: incubator/cxf/branches/jliu/distribution/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/distribution/pom.xml?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/distribution/pom.xml (original)
+++ incubator/cxf/branches/jliu/distribution/pom.xml Thu Oct 25 10:09:20 2007
@@ -83,11 +83,13 @@
             <artifactId>cxf-tools-wsdlto-frontend-jaxws</artifactId>
             <version>${pom.version}</version>
         </dependency>
+        
         <dependency>
             <groupId>${pom.groupId}</groupId>
-            <artifactId>cxf-tools-java2wsdl</artifactId>
+            <artifactId>cxf-tools-java2ws</artifactId>
             <version>${pom.version}</version>
-        </dependency>
+        </dependency>        
+        
         <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-xjc-dv</artifactId>
@@ -191,11 +193,18 @@
             <artifactId>cxf-rt-ws-policy</artifactId>
             <version>${pom.version}</version>
         </dependency>
-		<dependency>
+		    <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-rt-ws-security</artifactId>
             <version>${pom.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>bouncycastle</groupId>
+                    <artifactId>bcprov-jdk14</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
+
         <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-rt-frontend-jaxws</artifactId>
@@ -220,6 +229,10 @@
             <groupId>org.codehaus.jettison</groupId>
             <artifactId>jettison</artifactId>
             <version>1.0-RC2</version>
+        </dependency>
+        <dependency>
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
         </dependency>
         <dependency>
             <groupId>${pom.groupId}</groupId>

Modified: incubator/cxf/branches/jliu/distribution/src/main/appended-resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/distribution/src/main/appended-resources/META-INF/NOTICE?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/distribution/src/main/appended-resources/META-INF/NOTICE (original)
+++ incubator/cxf/branches/jliu/distribution/src/main/appended-resources/META-INF/NOTICE Thu Oct 25 10:09:20 2007
@@ -23,5 +23,21 @@
 This Product also includes software developed by David Heinemeier Hansson.
    (http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/inflections.rb)
 
+
+Portions of the included XmlSchema library are Copyright 2006 International Business Machines Corp.
+
+
+Portions of the included xml-apis library were originally based on the following:
+   - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
+   - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
+   - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org
+
+
+Portions of the included xbean library were originally based on the following:
+   - software copyright (c) 2000-2003, BEA Systems, <http://www.bea.com/>.
+
+
 Additional copyright notices and license terms applicable are
 present in the licenses directory of this distribution.
+
+

Modified: incubator/cxf/branches/jliu/distribution/src/main/release/README
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/jliu/distribution/src/main/release/README?rev=588283&r1=588282&r2=588283&view=diff
==============================================================================
--- incubator/cxf/branches/jliu/distribution/src/main/release/README (original)
+++ incubator/cxf/branches/jliu/distribution/src/main/release/README Thu Oct 25 10:09:20 2007
@@ -39,6 +39,35 @@
 endorsed by the ASF.
 
 
+Export Notice
+============================
+This distribution includes cryptographic software.  The country in 
+which you currently reside may have restrictions on the import, 
+possession, use, and/or re-export to another country, of 
+encryption software.  BEFORE using any encryption software, please 
+check your country's laws, regulations and policies concerning the
+import, possession, or use, and re-export of encryption software, to 
+see if this is permitted.  See <http://www.wassenaar.org/> for more
+information.
+
+The U.S. Government Department of Commerce, Bureau of Industry and
+Security (BIS), has classified this software as Export Commodity 
+Control Number (ECCN) 5D002.C.1, which includes information security
+software using or performing cryptographic functions with asymmetric
+algorithms.  The form and manner of this Apache Software Foundation
+distribution makes it eligible for export under the License Exception
+ENC Technology Software Unrestricted (TSU) exception (see the BIS 
+Export Administration Regulations, Section 740.13) for both object 
+code and source code.
+
+The following provides more details on the included cryptographic
+software:
+   http://xml.apache.org/security/
+   http://www.bouncycastle.org/
+   http://ws.apache.org/wss4j/
+
+
+
 Getting Started
 ===============