You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Willem Jiang <wi...@gmail.com> on 2010/01/03 08:58:43 UTC

Re: camel:proxy doesn't work outside camelContext

Hi Hendy,

I just created a JIRA for this issue and committed a fix for it.
Now you can use proxy out side of the camelContext.
If there is only one camelContext in the spring applicationContext , you 
don't need to specify the camelContextId attribute, otherwise you need 
to specify it.

Please check it out the latest Camel 2.2-SNAPSHOT to try on this fix.

Willem

Willem Jiang wrote:
> 
> Hendy Irawan wrote:
>> I'd love to have ability to put camel:proxy outside and set camelContext
>> myself.
>>
>> For simple purposes, I can configure Spring to autowire camelContext.
>>
>>
> I just checked the code of CamelNamespaceHandler.java[1] if you just 
> want to define the <camel:proxy> out side of camelContext, we need to 
> implement mapping the camelContextId into the camelContext instance 
> ourselves, as there could be more than one camelContext in the spring 
> application context.
> 
> If you are OK for adding camelContextId attribute in the <camel:proxy> 
> element, I will head to implement this feature shortly.
> 
> [1]https://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java 
> 
> 
> 
>>
>> willem.jiang wrote:
>>> Hi,
>>> Current <camel:proxy> is not support to be defined out side of the 
>>> camelContext. as we set the implicit camelContext into the 
>>> CamelProxyFactoryBean when parsing the proxy element.
>>>
>>> If you want to use it outside the camelContext , you need to specify 
>>> the camelContext property yourself. To avoid the user forget to 
>>> specify the camelContext, we just let the proxy parser visible inside 
>>> of the camelContext.
>>>
>>> Willem
>>>
>>> Hendy Irawan wrote:
>>>> The following works:
>>>>
>>>>     <camelContext xmlns="http://camel.apache.org/schema/spring">
>>>>         <packageScan>
>>>>             <package>com.soluvas.samples.eventfx.camel</package>
>>>>         </packageScan>
>>>>               <camel:proxy id="sensorEventListener"
>>>> serviceUrl="seda:Sensor.SensorEvent"
>>>>                  
>>>> serviceInterface="com.soluvas.samples.eventfx.camel.Listener" />
>>>>     </camelContext>
>>>>
>>>> but this doesn't work:
>>>>
>>>>     <bean class="com.soluvas.samples.eventfx.camel.Sensor">
>>>>         <property name="sensorListener">
>>>>               <camel:proxy serviceUrl="seda:Sensor.SensorEvent"
>>>>                  
>>>> serviceInterface="com.soluvas.samples.eventfx.camel.Listener" />
>>>>         </property>
>>>>     </bean>
>>>>
>>>> and I have to do this:
>>>>
>>>>     <bean class="com.soluvas.samples.eventfx.camel.Sensor">
>>>>         <property name="sensorListener">
>>>>             <bean 
>>>> class="org.apache.camel.spring.remoting.CamelProxyFactoryBean">
>>>>               <property name="serviceUrl" 
>>>> value="seda:Sensor.SensorEvent"/>
>>>>               <property name="serviceInterface"
>>>> value="com.soluvas.samples.eventfx.camel.Listener"/>
>>>>             </bean>
>>>>         </property>
>>>>     </bean>
>>>>
>>>> It's too bad, because `camel:proxy` is very useful and makes Spring
>>>> Remoting
>>>> - Camel concise and readable.
>>>>
>>>> Is it intentional or is there plans to make camel:proxy works 
>>>> everywhere
>>>> (even nested inside 'property')? 
>>>
>>>
>>
> 
> 


Re: camel:proxy doesn't work outside camelContext

Posted by Hendy Irawan <he...@soluvas.com>.
Thank you Willem, I'm forever indebted to you for this.

"If there is only one camelContext in the spring applicationContext , you 
don't need to specify the camelContextId attribute, otherwise you need 
to specify it."

