8 Replies Latest reply on May 9, 2016 4:43 PM by ggopalkrishna

    Jive and Adding Plugins Automatcially on Build


      We want to be able to point to a new plugin without going into the admin console to add one.


      e.g. is it possible to create a jar and put it in a particular folder for Jive to use


      I know that Jive unpacks Jar files into a folder, but is ther more to that?


      We are willing to add it through the admin setup once, but would like to do no more than put a jar somewhere and restart a server everytime a plugin is changed (commit to head) via Jenkins.  In other words, we do not like the existing (as far as I know) mechanism whereby you ahve to remove a new w plugin jar and then install it and finally restart the server since this is not easily automatable.


      Does anyone have a solution for this?

      btw.  we have already solved issues related to restarting jive via Jenkins (there's an SSHExec plugin for Jenkins with psuedo tty for sudo commands)

        • Re: Jive and Adding Plugins Automatcially on Build

          From my experience, the plugin binaries are stored in the Jive database.  During app server startup, the binaries from the database are copied down to the file system (there is a /plugins directory).  If you update the files in the /plugins directory, they will simply be overwritten with the version from the database the next time you startup the app server.


          Uploading the jar files through the admin console performs the function of saving it to the database.  If you can/want to try to save the jars manually to the database, you can try to skip the 2-step process.  You might be able to work something out, but you'll probably need to look at the Jive code that saves plugin jars to the database to see if it's doing anything special.

            • Re: Jive and Adding Plugins Automatcially on Build
              Ryan Rutan

              The system used to support hot plugin deploys from the file-system, and it was moved to the DB once the clustering got too advanced for such a simple deploy mechanism.  That being said, you can use the Maven cargo start deployment option, and deploy plugins directly from your maven project.  The database plugin table is only used at startup to read binaries and serialize to the folders.  It is not "needed" at runtime, hence the reason the cargo option works.


              Hope this helps,


            • Re: Jive and Adding Plugins Automatcially on Build

              In case anyone is still looking for an answer to this one,


              in dev (e.g. on your local build), you can add this to your web/pom.xml:



                      <plugin.dirs>${basedir}/../allvideosplugin/target/allvideosplugin,${basedir}/../tableauplugin/target/tableauplugin, ${basedir}/../jirawidget/target/jirawidget-1.0-</plugin.dirs>



              above, it will put in the plugins (custom by myself) for allvideos and tableau as well as the jira plugin.  the jira plugin was for Jive 6, so the directory was generated with the version number, whereas the others are jive7


              for prod / staging, etc. (not your local build, but with the rpm), you need to change the blob data in the jiveplugins directory.  this is a bit more complex but doable...