You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/06/05 22:26:30 UTC

svn commit: r544620 - in /incubator/cxf/trunk: common/common/src/main/java/org/apache/cxf/configuration/spring/ rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/ rt...

Author: dandiep
Date: Tue Jun  5 13:26:27 2007
New Revision: 544620

URL: http://svn.apache.org/viewvc?view=rev&rev=544620
Log:
Simplify some of the Spring parsing code by moving common code
into AbstractBeanDefinitionParser.

Add a SimpleBeanDefinitionParser for code which doesn't need any
custom configuration.

Add parsers for the simple frontend.


Added:
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/
    incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.handlers   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.schemas   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/
    incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/
    incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml   (with props)
    incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml   (with props)
Removed:
    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/ObjectBindingConfigBeanDefinintionParser.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/ServerBeanDefinitionParser.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/resources/org/
Modified:
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
    incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/NamespaceHandler.java
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/spring/FailoverBeanDefinitionParser.java
    incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
    incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/ListenerBeanDefinitionParser.java
    incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/BeanDefinitionParsersTest.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpDestinationBeanDefinitionParser.java
    incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSConduitBeanDefinitionParser.java
    incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java
    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/CXFServletTest.java
    incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -26,8 +26,9 @@
 import javax.xml.bind.Unmarshaller;
 import javax.xml.namespace.QName;
 
-
+import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -42,9 +43,53 @@
 import org.springframework.beans.factory.xml.ParserContext;
 import org.springframework.util.StringUtils;
 
-
 public abstract class AbstractBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
     
+    private Class beanClass;
+    
+    @Override
+    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
+        NamedNodeMap atts = element.getAttributes();
+        boolean setBus = false;
+        for (int i = 0; i < atts.getLength(); i++) {
+            Attr node = (Attr) atts.item(i);
+            String val = node.getValue();
+            String name = node.getLocalName();
+            
+            if ("createdFromAPI".equals(name)) {
+                bean.setAbstract(true);
+            } else if ("abstract".equals(name)) {
+                bean.setAbstract(true);
+            } else if (!"id".equals(name)) {
+                if ("bus".equals(name)) {
+                    setBus = true;
+                } 
+                mapAttribute(bean, name, val);
+            }
+        }
+        
+        if (!setBus && ctx.getRegistry().containsBeanDefinition("cxf") && hasBusProperty()) {
+            bean.addPropertyReference("bus", "cxf");
+        }
+        
+        NodeList children = element.getChildNodes();
+        for (int i = 0; i < children.getLength(); i++) {
+            Node n = children.item(i);
+            if (n.getNodeType() == Node.ELEMENT_NODE) {
+                String name = n.getLocalName();
+                
+                mapElement(ctx, bean, (Element) n, name);
+            }
+        }
+    }
+    
+    protected void mapAttribute(BeanDefinitionBuilder bean, String name, String val) {
+        mapToProperty(bean, name, val);
+    }
+
+    protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean, Element e, String name) {
+    }
+    
     @Override
     protected String resolveId(Element elem, AbstractBeanDefinition definition, 
                                ParserContext ctx) throws BeanDefinitionStoreException {
@@ -64,6 +109,10 @@
         return id;        
     }
 
+    protected boolean hasBusProperty() {
+        return false;
+    }
+    
     protected String getSuffix() {
         return "";
     }
@@ -186,12 +235,6 @@
         return "";
     }
 
