The fix was primarily to ensure that templated paths with elements that resolved to empty strings, did not lead to the creation of illegal paths in the FileFolderService. An example would be //foo/bar.
Added a Java test case that reproduced the issue.
Added a JavaScript test case that partially reproduced the issue.
Also needed to add extract method in ScriptAction to allow some internal code to be called by subclasses. This had the serendipitous benefit of reducing repeated code. This was a secondary issue whereby parameters set in the renditionDefinition were not being correctly passed from the Script layer to the Java layer.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@22099 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
20069 Fix for unreported issue where the Rendition Service's JavaScript API cannot be used to execute ad hoc rendition definitions.
Rendition Definitions can be created and executed programmatically. This works fine via the Java Foundation API, but is broken in the JavaScript API.
The rendition nodes are not correctly created for ad hoc rendition definitions created in JavaScript.
Note that the built-in rendition definitions work fine in JavaScript.
This fix:
- ScriptRenditionDefinition now extends ScriptAction in order to reuse its parameter handling and execution code.
- ScriptRenditionDefinition now mimics ScriptAction so you can call
renditionDef.execute(testSourceNode); in JavaScript.
- more test coverage in the test_renditionService.js to reproduce the issue.
- adds debug logging in various places in the rendition service.
- changes ScriptAction to be a non-final class so that it can be extended by ScriptRenditionDefinition.
- fixes some fragile asserts in test code.
- changes a few fields to protected visibility and provides an extension point so that the rendition service can execute its "actions" as renditions rather than simple actions.
- trivial. tidied up some unused imports in ScriptNode.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@20070 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Support for creating a RenditionDefinition from within JavaScript
Support for executing such an ad hoc rendition definition.
ScriptRendtionService now accepts long-form or short-form QNames where applicable.
Replaced "rendering actions" with "rendition definitions" in some javadoc and some private or local variable names.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19269 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
new renditionServiceScript bean
new test method in RenditionServiceIntegrationTest which uses test_renditionservice.js
ScriptRenditionService is the entry point to the JavaScript API impl
Can now render a ScriptNode with a Java-saved or built-in RenditionDefinition
Can get renditions for a source ScriptNode
get all renditions
get renditions from rendition definition x, e.g. "cm:doclib"
get renditions whose mimetype starts with prefix.
Added RenditionService to ServiceRegistry.
Necessary for the JS API, also desirable for completeness
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19195 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261