Some time ago, I started working on an AutoValue extension for reading and writing Java properties files. Here’s a rough plan of what I thought it should do:
- have a simple and reliable implementation;
- be similar or reuse the existing AutoValue extensions as much as possible;
- easily replace the custom code in our projects for reading/writing the .properties files;
- support obfuscated builds out of the box.
I didn’t get it to the stage where the code is ready to become public yet, although, we’re open to that idea, I learned quite a bit about AutoValue, how its extensions work and in this post, I want to share that knowledge with you.
In this post, we’ll look at what AutoValue is and how it can help you keep your code cleaner and less verbose, at AutoValue extension mechanism and AutoValue Moshi extension works.
What, another ZIP abstraction?
During the development of ZeroTurnaround products we have had a growing need to uncompress and compress ZIP archives. For example, JRebel enables users to describe classpath and ServletContext resource locations using a rebel.xml file. Archives listed in the configuration file are automatically extracted into temporary directories. Our other product, LiveRebel detects the deployed applications both in exploded and packaged forms, and sends the application archives to the LiveRebel Command Center. The exploded deployments need to be compressed before any sending can happen.
After a long wait we have released the 1.1 version of JSP Weaver. The new version includes all the accumulated fixes and also adds couple of new features.