I've been an Object Oriented software developer and a development lead for over sixteen years. For the past thirteen years, I've focused on the Java/JEE platform using technologies and frameworks such as HTML, JSP, Servlets, JavaScript, Spring JDBC, CXF, and Spring MVC.
In my day job, I build JEE web applications and web services (SOAP or REST) running in a variety of application servers/web servers such as WebSphere and Tomcat. I use open source daily: Apache Commons, Spring, Maven, Sonar, etc.
My goal would be to change as little code as possible. I'll leverage as many configuration options as possible and only change base classes when needed unless there is an explicit mechanism provided for extension: abstract classes, interfaces, etc. This strategy not only accelerates my development, but it insulates you from changes as you accept new versions of the code.
I downloaded the source this morning. Before moving forward, I would need to run the build. If the code doesn't build from day one then that will really slow down the effort.
Do you plan to contribute any of the changes back? That's another mitigating strategy for using a customized code base but still allowing you to accept features and bug fixes from the project.
Thank you