Details
Description
A Fresh checkout of the QFJ_RELEASE_1_5_3 tag fails to compile (using 'ant jar' following installation instructions on website), with the error:
[javac] /home/user/dev/quickfixj-src/core/src/main/java/quickfix/CachedFileStore.java:408: error: unmappable character for encoding UTF8
[javac] * @author mratsimbazafy 29 ao�t 2008
The platform encoding on most Linux systems (and probably others too nowadays) is UTF-8, whereas the source files seem to be in ISO-8859-1 (or ISO-8859-15, whatever the devs happen to be using). A search for non-ascii characters in all source files reveals:
$ find -name "*.java" | xargs grep -P -n "[\x80-\xFF]"
./core/src/test/java/quickfix/FileLogTest.java:65: // �bcf�d��
./core/src/test/java/quickfix/AbstractMessageStoreTest.java:102: // message 111 == �bcf�d��
./core/src/test/java/quickfix/mina/message/FIXMessageDecoderTest.java:119: // �bcf�d��
./core/src/test/java/quickfix/mina/message/FIXMessageEncoderTest.java:64: // �bcf�d��
./core/src/main/java/quickfix/CachedFileStore.java:408: * @author mratsimbazafy 29 ao�t 2008
The workaround would be to just delete these strings (they are all in comments), but the proper future-proof/cross-platform fix would be to convert these source files to UTF-8 encoding (e.g. using iconv) and update the build.xml files to add an encoding="UTF-8" attribute to all javac and jalopy tasks.