A few months ago I wanted to start such a project. I'm busy with other things now. My preliminary conclusions were:
- spend most of time on the poral server part, rather than the portlet container. Stuff such as user management, communities/spaces, security, templates, etc. Liferay has a lot of features in this regard.
- for the portlet container use pluto or some other container. pluto is good, it's spring based and very clean/unit tested. It doesn't implement portlet2 spec atm though. eXo has an excellent design too.
- portlet2 spec has a huge dependency on WSRP2 spec. It's such a complicated spec. afaik there's no good WSRP2 open source project atm. IBM's open sourced wsrp2j which was donated to apache is also inactive atm, and is crappy anyways!
- write lots of portlet suites: That's Liferay's selling point too: lots of portlets.
portlet container/wsrp < portlet suites < portal
It's harder than you think :) Especially using portlet2 spec....