метод restore() класса Installer не вызывается

У меня есть приложение платформы Netbeans, состоящее из 6 модулей. Один из этих модулей имеет класс, который инициирует механизм входа в систему. Этот класс является стандартным классом установщика Netbeans, который называется Installer и расширяет ModuleInstall.

Я не могу опубликовать весь класс, но он выглядит так:

public class Installer extends ModuleInstall {

    private static final String CHECK_DB = "Checking db connection at startup";
    private LoginForm loginForm = new LoginForm();

    private static  Logger logger = LoggerFactory.getLogger(Installer.class);

    public boolean closeApp = false;

    @Override
    public boolean closing() {
        getDBPreferencesService().clearPassoword();

        closeApp = true;
        return closeApp;
    }

    @Override
    public void restored() {
        logger.info(CHECK_DB);
        load();     
    }

    private void load() {
        //stuffs
    }
}

У меня есть метод restore(), который переопределяет restore() в ModuleInstall. Файл manifest.mf модуля содержит следующие строки:

OpenIDE-Module: org.app.station
OpenIDE-Module-Install: org/app/station/login/Installer.class
OpenIDE-Module-Localizing-Bundle: org/app/station/Bundle.properties
OpenIDE-Module-Requires: org.openide.windows.WindowManager

Проблема. Если я запускаю приложение после заставки, появляется главное окно. Метод restore() не вызывается.

Вопрос: что за этим может стоять? Как я могу вызвать метод?


person bakcsa83    schedule 09.02.2014    source источник


Ответы (2)


Возможно, вам поможет блог Герджана [1].

Например, он использует аннотацию @OnStart.

[1] https://blogs.oracle.com/geertjan/entry/simple_security_mechanism_for_the

person Ben    schedule 09.02.2014
comment
Спасибо, это полезно знать, но на этот раз не поможет. Я не могу изменить класс, мне нужно выяснить, почему контейнер среды выполнения не вызывает метод restore() в классе установщика. - person bakcsa83; 10.02.2014
comment
Ммм. Настройте новый минимальный проект с активатором/установщиком и проверьте, работает ли он. Если нет, то вы нашли ошибку. Если это работает, вы можете выяснить, в чем разница между этим рабочим образцом и вашим кодом. - person Ben; 11.02.2014
comment
Активатор зарегистрирован, и да, я настроил минимальный проект с несколькими активаторами, и все восстановленные методы вызывались во время запуска. К сожалению, данный проект состоит из 6 модулей с большим количеством файлов свойств и xml. Без глубокого опыта netbeans для меня это уже кошмар, и я до сих пор не вижу конца. - person bakcsa83; 11.02.2014

Модуль с установщиком/активатором и все остальные модули, зависящие от этого класса, должны иметь установленную зависимость от модульного системного API.

person Douglas M.    schedule 15.03.2018