You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Claude Brisson (Jira)" <ji...@apache.org> on 2023/03/26 08:36:00 UTC

[jira] [Updated] (VELOCITY-963) Incompatible API changes in 2.x

     [ https://issues.apache.org/jira/browse/VELOCITY-963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claude Brisson updated VELOCITY-963:
------------------------------------
    Component/s: Documentation
                     (was: Engine)

> Incompatible API changes in 2.x
> -------------------------------
>
>                 Key: VELOCITY-963
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-963
>             Project: Velocity
>          Issue Type: Bug
>          Components: Documentation
>    Affects Versions: 2.0, 2.1, 2.2, 2.3
>            Reporter: Éamonn McManus
>            Priority: Minor
>
> I recently tried porting a large amount of Velocity client code from 1.7 to 2.3 and discovered a number of incompatible API changes. Some of these were probably unavoidable but at least one could be fixed to ease this kind of migration.
>  * The three RuntimeInstance.parse methods from 1.7 were replaced by a single RuntimeInstance.parse(Reader, Template) method. I found that I could work around this by changing this:
> SimpleNode node = runtimeInstance.parse(reader, resourceName);
> to this:
> Template template = new Template();
> template.setName(resourceName);
> SimpleNode node = runtimeInstance.parse(reader, template);
> But it would be convenient for people migrating if the old overloads were restored. (This might not be the best way to parse a template, but it was certainly quite widely used in the code I was porting.)
>  * VelocityContext(Map) becomes VelocityContext(Map<String, Object>). Some of the code was passing a Map<String, String> or a Map<String, ?>. That would work if the argument type were Map<String, ?>, but I don't think that would be correct since I believe the Map can be updated by #set directives. So perhaps document this more explicitly.
>  * This abstract method in ResourceLoader
> InputStream getResourceStream(String source)
> becomes
> Reader getResourceReader(String source, String encoding)
> I'm not sure there would have been a good way to allow subclasses of ResourceLoader to continue to work without change, and this change _is_ documented in the [migration guide|https://velocity.apache.org/engine/2.0/upgrading.html#behavior-api-changes] so there's probably nothing further to do here.
>  * Nearly all the methods in StringUtils have been deleted, and that's not mentioned in the migration guide.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org