Как установить свойства в компоненте Seam до @create? - PullRequest
1 голос
/ 23 ноября 2010

Я пытаюсь установить следующие члены компонента org.jboss.seam.mail.mailSession, которые определены как:

boolean ssl;
boolean tls = true;

(оба имеют методы getter и setter), прежде чем метод create, аннотированный @Create, будетназывается .Я хочу помешать фреймворку использовать SSL, TLS.Компонент mailSession проверяет, установлены ли эти mebers.Если да, он создает свойства, которые вынуждают javamail использовать ssl.

Я пробовал до сих пор:

Object comp = Component.getInstance("org.jboss.seam.mail.mailSession");

Проблема : разворачивается в javax.mail.Session, где я могунет доступа к компоненту.

Object comp = Component.getInstance("org.jboss.seam.mail.mailSession", ScopeType.APPLICATION,false,false);

Проблема : возвращает ноль, поскольку экземпляр не создан.

Component comp = Component.forName("org.jboss.seam.mail.mailSession");

Проблема : компоненти не экземпляр возвращается.

Что я должен сделать, чтобы переключить 2 бита, вы бы порекомендовали пропатчить фреймворк, или я упустил более простой способ?

Ответы [ 3 ]

3 голосов
/ 24 ноября 2010

Согласно Справочнику по швам и Форум швов вы должны иметь возможность отключить TLS и SSL непосредственно в вашей components.xml конфигурации:

<mail:mail-session debug="true" tls="false" ssl="false" ... />

Естьты уже пробовал это?

2 голосов
/ 24 ноября 2010

Вы пытались переопределить mailSession? Я не уверен, что это работает, хотя ...

Что-то вроде

@Name("org.jboss.seam.mail.mailSession")
@Install(precedence=Application)
class MyMailSession extends MailSession {

  //override the stuff you want here
}
1 голос
/ 23 ноября 2010

Я решил это, используя следующую последовательность:

@In(create = true)
private Renderer renderer;
...
Component comp = Component.forName("org.jboss.seam.mail.mailSession");
MailSession ms = (MailSession)  comp.newInstance();
ms.setDebug(true);
ms.setTls(false);
ms.setSsl(false);
ms = ms.create();

renderer.render("/Mail.xhtml");

Интересно, как экземпляр MailSession прикреплен к компоненту, но пока он работает.

...