Just a quick note: yes, this was my first plugin and I wasn't sure what triggered doWithWebDescriptor, so this simple check is just to prevent everything recompiling again. It appears that does only run once, but I figure having the check doesn't hurt anything.