OpenWGA 7.6 - OpenWGA Concepts and Features

Design and development » Customizable application designs » Customizing designs

Using updated base plugins with customized designs

When the base plugin of your customizable design/plugin gets updated on an installation chances are that some of the overlay resources that it provides also have changed since you created your design/plugin.

In that case OpenWGA tries to compare the new base plugins resources to your overlay resources and looks if it can use updated overlay resources:

  • If  an overlay resource from the base plugin is newer than the corresponding resource from your overlay design/plugin, and you have not modified it since it was added, then OpenWGA automatically uses the updated version from the base
    • The same happens when an overlay resource does not yet exist in your overlay design/plugin
  • If you have modified a resource in your design/plugin where now an updated version is available in the base design, then a conflict is detected. OpenWGA will continue to use your modified version. Additionally a warning message is issued to the app log:

A conflict was detected on resource <dockey> between base and overlay design. The design might not work correctly.

  • Because the base design may rely on the updated version of the overlay design, which cannot be used because of your modified version, the design might not work correctly. You should consider updating your overlay design/plugin for the new base version.

All this happens without any modification of your overlay design/plugin.

Upgrading a customization directory to use a newer base design version

The overlay design/plugin that you created is based on the version of the base plugin with which it was created. It can be used with higher versions of the base plugin without modification (provided there are no conflicts). You may however consider upgrading your overlay design/plugin to depend on a higher version of the base plugin. Reason for these might be:

  • A conflict between your changed overlay resources and the updated resources of a new base plugin version needs resolving
  • You want to utilize new functions that a new base plugin version provides

However note that after the upgrade your customization will no longer work with lower base design versions.

For upgrading a customization directory you need to use your it in a runtime project of OpenWGA developer studio. This runtime needs to have the base plugin version installed to which you want to update.  Also, if your customizatoin is a plugin it must be connected as developer plugin, so OpenWGA can modify the design directory. Having it installed as a regular plugin file is not suitable.

In that case applications using your overlay design/plugin will show something like the following in OpenWGA admin client:

screenshot at 2013-04-05 17:25:22.png

Here you see a button to upgrade the design directory to the new base plugin version.

When you click that button OpenWGA performs some intelligent update mechanism regarding your overlay design. It goes through all overlay resources that the updated base plugin provides and determines if this has changed since it was deployed to your overlay directory.

If that is the case OpenWGA does the following for every such resource:

  • It tests if you have modified the overlay resource since it was deployed
  • If it was not it will just overwrite the deployed overlay resource with the new version from the updated base plugin
  • If it was then OpenWGA will write the updated base plugin version to a separate file name, where the part "_ovlconflict" is inserted between the original files name and suffix. For example and updated version of "outer_standard.tml" might be written to "outer_standard_ovlconflict.tml". 

In the latter case you as designer need to resolve the this conflict. Until this is done your overlay design will still use the old code version it had before the upgrade.

Resolving overlay update conflicts

There is a comfortable function in OpenWGA developer studio to cope with conflict files and resolve those conflicts. On the design directory which you just upgraded do the following:

  • Right-click the directory to bring up the context menu and click Refresh. This will load all the conflict files created by OpenWGA into the WDS.
  • Again bring up the context menu by right-click and choose OpenWGA > Resolve overlay conflicts

Now the overlay conflict resolution editor will open:

overlay-conflict-resolving.png

In the top panel of this editor you will see those files for which conflicts have been detected. Click each file to bring up a compare editor in the lower panel where you can see the actual differences in the files content. The old version of your file is to the left, the new version from the base design is on the right.  To resolve each conflict do the following:

  • Take over any change from the base design version on the right  to your old version on the left that you want to keep in your overlay. You can do this in three ways:
    • Click the little square between both panels which is connected to the change
    • Click one of the both icons copy-change.png on the top right of the bottom panel which will take over either all "non-conflicting" changes or the selected change only (where "non-conflicting" means here that not the same lines have changed on both sides)

    • Manually edit the left panel to change what you want to change
  • Right-click the selected file in the top panel and choose "Mark resolved" from the context menu. It will ask you for confirmation to do so. If you actually took over any change before it will also ask you if it should save your changes which you also should confirm.

For resources where you do not want to take over any changes you can also directly choose "Mark resolved" from the context menu. You can also batch-resolve multiple files by multi-selecting them or selecting complete folders. 

The resolved files will disappear from the top panel and the corresponding conflict files will be removed. Once the top panel is empty you have resolved all conflicts.