Posted by rampsarathy
on April 12, 2010 at 12:01 AM PDT
This post tries to explain the seach API that has been introduced in SailFin CAFE v1 b28. The API allows application developers to search for communications that were created earlier, thereby removing the need for applications to store context information for these objects by themselves.
SailFin CAFE, like other converged application development frameworks has changed the converged application development paradigm. Having used CAFE APIs so far, if one thought that application development has never been so fast and so easy, things just got better with v1 b28. Communications (conversation, conference, imconversation, imconference...) that were created by applications were managed by the framework, and were presented to the Communications Bean method when an event occurred. This was perfectly fine if the application component was a Communication Bean, because it is called for action only when an event occured. Extensive application code was required (including maintaining the communications that were created by this application), if a Http servlet wanted to query details about a communication that was created from a Communicaton Bean. The communication search API in the CommunicationService was created specifically to address such use cases.
These APis that have been introduced in v1 b28, allow application components to search communications in a variety of ways including communication name, sender and receiver, type of communication etc..
To get all the conversations that were created by this application, one would do
Collection<C> comms =
The communicationservice is available to a Http servlet, and can be obtained in the following way
(CommunicationService) communicationService =
or by injecting the communication service
@Context CommunicationService communicationService;
The communication service is one per application and this provides isolation to applications, i.e the search is valid only for communication objects created from that application, either through the CommunicationBean or through a HttpServlet.
For more details, please refer to the APIs
and try it with b28