-    protected void mapAttributeToProperty(Element element, BeanDefinitionBuilder bean, String attrName,
-                                          String propertyName) {
-        String val = element.getAttribute(attrName);
-        mapToProperty(bean, propertyName, val);
-    }
-
     protected void mapToProperty(BeanDefinitionBuilder bean, String propertyName, String val) {
         if (ID_ATTRIBUTE.equals(propertyName)) {
             return;
@@ -242,25 +285,18 @@
         return new QName(ns, local, pre);
     }
 
-    /*
-    protected final void doParseCommon(Element elem, ParserContext ctx, BeanDefinitionBuilder builder) {
-        NamedNodeMap atts = elem.getAttributes();
-        
-        for (int i = 0; i < atts.getLength(); i++) {
-            Attr node = (Attr) atts.item(i);
-            String uri = node.getNamespaceURI();
-            String name = node.getLocalName();
-            
-            if (BeanConstants.NAMESPACE_URI.equals(uri)) {
-                if (BeanConstants.CREATED_FROM_API_ATTR.equals(name)) {
-                    builder.setAbstract(true);
-                } else if (BeanConstants.ABSTRACT_ATTR.equals(name)) {
-                    builder.setAbstract(true);
-                }
-            }
-        }
-    } 
-    */
+    public Class getBeanClass() {
+        return beanClass;
+    }
+
+    public void setBeanClass(Class beanClass) {
+        this.beanClass = beanClass;
+    }
+
+    @Override
+    protected Class getBeanClass(Element arg0) {
+        return getBeanClass();
+    }
     
     protected final String getIdOrName(Element elem) {
         String id = elem.getAttribute(BeanDefinitionParserDelegate.ID_ATTRIBUTE);

Modified: incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/NamespaceHandler.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/NamespaceHandler.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/NamespaceHandler.java (original)
+++ incubator/cxf/trunk/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/spring/NamespaceHandler.java Tue Jun  5 13:26:27 2007
@@ -18,10 +18,13 @@
  */
 package org.apache.cxf.binding.object.spring;
 
+import org.apache.cxf.binding.object.ObjectBindingConfiguration;
+import org.apache.cxf.configuration.spring.SimpleBeanDefinitionParser;
 import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
 
 public class NamespaceHandler extends NamespaceHandlerSupport {
     public void init() {
-        registerBeanDefinitionParser("soapBinding", new ObjectBindingConfigBeanDefinintionParser());        
+        registerBeanDefinitionParser("objectBinding",
+                                     new SimpleBeanDefinitionParser(ObjectBindingConfiguration.class));
     }
 }

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/spring/SoapBindingInfoConfigBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -18,26 +18,12 @@
  */
 package org.apache.cxf.binding.soap.spring;
 
-import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
 
 import org.apache.cxf.binding.soap.SoapBindingConfiguration;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
 
 public class SoapBindingInfoConfigBeanDefinitionParser extends AbstractBeanDefinitionParser {
-
-    @Override
-    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
-        NamedNodeMap atts = element.getAttributes();
-        for (int i = 0; i < atts.getLength(); i++) {
-            Attr node = (Attr) atts.item(i);
-            
-            mapToProperty(bean, node.getLocalName(), node.getValue());
-        }
-    }
 
     @Override
     protected Class getBeanClass(Element arg0) {

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/spring/FailoverBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/spring/FailoverBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/spring/FailoverBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/clustering/spring/FailoverBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -19,12 +19,9 @@
 package org.apache.cxf.clustering.spring;
 
 import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 
 import org.apache.cxf.clustering.FailoverFeature;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
-
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 
@@ -36,13 +33,7 @@
     }
  
     @Override
-    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
-        NodeList children = element.getChildNodes();
-        for (int i = 0; i < children.getLength(); i++) {
-            Node n = children.item(i);
-            if (n.getNodeType() == Node.ELEMENT_NODE) {
-                setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
-            }
-        }
+    protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean, Element e, String name) {
+        setFirstChildAsProperty(e, ctx, bean, name);
     }
 }

Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java Tue Jun  5 13:26:27 2007
@@ -55,6 +55,7 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.bus.CXFBusFactory;
 import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.endpoint.ClientImpl;
 import org.apache.cxf.helpers.FileUtils;
