cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From agri...@apache.org
Subject [1/4] git commit: Bump HarnessServer protocol version, update comments, make bulkMove a bit safer
Date Tue, 17 Jun 2014 20:40:04 GMT
Repository: cordova-app-harness
Updated Branches:
  refs/heads/master 7a508c3bb -> 32145b811


Bump HarnessServer protocol version, update comments, make bulkMove a bit safer


Project: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/commit/eafb3494
Tree: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/tree/eafb3494
Diff: http://git-wip-us.apache.org/repos/asf/cordova-app-harness/diff/eafb3494

Branch: refs/heads/master
Commit: eafb3494809a87f21b4fe5d24dfd046a4e796477
Parents: 7a508c3
Author: Andrew Grieve <agrieve@chromium.org>
Authored: Tue Jun 17 15:29:53 2014 -0400
Committer: Andrew Grieve <agrieve@chromium.org>
Committed: Tue Jun 17 16:27:42 2014 -0400

----------------------------------------------------------------------
 www/cdvah/js/DirectoryManager.js | 33 +++++++++++++++-----------------
 www/cdvah/js/HarnessServer.js    | 36 +++++++++++++++++++++++------------
 2 files changed, 39 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-app-harness/blob/eafb3494/www/cdvah/js/DirectoryManager.js
----------------------------------------------------------------------
diff --git a/www/cdvah/js/DirectoryManager.js b/www/cdvah/js/DirectoryManager.js
index cf782f0..da39c82 100644
--- a/www/cdvah/js/DirectoryManager.js
+++ b/www/cdvah/js/DirectoryManager.js
@@ -47,8 +47,8 @@
         };
 
         DirectoryManager.prototype.deleteAll = function() {
-            this._assetManifest = null;
-            this._assetManifestEtag = null;
+            this._assetManifest = {};
+            this._assetManifestEtag = 0;
             window.clearTimeout(this._flushTimerId);
             return ResourcesLoader.delete(this.rootURL);
         };
@@ -96,24 +96,21 @@
             return ResourcesLoader.writeFileContents(this.rootURL + ASSET_MANIFEST, stringContents);
         };
 
-        DirectoryManager.prototype.bulkAddFile = function(zipAssetManifest, srcURL) {
+        DirectoryManager.prototype.bulkAddFile = function(newAssetManifest, srcURL) {
             var self = this;
-            return ResourcesLoader.moveFile(srcURL, self.rootURL )
-            .then(function() {
-                 var src=self.rootURL+'www/cordova_plugins.js';
-                 var dest = self.rootURL+'orig-cordova_plugins.js';
-                 return ResourcesLoader.moveFile(src,dest );
-            })
+            return this.deleteAll()
             .then(function() {
-                 var keys=Object.keys(zipAssetManifest);
-                 for(var i=0;i<keys.length;i++) {
-                     var k = keys[i];
-                     var destPath = zipAssetManifest[k]['path'];
-                     if (destPath == 'www/cordova_plugins.js') {
-                         destPath = 'orig-cordova_plugins.js';
-                     }
-                     self._updateManifest(destPath, zipAssetManifest[k]['etag']);
-                 }
+                return ResourcesLoader.moveFile(srcURL, self.rootURL);
+            }).then(function() {
+                var keys = Object.keys(newAssetManifest);
+                return $q.when().then(function next() {
+                    var key = keys.shift();
+                    if (!key) {
+                        return;
+                    }
+                    return self._updateManifest(key, newAssetManifest[key])
+                    .then(next);
+                });
             });
         };
 

http://git-wip-us.apache.org/repos/asf/cordova-app-harness/blob/eafb3494/www/cdvah/js/HarnessServer.js
----------------------------------------------------------------------
diff --git a/www/cdvah/js/HarnessServer.js b/www/cdvah/js/HarnessServer.js
index 1a46513..bfe7240 100644
--- a/www/cdvah/js/HarnessServer.js
+++ b/www/cdvah/js/HarnessServer.js
@@ -50,16 +50,22 @@
 //
 // Send a set of files within the given app ID (or the first app if none is given):
 //     cat file | curl -v -X POST -d @- "http://$IP_ADDRESS:2424/zippush?appId=a.b.c&appType=cordova"
-// The zip file must contain a zipassetmanifest.json file at its root that is a map of "srcPath"->{"path":dstPath,
"etag":"0"}.
+// The zip file must contain a zipassetmanifest.json file at its root that is a map of "srcPath"->"$etag"}.
 //
 // Send a partial update of files within the given app ID (or the first app if none is given):
 //     cat file | curl -v -X POST -d @- "http://$IP_ADDRESS:2424/zippush?appId=a.b.c&appType=cordova&movetype=file"
