Plugins.repository
The Protege client references a file called "plugins.repository" to determine which plugins should be installed on the client. The default location for the plugins.repository for the production client is at https://raw.githubusercontent.com/ncievs/autoupdate/master/plugins.repository. This repository points to the location of the individual plugin configuration files.
Example:
// ***** CURRENT PLUG-INS (alphabetical ordering) *****
// NCI Edit Tab
https://raw.githubusercontent.com/ncievs/nci-edit-tab/master/src/main/resources/prod/update.properties
// NCI Search Tab
https://raw.githubusercontent.com/ncievs/lucene-search-tab/master/src/main/resources/prod/update.properties
.....
There are currently 7 plugin projects referenced by the plugins.repository
NCI Edit Tab: https://github.com/ncievs/nci-edit-tab
NCI Search Tab: https://github.com//ncievs/lucene-search-tab
Metaproject Admin: https://github.com//ncievs/metaproject-admin
Revision History: https://github.com//ncievs/revision-history
SPARQL Query: https://github.com//ncievs/sparql-query-plugin
EVS History: https://github.com//ncievs/evs-history
Curator: https://github.com//ncievs/nci-curator
Update.properties
The individual update.properties files will contain information about each plugin including, name, version and jar location.
Example from the NCI Edit Tab update.properties:
id=nci-edit-tab
version=1.3.4
download=https://github.com/ncievs/nci-edit-tab/releases/download/nci-edit-tab-1.3.4/nci-edit-tab-1.3.4-SNAPSHOT.jar
name=NCI Edit Tab
readme=https://raw.githubusercontent.com/ncievs/nci-edit-tab/master/src/main/resources/readme.html
license=https://raw.githubusercontent.com/ncievs/nci-edit-tab/master/LICENSE
author=Bob Dionne
Each individual plugin has this update.properties structure. It is intended to allow use and testing of plugins on different tiers without cross-interference.
/src/main/resources/update.properties
/src/main/resources/dev-qa/update.properties
/src/main/resources/stage/update.properties
/src/main/resources/prod/update.properties
Plugin deployment practices
When the developer checks in a new plugin they will update the src/main/resources/update.properties for that individual plugin in github.
They will then notify the protege admin when it is ready for testing. Upon notification, the protege admin will copy the src/main/resources/update.properties into src/main/resources/dev-qa/update.properties.
When the project enters User Acceptance testing on the Stage tier, the update.properties should be copied into src/main/resources/stage/update.properties
When the plugin is ready to go into production, the update.properties should be copied into src/main/resources/prod/update.properties