[ 
https://issues.apache.org/jira/browse/CB-3390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Billau reopened CB-3390:
-----------------------------


I can reproduce with dependent plugins.

cordova --version
[3.1.0-0.1.0]
cordova create SampleApp && cd SampleApp
cordova platform add android
cordova plugin add org.apache.cordova.file
cordova plugin add org.apache.cordova.file-transfer
cordova plugin ls
 [org.apache.cordova.file, org.apache.cordova.file-transfer]
cat /plugins/android.json
{
    "prepare_queue": {
        "installed": [],
        "uninstalled": []
    },
    "config_munge": {
        "res/xml/config.xml": {
            "/*": {
                "<feature name=\"File\"><param name=\"android-package\" 
value=\"org.apache.cordova.file.FileUtils\" /></feature>": 1,
                "<feature name=\"FileTransfer\"><param name=\"android-package\" 
value=\"org.apache.cordova.filetransfer.FileTransfer\" /></feature>": 1
            }
        },
        "AndroidManifest.xml": {
            "/*": {
                "<uses-permission 
android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />": 2
            }
        }
    },
    "installed_plugins": {
        "org.apache.cordova.file": {
            "PACKAGE_NAME": "io.cordova.hellocordova"
        },
        "org.apache.cordova.file-transfer": {
            "PACKAGE_NAME": "io.cordova.hellocordova"
        }
    },
    "dependent_plugins": {}
}
cordova plugin rm org.apache.cordova.file-transfer
cordova plugin ls
 [ No plugins added. Use 'cordova plugin add <plugin>'  **Not sure if this is 
expected. Should removing a plugin's dependency remove that plugin? I don't 
think so!**
cat /plugins/android.json
{
    "prepare_queue": {
        "installed": [],
        "uninstalled": []
    },
    "config_munge": {
        "res/xml/config.xml": {
            "/*": {}
        },
        "AndroidManifest.xml": {
            "/*": {}
        }
    },
    "installed_plugins": {
        "org.apache.cordova.file": {
            "PACKAGE_NAME": "io.cordova.hellocordova"
        }
    },
    "dependent_plugins": {}
}
**You see that plugins/android.json is definitely wrong, since it says that the 
file plugin is still installed, but it was actually removed by plugman.**
The project cannot be built either anymore:
Error: ENOENT, no such file or direcotry "......plugins\org.apache.cordova.file"

I think that this demonstrates at least one bug:
1. (potential) Removing a dependency plugin removes the associated top level 
plugin (removing file-transfer should not remove file in my opinion) 
2. Removing a dependency plugin does not remove the associated top level 
plugin's entry from plugins/android.json, resulting in a broken environment. 

> android.json (etc.) not getting updated on uninstall
> ----------------------------------------------------
>
>                 Key: CB-3390
>                 URL: https://issues.apache.org/jira/browse/CB-3390
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CLI, Plugman
>            Reporter: Braden Shepherdson
>            Assignee: Filip Maj
>




--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to