-// The zip file must contain a zipassetmanifest.json file at its root that is a map of "srcPath"->{"path":dstPath,
"etag":"0"}.
+// The zip file must contain a zipassetmanifest.json file at its root that is a map of "srcPath"->"$etag"}.
 // With this method, the files are moved one at a time and will overwrite any existing file
of the same name.
 //
+// PROTOCOL CHANGES BY VERSION:
+// Version 3:
+//   - Allow zipassetmanifest to use { "srcPath" => "$etag" } rather than { "srcPath"
=> { "etag": "foo" } } (still supports either though).
+//   - Removed support for custom dstPath within zipassetmanifest.json
+//   - Sped up zippush by doing a directory move rather than per-file moves.
+//   - Added ?movetype=file to zippush command for old per-file behaviour.
     myApp.factory('HarnessServer', ['$q', 'HttpServer', 'ResourcesLoader', 'AppHarnessUI',
'AppsService', 'notifier', 'APP_VERSION', function($q, HttpServer, ResourcesLoader, AppHarnessUI,
AppsService, notifier, APP_VERSION) {
 
-        var PROTOCOL_VER = 2;
+        var PROTOCOL_VER = 3;
         var server = null;
         var listenAddress = null;
 
@@ -272,23 +278,29 @@
                 })
                 .then(function() {
                     // This file looks like:
-                    // {"path/within/zip": { "path": "dest/path", "etag": "foo" }}
+                    // {"path/within/zip": "$etag" }
                     return ResourcesLoader.readJSONFileContents(tmpDirUrl + 'zipassetmanifest.json');
                 }, null, function(unzipPercentage) {
                     app.updatingStatus = unzipPercentage;
                 })
                 .then(function(zipAssetManifest) {
+                    // Support old format of {"path/within/zip": {"etag": "$etag" }}
+                    Object.keys(zipAssetManifest).forEach(function(k) {
+                        if (typeof zipAssetManifest[k] != 'string') {
+                            zipAssetManifest[k] = zipAssetManifest[k]['etag'];
+                        }
+                    });
                     if (movetype == 'bulk') {
                         console.log('Moving files in bulk');
                         return $q.when()
                         .then(function(){
-                            // get the source base path from the first file
-                            // all files need to be in the same place
-                            var firstfile = Object.keys(zipAssetManifest)[0];
-                            var fpath = tmpDirUrl + firstfile;
-                            var pathendposition = fpath.lastIndexOf(zipAssetManifest[firstfile]['path']);
-                            var fromurl = fpath.substr(0,pathendposition-1);
-                            return app.directoryManager.bulkAddFile(zipAssetManifest, fromurl);
+                            if (zipAssetManifest['www/cordova_plugins.js']) {
+                                zipAssetManifest['orig-cordova_plugins.js'] = zipAssetManifest['www/cordova_plugins.js'];
+                                delete zipAssetManifest['www/cordova_plugins.js'];
+                                return ResourcesLoader.moveFile(tmpDirUrl + 'www/cordova_plugins.js',
tmpDirUrl + 'orig-cordova_plugins.js');
+                            }
+                        }).then(function() {
+                            return app.directoryManager.bulkAddFile(zipAssetManifest, tmpDirUrl);
                         });
                     } else {
                         var keys = Object.keys(zipAssetManifest);
@@ -297,7 +309,7 @@
                         .then(function next() {
                             var k = keys.shift();
                             if (k) {
-                                return  importFile(tmpDirUrl + k, zipAssetManifest[k]['path'],
app, zipAssetManifest[k]['etag'])
+                                return importFile(tmpDirUrl + k, k, app, zipAssetManifest[k])
                                 .then(next);
                             }
                         });


Mime
View raw message