Move constructor as first method after field definitions
Make both MockEc2Controller and MockEC2QueryHandler singleton
Avoid type-check warning by persisting MockEc2Instance[] instead of ArrayList<MockEc2Instance>
Rename AppListener to AppServletContextListener
Explain why we preserve unchecked warnings
Add comment that explains why we are using TreeSet for predefined AMIs
Parameterize JAXBElement<Object>
Remove type cast warning: clazzOfMockEc2Instance = (Class.forName(MOCK_EC2_INSTANCE_CLASS_NAME).asSubclass(MockEc2Instance.class));
Don't load on app start up in case that nothing read from saved file
Refactor exception hierarchy: Custom exception made all extending RuntimeException; Add field 'action' to BadEc2RequestException; Remove MockEc2InternalException as nothing else to wrap.
Generate pubDns by a private static method
Improve comments in properties file
Fix magic strings by moving them into finals/constants
Update checkstyle rule: ignore 'InterfaceIsType'
Add more explaination to javadoc for TemplateUtils.java