|Sesat > Docs + Support > Upgrade Guides > 2.17 Upgrade|
- AbstractVelocityTemplateTag.importTemplate(..) renamed to importVelocity(..). method parameters unchanged.
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.
- All of TokenPredicate's existing enums have been moved into TokenPredicate.Categories
- All of TokenPredicate's static methods have been moved to TokenPredicate.Static
- 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
- TokenPredicate.ALWAYSTRUE :: had been deprecated for quite some time already.
- TokenPredicate.getFastTokenPredicates() :: use TokenPredicate.Static.getTokenPredicates(Type) instead
- 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.
- 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:
<parameter key="1_wonkey_name" value="123" />
- sesam.access logfile
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.
- NewsCaseFacadeInterface renamed to NewsCaseFacade