Author: ningjiang
Date: Sun Jan 25 08:00:13 2009
New Revision: 737487

URL: http://svn.apache.org/viewvc?rev=737487&view=rev
Log:
CAMEL-1294 Added the missing unit test and set the beanId for the 
CxfSpringEndpoint

Added:
    
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterConverterRouterTest.java
   (with props)
    
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
   (with props)
Modified:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java?rev=737487&r1=737486&r2=737487&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
 Sun Jan 25 08:00:13 2009
@@ -85,7 +85,7 @@
         if (bean.getProperties() != null) {
             Map<String, Object> copy = new HashMap<String, Object>();
             copy.putAll(bean.getProperties());
-
+            
             // pass the copy the method modifies the properties map
             
IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), 
                     this, copy);      
@@ -199,7 +199,10 @@
     
     // Properties
     // 
-------------------------------------------------------------------------
-
+    public void setBeanId(String id) {        
+        this.beanId = id;
+    }
+    
     public void setServiceNamespace(String serviceNamespace) {
         this.serviceNamespace = serviceNamespace;
     }

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java?rev=737487&r1=737486&r2=737487&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
 Sun Jan 25 08:00:13 2009
@@ -77,8 +77,9 @@
         if (endpointBean == null) {
             throw new IllegalArgumentException("The CxfEndpoint instance is 
null");
         }
-        //CamelContext 
+        // CamelContext 
         SpringCamelContext context = 
SpringCamelContext.springCamelContext(endpointBean.getApplicationContext());
+        // The beanId will be set from endpointBean's property        
         Endpoint answer = new CxfSpringEndpoint(context, endpointBean);        
         return answer;
     }

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java?rev=737487&r1=737486&r2=737487&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
 Sun Jan 25 08:00:13 2009
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.cxf.spring;
 
+import java.util.HashMap;
 import java.util.Map;
 import javax.xml.namespace.QName;
 import org.w3c.dom.Element;
@@ -28,6 +29,7 @@
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanDefinitionStoreException;
+import org.springframework.beans.factory.parsing.BeanComponentDefinition;
 import org.springframework.beans.factory.support.AbstractBeanDefinition;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
@@ -45,7 +47,8 @@
 
     @Override
     protected void mapAttribute(BeanDefinitionBuilder bean, Element e, String 
name, String val) {
-        if ("endpointName".equals(name) || "serviceName".equals(name)) {
+                
+        if ("endpointName".equals(name) || "serviceName".equals(name)) {       
    
             QName q = parseQName(e, val);
             bean.addPropertyValue(name, q);
         } else {
@@ -76,6 +79,14 @@
     protected void doParse(Element element, ParserContext ctx, 
BeanDefinitionBuilder bean) {
         super.doParse(element, ctx, bean);
         bean.setLazyInit(false);
+        // put the id into the properies
+        Map map = (Map) 
bean.getBeanDefinition().getPropertyValues().getPropertyValue("properties");
+        String id = resolveId(element, bean.getBeanDefinition(), ctx);
+        if (map == null) {
+            map = new HashMap();
+            bean.addPropertyValue("properties", map);
+        }
+        map.put("beanId", id);        
     }
 
     @Override
@@ -83,11 +94,11 @@
                                AbstractBeanDefinition definition,
                                ParserContext ctx)
         throws BeanDefinitionStoreException {
-        String id = super.resolveId(elem, definition, ctx);
+        String id = super.resolveId(elem, definition, ctx);        
+        
         if (StringUtils.isEmpty(id)) {
             throw new BeanDefinitionStoreException("The bean id is needed.");
-        }
-
+        }       
         return id;
     }
 
@@ -100,6 +111,7 @@
     // , we implements the ApplicationContextAware here
     public static class CxfSpringEndpointBean extends CxfEndpointBean 
implements ApplicationContextAware {
         private ApplicationContext applicationContext;
+        private String beanId;
         
         public CxfSpringEndpointBean() {
             super();
@@ -122,6 +134,14 @@
             return applicationContext;
         }
         
+        public void setId(String id) {
+            beanId = id;
+        }
+        
+        public String getId() {
+            return beanId;
+        }
+        
     }
 
 

Added: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterConverterRouterTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterConverterRouterTest.java?rev=737487&view=auto
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterConverterRouterTest.java
 (added)
+++ 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterConverterRouterTest.java
 Sun Jan 25 08:00:13 2009
@@ -0,0 +1,29 @@
+/**
+ * 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.camel.component.cxf;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+
+public class CxfGreeterConverterRouterTest extends CXFGreeterRouterTest {
+    
+    protected ClassPathXmlApplicationContext createApplicationContext() {
+        return new 
ClassPathXmlApplicationContext("org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml");
+    }
+
+}

Propchange: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterConverterRouterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterConverterRouterTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml?rev=737487&view=auto
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
 (added)
+++ 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
 Sun Jan 25 08:00:13 2009
@@ -0,0 +1,55 @@
+<?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:cxf="http://activemq.apache.org/camel/schema/cxfEndpoint";
+
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+       http://activemq.apache.org/camel/schema/cxfEndpoint 
http://activemq.apache.org/camel/schema/cxfEndpoint/camel-cxf.xsd
+       http://activemq.apache.org/camel/schema/spring 
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
+    ">
+   <import resource="classpath:META-INF/cxf/cxf.xml"/>
+   <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
+   <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" />
+   <!-- Added the import for testing the CAMEL-329 -->
+
+
+   <cxf:cxfEndpoint id="routerEndpoint" 
address="http://localhost:9003/CamelContext/RouterPort";
+               serviceClass="org.apache.hello_world_soap_http.Greeter" 
+               endpointName="s:SoapPort"
+               serviceName="s:SOAPService"
+           xmlns:s="http://apache.org/hello_world_soap_http"/>
+
+   <cxf:cxfEndpoint id="serviceEndpoint" 
address="http://localhost:9000/SoapContext/SoapPort";
+               wsdlURL="testutils/hello_world.wsdl"
+               serviceClass="org.apache.hello_world_soap_http.Greeter"
+               endpointName="s:SoapPort"
+               serviceName="s:SOAPService"
+       xmlns:s="http://apache.org/hello_world_soap_http"; />
+
+   <camelContext id="camel" 
xmlns="http://activemq.apache.org/camel/schema/spring";>
+    <route errorHandlerRef="noErrorHandler">
+      <from uri="routerEndpoint" />
+      <to uri="serviceEndpoint" />
+    </route>
+   </camelContext>
+
+   <bean id="noErrorHandler" 
class="org.apache.camel.builder.NoErrorHandlerBuilder"/>
+
+</beans>
\ No newline at end of file

Propchange: 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml


Reply via email to