Rechtacek'sMy notices, hints or tipsWho Am I? |
|
|
Monday Mar 17, 2008
Missing Modules Resolver (part II)
For those who are interested in implementation of Missing Modules Resolver I can show some implementation details. The Missing Modules Resolver is built on the top of Autoupdate API and uses several Autoupdate services for find out broken modules, download&install missing modules to match its dependencies and enable them again in the end. Rest of implementation is just UI. Okay, let's see the utilized services and look at code snippets. Find out broken modulesEntry point into Autoupdate API is theUpdateManager.getDefault ()what providers set of units which can be browsed in UI and perform operations on them (i.e. install, update or unistall etc.) Each UpdateUnit represents a NetBeans module either as installed in IDE or available on Update Center. If a module is already installed but also has available higher version in any Update Center, the module has update one. Now, we need find out modules what are already installed but aren't enabled in IDE. Collection<UpdateUnit> units = UpdateManager.getDefault().getUpdateUnits(UpdateManager.TYPE.MODULE);Great, we have installed but disabled modules but how to diagnose the module is broken and cannot be enabled? Ask them why cannot be enable, i.e. get its broken dependencies. If there are some broken we have a candidate for resolving. OperationContainer<operationsupport> forEnable = OperationContainer.createForEnable (); // take support for enabling modules So, now we have all candidate for resolving its problems. Look for missing modulesNow let's look for missing modules. Each candidate knows own broken dependencies. These dependencies are the clue for us to search out set of missing module which can fix these dependencies. There is a sample how to get it: Collection<UpdateElement> missingModules = ... Great, we found out a collection of missing modules what are required by other modules in IDE. We should install them. Download&InstallTake the operation container for install operation, put all missing modules into this container what can perform all action for install them: download, validate, install and restart IDE if needed. OperationContainer<InstallSupport> forInstall = OperationContainer.createForInstall(); // take the install container Enabled broken modules againIt's easy, just let's take a operation container for enabling modules, put all broken module and invoke enable action. All module should be able to turn on again.OperationContainer<OperationSupport> forEnable = OperationContainer.createForEnable (); // take support for enabling modules
That's all Who would like to see all sources or contribute some improvements or fix bugs, go into Posted at 07:13PM Mar 17, 2008 by Rechtacek's in NetBeans | Comments[1]
Friday Mar 14, 2008
Do you know the plugin Missing Modules Resolver?
Haven't you ever seen that NetBeans IDE cannot start all modules? And did the dialog Disable or Exit IDE come? It shouldn't but rarely happened sometime.
You have to decide to either disable the affected module/s or exit launching of IDE. There was no way how solve it. Only reinstall IDE or investigate the problem deeply. [1] Now the plugin Missing Module Resolver could help you to resolve the problem. The resolver does find of all IDE modules which are installed but cannot be loaded by NetBeans Module System because have broken module-to-module dependency, probably some modules are missing. If the missing module is available on any Update Center then the Resolver will download and install them. In the end the Missing Module Resolver switch on the affected modules again. How the resolver works?
How to get this module?
or
Try that plugin and enjoy it.
[1] Why a module cannot be switch on aka enabled? Most of module depends on other modules and cannot be loaded without them. If you are used to switching more user dirs or customize your IDE installation externally, it can lead to problems like that. Of course, it might be caused by Plugin Manager in case of bug Posted at 01:49AM Mar 14, 2008 by Rechtacek's in NetBeans | Comments[3] |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||