I&#39;m still a little bit concerned of the frequency of the 1.4 series releases as of late.  GIven Bernie&#39;s other thread re: a mailing list for vulerability patches, I don&#39;t want to consume 1.4.3 and then have to retest everything when 1.4.4 comes out in order to remian PA-DSS compliant.  What is the goal/philosopsy of these point releases?<br>
<br>
<div class="gmail_quote">On Tue, Jan 26, 2010 at 5:01 PM, Jim Manico <span dir="ltr">&lt;<a href="mailto:jim.manico@owasp.org">jim.manico@owasp.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div class="im">&gt; Not to make this more complicated, but as of a few short months ago, 1.4.0 was the most recent stable version of ESAPI.  jump ahead to today, and 1.4.3 was just recently released.<br><br></div>Yes, (I think that) as the project matures we will be releasing more often. &quot;Release Early, Release Often!&quot; 
<div class="im"><br><br>&gt; Is a point release like this going to have functionality or fixes?<br><br></div>Mostly just fixes. We have *added* new functionality that *helps* with integration (better configuration, mostly). But we are *not* changing any of the core interfaces in these point releases. I did add log4j support recently, but this is an &quot;add on&quot; that does not break backwards compatibility.<br>
<br>ESAPI 1.4.0 + 1.4.1 are honestly beta, at best. I do not recommend using either in a production environment. This is a controversial statement that is my opinion only. 1.4.2 is significantly more stable and 1.4.3 is mostly a fix to the unit test mechanism. At bare mininum, upgrade to ESAPI 1.4.2 now.<br>
<br>However, this does NOT apply to release candidates for the 2.0 branch. We have been and will continue to change the core of the ESAPI 2.0 branch (trunk) until 2.0 is finalized (GA). Once 2.0 is at GA, I agree that we should not make core changes (ie: changes to the core interfaces).<br>
<br>Acceptable, Rob? Thoughts - anyone else?<br><br>- Jim<br><br><br>2010-01-26 06:41:05 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Since 1.4.3 is out, fix version to 1.4.4-SNAPSHOT...<br>
<br><br>2010-01-26 06:39:14 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Lots of little fixes for compiler warnings in eclipse in the 1.4<br>   branch. There are still a lot but now there are less...<br>
<br><br>2010-01-26 01:18:45 HST  manico.james<br><br>   1.4.3 final!<br><br>2010-01-24 11:07:43 HST  manico.james<br><br>   code comment clarification for order of property file loading<br><br>2010-01-23 21:52:42 HST  manico.james<br>
<br>    if .esapi folder not found or does not contain ESAPI.properties, look for a directory named &#39;resources&#39; on the classpath<br><br>2010-01-21 08:31:11 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Unit test for previous commit.<br><br><br>2010-01-21 08:15:35 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Handle null from getResource when a resource is not found. Instead of a<br>
   NPE being thrown, a FileNotFoundException is which is inline with the<br>   javadocs for the method that say a IOException is thrown &quot;If the file<br>   cannot be found or opended for reading.&quot;<br><br><br>2010-01-21 08:13:23 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Change version from 1.4.2 to 1.4.3-SNAPSHOT so a stray mvn install<br>   doesn&#39;t mess up local repositories.<br><br><br>2010-01-18 03:58:31 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Add wrapped getDisableIntrusionDetection() and change to concrete<br>   instead of abstract so missing methods cause compilation errors with<br>   this instead of subclasses of it (not that direct instances of this<br>
   class are very useful...).<br><br><br>2010-01-18 00:43:02 HST  manico.james<br><br>   1.4.2 final!<br><br>2010-01-18 00:36:40 HST  manico.james<br><br>   pom now titled 1.4.2<br><br>2010-01-17 19:58:51 HST  manico.james<br>
