| Sesat > Docs + Support > Upgrade Guides > 2.17 Upgrade |
SEARCH-4294 Enable sesat templating system to accept JSP templates
Changed API:
- AbstractVelocityTemplateTag.importTemplate(..) renamed to importVelocity(..). method parameters unchanged.
SEARCH-4421 Anonymous TokenPredicates
TokenPredicate is now a interface. It's inner classes provide all functionality: Categories for the existing hardcoded enumerations, Static for static-utility methods, and TokenPredicateImpl for anonymous TokenPredicates.
Changed API:
- All of TokenPredicate's existing enums have been moved into TokenPredicate.Categories
- All of TokenPredicate's static methods have been moved to TokenPredicate.Static
Added APIs:
- TokenPredicate.Static.getAnonymousTokenPredicate(String) :: finds an existing anonymous TokenPredicate
- TokenPredicate.Static.createAnonymousTokenPredicate(String, Type) :: create a anonymous TokenPredicate
- TokenPredicate.Static.getTokenPredicates(Type) :: retrieve all tokens by type
Removed APIs:
- TokenPredicate.ALWAYSTRUE :: had been deprecated for quite some time already.
- TokenPredicate.getFastTokenPredicates() :: use TokenPredicate.Static.getTokenPredicates(Type) instead
Deprecated APIs:
- TokenPredicate.getMagicTokenPredicates() :: norway specific logic
- TokenPredicate.getTriggerTokenPredicates() :: norway specific logic
Any root request (ie "/") is now automatically forwarded to "/search/?".
So instead of using the index.jsp -> index.vm mechanism the layout's front defined template is used.
If your front page is broken you can most likely fix it just by adding front="index" to that tab's layout element in views.xml
For the "/" case, where neither the c nor q paramter is defined make sure you've set site.defaultTab in configuration.properties.
Whereas before it was "generic.sesam.no".
The same goes for the profile counter parts: generic.alpha.test.sesam, generic.nuclei.test.sesam, generic.beta.test.sesam, generic.electron.test.sesam.
It is wise now to explicitly define the port in the sesam.site.parent property in any skin extending generic.sesam, since generic.sesam isn't a valid domain and might not be successfully handled by any front end proxy, eg apache, handling the default port 80.
Allows multiple tomcat instances to be run behind the one proxy front making it easy to switch between profiles. Useful for supporting multiple version of sesat-kernel under the one domain.
Changed API:
- ControlLevel.RUNNING_QUERY_RESULT_HANDLING now ControlLevel.RUNNING_QUERY_HANDLING
Instead of using the parameter's key, as the name of the tag, we now use the fixed tag <parameter> for this. The key and value are added as parameters inside the parameter tag.
So we have gone from this:
<1_wonkey_name>123</1_wonkey_name>
to
<parameter key="1_wonkey_name" value="123" />
Changed API:
- sesam.access logfile
SEARCH-4290 Design and code with JSPs in skins.
It is now possible to use both JSPs and Velocity templates in the skin's templates/ folder.
The full documentation on this feature is in the javadoc for SiteJspLoaderFilter
Velocity templates are encouraged to be $request free and so http-implementation independent.
So now $request.queryString can be replaced with #allParameters()It is also an encoding safe way of writing out the current URL's query string in correct UTF-8 encoding if the original request was ISO encoded.
By adding the attribute auto-broadening="false" the query will not be wrapped and re-executed when all commands return zero hits. Default value is true leaving functionality as is today.
See SKER5004 Create option to disable the automatic rewrite of <multi-word query> to (<multi-word query>) when there are zero hits across all verticals
In views.xml/views/tab@rss-result-name multiple commands can be entered each separated by commas. The first will be used by the SyndicationGenerator and will continue to be the return result from SearchTab.getRssResultName(). An extra method has been added SearchTab.getRssCommands() that returns the whole list. This method is used by RunningQueryImpl to ensure all specified commands are executed in rss mode.
A whole SearchDataObject in the datamodel can be copied with a new name.
Easily configurable run handler to merge results from multiple search command together into one ResultList.
SEARCH-4987 RMI doesn't work in alpha or beta
Changed API in newsadmin-services:
- NewsCaseFacadeInterface renamed to NewsCaseFacade
The sesat revision r6808 requires an upgrade of newsadmin-services from v1.4 to v1.5 on the RMI backend server.