Hi,

I implemented a simple ExpressionFactory @ 
https://github.com/kalgon/expression-factory.

I would love to see this ExpressionFactory next to 
org.apache.naming.factory.BeanFactory in tomcat.

Regards,

Xavier

----------------------------------------
> From: kal...@hotmail.com
> To: users@tomcat.apache.org
> Subject: RE: Using EL expressions in an ObjectFactory
> Date: Fri, 30 Aug 2013 09:41:09 +0200
>
> Hi,
>
> I don't think you understood me. The point here is not about the 
> ${catalina.base}, it's about the whole expression 
> "CacheManager.newInstance(URI('file:${catalina.base}/conf/ehcache.xml').toURL())".
>
> The ${catalina.base} will of course be expanded and give something like:
>
> "CacheManager.newInstance(URI('file:/home/tomcat/conf/ehcache.xml').toURL())"
>
> And then, this expression can be evaluated through EL and give a real 
> CacheManager instance.
>
> I could have written this that way:
>
> "CacheManager.newInstance(URI('file:'+System.getProperty('catalina.base')+'/conf/ehcache.xml').toURL())"
>
> The important thing here is that the whole expression parameter could be 
> given to an ELProcessor instead of having specialized ObjectFactory for each 
> case (I would of course use a specific ObjectFactory if there's one, like 
> BasicDataSourceFactory... but for exotic and rare cases where no 
> ObjectFactory exist, a generic EL-based one could be helpful).
>
> Xavier
>
> ----------------------------------------
>> Date: Thu, 29 Aug 2013 14:53:31 -0400
>> From: ch...@christopherschultz.net
>> To: users@tomcat.apache.org
>> Subject: Re: Using EL expressions in an ObjectFactory
>>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>> Xavier,
>>
>> On 8/29/13 3:06 AM, Xavier Dury wrote:
>>> Could it be possible for the tomcat team to include a
>>> javax.naming.spi.ObjectFactory which would use EL3.0 expressions?
>>>
>>> It would be great if you want to have resource-ref which are not of
>>> the usual types.
>>>
>>> I always wanted to have an ObjectFactory for URLs but having one
>>> for each type is too much work... so now, that we have a more
>>> powerful EL engine, maybe it would a great opportunity to use it.
>>>
>>> <Resource name="/url/SomeService" type="java.net.URL"
>>> factory="org.apache.tomcat.jndi.ELObjectFactory"
>>> importClass="java.net.URI"
>>> expression="URI('http://some.service.url').toURL()" />
>>>
>>> <Resource name="/cache/CacheManager"
>>> type="net.sf.ehcache.CacheManager"
>>> factory="org.apache.tomcat.jndi.ELObjectFactory"
>>> importClass="net.sf.ehcache.CacheManager,java.net.URI"
>>> importStatic="net.sf.ehcache.CacheManager.newInstance"
>>> expression="CacheManager.newInstance(URI('file:${catalina.base}/conf/ehcache.xml').toURL())"
>>
>> What's
>>>
>> wrong with just using $catalina.base within your context.xml?
>> It will expand appropriately already... no EL needed.
>>
>> - -chris
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.14 (Darwin)
>> Comment: GPGTools - http://gpgtools.org
>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>>
>> iQIcBAEBCAAGBQJSH5irAAoJEBzwKT+lPKRYRoYP/03+hC07yLehUBQHuaIghRTB
>> 6NWcWrzcZ3bCy/uFtQDLH12am7sbE2zQ+VO6HPlOJaRJul8UQLCdZlTXmQuquz+G
>> 8SGoGb4BWqPcluMrhbO+8v7f4aMPN7NenxBRpzNvWlQPtOo2h7+9cmz2bwh+XikU
>> 5J8IGE2e7wb8dAQBu6DJtFsQi+fAhOGaiLfBtorwDLYrpJ4nN0tr28LSFrX9VKtD
>> d0Fwga1zzHrBiGFzNAoUUujuGaPYCfbGugNJogWQO0dvHKQMmAM9GGLStnJbyy4U
>> vehGGU4lRq6mhkD0KCUJ/zVxM1fuFxK+Q4hRah97Mw7r8jHgqyQEqdfGV9EjUZh4
>> GVg0Y5W308ZTZfiutb7N++GTFrYq9qohHmI8pQyJ2jQLPtIo7gZv9KKBgFHUggpM
>> 2lg4ZL6/3wjALScRsQ5/NKUpg4s0NIb25LPOKViCW1fHF2euUcEH/lkkelgGMgFP
>> 2BXVszGOhQghePXFg6hkpAa4zhF0HRJQj8T5a1kJIBnf4QW3mm/g2Xv19EVNyiOs
>> ZrkC6dSXZXnJZ0aYxusxRNKvSplTGm6ywuftxy17H89Mblib8qb0G+5MNwRJwceF
>> tOkvHoMEY20dbhRZpQDL79a5dVL7YLc4M8hXBR1JQkmo1RyslHU/Y/+782OSs5+w
>> ZFM1iRO6JYbxLrGdwQ3n
>> =9lxu
>> -----END PGP SIGNATURE-----
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>                                         
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to