Wro4j resource management

Wro4j lib is used to manage resources of the web applications. Mostly, it

  • builds dependency tree between js source files

  • minifies javascript

  • compiles less files

  • manages live update in development mode

  • manages caching in production mode

Dependency Tree

When the AngularJs entry module is gn_search_geoportal, the wro4j entry point is the key gn_search_geoportal as well, that means that it is the file that declares goog.provide('gn_search_geoportal').

That is why you need to be sure there is a good mapping between AngularJs module dependencies and wro4j dependency tree.

For example, when you have this for wro4j:

goog.provide('gn_search_default');

goog.require('gn_search');
goog.require('gn_search_default_config');
goog.require('gn_related_directive');

You need to be sure you create your AngularJs module with same dependency injection:

var module = angular.module('gn_search_default',
    [
      'gn_search',
      'gn_search_default_config',
      'gn_related_directive'
    ]);

Important

Whenever you change a goog.require or goog.provide statements, you need to relaunch wro4j dependency tree creation. This can be done with Jetty or Tomcat restart.

Following this principles, you are now free to add new modules, components, directives or services to your application.