@@ -141,10 +142,13 @@
     }
 
     public Client createClient(String wsdlUrl, QName service, QName port) {
-        return createClient(wsdlUrl, service, Thread.currentThread().getContextClassLoader(), port);
+        return createClient(wsdlUrl, service, null, port);
     }
 
     public Client createClient(String wsdlUrl, QName service, ClassLoader classLoader, QName port) {
+        if (classLoader == null) {
+            classLoader = Thread.currentThread().getContextClassLoader();
+        }
         URL u = composeUrl(wsdlUrl);
         LOG.log(Level.FINE, "Creating client from URL " + u.toString());
         ClientImpl client = new ClientImpl(bus, u, service, port);
@@ -222,7 +226,11 @@
         JAXBContext context;
 
         try {
-            context = JAXBContext.newInstance(packageList, cl);
+            if (StringUtils.isEmpty(packageList)) {
+                context = JAXBContext.newInstance(new Class[0]);
+            } else {
+                context = JAXBContext.newInstance(packageList, cl);
+            }
         } catch (JAXBException jbe) {
             throw new IllegalStateException("Unable to create JAXBContext for generated packages: "
                                             + jbe.getMessage(), jbe);

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/JaxWsProxyFactoryBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -18,98 +18,17 @@
  */
 package org.apache.cxf.jaxws.spring;
 
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
+import org.apache.cxf.frontend.spring.ClientProxyFactoryBeanDefinitionParser;
 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
 
-public class JaxWsProxyFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
+public class JaxWsProxyFactoryBeanDefinitionParser extends ClientProxyFactoryBeanDefinitionParser {
 
     @Override
     protected String getSuffix() {
         return ".jaxws-client";
     }
-
-    @Override
-    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder clientBean) {
-        
-        BeanDefinitionBuilder bean = BeanDefinitionBuilder.rootBeanDefinition(JaxWsProxyFactoryBean.class);
-
-        NamedNodeMap atts = element.getAttributes();        
-        boolean createdFromAPI = false;
-        boolean setBus = false;
-        for (int i = 0; i < atts.getLength(); i++) {
-            Attr node = (Attr) atts.item(i);
-            String val = node.getValue();
-            String pre = node.getPrefix();
-            String name = node.getLocalName();
-            
-            if ("createdFromAPI".equals(name)) {
-                bean.setAbstract(true);
-                clientBean.setAbstract(true);
-                createdFromAPI = true;
-            } else if (!"id".equals(name) && isAttribute(pre, name)) {
-                if ("endpointName".equals(name) || "serviceName".equals(name)) {
-                    QName q = parseQName(element, val);
-                    bean.addPropertyValue(name, q);
-                } else if (!"name".equals(name)) {
-                    if ("bus".equals(name)) {
-                        setBus = true;
-                    }
-                    mapToProperty(bean, name, val);
-                }
-            } else if ("abstract".equals(name)) {
-                bean.setAbstract(true);
-                clientBean.setAbstract(true);
-            }
-        }
-        
-        if (!setBus && ctx.getRegistry().containsBeanDefinition("cxf")) {
-            bean.addPropertyReference("bus", "cxf");
-        }
-        
-        NodeList children = element.getChildNodes();
-        for (int i = 0; i < children.getLength(); i++) {
-            Node n = children.item(i);
-            if (n.getNodeType() == Node.ELEMENT_NODE) {
-                String name = n.getLocalName();
-                if ("properties".equals(n.getLocalName())) {
-                    Map map = ctx.getDelegate().parseMapElement((Element) n, bean.getBeanDefinition());
-                    bean.addPropertyValue("properties", map);
-                } else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name)
-                    || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)
-                    || "features".equals(name)) {
-                    List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());
-                    bean.addPropertyValue(n.getLocalName(), list);
-                } else {
-                    setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
-                }
-            }
-        }
-        String id = getIdOrName(element);
-        if (createdFromAPI) {
-            id = id + getSuffix();
-        }
-        String factoryId = id + ".proxyFactory";
-        
-        ctx.getRegistry().registerBeanDefinition(factoryId, bean.getBeanDefinition());
-        clientBean.getBeanDefinition().setAttribute("id", id);
-        clientBean.setFactoryBean(factoryId, "create");
-    }
-
-    @Override
-    protected Class getBeanClass(Element arg0) {
-        return Object.class;
+    
+    protected Class getProxyFactoryClass() {
+        return JaxWsProxyFactoryBean.class;
     }
 }

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spring/NamespaceHandler.java Tue Jun  5 13:26:27 2007
@@ -18,12 +18,17 @@
  */
 package org.apache.cxf.jaxws.spring;
 
+import org.apache.cxf.frontend.spring.ServerFactoryBeanDefinitionParser;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
 
 public class NamespaceHandler extends NamespaceHandlerSupport {
     public void init() {
         registerBeanDefinitionParser("client", new JaxWsProxyFactoryBeanDefinitionParser());        
-        registerBeanDefinitionParser("endpoint", new EndpointDefinitionParser());        
-        registerBeanDefinitionParser("server", new ServerBeanDefinitionParser());        
+        registerBeanDefinitionParser("endpoint", new EndpointDefinitionParser());
+        
+        ServerFactoryBeanDefinitionParser parser = new ServerFactoryBeanDefinitionParser();
+        parser.setBeanClass(JaxWsServerFactoryBean.class);
+        registerBeanDefinitionParser("server", parser);        
     }
 }

