cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Cayenne own template renderer to replace Velocity
Date Mon, 14 Aug 2017 12:21:57 GMT
> If we choose a 'provided' scope, won't that work and be better?

I think it will be worse. Velocity is not like servlet spec jar or something that comes from
a container (and less and less ppl are using containers anyways nowadays). The result of making
it "provided" will be that our library will no longer work out of the box, forcing the user
to actively do something about it. First they will need to realize that Velocity is required
in the first place, then they need to figure out which version to use. 

Only the users who already have Velocity in their system would care to override the version.
And they can either user the exclude, or just import Velocity explicitly, which would take
precedence over transient dependency. 

Nobody reads the docs these days, things need to work out of the box :)

Andrus


> On Aug 14, 2017, at 3:07 PM, Michael Gentry <blacknext@gmail.com> wrote:
> 
> Yes, but that's us kind of forcing a version of Velocity upon our users
> rather than them choosing the version that works with their environment.
> Sure, they can do dependency exclusions, etc, in the POM, but that's a
> slight hassle.  If we choose a 'provided' scope, won't that work and be
> better?  It'll be up to them to include the version of Velocity they want
> in their POM and there won't be multiple versions provided, at least not
> due to us.
> 
> Thanks,
> 
> mrg
> 
> 
> On Mon, Aug 14, 2017 at 7:35 AM, Nikita Timofeev <ntimofeev@objectstyle.com>
> wrote:
> 
>> Cayenne-velocity module should use version of Velocity we specify, the
>> main point is that cayenne-server won't use it anymore.
>> As for explicit "compile" scope that's just copy-past, it can be
>> omitted as it's default anyway.
>> 
>> On Mon, Aug 14, 2017 at 2:16 PM, Michael Gentry <blacknext@gmail.com>
>> wrote:
>>> Won't a compile scope pull in a version of Velocity we specify?
>>> 
>>> https://github.com/apache/cayenne/pull/238/files#diff-
>> e286320b0b1da27d2621bf787ddd75b1R48
>>> 
>>> 
>>> On Fri, Aug 11, 2017 at 7:23 AM, Andrus Adamchik <andrus@objectstyle.org
>>> 
>>> wrote:
>>> 
>>>>> I'm assuming the template engine will be injectable
>>>> 
>>>> Yes, and even better. With module auto-loading, you simply put your
>>>> template engine jar on classpath, and you get it installed
>> automatically.
>>>> This is how backwards-compatible cayenne-velocity will operate.
>>>> 
>>>> Andrus
>>>> 
>>>> 
>>>>> On Aug 11, 2017, at 2:21 PM, Michael Gentry <blacknext@gmail.com>
>> wrote:
>>>>> 
>>>>> I haven't looked into the details, but I like the idea of reducing
>>>>> dependencies upon external libraries, which can cause headaches with
>>>>> applications using Cayenne.
>>>>> 
>>>>> I'm assuming the template engine will be injectable so that you can
>>>> choose
>>>>> Velocity, Freemarker, etc if you'd like?  (Of course, you might have
>> to
>>>>> create a bridge to your template engine of choice, but be able to
>> inject
>>>>> that bridge into Cayenne.)
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> mrg
>>>>> 
>>>>> 
>>>>> On Thu, Aug 10, 2017 at 5:35 AM, Nikita Timofeev <
>>>> ntimofeev@objectstyle.com>
>>>>> wrote:
>>>>> 
>>>>>> Hi all,
>>>>>> 
>>>>>> I've opened a PR [1] just now with new SQLTemplateProcessor
>>>>>> implementation based on new Cayenne own parser (instead of Velocity).
>>>>>> 
>>>>>> It doesn't support all features of Velocity but it's enough to
>>>>>> seamlessly replace Velocity in all core and test code in Cayenne,
>> plus
>>>>>> it's faster (up to x15 in case of cache hit) and should have less
>>>>>> memory footprint (though I've only checked speed and memory is my
>>>>>> guess as new parser smaller and have no runtime).
>>>>>> 
>>>>>> Plus cayenne-server now free of velocity and commons-lang
>>>>>> dependencies, next step will be removing of commons-collections (it
>>>>>> will be the last one).
>>>>>> 
>>>>>> VelocitySQLTemplateProcessor now comes in optional auto-loaded module
>>>>>> (cayenne-velocity), so if you relied on some advanced features of
>>>>>> Velocity in your SQLTemplates you still can use it. And Velocity
is
>>>>>> still used for cgen templates.
>>>>>> 
>>>>>> See PR [1] and Jira ticket [2] for details.
>>>>>> 
>>>>>> Any thoughts or concerns?
>>>>>> 
>>>>>> [1] https://github.com/apache/cayenne/pull/238
>>>>>> [2] https://issues.apache.org/jira/browse/CAY-2345
>>>>>> 
>>>>>> --
>>>>>> Best regards,
>>>>>> Nikita Timofeev
>>>>>> 
>>>> 
>>>> 
>> 
>> 
>> 
>> --
>> Best regards,
>> Nikita Timofeev
>> 


Mime
View raw message