James has to concept of mailet pipeline : for any incoming email, the email is passing through the pipeline the is made of matchers and mailets. These components allow to implement business rules based on some xml configuration and some java component.
That's a great strength of James and a lot of people use it for this capability.
Nevertheless, editing the pipeline and making tests is painful right now, you are left finding solutions like "edit xml, launch server, send an email, read logs".
To ease adoption, we would like to make that process easy and fun by :
- providing a web ui frontend to design the pipeline
- given a set of emails, make it possible to visualise each email flow into the mailet pipeline to test it
- define a way to express the expected results to make sure people can save their work into automated tests
To implement that, the student must know enough about web frontend dev to implement a pipeline designer and debugger.
She or he will need to know some java to implement server side logic for :
- make james accept to reconfigure its pipeline at runtime to take modifications into account
- design a protocol to stream debug data from a pipeline to the web ui and implement it server-side in java
- implement a junit runner to be able to run some special mailet tests based on the work done in the web designer.