Return-Path: Delivered-To: apmail-incubator-cxf-commits-archive@locus.apache.org Received: (qmail 37127 invoked from network); 25 Oct 2007 17:13:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 25 Oct 2007 17:13:40 -0000 Received: (qmail 26477 invoked by uid 500); 25 Oct 2007 17:13:27 -0000 Delivered-To: apmail-incubator-cxf-commits-archive@incubator.apache.org Received: (qmail 26418 invoked by uid 500); 25 Oct 2007 17:13:27 -0000 Mailing-List: contact cxf-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-commits@incubator.apache.org Received: (qmail 26409 invoked by uid 99); 25 Oct 2007 17:13:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Oct 2007 10:13:27 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Oct 2007 17:13:25 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 298641A9842; Thu, 25 Oct 2007 10:13:05 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Thu, 25 Oct 2007 17:10:56 -0000 To: cxf-commits@incubator.apache.org From: jliu@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071025171305.298641A9842@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 getPackagesFromJar(File jarFile) throws IOException { List packageNames = new ArrayList(); - 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 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 implements ApplicationContextAware, InitializingBean, Map { - private ApplicationContext context; - private Class type; - private String idsProperty; - private Map idToBeanName = new ConcurrentHashMap(); - private Map putStore = new ConcurrentHashMap(); - - public void setApplicationContext(ApplicationContext ctx) throws BeansException { - this.context = ctx; - } - - public void afterPropertiesSet() throws Exception { - processBeans(context); - } +public class SpringBeanMap + extends AbstractSpringBeanMap { - 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 getIds(Object bean) { - try { - PropertyDescriptor pd = BeanUtils.getPropertyDescriptor(bean.getClass(), idsProperty); - Method method = pd.getReadMethod(); - Collection 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> entrySet() { - Set> entries = new HashSet>(); - for (String k : keySet()) { - entries.add(new Entry(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 keySet() { - Set keys = new HashSet(); - 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 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 values() { - List values = new ArrayList(); - values.addAll(putStore.values()); - for (String id : idToBeanName.keySet()) { - values.add(get(id)); - } - return values; - } - - public static class Entry implements Map.Entry { - private SpringBeanMap map; - private String key; - - public Entry(SpringBeanMap 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 implements ApplicationContextAware, InitializingBean, Map { - private ApplicationContext context; - private Class type; - private String idsProperty; - private Map idToBeanName = new ConcurrentHashMap(); - private Map putStore = new ConcurrentHashMap(); +public class SpringBeanQNameMap + extends AbstractSpringBeanMap { - 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 getIds(Object bean) { - try { - PropertyDescriptor pd = BeanUtils.getPropertyDescriptor(bean.getClass(), idsProperty); - Method method = pd.getReadMethod(); - Collection 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> entrySet() { - Set> entries = new HashSet>(); - for (QName k : keySet()) { - entries.add(new Entry(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 keySet() { - Set keys = new HashSet(); - 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 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 values() { - List values = new ArrayList(); - values.addAll(putStore.values()); - for (QName id : idToBeanName.keySet()) { - values.add(get(id)); - } - return values; - } - - public static class Entry implements Map.Entry { - private SpringBeanQNameMap map; - private QName key; - - public Entry(SpringBeanQNameMap 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 internalHeaders = new HashMap(); + private static Map encodings = new ConcurrentHashMap(); 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 findResource(String name, Class type, boolean asStream, List 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", ""); + 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 beans = CastUtils.cast((Map)context.getBean("mapOfPersons")); + + Map 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 beans = CastUtils.cast((Map)context.getBean("committers")); + Map 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"> @@ -116,6 +116,16 @@ + + + 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". + + @@ -173,6 +183,49 @@ + + + + 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". + + + + + + 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. + + + + + + + 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. + + + + + + + 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. + + + + + @@ -183,37 +236,37 @@ - - - This element specified the Keystore for these JSSE KeyManagers. - - - + + + This element specified the Keystore for these JSSE KeyManagers. + + + - - - This attribute contains the password that unlocks the keys - within the keystore. - - - + + + This attribute contains the password that unlocks the keys + within the keystore. + + + - - - This attribute contains the KeyManagers provider name. - - - + + + This attribute contains the KeyManagers provider name. + + + - - - This attribute contains the algorithm the KeyManagers Factory - will use in creating the KeyManagers from the KeyStore. Most - common examples are "PKIX". - - - + + + This attribute contains the algorithm the KeyManagers Factory + will use in creating the KeyManagers from the KeyStore. Most + common examples are "PKIX". + + + @@ -223,31 +276,40 @@ a single Keystore used for trusted certificates. - - - - - This element contains the KeyStore used as a trust store. - - - - - - - - This attribute contains the KeyManagers provider name. - - - + + + + + This element contains the KeyStore used as a trust + store. + + + + + + + This element contains the CertStore used as a trust store. + + + + + + + + This attribute contains the KeyManagers provider name. + + + - - - This attribute contains the algorithm the KeyManagers Factory - will use in creating the KeyManagers from the KeyStore. Most - common examples are "PKIX". - - - + + + This attribute contains the algorithm the KeyManagers Factory + will use in creating the KeyManagers from the KeyStore. Most + common examples are "PKIX". + + + @@ -281,122 +343,122 @@ - - - This element contains the KeyManagers specification. - - - + + + This element contains the KeyManagers specification. + + + - - - This element contains the TrustManagers specification. - - - + + + This element contains the TrustManagers specification. + + + - - - This element contains the the CipherSuites that will be supported. - - - + + + This element contains the the CipherSuites that will be supported. + + + - - - This element contains the filters of the supported CipherSuites - that will be supported and used if available. - - - + + + This element contains the filters of the supported CipherSuites + that will be supported and used if available. + + + - - - This element contains SecureRandom specification. - - - + + + This element contains SecureRandom specification. + + + - - - This attribute contains the JSSE provider name. - - - + + + This attribute contains the JSSE provider name. + + + - - - This attribute contains the Protocol Name. Most common - example is "SSL", "TLS" or "TLSv1". - - - + + + This attribute contains the Protocol Name. Most common + example is "SSL", "TLS" or "TLSv1". + + + - - - This element contains the KeyManagers specification. - - - + + + This element contains the KeyManagers specification. + + + - - - This element contains the TrustManagers specification. - - - + + + This element contains the TrustManagers specification. + + + - - - This element contains the the CipherSuites that will be supported. - - - + + + This element contains the the CipherSuites that will be supported. + + + - - - This element contains the filters of the supported CipherSuites - that will be supported and used if available. - - - + + + This element contains the filters of the supported CipherSuites + that will be supported and used if available. + + + - - - This element contains SecureRandom specification. - - - + + + This element contains SecureRandom specification. + + + - - - This element contains Client Authentication specification. - - - + + + This element contains Client Authentication specification. + + + - - - This attribute contains the JSSE provider name. - - - + + + This attribute contains the JSSE provider name. + + + - - - This attribute contains the Protocol Name. Most common - example is "SSL", "TLS" or "TLSv1". - - - + + + This attribute contains the Protocol Name. Most common + example is "SSL", "TLS" or "TLSv1". + + + 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 @@ ${pom.version} true + ${pom.groupId} - cxf-tools-java2wsdl + cxf-tools-java2ws ${pom.version} true - + + ${pom.groupId} cxf-xjc-ts 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 @@ cxf-tools-wsdlto-databinding-jaxb ${pom.version} + ${pom.groupId} cxf-tools-wsdlto-frontend-jaxws ${pom.version} + ${pom.groupId} - cxf-tools-java2wsdl + cxf-tools-java2ws ${pom.version} - + + ${pom.groupId} cxf-xjc-dv @@ -211,7 +214,7 @@ ${pom.groupId} cxf-rt-frontend-jaxrs ${pom.version} - + ${pom.groupId} cxf-bundle @@ -223,15 +226,9 @@ 1.0-RC2 - commons-httpclient - commons-httpclient - 3.1-rc1 - - - javax.ws.rs - jsr311-api - 0.3 - + asm + asm + 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 @@ cxf-tools-wsdlto-frontend-jaxws ${pom.version} + ${pom.groupId} - cxf-tools-java2wsdl + cxf-tools-java2ws ${pom.version} - + + ${pom.groupId} cxf-xjc-dv @@ -191,11 +193,18 @@ cxf-rt-ws-policy ${pom.version} - + ${pom.groupId} cxf-rt-ws-security ${pom.version} + + + bouncycastle + bcprov-jdk14 + + + ${pom.groupId} cxf-rt-frontend-jaxws @@ -220,6 +229,10 @@ org.codehaus.jettison jettison 1.0-RC2 + + + asm + asm ${pom.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, . + + 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 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 ===============