Since i've started this wiki way when most things were already done .. this is by far not complete ;)
GOIM2 consists of various plugins/projects where most of them are designed to be exchangeable.
Project required for the core functionality (message & presence)
- net.sphene.goim - The base project which contains no source code, only the product and feature definition.
- net.sphene.goim.core - Contains the basic interfaces which are required for Instant Messenging as well as simple implementations which can be used by implementors as a base.
- net.sphene.goim.core.ui - Contains the basic interfaces for the GUI of the Instant Messenger as well as abstract implementations which can be used by implementors as a starting point.
- net.sphene.goim.internal - Implementations of a couple of net.sphene.goim.core interfaces - like event handling, chat manager & co.
- net.sphene.goim.internal.ui - Basic GUI implementations which is at the core of GOIM2 - like preferences, wizards (account management, adding contacts, ..)
- net.sphene.goim.rcp2 - Contains the implementations required for a RCP application.
- net.sphene.goim.rcpreqs - Simple feature which references the required features and plugins for GOIM2 RCP application.
Every IPacket can have unlimited number of packet extensions -> IPacketExtension. These IPacketExtension are Adaptable and therefore don't need to expose any additional specific API.
- Development/Todo - Small todo list
- Development/Improvements - Things waiting to get improved
- Development/SetUpIDE - How you can set up eclipse to compile GOIM 2.
- Development/CreatingProtocolExtensions - Short explanation on how to create a new protocol extension for GOIM 2 and therefore adding support for a new protocol