You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by dd...@apache.org on 2012/08/09 01:16:04 UTC

svn commit: r1371013 - in /shindig/trunk/features/src: main/javascript/features/container/container.js test/javascript/features/container/container_test.js

Author: ddumont
Date: Wed Aug  8 23:16:04 2012
New Revision: 1371013

URL: http://svn.apache.org/viewvc?rev=1371013&view=rev
Log:
Provide order of container mixin execution.

Modified:
    shindig/trunk/features/src/main/javascript/features/container/container.js
    shindig/trunk/features/src/test/javascript/features/container/container_test.js

Modified: shindig/trunk/features/src/main/javascript/features/container/container.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container/container.js?rev=1371013&r1=1371012&r2=1371013&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container/container.js (original)
+++ shindig/trunk/features/src/main/javascript/features/container/container.js Wed Aug  8 23:16:04 2012
@@ -403,6 +403,7 @@ osapi.container.Container.addMixin = fun
       return func.call(this, container);
     };
   } else {
+    osapi.container.Container.prototype.mixinsOrder_.push(namespace);
     mixins[namespace] = func;
   }
 };
@@ -421,14 +422,24 @@ osapi.container.Container.addMixin = fun
  */
 osapi.container.Container.prototype.mixins_ = {};
 
+/**
+ * Order of addMixin calls.
+ * @type {Array<string>}
+ * @private
+ */
+osapi.container.Container.prototype.mixinsOrder_ = [];
+
 
 /**
  * Called from the constructor to add any namespace extensions.
  * @private
  */
 osapi.container.Container.prototype.initializeMixins_ = function() {
-  for (var i in this.mixins_) {
-    this[i] = new this.mixins_[i](this);
+  var mixins = osapi.container.Container.prototype.mixins_,
+      order = osapi.container.Container.prototype.mixinsOrder_;
+  for (var i = 0; i < order.length; i++) {
+    var namespace = order[i];
+    this[namespace] = new mixins[namespace](this);
   }
 };
 

Modified: shindig/trunk/features/src/test/javascript/features/container/container_test.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/container/container_test.js?rev=1371013&r1=1371012&r2=1371013&view=diff
==============================================================================
--- shindig/trunk/features/src/test/javascript/features/container/container_test.js (original)
+++ shindig/trunk/features/src/test/javascript/features/container/container_test.js Wed Aug  8 23:16:04 2012
@@ -142,6 +142,7 @@ ContainerTest.prototype.testMixinViaProt
       }
     };
   };
+  osapi.container.Container.prototype.mixinsOrder_.push('test');
   var container = new osapi.container.Container();
   this.setupGadgetSite(1, {}, null);
   container.newGadgetSite(null);