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]

Reply via email to