
###### Introduction ######
Hupa is a Rich IMAP-based Webmail application written in GWT.

Hupa has been entirely written in java to be coherent with the language used in the James project.
It has been a development reference using GWT good practices (MVP pattern and Unit testing)

It is ready for reading, sending,  and managing messages and folders, but it still lacks of many features email clients nowadays have.

###### Bulding ######
Hupa use maven2 as build tool. To build hupa download maven2 (http://maven.apache.org), unpack maven2 and install it.
After that change to hupa directory and execute the following cmd:
$ mvn clean package

###### Configuring server side  ########
Hupa uses a properties file to know the IMAP and SMTP servers configuration.
There is an example configuration file in 'hupa/src/main/webapp/WEB-INF/conf/config.properties'

- You can set your configuration parameters in either of these files:
  $HOME/.hupa/config.properties
  /etc/default/hupa
- Or in any other file if you start your application server with the parameter:
  -Dhupa.config.file=full_path_to_your_properties_file

##### Running Hupa #####
Hupa comes packaged with a servlet-container, so once you have compiled the app just run:
$ java -jar target/hupa-${version}.war

Then point your browser to the url:
http://localhost:8282

If you prefer to use any other servlet container you can deploy the provided .war file in it.

###### Hupa and IMAP/SMTP servers  #################
Hupa is able to discover most of the imap/smtp configuration based on the email domain part.
When you are prompted to login, type your email address and wait few seconds, if you click on the
gear button you can see the configuration discovered by Hupa, you can modify it if it does not match
your email provider configuration. Then type your inbox password and you will be logged into your
email provider servers.

Hupa is compatible with most email providers, gmail, yahoo, hotmail, outlook, exchange, james, etc.

###### Eclipse GWT Plugin notes ################
- Hupa uses maven to be built, before inporting the project, you shoul install m2eclipse
and google plugins, then go to Import -> New maven project and select the modules:
shared, mock, server, widgets, client and hupa.

- To run hupa in hosted mode, select: Run as -> (Google) Web application.
