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