Thanks, that is exactly the behavior I expected. And that's
CamelProxyFactoryBean current behavior too.


willem.jiang wrote:
> 
> Hi Hendy,
> 
> I just created a JIRA for this issue and committed a fix for it.
> Now you can use proxy out side of the camelContext.
> If there is only one camelContext in the spring applicationContext , you 
> don't need to specify the camelContextId attribute, otherwise you need 
> to specify it.
> 
> Please check it out the latest Camel 2.2-SNAPSHOT to try on this fix.
> 
> Willem
> 
> Willem Jiang wrote:
>> 
>> Hendy Irawan wrote:
>>> I'd love to have ability to put camel:proxy outside and set camelContext
>>> myself.
>>>
>>> For simple purposes, I can configure Spring to autowire camelContext.
>>>
>>>
>> I just checked the code of CamelNamespaceHandler.java[1] if you just 
>> want to define the <camel:proxy> out side of camelContext, we need to 
>> implement mapping the camelContextId into the camelContext instance 
>> ourselves, as there could be more than one camelContext in the spring 
>> application context.
>> 
>> If you are OK for adding camelContextId attribute in the <camel:proxy> 
>> element, I will head to implement this feature shortly.
>> 
>> [1]https://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java 
>> 
>> 
>> 
>>>
>>> willem.jiang wrote:
>>>> Hi,
>>>> Current <camel:proxy> is not support to be defined out side of the 
>>>> camelContext. as we set the implicit camelContext into the 
>>>> CamelProxyFactoryBean when parsing the proxy element.
>>>>
>>>> If you want to use it outside the camelContext , you need to specify 
>>>> the camelContext property yourself. To avoid the user forget to 
>>>> specify the camelContext, we just let the proxy parser visible inside 
>>>> of the camelContext.
>>>>
>>>> Willem
>>>>
>>>> Hendy Irawan wrote:
>>>>> The following works:
>>>>>
>>>>>     <camelContext xmlns="http://camel.apache.org/schema/spring">
>>>>>         <packageScan>
>>>>>             <package>com.soluvas.samples.eventfx.camel</package>
>>>>>         </packageScan>
>>>>>               <camel:proxy id="sensorEventListener"
>>>>> serviceUrl="seda:Sensor.SensorEvent"
>>>>>                  
>>>>> serviceInterface="com.soluvas.samples.eventfx.camel.Listener" />
>>>>>     </camelContext>
>>>>>
>>>>> but this doesn't work:
>>>>>
>>>>>     <bean class="com.soluvas.samples.eventfx.camel.Sensor">
>>>>>         <property name="sensorListener">
>>>>>               <camel:proxy serviceUrl="seda:Sensor.SensorEvent"
>>>>>                  
>>>>> serviceInterface="com.soluvas.samples.eventfx.camel.Listener" />
>>>>>         </property>
>>>>>     </bean>
>>>>>
>>>>> and I have to do this:
>>>>>
>>>>>     <bean class="com.soluvas.samples.eventfx.camel.Sensor">
>>>>>         <property name="sensorListener">
>>>>>             <bean 
>>>>> class="org.apache.camel.spring.remoting.CamelProxyFactoryBean">
>>>>>               <property name="serviceUrl" 
>>>>> value="seda:Sensor.SensorEvent"/>
>>>>>               <property name="serviceInterface"
>>>>> value="com.soluvas.samples.eventfx.camel.Listener"/>
>>>>>             </bean>
>>>>>         </property>
>>>>>     </bean>
>>>>>
>>>>> It's too bad, because `camel:proxy` is very useful and makes Spring
>>>>> Remoting
>>>>> - Camel concise and readable.
>>>>>
>>>>> Is it intentional or is there plans to make camel:proxy works 
>>>>> everywhere
>>>>> (even nested inside 'property')? 
>>>>
>>>>
>>>
>> 
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/camel%3Aproxy-doesn%27t-work-outside-camelContext-tp26971191p27010492.html
Sent from the Camel - Users mailing list archive at Nabble.com.