Deprecated. This material represents early efforts and may be of interest to historians. It doe not describe current VIVO efforts.
Deprecated. This material represents early efforts and may be of interest to historians. It doe not describe current VIVO efforts.
Are you developing code for VIVO? Are you doing some extreme customization? You might benefit from VIVO's set of built-in diagnostic tools.
These tools help to reveal how VIVO operates behind the scenes. In general, they are only used during development, because they may have serious negative effects on the performance of the VIVO application. However, they may also be used (carefully) in production, to diagnose a particularly difficult problem.
The diagnostic tools are enabled and controlled by settings within VIVO. These settings may be changed interactively, without restarting VIVO. The settings may also be read from a file, so they will be in effect as VIVO is starting up.
When the diagnostic tools are enabled, VIVO is said to be running in "Developer Mode". This reflects the fact that all of the developer settings are ignored unless the tools as a whole are enabled.
These are parameters that control the diagnostic tools. They may be set interactively, using the Developer Panel, or read from the developer.settings
file at startup.
When VIVO is in developer mode, the Developer Panel appears on every page. This serves two purposes:
developer.properties
fileWhen VIVO starts up, it looks for a file in the home directory, named developer.properties
. If the file is found, the settings are read from it. Any settings that are not found in the file keep their default values. If the file is not found, then all settings keep their default values until set interactively.
developer.enabled=true developer.permitAnonymousControl=true developer.defeatFreemarkerCache=true
This example causes:
The VIVO distribution includes an example.developer.properties
file. It contains descriptions of all of the settings, with examples. You can rename example.developer.properties
to developer.properties
, and uncomment the settings you want to use.
Log in as a system administrator (or root). Go to the Site Administration
page. Click on Activate developer panel
.
The Developer Panel will immediately appear below the page header. You may open it and change the settings, or you may navigate through VIVO. The Developer Panel will continue to appear in every page (except for pages that are used to edit the ontology).
When open, the developer panel looks like this:
The following tables show the meaning of each setting in the developer panel, and how to specify it in the developer.properties
file.
In the panel | Enable developer mode |
---|---|
In the file | developer.enabled |
Effect | Causes the developer panel to be displayed on each VIVO page. Enables all of the other developer settings. If this is false , other settings will retain their values, but will not take effect. |
In the panel | Allow anonymous user to see and modify developer settings |
---|---|
In the file | developer.permitAnonymousControl |
Effect | If true , any VIVO user may change the developer settings. If false , only a system administrator (or root) may change the settings. |
In the panel | Defeat the template cache |
---|---|
In the file | developer.defeatFreemarkerCache |
Effect | If true , each Freemarker template is loaded from disk each time it is used. If false , a template change may be on disk for up to one minute before it is loaded. |
In the panel | Insert HTML comments and start and end of templates |
---|---|
In the file | developer.insertFreemarkerDelimiters |
Effect | If ... <!-- FM_BEGIN view-search-default.ftl --> <a href="/vivo/display/n2252" title="individual name">Oswald, Jeremiah</a> <span class="display-title">Faculty Member</span> <p class="snippet"></p><!-- FM_END view-search-default.ftl --> ... |
In the panel | LOG each query |
---|---|
In the file | developer.loggingRDFService.enable |
Effect | Write an entry to the log for each SPARQL query, assuming that
The remaining settings in this area can be used to restrict which queries are logged, or to include more information for each query. |
In the panel | Add stack trace |
---|---|
In the file | developer.loggingRDFService.stackTrace |
Effect | Each log entry will include a stack trace. The trace is abridged so it starts after the ApplicationFilterChain , omits any Jena classes, and ends at the RDFService . |
In the panel | Restrict by query string |
---|---|
In the file | developer.loggingRDFService.queryRestriction |
Effect | Set this to a regular expression. A query will be logged only if the text of the query matches the regular expression, in whole or in part. |
In the panel | Restrict by calling stack |
---|---|
In the file | developer.loggingRDFService.stackRestriction |
Effect | Set this to a regular expression. A query will be logged only if the abridged calling stack matches the regular expression, in whole or in part. |
In the panel | Log the use of custom list view XML files. |
---|---|
In the file | developer.pageContents.logCustomListView |
Effect | Write an entry to the log each time a property is displayed using a list view other than the default lists view. |
In the panel | Log the use of custom short views in search, index and browse pages. |
---|---|
In the file | developer.pageContents.logCustomShortView |
Effect | Write an entry to the log each time a search result is displayed using a short view other than the default view for that context. |
In the panel | Defeat the cache of language property files |
---|---|
In the file | developer.i18n.defeatCache |
Effect | If true , the language property files are re-loaded each time they are called for. If false , the language property files are loaded only once, when VIVO starts up. |
In the panel | Log the retrieval of language strings |
---|---|
In the file | developer.i18n.logStringRequests. |
Effect | Write an entry to the log each time a language-specific string is retrieved from one of the language property files. |