Skip to main content

Plugin update server - options to run our own version?

Comments

1 comment

  • Official comment
    Jonas Kuhn

    Hi Alex,

    yes this is indeed possible.
    You can specify the URL to your own server by setting `CustomPluginXmlUrl` in Preferences -> General -> Advanced, 
    or for other users by modifying `geneious.properties`:

    override-property-com.biomatters.geneious.userEditablePreferences.CustomPluginXmlUrl=https://url.to.your.server/MyCustomPlugins.xml


    You'll need to point this to an XML file that you keep up-to-date with the plugins that you want to distribute; a short example could look like this:

    <plugins>
    <plugin isNoteWorthy="false" isProOnly="false" releaseDate="2022-08-18">
    <name>Name Of Plugin</name>
    <className>com.plete.path.to.YourPlugin</className>
    <description>Some Description</description>
    <authors>Alex</authors>
    <category>Alignment</category>
    <version minimumApiVersion="4.202212" maximumApiVersion="4" pluginVersion="1.0.0" releaseDate="2022-08-18" isBeta="true">
    <changes/>
    <file>
    <platform>Windows</platform>
    <platform>MacOS</platform>
    <platform>Linux</platform>
    <url>http://url.to/my/plugins/MyPlugin.gplugin</url>
    </file>
    </version>
    </plugin>
    </plugins>


    The full scheme is this:

    <!DOCTYPE plugins [
    <!ELEMENT plugins (plugin*)>
    <!ELEMENT plugin (
    name,
    className,
    description,
    authors,
    screenshotUrl?,
    category*,
    downloadUrl?,
    version*,
    upOnlyVersion*)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT className (#PCDATA)> <!--fully qualified class name of the plugin class. For wrapper plugins, this should be equal to the name attribute in the plugin's pluginWrapper.xml's wrapperPlugin element-->
    <!ELEMENT description (#PCDATA)>
    <!ELEMENT authors (#PCDATA)>
    <!ELEMENT screenshotUrl (#PCDATA)> <!--should be 200x140 pixels-->
    <!ELEMENT category (#PCDATA)> <!--Assembly, Alignment, Phylogenetics, Protein, Nucleotide, Services and Searching or Misc-->
    <!ELEMENT downloadUrl (#PCDATA)> <!--Optional URL of a web page where the plugin can be downloaded. If the plugin is not installed the user will be sent here instead of downloading directly. Updates are always downloaded directly if plugin is already installed.-->
    <!ELEMENT version (changes, file+)>
    <!ELEMENT upOnlyVersion (changes, file+)> <!--Plugins to only upload but not promote & not show in Geneious Downloadable plugins. Mainly for experimental plugins-->
    <!ELEMENT changes (#PCDATA)> <!--list of changes in this version, html tags accepted-->
    <!ELEMENT file (platform+, url)>
    <!ELEMENT url (#PCDATA)> <!--URL of the gplugin file-->
    <!ELEMENT platform (#PCDATA)> <!--add one of these for each platform supported by the gplugin, must be one of: All, Windows, MacOS, Linux-->

    <!ATTLIST version minimumApiVersion CDATA #REQUIRED> <!--must be a decimal in the form x.y-->
    <!ATTLIST version maximumApiVersion CDATA #REQUIRED> <!--must be an int-->
    <!ATTLIST version pluginVersion CDATA #REQUIRED> <!--must be in the same form as a Geneious version number eg. x.y(.z)-->
    <!ATTLIST version releaseDate CDATA #REQUIRED> <!--yyyy-MM-dd format-->
    <!ATTLIST version isBeta (true|false) #REQUIRED> <!--beta version are clearly marked as such in Geneious and users are only informed of their release if they specify they are interested in betas-->
    <!ATTLIST upOnlyVersion minimumApiVersion CDATA #REQUIRED> <!--must be a decimal in the form x.y-->
    <!ATTLIST upOnlyVersion maximumApiVersion CDATA #REQUIRED> <!--must be an int-->
    <!ATTLIST upOnlyVersion pluginVersion CDATA #REQUIRED> <!--must be in the same form as a Geneious version number eg. x.y(.z)-->
    <!ATTLIST upOnlyVersion releaseDate CDATA #REQUIRED> <!--yyyy-MM-dd format-->
    <!ATTLIST upOnlyVersion isBeta (true|false) #REQUIRED> <!--beta version are clearly marked as such in Geneious and users are only informed of their release if they specify they are interested in betas-->
    <!ATTLIST plugin isNoteWorthy (true|false) #REQUIRED> <!--if true, users will be notified of its release and the plugin will be displayed at the top of the list with a star next to it-->
    <!ATTLIST plugin isProOnly (true|false) #REQUIRED>
    <!ATTLIST plugin releaseDate CDATA #REQUIRED> <!--yyyy-MM-dd format, if the plugin has a recent release date then it will be marked as NEW in the plugin list-->
    <!ATTLIST plugin isPayFor (true|false) #IMPLIED> <!--whether a license/trial is required in the plugin, false if not specified-->
    ]>

Please sign in to leave a comment.