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;
}
};