Re: svn commit: r724319 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/ main/java/org/apache/camel/impl/ test/java/org/apache/camel/component/file/ test/java/org/apache/camel/impl/

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r724319 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/ main/java/org/apache/camel/impl/ test/java/org/apache/camel/component/file/ test/java/org/apache/camel/impl/

Willem.Jiang
Administrator
Hi Claus,

The change of the DefaultComponent setProperties() will be blocked to
the components which extend the DefaultComponent and set the
useIntrospectionOnEndpoint to be false.

So I will remove the check of useIntrospectionOnEndpoint() in the
setProperties in my next commit to fixed the unit test error.

Willem


[hidden email] wrote:
> Author: davsclaus
> Date: Mon Dec  8 03:55:04 2008
> New Revision: 724319
>
> URL: http://svn.apache.org/viewvc?rev=724319&view=rev
> Log:
> CAMEL-895: Added support for # notation in endpoint URIs to lookup a bean in the registry
>
......
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?rev=724319&r1=724318&r2=724319&view=diff
> ==============================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Mon Dec  8 03:55:04 2008
> @@ -17,6 +17,7 @@
>  package org.apache.camel.impl;

> @@ -185,7 +186,48 @@
>       * Sets the bean properties on the given bean
>       */
>      protected void setProperties(Object bean, Map parameters) throws Exception {
> -        IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
> +        if (useIntrospectionOnEndpoint()) {
> +            // set reference properties first as they use # syntax that fools the regular properties setter
> +            setReferenceProperties(bean, parameters);
> +            IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
> +        }
> +    }
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r724319 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/ main/java/org/apache/camel/impl/ test/java/org/apache/camel/component/file/ test/java/org/apache/camel/impl/

Claus Ibsen-2
Hi William

Isn't it the idea of the useIntrospectionOnEndpoint=false to not allow
Camel to do this auto discovery of setters?
So to be safe I added this check as well.

BTW: Which components set this to false?

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Tue, Dec 9, 2008 at 3:53 AM, Willem Jiang <[hidden email]> wrote:

> Hi Claus,
>
> The change of the DefaultComponent setProperties() will be blocked to
> the components which extend the DefaultComponent and set the
> useIntrospectionOnEndpoint to be false.
>
> So I will remove the check of useIntrospectionOnEndpoint() in the
> setProperties in my next commit to fixed the unit test error.
>
> Willem
>
>
> [hidden email] wrote:
>> Author: davsclaus
>> Date: Mon Dec  8 03:55:04 2008
>> New Revision: 724319
>>
>> URL: http://svn.apache.org/viewvc?rev=724319&view=rev
>> Log:
>> CAMEL-895: Added support for # notation in endpoint URIs to lookup a bean in the registry
>>
> ......
>>
>> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
>> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?rev=724319&r1=724318&r2=724319&view=diff
>> ==============================================================================
>> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
>> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Mon Dec  8 03:55:04 2008
>> @@ -17,6 +17,7 @@
>>  package org.apache.camel.impl;
>
>> @@ -185,7 +186,48 @@
>>       * Sets the bean properties on the given bean
>>       */
>>      protected void setProperties(Object bean, Map parameters) throws Exception {
>> -        IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>> +        if (useIntrospectionOnEndpoint()) {
>> +            // set reference properties first as they use # syntax that fools the regular properties setter
>> +            setReferenceProperties(bean, parameters);
>> +            IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>> +        }
>> +    }
>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r724319 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/ main/java/org/apache/camel/impl/ test/java/org/apache/camel/component/file/ test/java/org/apache/camel/impl/

Claus Ibsen-2
Hi

Sorry got your named wrong - Willem.

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Tue, Dec 9, 2008 at 5:57 AM, Claus Ibsen <[hidden email]> wrote:

> Hi William
>
> Isn't it the idea of the useIntrospectionOnEndpoint=false to not allow
> Camel to do this auto discovery of setters?
> So to be safe I added this check as well.
>
> BTW: Which components set this to false?
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
>
>
>
> On Tue, Dec 9, 2008 at 3:53 AM, Willem Jiang <[hidden email]> wrote:
>> Hi Claus,
>>
>> The change of the DefaultComponent setProperties() will be blocked to
>> the components which extend the DefaultComponent and set the
>> useIntrospectionOnEndpoint to be false.
>>
>> So I will remove the check of useIntrospectionOnEndpoint() in the
>> setProperties in my next commit to fixed the unit test error.
>>
>> Willem
>>
>>
>> [hidden email] wrote:
>>> Author: davsclaus
>>> Date: Mon Dec  8 03:55:04 2008
>>> New Revision: 724319
>>>
>>> URL: http://svn.apache.org/viewvc?rev=724319&view=rev
>>> Log:
>>> CAMEL-895: Added support for # notation in endpoint URIs to lookup a bean in the registry
>>>
>> ......
>>>
>>> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
>>> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?rev=724319&r1=724318&r2=724319&view=diff
>>> ==============================================================================
>>> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
>>> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Mon Dec  8 03:55:04 2008
>>> @@ -17,6 +17,7 @@
>>>  package org.apache.camel.impl;
>>
>>> @@ -185,7 +186,48 @@
>>>       * Sets the bean properties on the given bean
>>>       */
>>>      protected void setProperties(Object bean, Map parameters) throws Exception {
>>> -        IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>>> +        if (useIntrospectionOnEndpoint()) {
>>> +            // set reference properties first as they use # syntax that fools the regular properties setter
>>> +            setReferenceProperties(bean, parameters);
>>> +            IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>>> +        }
>>> +    }
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r724319 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/ main/java/org/apache/camel/impl/ test/java/org/apache/camel/component/file/ test/java/org/apache/camel/impl/

