How to modify third party code
<p>A supposedly simple architectural/design question:</p>

<p>Our Java application is depending on a third party code. However, this third party code does a little thing that I don't like (set's the timeZone to GMT; I'd like to set the timezone differently based on TimeZoneID of the application). What are my options?</p>

<p>1- I can't simply extend the third party classes and override the undesired behavior, since there are callers to the 3rd party classes from litterally everywhere in our application (this is the way that we inherited the application to begin with).</p>

<p>2- Maybe the too invasive solution is to write our own equivalent of the third party code and depend on that instead. But, that's too much and too invasive probably.</p>

<p>3- I looked at Spring AOP (and aspectJ) stuff a little bit to do load time weaving. I didn't dive in it too much, but it seemed to me that since the third party code calls java.util.Timezone.setDefault(GMTTimeZone);  (as opposed to calling a class that we wrote/manage ourselves) It can't be done that easily. I could be wrong here, and maybe I can still weave around java.util.Timezone.setDefault(). Please let me know if this is ture, and it is pretty much my (only) solution.</p>

<p>4- Am I missing something, or that's pretty much all available options?</p>
