...
Panel | ||
---|---|---|
|
Introduction
Are you developing code for VIVO? Are you doing some extreme customization? You might benefit from VIVO's set of built-in diagnostic tools.
...
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.
Terms
Developer Mode
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.
Developer Settings
These are parameters that control the diagnostic tools. They may be set interactively, using the Developer Panel, or read from the developer.settingsproperties
file at startup.
The Developer Panel
When VIVO is in developer mode, the Developer Panel appears on every page. This serves two purposes:
- It enables you to change the Developer Settings without navigating away from your current page.
- It provides a visual reminder that VIVO is in Developer Mode. If a production instance were accidentally configured to run in Developer Mode, it would be easily noticed.
Entering Developer Mode
developer.properties
file
When 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.
...
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.
Interactively entering developer mode
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 click on the panel to open it and change the settings. The Developer Panel will continue to appear in every page (except for some "back-end" pages for editing the ontology).
The settings
The developer panel has two general settings, and three tabs of additional settings. The following tables show the meaning of each setting in the developer panel, and how to specify it in the developer.properties
file.
General settings
These appear at the top of the panel, regardless of which tab is selected.
...
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. |
The "General" tab
Freemarker 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
|
SPARQL Query settings
Full documentation for the logging RDF Service is available here, including detailed explanation of an example log excerpt.
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 | Show 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 | Show stack trace | In the panel | Restrict by query string |
---|---|---|---|
In the file | developer.loggingRDFService.queryRestrictionstackTrace | ||
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 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. |
Page configuration settings
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. |
Language support settings
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. |
Links
The "General" tab also contains these links to special VIVO pages.
...
Link text | Show background threads |
---|---|
URL | /admin/showThreads |
The page | Displays information about the active background threads. These threads may be rebuilding the search index, re-inferencing the knowledge base, or rebuilding the Class Cache. |
...
Link text | Show RDF data sources |
---|---|
URL | /admin/showSources |
The page | Displays information about the triple stores, and the layers of adapters that the application wraps around them, including ModelMakers, OntModels, etc. |
The "Search" tab
Search query settings
In the panel | Log searches |
---|---|
In the file | developer.searchEngine.enable |
Effect | Write an entry to the log for each Search 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 | Restrict by calling stack |
---|---|
In the file | developer.searchEngine.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. |
Search indexing settings
In the panel | Log indexing |
---|---|
In the file | developer. |
Effect | Write an entry to the log each time that documents are added to the Search index, 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 | Restrict by URI or name |
---|---|
In the file | developer. |
Effect | Set this to a regular expression. An addition will be logged only if the list of document identifiers matches the regular expression, in whole or in part. The document identifiers are the URI and the Name fields. fields. |
In the panel | Restrict by document contents |
---|---|
In the file | developer.searchIndex.documentRestriction |
Effect | Set this to a regular expression. An addition will be logged only if the contents of the documents matches the regular expression, in whole or in part. |
In the panel | Log breakdown timings for indexing operations |
---|---|
In the file | developer.searchIndex.logIndexingBreakdownTimings |
Effect | When an indexing operation completed, write entries to the log showing how much time was taken by each indexing object: Excluders, DocumentModifiers, and UriFinders. Each entry includes
|
In the panel | Restrict by document contents Log deletions |
---|---|
In the file | developer.searchIndexsearchDeletions.documentRestrictionenable |
Effect | Write an entry to the log each time documents are deleted from the Search index, assuming that
|
In the panel | Log deletions Suppress the automatic indexing of changed triples. | |||||
---|---|---|---|---|---|---|
In the file | developer.searchDeletionssearchIndex.enable suppressModelChangeListener | |||||
Effect | If this is selected, the search indexer will not automatically adjust to changes in the data model. This means that you can ingest data much more quickly, but you must manually request a full re-indexing when your ingests are complete.
| Effect | Write an entry to the log each time that documens are deleted from the Search index, assuming that URI s being deleted, or
|
Links
Link text | Rebuild search index |
---|---|
URL | /SearchIndex |
The page | Allows you to request a rebuild of the search index, and to monitor its progress. |
The "Authorization" tab
In the panel | Write policy decisions to the log |
---|---|
In the file | developer.authorization.logDecisions.enable |
Effect | Write an entry to the log for each policy decision that is made for any requested action, assuming that
The remaining settings in this area can be used to restrict which queries are decisions are logged, or to include more information for each decision. |
...
In the panel | Restrict by policy name |
---|---|
In the file | developer.authorization.logDecisions.userRestrictionpolicyRestriction |
Effect | Set this to a regular expression. A decision will be logged only if the string value of the policy matches the regular expression, in whole or in part. |
In the panel | Restrict by user identifiers |
---|---|
In the file | developer.authorization.logDecisions.policyRestrictionuserRestriction |
Effect | Set this to a regular expression. A decision will be logged only if the list of user identifiers matches the regular expression, in whole or in part. |
What if the developer panel doesn't appear?
If you are using a custom theme, and you created it from a VIVO release prior to 1.6, it's likely that your theme doesn't display the developer panel.
...