Willem.Jiang
Administrator
In reply to this post by Claus Ibsen-2
Hi Claus,

No, if you take a look at HttpComponent and CxfSoapComponent, you will
find these component still call the setProperties method, even the
useIntrospectionOnEndpoint = false.

They have their own parameter interceptions when they create the
endpoint, such as

Map soapProps = IntrospectionSupport.extractProperties(parameters, "soap.");

HttpClientParams params = new HttpClientParams();
IntrospectionSupport.setProperties(params, parameters, "httpClient.");

I think they just don't want the URI parameters has the side effect on
the endpoint.


Willem

Claus Ibsen wrote:

> Hi William
>
> Isn't it the idea of the useIntrospectionOnEndpoint=false to not allow
> Camel to do this auto discovery of setters?
> So to be safe I added this check as well.
>
> BTW: Which components set this to false?
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
>
>
>
> On Tue, Dec 9, 2008 at 3:53 AM, Willem Jiang <[hidden email]> wrote:
>> Hi Claus,
>>
>> The change of the DefaultComponent setProperties() will be blocked to
>> the components which extend the DefaultComponent and set the
>> useIntrospectionOnEndpoint to be false.
>>
>> So I will remove the check of useIntrospectionOnEndpoint() in the
>> setProperties in my next commit to fixed the unit test error.
>>
>> Willem
>>
>>
>> [hidden email] wrote:
>>> Author: davsclaus
>>> Date: Mon Dec  8 03:55:04 2008
>>> New Revision: 724319
>>>
>>> URL: http://svn.apache.org/viewvc?rev=724319&view=rev
>>> Log:
>>> CAMEL-895: Added support for # notation in endpoint URIs to lookup a bean in the registry
>>>
>> ......
>>> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
>>> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?rev=724319&r1=724318&r2=724319&view=diff
>>> ==============================================================================
>>> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
>>> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Mon Dec  8 03:55:04 2008
>>> @@ -17,6 +17,7 @@
>>>  package org.apache.camel.impl;
>>> @@ -185,7 +186,48 @@
>>>       * Sets the bean properties on the given bean
>>>       */
>>>      protected void setProperties(Object bean, Map parameters) throws Exception {
>>> -        IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>>> +        if (useIntrospectionOnEndpoint()) {
>>> +            // set reference properties first as they use # syntax that fools the regular properties setter
>>> +            setReferenceProperties(bean, parameters);
>>> +            IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>>> +        }
>>> +    }
>

Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r724319 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/file/ main/java/org/apache/camel/impl/ test/java/org/apache/camel/component/file/ test/java/org/apache/camel/impl/

Claus Ibsen-2
Hi Willem

Spot on. Thanks for the great review.


/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Tue, Dec 9, 2008 at 6:44 AM, Willem Jiang <[hidden email]> wrote:

> Hi Claus,
>
> No, if you take a look at HttpComponent and CxfSoapComponent, you will
> find these component still call the setProperties method, even the
> useIntrospectionOnEndpoint = false.
>
> They have their own parameter interceptions when they create the
> endpoint, such as
>
> Map soapProps = IntrospectionSupport.extractProperties(parameters, "soap.");
>
> HttpClientParams params = new HttpClientParams();
> IntrospectionSupport.setProperties(params, parameters, "httpClient.");
>
> I think they just don't want the URI parameters has the side effect on
> the endpoint.
>
>
> Willem
>
> Claus Ibsen wrote:
>> Hi William
>>
>> Isn't it the idea of the useIntrospectionOnEndpoint=false to not allow
>> Camel to do this auto discovery of setters?
>> So to be safe I added this check as well.
>>
>> BTW: Which components set this to false?
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>>
>>
>>
>> On Tue, Dec 9, 2008 at 3:53 AM, Willem Jiang <[hidden email]> wrote:
>>> Hi Claus,
>>>
>>> The change of the DefaultComponent setProperties() will be blocked to
>>> the components which extend the DefaultComponent and set the
>>> useIntrospectionOnEndpoint to be false.
>>>
>>> So I will remove the check of useIntrospectionOnEndpoint() in the
>>> setProperties in my next commit to fixed the unit test error.
>>>
>>> Willem
>>>
>>>
>>> [hidden email] wrote:
>>>> Author: davsclaus
>>>> Date: Mon Dec  8 03:55:04 2008
>>>> New Revision: 724319
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=724319&view=rev
>>>> Log:
>>>> CAMEL-895: Added support for # notation in endpoint URIs to lookup a bean in the registry
>>>>
>>> ......
>>>> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
>>>> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?rev=724319&r1=724318&r2=724319&view=diff
>>>> ==============================================================================
>>>> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
>>>> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Mon Dec  8 03:55:04 2008
>>>> @@ -17,6 +17,7 @@
>>>>  package org.apache.camel.impl;
>>>> @@ -185,7 +186,48 @@
>>>>       * Sets the bean properties on the given bean
>>>>       */
>>>>      protected void setProperties(Object bean, Map parameters) throws Exception {
>>>> -        IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>>>> +        if (useIntrospectionOnEndpoint()) {
>>>> +            // set reference properties first as they use # syntax that fools the regular properties setter
>>>> +            setReferenceProperties(bean, parameters);
>>>> +            IntrospectionSupport.setProperties(getCamelContext().getTypeConverter(), bean, parameters);
>>>> +        }
>>>> +    }
>>
>
>