<br>   backported spaces in resource paths per 1.5 changes<br><br>2010-01-17 15:49:29 HST  manico.james<br><br>   cleanup of new intrusion disable code<br><br>2010-01-17 15:29:03 HST  manico.james<br><br>   properly defaulting intrusion detection disabling to false<br>
<br>2010-01-17 15:00:10 HST  manico.james<br><br>   Allows for complete disabling of the ESAPI intrusion detector. Reference implementation ESAPI.properties defaults intrusion detection to ON.<br><br>2010-01-17 14:41:54 HST  manico.james<br>
<br>   deprecating encrypt/decrypt functions due to weak crypto<br><br>2010-01-17 13:41:00 HST  manico.james<br><br>   undoing the 2.0-&gt;1.4 Encoder changes<br><br>2010-01-17 12:09:15 HST  manico.james<br><br>   backported the entire 1.5 encoder mechanism back to 1.4<br>
<br>2010-01-17 12:04:31 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Make patterns private static in SafeFile instead of one per instance.<br><br>   Remove some more characters from the tests so that it passes as is in<br>
   windows. SafeFile needs work but now isn&#39;t the time for it.<br><br><br><br>2010-01-17 06:33:50 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Add commented sections of pom.xml and external-1.4-jdk.txt containing<br>
   information on how to have Maven compile and run tests with an external<br>   1.4 JDK.<br><br><br><br>2010-01-16 16:53:23 HST  manico.james<br><br>   Removing System.out.printlns<br><br>2010-01-16 16:51:34 HST  manico.james<br>
<br>   Fix to filepath validation including relevant unit tests.<br><br>2010-01-16 15:42:47 HST  manico.james<br><br>   normalize removed from codebase completely<br><br>2010-01-16 09:19:16 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Use the &quot;basedir&quot; system property to find the src/test/resources directory<br>   containing the config files for tests.<br><br><br>2010-01-16 08:15:42 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Change the CSS encoding in 1.4 to be like the version in 2.0. Update<br>   the EncoderTest to handle this change.<br><br><br>2010-01-16 00:43:55 HST  manico.james<br><br>   <a href="http://code.google.com/p/owasp-esapi-java/issues/detail?id=90" target="_blank">http://code.google.com/p/owasp-esapi-java/issues/detail?id=90</a> backported to the 1.4 branch<br>
<br>2010-01-15 19:18:16 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Fixes for Encryptedproperties, DefaultEncryptedProperties and<br>   EncryptedPropertiesTest in 1.4. These will be migrated to 2.0 in my<br>
   next commit.<br><br>   Modify DefaultEncrypedProperties#getProperty(String) to return null when<br>   the key does not exist. This is more inline with what users will expect<br>   as it is what java.util.Properties#getProperty(String) does. Previously<br>
   this would throw a NullPointerException in Base64#decode(String) when<br>   it tried to decode null which was confusing at best.<br><br>   Modify javadoc for EncryptedProperties#getProperty(String) to define<br>   the expected behavior in the case of a non-existent key.<br>
<br>   Add EncryptedPropertiesTest#testNonExistantKey() to test the behavior<br>   of non-existent keys in isolation.<br><br>   Modify EncryptedPropertiesTest#testGetProperty() to not expect an<br>   Exception to be thrown in the case of a non-existant key.<br>
<br>   Modify EncrypedPropertiesTest#testKeySet() to not depend on the order<br>   of the keys in the key set.<br><br>   Combine EncrypedPropertiesTest#testStore()<br>   and EncryptedPropertiesTest#testLoad() into<br>   EncryptedProperties#testStoreLoad() as testLoad() depended on testStore()<br>
   running first which I&#39;m not sure junit/surefire guarantees. Also modify<br>   to write to and read from a byte array input and output stream to avoid<br>   managing a temporary file.<br><br>   Remove EncryptedProperties#main(String[]) as it wasn&#39;t worth porting the<br>
   above to it and mvn -Dtest=EncryptedPropertiesTest test is functionally<br>   equivalent to what was originally desired.<br><br>   I think that&#39;s all...<br><br><br><br>2010-01-15 17:47:48 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Change setCurrentHTTP to not attempt to wrap a null request or null<br>   response.<br><br><br>2010-01-15 11:34:55 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Lots of changes to rather broken tests in SafeFileTest. Tests that<br>
   were testing java.io.File were modified to actually test SafeFile or<br>   removed. Further, printing of test results and not using junit was fixed.<br><br>   As there haven&#39;t been major changes to SafeFile this change to<br>
   SafeFileTest will be commited to the 2.0 branch as well.<br><br><br>2010-01-15 03:48:25 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Fix HTTPUtilitiesTest that was trying to use the resources directory<br>
   which was null causing a NPE.<br><br>   This also adds some file test utilities for creating temporary directories<br>   and recursively removing them. This may be worth forwarding to 2.0 at<br>   some point to help cleanup other file based unit tests there as well.<br>
