}
} catch (AddonException aoe) {
throw new AddonFatalException(aoe);
}
Configurator conf = Configurator.class.cast(obj);
InstallationContext ic = new InstallationContext();
ic.setInstallationDirectory(getInstallRoot());
ConfigurationContext cc = new ConfigurationContext();
cc.setInstallationContext(ic);
cc.setDomainDirectory(getDomainRoot());
cc.setConfigurationType(type);
if (type.equals(ConfigurationContext.ConfigurationType.INSTANCE))
cc.setAMXDomainRoot(getAMXDomainRoot());
setAdminCredentials(cc);
try {
switch (addonStatus) {
case CONFIGURE :
checkDependencies(addonName);
conf.configure(cc);
ar.setStatus(addonName, AddonRegistry.status.CONFIGURE);
ar.setStatus(addonName, AddonRegistry.status.ENABLE);
break;
case ENABLE :
conf.enable(cc);
ar.setStatus(addonName, AddonRegistry.status.ENABLE);
break;
case DISABLE :
conf.disable(cc);
ar.setStatus(addonName, AddonRegistry.status.DISABLE);
break;
case UNCONFIGURE :
conf.unconfigure(cc);
ar.setStatus(addonName, AddonRegistry.status.UNCONFIGURE);
break;
case UPGRADE :
ar.setStatus(oldVersion.getName(), AddonRegistry.status.REMOVE);
conf.upgrade(cc, oldVersion);
ar.setStatus(addonName, AddonRegistry.status.CONFIGURE);
ar.setStatus(addonName, AddonRegistry.status.ENABLE);
// move old component to .deleted directory
break;
default :