Merge "Remove AngularAMD/NgLoad/DomReady"
authorHarman Singh <harmasin@cisco.com>
Wed, 23 Sep 2015 15:16:26 +0000 (15:16 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 23 Sep 2015 15:16:26 +0000 (15:16 +0000)
dlux-web/bower.json
dlux-web/build.config.js
dlux-web/optimize.js
loader/impl/src/main/java/org/opendaylight/dlux/loader/implementation/DluxLoaderIndexServlet.java
loader/impl/src/main/resources/CommonAppModules.properties
loader/impl/src/test/java/org/opendaylight/dlux/loader/DluxLoaderIndexServletTest.java
modules/loader-resources/src/main/resources/app/app.module.js
modules/loader-resources/src/main/resources/main.js
modules/loader-resources/src/main/resources/test-main.js

index 0b27eb29daf00c7056d38ca11c72550a2081351d..9d4320b562eb72298511145a03b1c272558c91da 100644 (file)
@@ -11,7 +11,7 @@
     "angular-cookies": "~1.4.0",
     "angular-sanitize": "~1.4.0",
     "angular-ui-date": "latest",
-    "requirejs": "2.1.14",
+    "requirejs": "~2.1.14",
     "font-awesome": "~4.0.3",
     "bootstrap": "~3.0.2",
     "angular-ui-router": "~0.2.10",
@@ -40,7 +40,6 @@
     "bootstrap": "~3.0.2",
     "angular-bootstrap": "~0.13.0",
     "ng-grid": "~2.0.7",
-    "angularAMD": "~0.1.1",
     "requirejs-domready": "~2.0.1",
     "ocLazyLoad": "0.3.0",
     "angular-css-injector": "~1.0.3",
index 81ffdc1b19342bde791d4f770070f0274fd8668e..7dd95857c732fc30a3f043d86ee97e53aa81658c 100644 (file)
@@ -69,9 +69,6 @@ module.exports = {
       'vendor/bootstrap/js/dropdown.js',\r
       'vendor/angular/angular.js',\r
       'vendor/requirejs/requirejs.js',\r
-      'vendor/angularAMD/angularAMD.js',\r
-      'vendor/angularAMD/ngload.js',\r
-      'vendor/requirejs-domready/domReady.js',\r
       'vendor/ocLazyLoad/dist/ocLazyLoad.js',\r
       'vendor/angular-css-injector/angular-css-injector.js',\r
       'vendor/angular-route/angular-route.js',\r
index 87251687307102499be2c1ad77347983554c4225..90aa2c52a47d7d86a3aede2dc50b408f9d336c70 100644 (file)
         name: "main",
         exclude: [
           "angular",
-          "angularAMD",
-          "ngload",
           "ui-bootstrap",
-          "domReady",
           "Restangular",
           "underscore",
           "angular-ui-router",
index 7f1f60ce45ee95691ed19593455cd02b4d787062..55929c0bc1e32c536ea7e994e3267519128c4591 100644 (file)
@@ -33,11 +33,15 @@ public class DluxLoaderIndexServlet extends HttpServlet{
     private static final long serialVersionUID = 1L;
     private static Logger logger = LoggerFactory.getLogger(DluxLoaderIndexServlet.class);
 
+    private String DEFINEJS_PROPERTY = "defineJS";
+
     private String REQUIREJS_PROPERTY = "requireJS";
 
     private String ANGULARJS_PROPERTY = "angularJS";
 
-    private final String REQUIREJS_START = "var module = [";
+    private final String DEFINEJS_START = "var module = [";
+
+    private final String REQUIREJS_START = "var deps = [";
 
     private final String ANGULARJS_START = "var e = [";
 
@@ -137,18 +141,21 @@ public class DluxLoaderIndexServlet extends HttpServlet{
     }
 
     private String getModulesString() {
+        StringBuilder defineJsBuilder = new StringBuilder();
         StringBuilder requireJsBuilder = new StringBuilder();
         StringBuilder angularBuilder = new StringBuilder();
+        defineJsBuilder.append(DEFINEJS_START).append(prop.getProperty(DEFINEJS_PROPERTY));
         requireJsBuilder.append(REQUIREJS_START).append(prop.getProperty(REQUIREJS_PROPERTY));
         angularBuilder.append(ANGULARJS_START).append(prop.getProperty(ANGULARJS_PROPERTY));
         for (Module module: loader.getModules()){
             requireJsBuilder.append(COMMA_QUOTE).append(module.getRequireJs()).append(QUOTE);
             angularBuilder.append(COMMA_QUOTE).append(module.getAngularJs()).append(QUOTE);
         }
+        defineJsBuilder.append(end).append(NEWLINE);
         requireJsBuilder.append(end).append(NEWLINE);
         angularBuilder.append(end);
 
-        return requireJsBuilder.toString() + angularBuilder.toString();
+        return defineJsBuilder.toString() + requireJsBuilder.toString() + angularBuilder.toString();
     }
 
     private String getCSSString() {
index 2eeeaf10b8be6ddfe2cc02bffda7774da4268c90..183e46d0be13b4451a874cd0aed76f10ed921ebf 100644 (file)
@@ -1,4 +1,5 @@
-requireJS='angularAMD','ocLazyLoad','angular-ui-router','angular-translate','angular-sanitize','angular-translate-loader-static-files','angular-translate-loader-partial','common/config/env.module','angular-css-injector'
-angularJS='oc.lazyLoad', 'ui.router', 'pascalprecht.translate', 'ngSanitize', 'angular.css.injector'
+defineJS= 'angular','ocLazyLoad','angular-ui-router','angular-translate', 'angular-sanitize', 'angular-translate-loader-static-files', 'angular-translate-loader-partial', 'angular-css-injector'
+requireJS='common/config/env.module'
+angularJS='oc.lazyLoad', 'ui.router', 'pascalprecht.translate', 'ngSanitize', 'angular.css.injector', 'app'
 javascriptReplaceString=global variables
 cssReplaceString=application CSS
\ No newline at end of file
index 7eaed5521435f4eb5dcda1431b85bfe0958051fd..eb1c9055cbe5f4baa0ca20c82a6dba8df8b346cc 100644 (file)
@@ -27,9 +27,12 @@ public class DluxLoaderIndexServletTest {
 
         DluxLoaderIndexServlet indexServlet = new DluxLoaderIndexServlet(dluxLoader);
         Properties properties = indexServlet.getProp();
+        String defineJS = properties.getProperty("defineJS");
+        Assert.assertNotNull(defineJS); 
+        Assert.assertTrue(defineJS.contains("'angular',"));
         String requireJS = properties.getProperty("requireJS");
         Assert.assertNotNull(requireJS);
-        Assert.assertTrue(requireJS.contains("'angularAMD',"));
+        Assert.assertTrue(requireJS.contains("common/config/env.module"));
         String angularJS = properties.getProperty("angularJS");
         Assert.assertNotNull(angularJS);
         Assert.assertTrue(angularJS.contains("'ui.router',"));
index 4cefecb0e1b412d523bccc671f28155ef9cbfc16..368bafcf2252bcd24a01bb88f5768fcecdbd0e02 100644 (file)
@@ -5,8 +5,7 @@
 //karaf based dlux deployment
 /*
 var module = [
-  'angularAMD',
-  'app/core/core.module',
+  'angular',
   'angular-translate',
   'angular-sanitize',
   'angular-translate-loader-static-files',
@@ -14,6 +13,10 @@ var module = [
   'angular-ui-router',
   'ocLazyLoad',
   'angular-css-injector',
+];
+
+var deps = [
+  'app/core/core.module',
   'app/node/nodes.module',
   'app/topology/topology.module',
   'common/login/login.module',
@@ -23,7 +26,8 @@ var module = [
   'common/navigation/navigation.module',
   'common/topbar/topbar.module',
   'common/layout/layout.module',
-  'common/config/env.module']; //needed module
+  'common/config/env.module'
+];
 
 // The name of all angularjs module
 var e = [
@@ -32,6 +36,7 @@ var e = [
   'pascalprecht.translate',
   'ngSanitize',
   'angular.css.injector',
+  'app',
   'app.nodes',
   'app.topology',
   'app.common.login',
@@ -45,14 +50,26 @@ var e = [
 
 */
 
-define(module, function(ng) {
+define(module, function(angular) {
   'use strict';
+  var preboot = [],
+    register = {},
+    dlux_angular = {},
+    orig_angular = angular,
+    app = angular.module('app', []);
 
-  var app = angular.module('app', e);
+  angular.extend(dlux_angular, orig_angular);
 
+  dlux_angular.module = function(name, deps) {
+    var module = orig_angular.module(name, deps);
+    preboot.push(module);
+    return module;
+  };
+
+  window.angular = dlux_angular; // backward compatibility
 
   // The overal config he is done here.
-  app.config(function ($stateProvider, $urlRouterProvider,  $ocLazyLoadProvider, $translateProvider, $translatePartialLoaderProvider, cssInjectorProvider) {
+  app.config(function ($urlRouterProvider,  $ocLazyLoadProvider, $translateProvider, $translatePartialLoaderProvider, $controllerProvider, $compileProvider, $provide, cssInjectorProvider) {
 
     $urlRouterProvider.otherwise("/topology"); // set the default route
 
@@ -70,13 +87,35 @@ define(module, function(ng) {
 
     $translatePartialLoaderProvider.addPart('../assets/data/locale');
     $translateProvider.preferredLanguage('en_US');
-
     $translateProvider.useSanitizeValueStrategy('escape');
-  });
 
-  ng.bootstrap(app);
+    // the only way to add a dynamic module
+    register = {
+        controller : $controllerProvider.register,
+        directive : $compileProvider.directive,
+        factory : $provide.factory,
+        service : $provide.service
+    };
+
+    app.register = {};
+    angular.extend(app.register, register);
+  });
 
-  console.log('bootstrap done (: ');
+  /* --- define vs require war --- 
+   * From my understanding, we use require when
+   * we want to load a dependency and run it. Define
+   * is only to define the dependency for a module.
+   */
+  require(deps, function() {
+    angular.element(document).ready(function() {
+      angular.bootstrap(document, e).invoke(function() {
+        preboot.forEach(function(m) {
+            angular.extend(m, register);
+        });
+        console.log('bootstrap done (: ');
+      });
+    });
+  });
 
   return app;
 });
index 306a5aed95a48a514455da7ef51f343e141d2fb6..4f32f446fd6dd6ee02f65c476b7fe51f27b8171a 100644 (file)
@@ -2,10 +2,7 @@ require.config({
   baseUrl : 'src',
   paths : {
     'angular' : '../vendor/angular/angular',
-    'angularAMD' : '../vendor/angularAMD/angularAMD',
-    'ngload' : '../vendor/angularAMD/ngload',
     'ui-bootstrap' : '../vendor/angular-bootstrap/ui-bootstrap-tpls.min',
-    'domReady' : '../vendor/requirejs-domready/domReady',
     'Restangular' : '../vendor/restangular/dist/restangular.min',
     'underscore' : '../vendor/underscore/underscore',
     'angular-ui-router' : '../vendor/angular-ui-router/release/angular-ui-router',
@@ -26,15 +23,17 @@ require.config({
     'sigma-forceAtlas2' : '../vendor/sigma/plugins/sigma.layout.forceAtlas2.min',
     'sigma-dragNodes' : '../vendor/sigma/plugins/sigma.plugins.dragNodes.min',
     'sigma-customShapes' : '../vendor/sigma/plugins/sigma.renderers.customShapes.min',
-    'graphRenderer' : '../assets/js/graphRenderer',
     'ngSlider' : '../vendor/ng-slider/dist/ng-slider.min',
     'ZeroClipboard' : '../vendor/zeroclipboard/dist/ZeroClipboard',
     'ngClip' : '../vendor/ng-clip/src/ngClip',
     'angular-translate-loader-partial' : '../vendor/angular-translate-loader-partial/angular-translate-loader-partial',
   },
-
+  map: {
+    '*': {
+      'angularAMD': 'angular'
+    }
+  },
   shim : {
-    'angularAMD' : ['angular'],
     'ocLazyLoad' : ['angular'],
     'Restangular' : ['angular', 'underscore'],
     'ui-bootstrap' : ['angular'],
@@ -44,14 +43,9 @@ require.config({
     'angular-translate': ['angular'],
     'angular-sanitize': ['angular'],
     'angular-translate-loader-static-files' : ['angular-translate'],
-    'ngload' : ['angularAMD'],
-    'pixi' : {
-        exports: 'PIXI'
-    },
     'vis' : {
         exports: 'vis'
     },
-    'graphRenderer' : ['pixi'],
     'jquery' : {
       exports : '$'
     },
index 0018ed27d0e44df99723c56e20f42d7e6134c5c2..d4dcbd4bf7c5305758a3dd9f67726c6bb25d374c 100644 (file)
@@ -25,10 +25,7 @@ var test = require.config({
   paths : {
     'angular' : '../vendor/angular/angular',
     'angular-mocks' : '../vendor/angular-mocks/angular-mocks',
-    'angularAMD' : '../vendor/angularAMD/angularAMD',
-    'ngload' : '../vendor/angularAMD/ngload',
     'ui-bootstrap' : '../vendor/angular-bootstrap/ui-bootstrap-tpls.min',
-    'domReady' : '../vendor/requirejs-domready/domReady',
     'Restangular' : '../vendor/restangular/dist/restangular.min',
     'underscore' : '../vendor/underscore/underscore',
     'angular-ui-router' : '../vendor/angular-ui-router/release/angular-ui-router',
@@ -39,7 +36,6 @@ var test = require.config({
     'jquery' : '../vendor/jquery/jquery',
     'jquery-ui' : '../vendor/jquery-ui/jquery-ui.min',
     'footable' : '../vendor/footable/dist/footable.min',
-    'pixi': '../vendor/pixi/bin/pixi',
     'd3' : '../vendor/d3/d3.min',
     'vis' : '../vendor/vis/dist/vis.min',
     'ocLazyLoad' : '../vendor/ocLazyLoad/dist/ocLazyLoad',
@@ -48,14 +44,16 @@ var test = require.config({
     'sigma-forceAtlas2' : '../vendor/sigma/plugins/sigma.layout.forceAtlas2.min',
     'sigma-dragNodes' : '../vendor/sigma/plugins/sigma.plugins.dragNodes.min',
     'sigma-customShapes' : '../vendor/sigma/plugins/sigma.renderers.customShapes.min',
-    'graphRenderer' : '../assets/js/graphRenderer',
     'ngSlider' : '../vendor/ng-slider/dist/ng-slider.min'
   },
-
+  map:{
+    '*': {
+      'angularAMD': 'angular'
+    }        
+  },
   shim : {
     'angular' : ['jquery'],
     'angular-mocks' : ['angular'],
-    'angularAMD' : ['angular'],
     'ocLazyLoad' : ['angular'],
     'Restangular' : ['angular', 'underscore'],
     'ui-bootstrap' : ['angular'],
@@ -64,14 +62,9 @@ var test = require.config({
     'angular-cookies' : ['angular'],
     'angular-translate': ['angular'],
     'angular-translate-loader-static-files' : ['angular-translate'],
-    'ngload' : ['angularAMD'],
-    'pixi' : {
-        exports: 'PIXI'
-    },
     'vis' : {
         exports: 'vis'
     },
-    'graphRenderer' : ['pixi'],
     'jquery' : {
       exports : '$'
     },