<br><br>2010-01-15 03:45:08 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Fix unix test in a similar fashion to how it was fixed in the<br>   2.0 branch. This required the reimplemnentation/backport of<br>
   SecurityConfigurationWrapper for 1.4 as well.<br><br><br>2010-01-15 03:42:05 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Fix unix test that expects /bin/sh to be a directory.<br>
<br>   Note that this was also previously fixed in the 2.0 branch.<br><br><br>2010-01-15 03:39:18 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Remove unneeded cast to DefaultSecurityConfiguration which also prevents<br>
   other implementations of SecurityConfiguration from working.<br><br>   Note that this was previously fixed in the 2.0 branch.<br><br><br>2010-01-14 12:43:11 HST  manico.james<br><br>   validation doc cleanup<br><br>2010-01-13 14:58:20 HST  manico.james<br>
<br>   documentation cleanup for validation<br><br>2010-01-13 14:42:05 HST  manico.james<br><br>   documentation cleanup for validation<br><br>2009-12-13 18:12:09 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   CSSCodec:<br>       switch back to back slash self for printable ascii<br>   EncoderTest:<br>       fix tests that got messed up by back ports and such<br>       normalize still fails but this is known (issue 74)<br>
       double encoding fails and needs checking<br><br><br>2009-12-13 17:37:11 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   HashTrieTest#testValues() was throwing a ClassCastException in the<br>
   sort. It turns out Boolean is not Comparable in 1.4 but is in 1.5. This<br>   has been changed to Integer in the 1.4 branch.<br><br><br>2009-12-13 17:10:02 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Fix issue 15 by extending HttpServlet{Request,Response}Wrapper instead<br>   of just implementing HttpServlet{Request,Response}. As this change only<br>   changes this classes super class (no longer java.lang.Object) and the<br>
   interfaces are the same this shouldn&#39;t cause existing code issues.<br><br>   This does fix the problem where containers expect to be able to unwrap<br>   their original request in the wrapped one.<br><br><br>2009-12-13 16:07:55 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   CSSCodec:<br>       fix issues with backslash self for hex digits (issue 77)<br>       split out tests from CodecTest<br>       add tests to verify lack of regression for issue 77<br>       change to not encode alphanumerics<br>
   HTMLEntityCodec:<br>       fix theta/thetasym issues with decoding by backporting 2.0 fix<br>           (issue 45)<br>   JavaScriptCodec:<br>       fix corner case which would throw a IndexOutOfBoundsException (issue 78)<br>
       changed massive if (a) ret, if(b) ret, to switch statement<br>   PercentCodec:<br>       back port percent codec fixes for issue 75<br>   CodecTest:<br>       back ported to 1.4<br>       modify some tests to work with 1.4 as 1.4 encodes somethings differently<br>
<br>   I think that&#39;s all...<br><br><br><br>2009-12-08 12:28:03 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Big nasty patch to back port the XMLEntityCodec to 1.4. This includes<br>
   most of the functionality needed for the HTMLCodec fix which is next. This<br>   includes codec.HashTrieTest, util.NullSafe and util.CollectionsUtil.<br><br>   Two new classes have been added:<br><br>   codec.AbstractCodec:<br>
