17804: Branch for SpringSurf integration 2 to RemoteAPI - from HEAD r17789
17808: Part 3 of SpringSurf integration - RemoteAPI, Web-Client, Mobile and DOD5015 java code refactored to use SpringSurf Webscripts libraries, removed dependancies on existing WebScriptFramework project.
17812: Removed web-framework and webscript-framework projects. Updated build scripts to use SpringSurf dependencies for remote API and client projects and also removal of wf and wsf projects from builds.
17818: Various Spring app context and config changes to integration SpringSurf at the RemoteAPI and Web-Client project level.
- Build scripts fixed up
- Temporary web.xml changes until spring mvc dispatcher is hooked into /service urls
- The server starts up! No nothing else works yet, you know how this goes...
17819: Fix to incremental-webclient-tomcat-exploded build target to work on first deploy to a clean tomcat (affects HEAD also, not SpringSurf related).
17872: Refactor Web-Client web.xml to use Spring WebScripts Dispatcher Servlet
- servlet is configured to use the existing Spring application context instance as loaded by the ContextLoaderListener
Share web.xml TODOs for JBoss app-server support (currently missing from SpringSurf extraction)
17892: Upgraded Repository Spring dependant libraries to 3.0.0 release.
Upgraded to latest SpringSurf release (also running against Spring 3.0.0)
Various related fixes.
17893: Additional Spring3.0.0 migration fixes and libraries.
17899: Integrated another SpringSurf bug fix - to correctly add ClassPathStore instances to SearchPath objects.
17901: Fixes to handling of merging of models returned from the new Script Processors.
Share now works against a Repository that is running SpringSurf WebScripts and Spring 3.0.0.
17904: Latest SpringSurf libraries after latest changes.
TODO:
- NTLM filter needs moving to Share (not present in SpringSurf)
- MessagesWebScript - community tracking image needs adding to Share specific version (not present in SpringSurf)
- feedController - for rss feed service urls - needs testing
- Clustering config overrides - no longer work in SpringSurf, needs a rethink
- Mobile project is not working
- PHP module project
- JBossEnabledWebApplicationContext required for Share - currently missing from SpringSurf
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17906 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- additional 'allow' attribute on <transaction> element in web script descriptor
- values: readonly, readwrite (default)
- readonly means that the whole web script executes in read transaction
- readonly lighter weight; no flushing, no cache checks/updates
- transaction aware web script response buffers
- only commits to response when trx is committed
- fixes ALFCOM-2497 - CMIS: createFolder & immediately add document can fail
- also means errors half-way thru response result in clean response with error contents only
- readonly transactions are not buffered
- WebScript RepoStore now uses ReadOnly transaction for gets
- CMIS getter Web Scripts set to ReadOnly transaction
- Fix up Web Script pattern that checks for WebScriptServletResponse using instanceof
- no longer the case, as it may be wrapped in BufferedResponse
- use getRuntime() instanceof WebScriptServletRuntime and/or
- WebScriptServletRuntime.getHttpServletResponse/Request(WebScriptReponse r) - returns null, if none
Tests:
- Run CMIS Tests
- Run CMIS BulkCreateSystemTest (now working)
- Run Share
Suggestion:
- Update your 'read' web script descriptors to include <transaction allow="readonly">. This will improve repo performance significantly.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14670 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
- Modified AbstractWebScript.execute() so that request-type specific script parameters (e.g. json, feed) are only available to those scripts that declare a type specific suffix, e.g. *.post.json.js, *.put.atomfeed.js. All non request type specific JS scripts will see requestbody (or formData if the request was multipart form data).This is so that scripts relying on requestBody being available at the moment don’t later get broken if we later map their request types to new FormatReaders.
- Moved getExecuteScript from DeclarativeWebScript into AbstractWebScript and made other subclasses use it, therefore using consistent path resolution rules across all web scripts.
- Removed FormatReader.createTemplateParameters() – Dave said this is not needed and the scripts themselves should copy over script parameters that are required by the templates.
- Renamed *.post.js and *.put.js expecting JSON input to *.post.json.js and *.put.json.js
- Extensive manual testing of share
- Added unit tests
- Ensure requestbody available to *.post.jst and *.put.js for unmapped request types
- Ensure json variable available to *.json.post.js and *.json.put.js scripts handling application/json requests
- Ensure entry variable available to *.atom.post.js and *. atom.put.js scripts handling application/atom;type=entry requests
- Ensure error raised for bogus script with extension corresponding to format with no FormatReader
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@11034 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261