You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2014/06/17 05:09:21 UTC

[1/2] git commit: Revert "CB-6698 Resolve android relative to plugin_dir when custom=true"

Repository: cordova-lib
Updated Branches:
  refs/heads/master da884bf14 -> ffc17dd1b


Revert "CB-6698 Resolve android <framework> relative to plugin_dir when custom=true"

This reverts commit 04588a42067a5ba0d303f4b69f99f44640c3b9e0.


Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/95772a17
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/95772a17
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/95772a17

Branch: refs/heads/master
Commit: 95772a1774906b5abc3dee46a19b3d7a1c2fcce5
Parents: da884bf
Author: Martin Bektchiev <ma...@telerik.com>
Authored: Fri Jun 13 18:12:02 2014 +0300
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Mon Jun 16 23:03:09 2014 -0400

----------------------------------------------------------------------
 cordova-lib/spec-plugman/platforms/android.spec.js | 13 ++++++-------
 cordova-lib/src/plugman/platforms/android.js       |  2 +-
 2 files changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/95772a17/cordova-lib/spec-plugman/platforms/android.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/android.spec.js b/cordova-lib/spec-plugman/platforms/android.spec.js
index 33906e6..00dac74 100644
--- a/cordova-lib/spec-plugman/platforms/android.spec.js
+++ b/cordova-lib/spec-plugman/platforms/android.spec.js
@@ -137,22 +137,21 @@ describe('android project handler', function() {
             afterEach(function() {
                 android.purgeProjectFileCache(temp);
             });
-            it('with custom=true should update the main and library projects', function() {
+            it('should update the main and library projects', function() {
                 var frameworkElement = { attrib: { src: "LibraryPath", custom: true } };
-                var subDir = path.resolve(dummyplugin, frameworkElement.attrib.src);
+                var subDir = path.resolve(temp, frameworkElement.attrib.src);
                 var mainProjectPropsFile = path.resolve(temp, "project.properties");
                 var subProjectPropsFile = path.resolve(subDir, "project.properties");
 
                 var existsSync = spyOn( fs, 'existsSync').andReturn(true);
                 var writeFileSync = spyOn(fs, 'writeFileSync');
                 var readFileSync = spyOn(fs, 'readFileSync').andCallFake(function (file) {
-                    file = path.normalize(file);
-                    if (file === mainProjectPropsFile) {
+                    if (path.normalize(file) === mainProjectPropsFile) {
                         return '#Some comment\ntarget=android-19\nandroid.library.reference.1=ExistingLibRef1\nandroid.library.reference.2=ExistingLibRef2';
-                    } else if (file === subProjectPropsFile) {
+                    } else if (path.normalize(file) === subProjectPropsFile) {
                         return '#Some comment\ntarget=android-17\nandroid.library=true';
                     } else {
-                        throw new Error("Trying to read from an unexpected file " + file + '\n expected: ' + mainProjectPropsFile + '\n' + subProjectPropsFile);
+                        throw new Error("Trying to read from an unexpected file " + file);
                     }
                 })
                 var exec = spyOn(shell, 'exec');
@@ -161,7 +160,7 @@ describe('android project handler', function() {
                 android.parseProjectFile(temp).write();
 
                 expect(_.any(writeFileSync.argsForCall, function (callArgs) {
-                    return callArgs[0] === mainProjectPropsFile && !!/\nandroid.library.reference.3=.*?LibraryPath/.exec(callArgs[1]);
+                    return callArgs[0] === mainProjectPropsFile && callArgs[1].indexOf('\nandroid.library.reference.3=LibraryPath') > -1;
                 })).toBe(true, 'Reference to library not added');
                 expect(_.any(writeFileSync.argsForCall, function (callArgs) {
                     return callArgs[0] === subProjectPropsFile && callArgs[1].indexOf('\ntarget=android-19') > -1;

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/95772a17/cordova-lib/src/plugman/platforms/android.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/platforms/android.js b/cordova-lib/src/plugman/platforms/android.js
index 349b818..06aee30 100644
--- a/cordova-lib/src/plugman/platforms/android.js
+++ b/cordova-lib/src/plugman/platforms/android.js
@@ -93,7 +93,7 @@ module.exports = {
             var parentDir = parent ? path.resolve(project_dir, parent) : project_dir;
             var subDir;
             if (custom) {
-                subDir = path.resolve(plugin_dir, src);
+                subDir = path.resolve(project_dir, src);
             } else {
                 var localProperties = properties_parser.createEditor(path.resolve(project_dir, "local.properties"));
                 subDir = path.resolve(localProperties.get("sdk.dir"), src);


[2/2] git commit: CB-6698 Automatically copy sub-libraries to project's directory

Posted by ag...@apache.org.
CB-6698 Automatically copy sub-libraries to project's directory

Github: close #29


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

Branch: refs/heads/master
Commit: ffc17dd1bdc89b515cfff0a14a31f4bd0e097234
Parents: 95772a1
Author: Martin Bektchiev <ma...@telerik.com>
Authored: Fri Jun 13 19:00:36 2014 +0300
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Mon Jun 16 23:08:39 2014 -0400

----------------------------------------------------------------------
 .../spec-plugman/platforms/android.spec.js      | 28 ++++++++++-------
 cordova-lib/src/plugman/platforms/android.js    | 33 +++++++++++++++++---
 2 files changed, 44 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/ffc17dd1/cordova-lib/spec-plugman/platforms/android.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/platforms/android.spec.js b/cordova-lib/spec-plugman/platforms/android.spec.js
index 00dac74..637df5f 100644
--- a/cordova-lib/spec-plugman/platforms/android.spec.js
+++ b/cordova-lib/spec-plugman/platforms/android.spec.js
@@ -137,30 +137,32 @@ describe('android project handler', function() {
             afterEach(function() {
                 android.purgeProjectFileCache(temp);
             });
-            it('should update the main and library projects', function() {
+            it('with custom=true should update the main and library projects', function() {
                 var frameworkElement = { attrib: { src: "LibraryPath", custom: true } };
-                var subDir = path.resolve(temp, frameworkElement.attrib.src);
+                var subDir = path.resolve(temp, dummy_id, frameworkElement.attrib.src);
                 var mainProjectPropsFile = path.resolve(temp, "project.properties");
                 var subProjectPropsFile = path.resolve(subDir, "project.properties");
 
                 var existsSync = spyOn( fs, 'existsSync').andReturn(true);
                 var writeFileSync = spyOn(fs, 'writeFileSync');
+                var copyNewFile = spyOn(common, 'copyNewFile');
                 var readFileSync = spyOn(fs, 'readFileSync').andCallFake(function (file) {
-                    if (path.normalize(file) === mainProjectPropsFile) {
+                    file = path.normalize(file);
+                    if (file === mainProjectPropsFile) {
                         return '#Some comment\ntarget=android-19\nandroid.library.reference.1=ExistingLibRef1\nandroid.library.reference.2=ExistingLibRef2';
-                    } else if (path.normalize(file) === subProjectPropsFile) {
+                    } else if (file === subProjectPropsFile) {
                         return '#Some comment\ntarget=android-17\nandroid.library=true';
                     } else {
-                        throw new Error("Trying to read from an unexpected file " + file);
+                        throw new Error("Trying to read from an unexpected file " + file + '\n expected: ' + mainProjectPropsFile + '\n' + subProjectPropsFile);
                     }
                 })
                 var exec = spyOn(shell, 'exec');
 
-                android['framework'].install(frameworkElement, dummyplugin, temp);
+                android['framework'].install(frameworkElement, dummyplugin, temp, dummy_id);
                 android.parseProjectFile(temp).write();
 
                 expect(_.any(writeFileSync.argsForCall, function (callArgs) {
-                    return callArgs[0] === mainProjectPropsFile && callArgs[1].indexOf('\nandroid.library.reference.3=LibraryPath') > -1;
+                    return callArgs[0] === mainProjectPropsFile && callArgs[1].indexOf('\nandroid.library.reference.3='+dummy_id+'/LibraryPath') > -1;
                 })).toBe(true, 'Reference to library not added');
                 expect(_.any(writeFileSync.argsForCall, function (callArgs) {
                     return callArgs[0] === subProjectPropsFile && callArgs[1].indexOf('\ntarget=android-19') > -1;
@@ -176,6 +178,7 @@ describe('android project handler', function() {
 
                 var existsSync = spyOn( fs, 'existsSync').andReturn(true);
                 var writeFileSync = spyOn(fs, 'writeFileSync');
+                var copyNewFile = spyOn(common, 'copyNewFile');
                 var readFileSync = spyOn(fs, 'readFileSync').andCallFake(function (file) {
                     if (path.normalize(file) === mainProjectPropsFile) {
                         return '#Some comment\ntarget=android-19\nandroid.library.reference.1=ExistingLibRef1\nandroid.library.reference.2=ExistingLibRef2';
@@ -189,7 +192,7 @@ describe('android project handler', function() {
                 })
                 var exec = spyOn(shell, 'exec');
 
-                android['framework'].install(frameworkElement, dummyplugin, temp);
+                android['framework'].install(frameworkElement, dummyplugin, temp, dummy_id);
                 android.parseProjectFile(temp).write();
 
                 var relativePath = android_project.getRelativeLibraryPath(temp, subDir);
@@ -246,18 +249,19 @@ describe('android project handler', function() {
                 android.purgeProjectFileCache(temp);
             });
             it('should remove library reference from the main project', function () {
-                var frameworkElement = { attrib: { src: "LibraryPath" } };
-                var sub_dir = path.resolve(temp, frameworkElement.attrib.src);
+                var frameworkElement = { attrib: { src: "LibraryPath", custom: true } };
+                var sub_dir = path.resolve(temp, dummy_id, frameworkElement.attrib.src);
                 var mainProjectProps = path.resolve(temp, "project.properties");
                 var existsSync = spyOn(fs, 'existsSync').andReturn(true);
                 var writeFileSync = spyOn(fs, 'writeFileSync');
+                var removeFile = spyOn(common, 'removeFile');
                 var readFileSync = spyOn(fs, 'readFileSync').andCallFake(function (file) {
                     if (path.normalize(file) === mainProjectProps)
-                        return '#Some comment\ntarget=android-19\nandroid.library.reference.1=ExistingLibRef1\nandroid.library.reference.2=LibraryPath\nandroid.library.reference.3=ExistingLibRef2\n';
+                        return '#Some comment\ntarget=android-19\nandroid.library.reference.1=ExistingLibRef1\nandroid.library.reference.2='+dummy_id+'/LibraryPath\nandroid.library.reference.3=ExistingLibRef2\n';
                 })
                 var exec = spyOn(shell, 'exec');
 
-                android['framework'].uninstall(frameworkElement, temp);
+                android['framework'].uninstall(frameworkElement, temp, dummy_id);
                 android.parseProjectFile(temp).write();
 
                 expect(_.any(writeFileSync.argsForCall, function (callArgs) {

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/ffc17dd1/cordova-lib/src/plugman/platforms/android.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/platforms/android.js b/cordova-lib/src/plugman/platforms/android.js
index 06aee30..47669ae 100644
--- a/cordova-lib/src/plugman/platforms/android.js
+++ b/cordova-lib/src/plugman/platforms/android.js
@@ -90,25 +90,40 @@ module.exports = {
 
             events.emit('verbose', "Installing Android library: " + src);
             var parent = source_el.attrib.parent;
-            var parentDir = parent ? path.resolve(project_dir, parent) : project_dir;
+            var parentDir = parent ? path.resolve(project_dir, module.exports.getCustomSubprojectRelativeDir(plugin_id, parent)) : project_dir;
             var subDir;
             if (custom) {
-                subDir = path.resolve(project_dir, src);
+                var subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, src);
+                common.copyNewFile(plugin_dir, src, project_dir, subRelativeDir);
+                subDir = path.resolve(project_dir, subRelativeDir);
             } else {
-                var localProperties = properties_parser.createEditor(path.resolve(project_dir, "local.properties"));
-                subDir = path.resolve(localProperties.get("sdk.dir"), src);
+                var sdk_dir = module.exports.getProjectSdkDir(project_dir);
+                subDir = path.resolve(sdk_dir, src);
             }
+
             var projectConfig = module.exports.parseProjectFile(project_dir);
             projectConfig.addSubProject(parentDir, subDir);
         },
         uninstall:function(source_el, project_dir, plugin_id) {
             var src = source_el.attrib.src;
+            var custom = source_el.attrib.custom;
             if (!src) throw new Error('src not specified in framework element');
 
             events.emit('verbose', "Uninstalling Android library: " + src);
             var parent = source_el.attrib.parent;
             var parentDir = parent ? path.resolve(project_dir, parent) : project_dir;
-            var subDir = path.resolve(project_dir, src);
+            var subRelativeDir = path.join(plugin_id, path.basename(src));
+            var subDir;
+
+            if (custom) {
+                var subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, src);
+                common.removeFile(project_dir, subRelativeDir);
+                subDir = path.resolve(project_dir, subRelativeDir);
+            } else {
+                var sdk_dir = module.exports.getProjectSdkDir(project_dir);
+                subDir = path.resolve(sdk_dir, src);
+            }
+
             var projectConfig = module.exports.parseProjectFile(project_dir);
             projectConfig.removeSubProject(parentDir, subDir);
         }
@@ -122,6 +137,14 @@ module.exports = {
     },
     purgeProjectFileCache:function(project_dir) {
         delete projectFileCache[project_dir];
+    },
+    getProjectSdkDir: function (project_dir) {
+        var localProperties = properties_parser.createEditor(path.resolve(project_dir, "local.properties"));
+        return localProperties.get("sdk.dir");
+    },
+    getCustomSubprojectRelativeDir: function (plugin_id, src) {
+        var subRelativeDir = path.join(plugin_id, path.basename(src));
+        return subRelativeDir;
     }
 };