В классе Java с аннотацией @Creatable отсутствуют атрибуты при внедрении в другой класс плагина - PullRequest
0 голосов
/ 06 июня 2018

У меня есть проект приложения e4, который состоит из следующих проектов

app

app.feature

app.product

app.releng

затем 2 проекта плагинов

app.service

app.ui

Я создал простую диалоговую страницу входа в систему для обработчика, я внедряю службу в этомДиалог, а затем он успешно проходит проверку подлинности на сервере.

@Creatable
public class AuthenticationService {

    @Inject
    public AuthenticationService() {

    }

    private Token token;

    public Token getToken() {
        return token;
    }

    private void setToken(Token token) {
        this.token = token;
    }

    public Token authenticate(String username, String password) {


    //authenticate and set token here
    }
}

Проблема заключается в том, что когда я внедряю одну и ту же службу проверки подлинности в класс Part, извлекаемый токен становится пустым.он мне нужен в классе Part, так как я вызову другую службу REST, чтобы получить список элементов для отображения.

класс Dialog и Part находится в проекте плагина app.ui, а служба аутентификации в приложенииПроект плагина .service

1 Ответ

0 голосов
/ 06 июня 2018

Если вы просто используете @Creatable, новый экземпляр класса создается каждый раз, когда вы внедряете его.Здесь вы хотите, чтобы был только один экземпляр класса обслуживания, чтобы вы каждый раз получали один и тот же.

Для этого укажите аннотацию @Singleton:

@Creatable
@Singleton
public class AuthenticationService {
...