eXo Communication Service

This service is composed of 3 different parts that are :

  • The Forum service
  • The Mail service
  • The IRC service

Forum Service

This service manages several forum instances. The main entry point is the ForumServiceContainer which - as usaul - can be injected in the constructor of any component of the service container or looked up using the service locator.

From the ForumServiceContainer service, you can get or create ForumService instances. Those objects will allow you to manage forums.

Forum threads are classified the following way : a Forum may contain several Categroy objects. A Category may contains several Topic objects. And finally, a Topic may contain several Post objects.

Note that default implementation is based on Hibernate for the persistence.

Mail Service

This service is used to access IMAP accounts to show their content usually in a portlet. The main entry point is the the MailService class.

It is possible to view and delete messages, as well as MessageHeaders, stored in IMAP accounts

Let's show some code (as usual you can find some more in unit tests) :

//to send a message :
MessageImpl message = service.createMessageInstance() ;
message.setFrom("exo@" + smtpHost_) ;
message.setTo("exo@" + smtpHost_) ;
message.setSubject("test subject") ;
message.setBody("This is a test") ;
service_.sendMail(message) ;

//configure the mail account
mailAccount_ = new MailAccount() ;
mailAccount_.setAccountName("exo") ;
mailAccount_.setAccountType("imap") ;
mailAccount_.setMailServer(smtpHost_) ;
mailAccount_.setUserName("exo") ;
mailAccount_.setPassword("NoSecret") ;

//get a message
MailFolder mfolder = service_.getMailFolder(mailAccount_, "INBOX") ;
Message m = mfolder.getMessage("1");

//delete a message
mfolder.removeMessage(messageId) ;
        

IRC Service

The IRC service is a service to access an IRC server

You can start and stop the server from that service as well as getting some information about the server state.

The IRC used underneath can be transparently changed.

Note that the eXo platform team has developed its own 100% Java IRC server