On Thu, Nov 11, 2010 at 2:41 PM, john pradeep <yehohan...@gmail.com> wrote: > Hello All, > I am interested in working on the XMPP for Nuvem. having gone through the > XMPP spec for interest, i have come up with a very high level design just to > initiate discussion on how to proceed with XMPP support. > Please find the attached class diagram where i try to give a very high level > brief idea of how we can design the XMPP support. the actual design however > will be much more neater which i will work on once i get the initial > feedback/suggestion from you all. > The fundamental ideas considered: > > Create DTO kind of objects for encapsulating messages, address (JID, from, > to etc) > Create Endpoints for each XMPP cloud platform APIs > The Endpoint will be like a façade to initiate message sending and maintain > listeners for receiving messages > The client would call Nuvem API like below. > > XMPPEndPoint endpoint = XMPPEndpointFactory.getXMPPEndpoint(); > endpoint.registerListener(new MessageListener() { public > messageRecieved(Message message) {} }); > endPoint.sendContent(Payload).from(Address).to(Address); > > > Regards, > John >
Very good John, I have start reviewing your patch and have couple comments : General comments on the xmpp api - we shouldn't need a factory (XMPPEndPointFactory), we should configure components in a tuscany/sca composite and then use dependency injection - Removing the factory mentioned above, then we can refactor the xmpp.api package to xmpp to follow the same pattern as the other components - we usually discourage @author tags at apache and I have removed them from your patch For the implementation, it seems that we are using servlets, and I was wondering if we could use some components in conjunction with the tuscany/sca rest binding which would hide some of the Servlet api specific details from the application developer and no necessary changes in web.xml required. I'll continue to look into the API in the next couple days and see if I have further comments or ideas to make things more abstract. We should also consider building a sample that uses these service, or update the existent store sample with some scenarios that could use the xmpp component. Anyway, I'll be applying the patch and we can continue enhancing it in trunk -- Luciano Resende http://people.apache.org/~lresende http://twitter.com/lresende1975 http://lresende.blogspot.com/