Oracle JDeveloper 10.1.3 has a fairly advanced – Eclipse like – mechanism for installing and upgrading plugins or extensions as they are called in JDeveloper lingo. Recently, I decided that I had prematurely upgraded one of my extensions to a new version. I wanted to undo that upgrade and fall back to the previous version. This now turned out to be not a trivial task. There is no menu option Downgrade or even De-Install. And when I tried to ‘upgrade’ to the previous version, I was protected against myself… I will show you how I managed to finally downgrade the extension, the JHeadstart plugin for super productive ADF Application Development.
When starting JDeveloper from the command line, I get an indication of the JHeadstart release that is currently loaded. It is the Service Update 1 (Build 97). And for project specific reasons, I temporarily have to go back to build 91.
I could not locate the de-install or downgrade extension menu options (I believe they do not exist). So instead I tried Help, Check for Updates and attempted to upgrade to the previous version:
I selected the local file I know to contain the Build 91 of JHeadstart’s extension. Now when I click Next, I get the following over-protective response:
Well, I will be the judge of that! But I could not persuade the Extension Manager to upgrade to the lower version. Whatta to do? in the Tools menu, from the Preferences dialog, I can disable any currently installed extension:
I disable the JHeadstart extensions. JDeveloper prompts me to restart, which I accept.
When next, after restarting, I go to the Check for Updates tool and select the older JHeadstart extension version, now it gets accepted and installed:
When restarting JDeveloper:
To enable the old version of the extension, I have to revisit Tools, Preferences, Extension to switch on JHeadstart’s extensions:
… in the next major version of JDeveloper, this bug has been fixed. It will now let you proceed in this case (with a warning about the potential effects of doing so).
Smile 🙂
That’s a neat trick. I guess it teaches me that we shouldn’t be excessively anal about things like this, because they can always be circumvented. Bug filed against self 😉