<br>   This is a base abstract codec.Codec implementation to<br>   ease porting. In 1.4 Codec is a interface and in 2.0 it is a abstract<br>   class. Ports back to 1.4 ca use AbstractCodec as their base instead.<br><br>   util.PrimWrap:<br>
<br>   This is a simple class to wrap primitives in their java.lang classes. This<br>   is here to help back porting of auto boxing code from the 2.0 branch. By<br>   using this instead of new Character(), etc we can easily implement our<br>
   own fly weight caching of these objects as 1.5 does in it&#39;s auto boxing<br>   if and when the overhead incurred in creating new objects each time<br>   becomes a issue.<br><br><br><br>2009-12-08 12:11:30 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Remove use of sun proprietary normalize method. This breaks this method&#39;s<br>   functionality which I do not like. However, this is what has been done<br>   in the 2.0 branch. There is code commented out in the 2.0 branch to use<br>
   the new java.text.Normalize however that is only available in 1.6. To<br>   make matters worse, the interface to the sun proprietary version has<br>   changed and, as is, this will not compile with latter jdks (at least<br>
   1.6). I am adding a issue to document and remind us about this.<br><br><br><br>2009-12-07 12:53:53 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br><br>   Change version of Junit library to 3.8.1 instead of 4.4. ESAPI 1.4 is<br>
   targeted at Java 1.4 and Junit 4 requires Java 1.5 (aka 5.0). This change<br>   allows tests to build with a Java 1.4 compiler.<br><br><br><br>2009-12-07 12:50:29 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   Backport current JSP tag libraries from 2.0rcs to 1.4.1rcs<br><br>   No changes were needed.<br><br><br><br>2009-12-06 01:04:48 HST  <a href="mailto:schallee@darkmist.net" target="_blank">schallee@darkmist.net</a><br>
<br>   ignore and delete target directory<br><br><br>2009-12-04 19:26:17 HST  manico.james<br><br>   update<br><br>2009-12-04 19:25:28 HST  manico.james<br><br>   fix to ESAPI log4j configuration<br><br>2009-12-04 19:24:27 HST  manico.james<br>
<br>   allowing configuration of Log4J logger in properties file<br><br>2009-12-04 19:21:07 HST  manico.james<br><br>   setting perm ignore on target folder<br><br>2009-12-04 19:17:21 HST  manico.james<br><br>   Log4J logger in the 1.4 style of logging is now compiling correctly<br>
<br>2009-12-04 18:55:53 HST  manico.james<br><br>   fixing settings for forbidden apis (now just warn; normalize)<br><br>2009-12-04 18:48:00 HST  manico.james<br><br>   more cleanup....<br><br>2009-12-04 18:02:33 HST  manico.james<br>
<br>   fixed issues with Logging<br><br>2009-12-04 17:47:59 HST  manico.james<br><br>   significant fixes to pom.xml<br><br>2009-12-04 17:40:19 HST  manico.james<br><br>   more reorg of code for maven<br><br>2009-12-04 17:38:02 HST  manico.james<br>
<br>   target should not be checked in, sorry (x3)<br><br>2009-12-04 17:37:38 HST  manico.james<br><br>   more reorg of code for maven<br><br>2009-12-04 17:29:05 HST  manico.james<br><br>   target should not be checked in, sorry (x2)<br>
<br>2009-12-04 17:28:33 HST  manico.james<br><br>   moving code to proper directories<br><br>2009-12-04 17:24:46 HST  manico.james<br><br>   target should not be checked in, sorry<br><br>2009-12-04 17:21:44 HST  manico.james<br>
<br>   fixing pom...<br><br>2009-12-04 17:03:37 HST  manico.james<br><br>   pom cleanup<br><br>2009-12-04 16:49:19 HST  manico.james<br><br>   removed sealing code so building working for now.<br><br>2009-12-04 16:39:53 HST  manico.james<br>
<br>   Maven integration working<br><br>2009-12-04 16:36:21 HST  manico.james<br><br>   updating maven<br><br>2009-12-04 16:22:55 HST  manico.james<br><br>   backwards compatible fix.<br><br>2009-12-04 16:02:34 HST  manico.james<br>
<br>   upgrade to latest Eclipse<br><br>2009-12-04 16:02:19 HST  manico.james<br><br>   Fix to OracleCodec, small formatting change to MySQLCodec<br></blockquote></div><br>