0 Replies Latest reply on May 26, 2017 1:15 AM by mcollinge

    Jive 8 to Jive 9 Upgrade tips and observations

    mcollinge

      Since our team is embarking on a Jive 8.0.5.0 to Jive 9.0.1.0 upgrade, I thought it might be worth starting a thread about how we've found it so far, and see whether anyone else has tips from their upgrade.

       

      TL;DR - We've decided to treat our 8.0.5 to 9.0.1 upgrade as a point release upgrade, a bit like upgrading from 8.0.5 to 8.0.6.

       

      Our setup; We're an on-premise Jive-x (external) community, which is heavily customised.. we use everything from plugins (including customising Events + Video), to overlaying core Java/JS/FTL/Soy to build in a custom war file for deployment.

       

      Past Upgrades; In the past we've hopped major versions, so we went from Jive 4.5 to Jive 6, which took a fair amount of effort. Then from Jive 6 to Jive 8, which took around 6 months. Each time we upgraded we tried to re-visit the customisations to make them less invasive, and easier to upgrade, but there is still a lot of Java we overlay to make element14 Community do what we need it to do.

       

      Jive 9 Upgrade; This week, I started on our Jive 9 upgrade. I built a script that would tell us which files Jive altered between versions, and can highlight any files that conflict with files we've customised. The report we got for the upgrade from 8.0.5.0 didn't look so bad.. only 73 of our overlaid files were affected, which was on the low side. It took about 4 hours to diff those files & re-implement our changes, and then I could run the main build script.. another 2 hours later and I was in a position to run the build.. and it worked!

       

       

      We have a custom content type called RoadTest, which is really big.. that is normally a big time sink during an upgrade.. but this time it was a pretty simple & I had it compiling within an hour.

       

      Underlying changes

       

      BaseMacro

       

      The only thing I found that needed our code to change, was to BaseMacro. Jive have altered the execute method from;

       

           public void execute(Element element, RenderContext renderContext) {

       

      ... to ...

       

           public void execute(Element element, RenderContext renderContext, Map<String, String> parameters) {

       

      That doesn't take long to fix

       

      Video Plugin

       

      We've customised video to work with Brightcove, and in 9, Jive have taken the Video plugin, and have merged it into the core source code (i.e. there is no video plugin anymore). We'll need to re-work everything we did for that customisation, which will take a while.

       

      That's all we've found so far that impacts us.. did you find anything else?

       

      Overlaying JavaScript

       

      We've found that Jive devs have used 'boolean' as a variable name in a few of their JavaScript functions, e.g.

       

       

      This causes problems if you overlay the JavaScript, since it'll end up being compiled by this directive in the pom;

       

       

      Jive are using an old version of the compiler, so the build ends up erroring like this;

       

      ERROR - Parse error. missing formal parameter  
         [jscomp]             this.setNeedsNewConfig = function(boolean) {  
         [jscomp]                                                       ^  
         [jscomp] C:\jive\Project\element14-v8\web\target\jive-core-temp-9.0.1.0_3140_  
      1597bde-yui\resources\scripts\apps\content\videos\view\video_options_view.js:110  

       

      We've raised this for Jive to fix (and asked their devs not to use boolean as a variable name ) but in the meantime you can fix it by adding this to your pom, which tells it to use a newer version of the compiler;

       

      <dependencies>

        <dependency>

          <groupId>com.google.javascript</groupId>

          <artifactId>closure-compiler</artifactId>

          <version>r2388</version>

        </dependency>

      </dependencies>