Added: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.frontend.spring;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
+
+public class ClientProxyFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
+
+    public ClientProxyFactoryBeanDefinitionParser() {
+        super();
+        setBeanClass(Object.class);
+    }
+
+    @Override
+    protected String getSuffix() {
+        return ".simple-client";
+    }
+
+    @Override
+    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder clientBean) {
+        
+        BeanDefinitionBuilder bean = BeanDefinitionBuilder.rootBeanDefinition(getProxyFactoryClass());
+
+        NamedNodeMap atts = element.getAttributes();        
+        boolean createdFromAPI = false;
+        boolean setBus = false;
+        for (int i = 0; i < atts.getLength(); i++) {
+            Attr node = (Attr) atts.item(i);
+            String val = node.getValue();
+            String pre = node.getPrefix();
+            String name = node.getLocalName();
+            
+            if ("createdFromAPI".equals(name)) {
+                bean.setAbstract(true);
+                clientBean.setAbstract(true);
+                createdFromAPI = true;
+            } else if (!"id".equals(name) && isAttribute(pre, name)) {
+                if ("endpointName".equals(name) || "serviceName".equals(name)) {
+                    QName q = parseQName(element, val);
+                    bean.addPropertyValue(name, q);
+                } else if (!"name".equals(name)) {
+                    if ("bus".equals(name)) {
+                        setBus = true;
+                    }
+                    mapToProperty(bean, name, val);
+                }
+            } else if ("abstract".equals(name)) {
+                bean.setAbstract(true);
+                clientBean.setAbstract(true);
+            }
+        }
+        
+        if (!setBus && ctx.getRegistry().containsBeanDefinition("cxf")) {
+            bean.addPropertyReference("bus", "cxf");
+        }
+        
+        NodeList children = element.getChildNodes();
+        for (int i = 0; i < children.getLength(); i++) {
+            Node n = children.item(i);
+            if (n.getNodeType() == Node.ELEMENT_NODE) {
+                String name = n.getLocalName();
+                if ("properties".equals(n.getLocalName())) {
+                    Map map = ctx.getDelegate().parseMapElement((Element) n, bean.getBeanDefinition());
+                    bean.addPropertyValue("properties", map);
+                } else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name)
+                    || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)
+                    || "features".equals(name)) {
+                    List list = ctx.getDelegate().parseListElement((Element) n, bean.getBeanDefinition());
+                    bean.addPropertyValue(n.getLocalName(), list);
+                } else {
+                    setFirstChildAsProperty((Element) n, ctx, bean, n.getLocalName());
+                }
+            }
+        }
+        String id = getIdOrName(element);
+        if (createdFromAPI) {
+            id = id + getSuffix();
+        }
+        String factoryId = id + ".proxyFactory";
+        
+        ctx.getRegistry().registerBeanDefinition(factoryId, bean.getBeanDefinition());
+        clientBean.getBeanDefinition().setAttribute("id", id);
+        clientBean.setFactoryBean(factoryId, "create");
+    }
+
+    protected Class getProxyFactoryClass() {
+        return ClientProxyFactoryBean.class;
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ClientProxyFactoryBeanDefinitionParser.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java Tue Jun  5 13:26:27 2007
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.frontend.spring;
+
+import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
+
+public class NamespaceHandler extends NamespaceHandlerSupport {
+    public void init() {
+        registerBeanDefinitionParser("client", new ClientProxyFactoryBeanDefinitionParser());    
+        registerBeanDefinitionParser("server", new ServerFactoryBeanDefinitionParser());        
+    }
+}

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/NamespaceHandler.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -0,0 +1,102 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.frontend.spring;
+
+import java.util.List;
+import java.util.Map;
+
+import org.w3c.dom.Element;
+
+import org.apache.cxf.common.classloader.ClassLoaderUtils;
+import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
+import org.apache.cxf.frontend.ServerFactoryBean;
+import org.springframework.beans.FatalBeanException;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.util.StringUtils;
+
+public class ServerFactoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
+    private static final String IMPLEMENTOR = "implementor";
+
+    public ServerFactoryBeanDefinitionParser() {
+        super();
+        setBeanClass(ServerFactoryBean.class);
+    }
+
+    @Override
+    protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean, Element el, String name) {
+        if ("properties".equals(name)) {
+            Map map = ctx.getDelegate().parseMapElement(el, bean.getBeanDefinition());
+            bean.addPropertyValue("properties", map);
+        } else if ("executor".equals(name)) {
+            setFirstChildAsProperty(el, ctx, bean, "serviceFactory.executor");
+        } else if ("invoker".equals(name)) {
+            setFirstChildAsProperty(el, ctx, bean, "serviceFactory.invoker");
+        } else if ("binding".equals(name)) {
+            setFirstChildAsProperty(el, ctx, bean, "bindingConfig");
+        }  else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name)
+            || "outInterceptors".equals(name) || "outFaultInterceptors".equals(name)
+            || "features".equals(name)) {
+            List list = ctx.getDelegate().parseListElement(el, bean.getBeanDefinition());
+            bean.addPropertyValue(name, list);
+        } else {
+            setFirstChildAsProperty(el, ctx, bean, name);
+        }
+    }
+
+    @Override
+    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
+        super.doParse(element, ctx, bean);
+        
+        bean.setInitMethodName("create");
+        
+        // We don't really want to delay the registration of our Server
+        bean.setLazyInit(false);
+    }
+
+    @Override
+    protected void mapAttribute(BeanDefinitionBuilder bean, String name, String val) {
+        if (name.equals(IMPLEMENTOR)) {
+            loadImplementor(bean, val);
+        } else {
+            super.mapAttribute(bean, name, val);
+        }
+    }
+
+    private void loadImplementor(BeanDefinitionBuilder bean, String val) {
+        if (StringUtils.hasText(val)) {
+            if (val.startsWith("#")) {
+                bean.addPropertyReference(IMPLEMENTOR, val.substring(1));
+            } else {
+                try {
+                    bean.addPropertyValue(IMPLEMENTOR,
+                                          ClassLoaderUtils.loadClass(val, getClass()).newInstance());
+                } catch (Exception e) {
+                    throw new FatalBeanException("Could not load class: " + val, e);
+                }
+            }
+        }
+    }
+
+    @Override
+    protected boolean hasBusProperty() {
+        return true;
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/spring/ServerFactoryBeanDefinitionParser.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.handlers
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.handlers?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.handlers (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.handlers Tue Jun  5 13:26:27 2007
@@ -0,0 +1 @@
+http\://cxf.apache.org/simple=org.apache.cxf.frontend.spring.NamespaceHandler
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.handlers
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.schemas
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.schemas?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.schemas (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.schemas Tue Jun  5 13:26:27 2007
@@ -0,0 +1 @@
+http\://cxf.apache.org/schema/simple.xsd=schemas/simple.xsd
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/META-INF/spring.schemas
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd Tue Jun  5 13:26:27 2007
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://cxf.apache.org/simple"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  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"
+  targetNamespace="http://cxf.apache.org/simple" 
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified"  >
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" />
+
+  <xsd:element name="server" type="serverType"/>
+  
+  <xsd:complexType name="serverType">
+    <xsd:complexContent>
+      <xsd:extension base="beans:identifiedType">
+        <xsd:all>
+          <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="implementor" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="invoker" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+          <xsd:element name="serviceBean" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
+        </xsd:all>
+        <xsd:attribute name="abstract" type="xsd:boolean" />
+        <xsd:attribute name="address" type="xsd:string" />
+        <xsd:attribute name="bus" type="xsd:string" />
+        <xsd:attribute name="createdFromAPI" type="xsd:string" />
+        <xsd:attribute name="serviceClass" type="xsd:string"/>
+        <xsd:attribute name="serviceBean" type="xsd:string"/>
+        <xsd:attribute name="start" type="xsd:boolean" default="true"/>
+        <xsd:attribute name="transportId" type="xsd:string"/>
+        <xsd:attribute name="wsdlLocation" type="xsd:string" />
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+
+  <xsd:element name="client" type="clientType"/>
+  
+  <xsd:complexType name="clientType">
+    <xsd:complexContent>
+      <xsd:extension base="beans:identifiedType">
+        <xsd:all>
+          <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="conduitSelector" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+          <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+        </xsd:all>
+        <xsd:attribute name="abstract" type="xsd:boolean" />
+        <xsd:attribute name="address" type="xsd:string" />
+        <xsd:attribute name="bindingUri" type="xsd:string" />
+        <xsd:attribute name="bus" type="xsd:string" />
+        <xsd:attribute name="createdFromAPI" type="xsd:string" />
+        <xsd:attribute name="endpointName" type="xsd:QName" />
+        <xsd:attribute name="password" type="xsd:string" />
+        <xsd:attribute name="serviceClass" type="xsd:QName" />
+        <xsd:attribute name="serviceName" type="xsd:QName" />
+        <xsd:attribute name="username" type="xsd:string" />
+        <xsd:attribute name="wsdlLocation" type="xsd:string" />
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+</xsd:schema>

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/main/resources/schemas/simple.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java Tue Jun  5 13:26:27 2007
@@ -0,0 +1,102 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.frontend.spring;
+
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.apache.cxf.binding.BindingConfiguration;
+import org.apache.cxf.binding.soap.Soap12;
+import org.apache.cxf.binding.soap.SoapBindingConfiguration;
+import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
+import org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.endpoint.NullConduitSelector;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.frontend.ServerFactoryBean;
+import org.apache.cxf.interceptor.Interceptor;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.service.factory.HelloService;
+import org.junit.Test;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class SpringBeansTest extends Assert {
+    
+    @Test
+    public void testServers() throws Exception {
+        ClassPathXmlApplicationContext ctx = 
+            new ClassPathXmlApplicationContext(new String[] {"/org/apache/cxf/frontend/spring/servers.xml"});
+
+        ServerFactoryBean bean = (ServerFactoryBean) ctx.getBean("simple");
+        assertNotNull(bean);
+
+        bean = (ServerFactoryBean) ctx.getBean("inlineSoapBinding");
+        assertNotNull(bean);
+        
+        BindingConfiguration bc = bean.getBindingConfig();
+        assertTrue(bc instanceof SoapBindingConfiguration);
+        SoapBindingConfiguration sbc = (SoapBindingConfiguration) bc;
+        assertTrue(sbc.getVersion() instanceof Soap12);
+    }
+    
+
+    @Test
+    public void testClients() throws Exception {
+        ClassPathXmlApplicationContext ctx = 
+            new ClassPathXmlApplicationContext(new String[] {"/org/apache/cxf/frontend/spring/clients.xml"});
+
+        Object bean = ctx.getBean("client1.proxyFactory");
+        assertNotNull(bean);
+        
+        HelloService greeter = (HelloService) ctx.getBean("client1");
+        assertNotNull(greeter);
+        
+        Client client = ClientProxy.getClient(greeter);
+        assertNotNull("expected ConduitSelector", client.getConduitSelector());
+        assertTrue("unexpected ConduitSelector",
+                   client.getConduitSelector() instanceof NullConduitSelector);
+        
+        List<Interceptor> inInterceptors = client.getInInterceptors();
+        boolean saaj = false;
+        boolean logging = false;
+        for (Interceptor<?> i : inInterceptors) {
+            if (i instanceof SAAJInInterceptor) {
+                saaj = true;
+            } else if (i instanceof LoggingInInterceptor) {
+                logging = true;
+            }
+        }
+        assertTrue(saaj);
+        assertTrue(logging);
+        
+        saaj = false;
+        logging = false;
+        for (Interceptor<?> i : client.getOutInterceptors()) {
+            if (i instanceof SAAJOutInterceptor) {
+                saaj = true;
+            } else if (i instanceof LoggingOutInterceptor) {
+                logging = true;
+            }
+        }
+        assertTrue(saaj);
+        assertTrue(logging);
+    }
+}

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/SpringBeansTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml Tue Jun  5 13:26:27 2007
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:simple="http://cxf.apache.org/simple"
+      xmlns:soap="http://cxf.apache.org/bindings/soap"
+      xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+http://cxf.apache.org/bindings/soap http://cxf.apache.org/schema/bindings/soap.xsd
+http://cxf.apache.org/simple http://cxf.apache.org/schema/simple.xsd">
+
+  <import resource="classpath:META-INF/cxf/cxf.xml"/>
+  <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
+    
+  <bean class="org.apache.cxf.transport.local.LocalTransportFactory" lazy-init="false">
+      <property name="transportIds">
+          <list>
+              <value>http://cxf.apache.org/transports/local</value>
+              <value>http://schemas.xmlsoap.org/soap/http</value>
+              <value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
+          </list>
+      </property>
+  </bean>
+  
+  <bean id="saajIn" class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
+  <bean id="saajOut" class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"/>
+  
+  <simple:client id="client1" 
+    serviceClass="org.apache.cxf.service.factory.HelloService"
+    address="http://localhost:9000/foo"
+    serviceName="s:SOAPService"
+    xmlns:s="http://apache.org/hello_world_soap_http">
+    <simple:inInterceptors>
+	  <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+	  <ref bean="saajIn"/>
+	</simple:inInterceptors>
+	<simple:outInterceptors>
+	  <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+	  <ref bean="saajOut"/>
+	</simple:outInterceptors>
+    <simple:conduitSelector>
+      <bean class="org.apache.cxf.endpoint.NullConduitSelector"/>
+    </simple:conduitSelector>
+  </simple:client>
+
+</beans>

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/clients.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml?view=auto&rev=544620
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml (added)
+++ incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml Tue Jun  5 13:26:27 2007
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:simple="http://cxf.apache.org/simple"
+      xmlns:soap="http://cxf.apache.org/bindings/soap"
+      xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+http://cxf.apache.org/bindings/soap http://cxf.apache.org/schema/bindings/soap.xsd
+http://cxf.apache.org/simple http://cxf.apache.org/schema/simple.xsd">
+
+  <import resource="classpath:META-INF/cxf/cxf.xml"/>
+  <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
+    
+  <bean class="org.apache.cxf.transport.local.LocalTransportFactory" lazy-init="false">
+      <property name="transportIds">
+          <list>
+              <value>http://cxf.apache.org/transports/local</value>
+              <value>http://schemas.xmlsoap.org/soap/http</value>
+              <value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
+          </list>
+      </property>
+  </bean>
+  
+  <simple:server id="simple" serviceBean="#greeter"/>
+
+  <bean id="greeter" class="org.apache.cxf.service.factory.HelloServiceImpl"/>
+
+  <simple:server id="simpleWithAddress" 
+    serviceBean="#greeter" address="http://localhost:8080/simpleWithAddress"/>
+  
+  <simple:server id="inlineImplementor" address="http://localhost:8080/simpleWithAddress">
+    <simple:serviceBean>
+      <bean class="org.apache.cxf.service.factory.HelloServiceImpl"/>
+    </simple:serviceBean>
+  </simple:server>
+  
+  <simple:server id="inlineInvoker" 
+    serviceClass="org.apache.cxf.service.factory.HelloServiceImpl"
+    address="http://localhost:8080/simpleWithAddress">
+    <simple:invoker>
+      <bean class="org.apache.cxf.service.invoker.BeanInvoker">
+        <constructor-arg>
+          <bean class="org.apache.cxf.service.factory.HelloServiceImpl"/>
+        </constructor-arg>
+      </bean>
+    </simple:invoker>
+    
+  </simple:server>
+  
+  <simple:server id="inlineSoapBinding" 
+    serviceClass="org.apache.cxf.service.factory.HelloService"
+    address="http://localhost:8080/test">
+    <simple:binding>
+      <soap:soapBinding mtomEnabled="true" version="1.2"/>
+    </simple:binding>
+  </simple:server>
+</beans>

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/frontend/spring/servers.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/ListenerBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/ListenerBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/ListenerBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/ListenerBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -28,6 +28,7 @@
 import org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine;
 import org.apache.cxf.transports.http.configuration.HTTPListenerPolicy;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
 
 public class ListenerBeanDefinitionParser  extends AbstractBeanDefinitionParser {
      
@@ -39,7 +40,7 @@
     }
     
     @Override
-    public void doParse(Element element, BeanDefinitionBuilder bean) {
+    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
         bean.setAbstract(true);
         mapElementToJaxbProperty(element, bean, new QName(LISTENER_NS, "listener"), "listener",
             HTTPListenerPolicy.class);

Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/BeanDefinitionParsersTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/BeanDefinitionParsersTest.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/BeanDefinitionParsersTest.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/BeanDefinitionParsersTest.java Tue Jun  5 13:26:27 2007
@@ -39,7 +39,7 @@
         HttpDestinationBeanDefinitionParser parser = new HttpDestinationBeanDefinitionParser();
 
         Document d = DOMUtils.readXml(getClass().getResourceAsStream("destination.xml"));
-        parser.doParse(d.getDocumentElement(), bd);
+        parser.doParse(d.getDocumentElement(), null, bd);
         
         PropertyValue[] pvs = bd.getRawBeanDefinition().getPropertyValues().getPropertyValues();
         assertEquals(2, pvs.length);
@@ -54,7 +54,7 @@
         HttpConduitBeanDefinitionParser parser = new HttpConduitBeanDefinitionParser();
 
         Document d = DOMUtils.readXml(getClass().getResourceAsStream("conduit.xml"));
-        parser.doParse(d.getDocumentElement(), bd);
+        parser.doParse(d.getDocumentElement(), null, bd);
         
         PropertyValue[] pvs = bd.getRawBeanDefinition().getPropertyValues().getPropertyValues();
         assertEquals(1, pvs.length);
@@ -68,7 +68,7 @@
         ListenerBeanDefinitionParser parser = new ListenerBeanDefinitionParser();
 
         Document d = DOMUtils.readXml(getClass().getResourceAsStream("listener.xml"));
-        parser.doParse(d.getDocumentElement(), bd);
+        parser.doParse(d.getDocumentElement(), null, bd);
         
         PropertyValue[] pvs = bd.getRawBeanDefinition().getPropertyValues().getPropertyValues();
         assertEquals(1, pvs.length);

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpConduitBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -40,6 +40,7 @@
 import org.apache.cxf.transport.http.MessageTrustDecider;
 import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
 
 
 public class HttpConduitBeanDefinitionParser 
@@ -49,7 +50,7 @@
         "http://cxf.apache.org/transports/http/configuration";
 
     @Override
-    public void doParse(Element element, BeanDefinitionBuilder bean) {
+    public void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
         bean.setAbstract(true);
         mapElementToJaxbProperty(element, bean, 
                 new QName(HTTP_NS, "client"), "client", 

Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpDestinationBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpDestinationBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpDestinationBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpDestinationBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -37,13 +37,14 @@
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 import org.apache.cxf.transports.http.configuration.HTTPServerPolicy;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
 
 public class HttpDestinationBeanDefinitionParser extends AbstractBeanDefinitionParser {
 
     private static final String HTTP_NS = "http://cxf.apache.org/transports/http/configuration";
 
     @Override
-    public void doParse(Element element, BeanDefinitionBuilder bean) {
+    public void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
         bean.setAbstract(true);
         mapElementToJaxbProperty(element, bean, new QName(HTTP_NS, "server"), "server", 
                                  HTTPServerPolicy.class);

Modified: incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSConduitBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSConduitBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSConduitBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSConduitBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -29,13 +29,14 @@
 import org.apache.cxf.transport.jms.JMSConduit;
 import org.apache.cxf.transport.jms.SessionPoolType;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
 
 public class JMSConduitBeanDefinitionParser extends AbstractBeanDefinitionParser {
 
     private static final String JMS_NS = "http://cxf.apache.org/transports/jms";
 
     @Override
-    protected void doParse(Element element, BeanDefinitionBuilder bean) {
+    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
         bean.setAbstract(true);
         mapElementToJaxbProperty(element, bean, new QName(JMS_NS, "clientConfig"), "clientConfig",
                                  ClientConfig.class);

Modified: incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spring/JMSDestinationBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -29,13 +29,14 @@
 import org.apache.cxf.transport.jms.ServerConfig;
 import org.apache.cxf.transport.jms.SessionPoolType;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.ParserContext;
 
 public class JMSDestinationBeanDefinitionParser extends AbstractBeanDefinitionParser {
 
     private static final String JMS_NS = "http://cxf.apache.org/transports/jms";
 
     @Override
-    protected void doParse(Element element, BeanDefinitionBuilder bean) {
+    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
         bean.setAbstract(true);
         mapElementToJaxbProperty(element, bean, new QName(JMS_NS, "serverConfig"), "serverConfig", 
                                  ServerConfig.class);

Modified: incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java (original)
+++ incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java Tue Jun  5 13:26:27 2007
@@ -57,6 +57,11 @@
     }
 
     @Override
+    protected boolean hasBusProperty() {
+        return true;
+    }
+
+    @Override
     protected Class getBeanClass(Element element) {
         return RMManager.class;
     }

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/CXFServletTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/CXFServletTest.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/CXFServletTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/servlet/CXFServletTest.java Tue Jun  5 13:26:27 2007
@@ -78,7 +78,7 @@
         addNamespace("h", "http://apache.org/hello_world_soap_http/types");
 
         assertValid("/s:Envelope/s:Body", doc);
-        assertValid("//h:sayHiResponse", doc);        
+        assertValid("//h:sayHiResponse", doc);    
     }
     
     @Test
@@ -98,6 +98,9 @@
         assertEquals("There should get one link for service", 1, links.length);
         assertEquals(CONTEXT_URL + "/services/greeter?wsdl", links[0].getURLString());       
         assertEquals("text/html", res.getContentType());
+        
+        // Ensure that the Bus is available for people doing an Endpoint.publish() or similar.
+        assertNotNull(BusFactory.getDefaultBus(false));
     }
     
     @Test

Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java?view=diff&rev=544620&r1=544619&r2=544620
==============================================================================
--- incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java (original)
+++ incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ProcessorTestBase.java Tue Jun  5 13:26:27 2007
@@ -86,7 +86,8 @@
     protected void assertFileEquals(File location1, File location2) {
         String str1 = getStringFromFile(location1);
         String str2 = getStringFromFile(location2);
-
+        System.out.println(str1);
+        System.out.println(str2);
         StringTokenizer st1 = new StringTokenizer(str1, " \t\n\r\f(),");
         StringTokenizer st2 = new StringTokenizer(str2, " \t\n\r\f(),");