CB-8086 Prefixed subprojects with package name. The last portion of the package name, to be precise.
Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/71378d76 Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/71378d76 Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/71378d76 Branch: refs/heads/master Commit: 71378d7673fd2207c8a5127effe442a5f20355c8 Parents: 996556a Author: Max Woghiren <[email protected]> Authored: Wed Nov 26 15:25:02 2014 -0500 Committer: Max Woghiren <[email protected]> Committed: Thu Nov 27 11:24:47 2014 -0500 ---------------------------------------------------------------------- cordova-lib/src/plugman/platforms/android.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/71378d76/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 08804bd..5bad742 100644 --- a/cordova-lib/src/plugman/platforms/android.js +++ b/cordova-lib/src/plugman/platforms/android.js @@ -39,11 +39,16 @@ module.exports = { // reads the package name out of the Android Manifest file // @param string project_dir the absolute path to the directory containing the project // @return string the name of the package - package_name:function (project_dir) { + package_name:function(project_dir) { var mDoc = xml_helpers.parseElementtreeSync(path.join(project_dir, 'AndroidManifest.xml')); return mDoc._root.attrib['package']; }, + package_suffix:function(project_dir) { + var packageName = module.exports.package_name(project_dir); + var lastDotIndex = packageName.lastIndexOf('.'); + return packageName.substring(lastDotIndex + 1); + }, 'source-file':{ install:function(source_el, plugin_dir, project_dir, plugin_id) { var dest = path.join(source_el.attrib['target-dir'], path.basename(source_el.attrib['src'])); @@ -95,10 +100,11 @@ module.exports = { events.emit('verbose', 'Installing Android library: ' + src); var parent = source_el.attrib.parent; - var parentDir = parent ? path.resolve(project_dir, module.exports.getCustomSubprojectRelativeDir(plugin_id, parent)) : project_dir; + var parentDir = parent ? path.resolve(project_dir, parent) : project_dir; var subDir; + if (custom) { - var subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, src); + var subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, project_dir, src); common.copyNewFile(plugin_dir, src, project_dir, subRelativeDir); subDir = path.resolve(project_dir, subRelativeDir); } else { @@ -123,11 +129,10 @@ module.exports = { events.emit('verbose', 'Uninstalling Android library: ' + src); var parent = source_el.attrib.parent; var parentDir = parent ? path.resolve(project_dir, parent) : project_dir; - var subRelativeDir = path.join(plugin_id, path.basename(src)); var subDir; if (custom) { - subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, src); + var subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, project_dir, src); common.removeFile(project_dir, subRelativeDir); subDir = path.resolve(project_dir, subRelativeDir); } else { @@ -158,8 +163,10 @@ module.exports = { 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)); + getCustomSubprojectRelativeDir: function (plugin_id, project_dir, src) { + // All custom subprojects are prefixed with the last portion of the package id. + var prefix = module.exports.package_suffix(project_dir); + var subRelativeDir = path.join(plugin_id, prefix + '-' + path.basename(src)); return subRelativeDir; } }; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
