August 24, 2016 v4.4 1. Added two new methods to QuipClient. setIdentifier() and getIdentifier(). setIdentifier() is used by the API to create a unique ID to identify the InapClient connection. The user of the API should call InapClient.getIdentifier() to get the unique value. 2. QuipEvent also has a new method, getIdentifier(). This will allow the calling application to determine what InapClient this event notification is for. August 16, 2016 v4.3.1 1. Migrated account number parsing fix to ClientCredential.admin.Login.java. 2. Increased MESSAGE_QUEUE_SIZE and PACKET_QUEUE_SIZE from 50 to 5000. August 29, 2011 v4.1 1. Added tiered functionality to profiling classes. New classes: TieredProfileManager TieredProfileGroupRequest TieredProfile TieredProfileRequest TieredProfileGroup April 15, 2011 v4.0 1. Create new constructor for StoryAnswer() that allows the user to pass in a character set. 2. Changed Heartbeat constructed to public from private. A developer need access to this class. October 26, 2010 v3.9.7 1. By default, don't pass in C1 option for story reads. 2. Added getMaxHits() and getFormatNumber() methods to the HistorySearch class. These were needed to support client-side pagination. 3. Added getTotalHits() and isPartialCount() method to HeadlineAnswer class. These were added as part of OPENS(poppi) paginaiton. 4. Clean up of unneeded imports. 5. Created new class HistoricalPaginationManager. This was added to support client-side pagination when running against Enque servers that are not enabled with contexts or if the client app is stateless. 6. Created new sample application that demonstrates pagination on an OPENS server. 7. Created a sample servlet that demonstrates client-side paging. 8. Updates to JavaDocs. September 16, 2010 v3.9.6 1. In clientcredential.admin.Login, added space between version and session cookie flag. 2. In clientcredential.admin.Login, handle the " P" that comes back appended to the account number. January 6, 2010 v3.9.5 1. Reworked SymbolAnswer to support the new buffering model of symd. The changes to SymbolAnswer are backward compatible with older versions of symd. v3.9.4 1. Added new methods to HistorySearch. When a true value is passed to HistorySearch.setTodaysHits(), the server will return the total number of hits for the day for that query. The returned count can be inspected from HeadlineAnswer.getTodaysHits(). 2. Added new methods to HistoryCacheSearch. When a true value is passed to HistoryCacheSearch.setTodaysHits(), the server will return the total number of hits for the day for each ticker/code that was passed in. The total hits will be on the line after the header. The format is: YYYYMMDDHHMMZACM____HITCOUNT| n November 11, 2009(Revision 137625) V3.9.3 1. Added new constructor to SymbolAnswer. An optional timeout parameter can now be specified. October 6, 2009 (Revision 135495) V3.9.2 1. Updated Profile to parse returned R value from profile query. October 5, 2009 (Revision 135472) v3.9.1 1. Renamed setReturnRelevance() to setRelevance(). Now takes a cutoff value. September 30, 2009 (Revision 135100) v.3.9 1. Added new class DataStorageCommand. Provides API access to user disk storage on the server. September 24, 2009 v3.8 (Revision 134846) 1. Added new method to HistorySearch and Profile classes to return relevance with each headline, setReturnRelevance() and getReturnRelevance() 2. Added new method to Headline class to retrieve relevance value for each headline, getRevelance(). July 23, 2009 v3.7.4b 1. MediaConnection.requestImage no longer returns a MediaImage object. April 7, 2008 v.3.7.3 1. Added debug message to Channel.receive(). February 28, 2008 V3.7.2 1. Fixed quipclient reconnect issue. This is a critical patch to fix a problem introduced in version 3.4. February 27, 2008 V3.7.1 1. Added ability for user to set drain frequency using ProfileManage. This value can be passed in as part of a new constructor or by the new method setDrainFreq(). By default drain immediate is set. 2. Fixed potential issue inf ProfileManager.startDrain(). Make sure old timer is stopped before starting a new timer. 3. Heartbeat was changed from 50% to 75% of the total time. January 30, 2007 V3.7 1. Added new version of UserNewsInfoRequest in the clientcredential package. This new version takes accepts a CredentialsData object and will return the wires entitled for the specified tier. 2. Created new versions Login and InapClient in the clientcredential package(still in dev). December 14, 2007 v3.6 1. Added new exception class InvalidResourceIDException. InvalidResourceIDException is thrown by StoryAnswer. This occurs when an attempt is made to retrieve a story using an invalid resource ID. 2. Added new exception class HitRatioException. HitRatioExceptionis thrown by HeadlineAnswer. This occurs if a search will result in a large number of responses for one of multiple terms but relatively few actual hits for the entire search string(aka "Too many hits"); December 11, 2007 v3.5.1 1. Now when an unknown code prefix is supplied to TieredCodeListLookUp, an empty array is returned. December 7, 2007 v3.5 1. Added two new classes, TopicCode and TieredCodeListLookUp. CodeListLookup returns list of TopicCode for the provided code prefix. November 9, 2007 V3.4 1. Reworked transmitter thread in QuipClient. This fixes a resource contention issue that would occur when numerous InapClient objects were simultaneously instantiated. 2. NewsException will no longer be thrown by HeadlineAnswer when no headlines match a query. 3. Replace '(' and ')' with '|' in query text. October 12, 2007 V3.3 1. Created new class NewsException. Server errors returned from StoryAnswer and HeadlineAnswer will now be trapped and a NewsException will be throwm. July 31, 2007 v3.2 1. Added new class TieredHistoryCacheSearch. May 9, 2007 v3.1 1. Move class detectProxy from net package to util package. 2. In IPTCProfile, added convenience methods to retrieve IPTC fields. April 27, 2007 v3.0 1. Created to package clientcredential. 2. New class CredentialsData has been created. 3. Watchdog ping frequency is now 15 seconds. 4. Ping timeout threshold is now 4. 5. The log4j package is now used for API logging. April 12, 2007 V2.6.3 1. Change additional InapClient constructors to protected. March 30, 2007 V2.6.2 1. On proxy connect error, flush the remainder of the proxy response buffer to the console. 2. If no headlines are returned from a search, HeadlineAnswer.getElements().count() will return 0 and HeadlineAnswer.getElements().hasMoreElements() will return false. 3. Increased MessageQueue and PacketQueue length to 50. 4. Fixed typo in LoginData class. Method getNewsPassword is now getNewPassword. 5. Changed many methods to protected. 6. Added new argument to cache URL to access large cache. January 30, 2007 V2.6.1 1. Handle no title better in Profile.doSetProfile(). 2. Behavior change in Receiver thread in QuipClient. When an InvalidCheckSumException exception is thrown, the client will now drop the connection to the server and attempt to create a new socket. January 9, 2007 v2.6 1. New package gari.media has been added to provide mediad support. 2. Sample program mediadClient has been added to demonstrate use of the new package. This program shows how to convert a resid to a filename, request an IPTC profile, and download various size images. 3. Removed setGetUpgradeDowngrades() from HistoryCacheSearch class. Added generic setCacheType() in its place. 4. The sample program UpDownGradeCacheExample.java has been renamed to ExpandedCacheExample.java. The program has been updated to demonstrate how to retrieve data from the various caches using setCacheType(). December 20, 2006 v2.5.9 1. Added new method setGetUpgradeDowngrades() to HistoryCacheSearch class. By passing in a true value to this method, you can retrieve the upgrades and downgrades for the list of tickers symbols provided. 2. A new sample program, UpDownGradeCacheExample, has been created to show the usage of the new method. 3. Added method to retrieve acctno from QuipEvent object. 4. Removed debug messages from prior 2.5.9 versions. December 19, 2006 v.2.5.9-DEBUG4 1. Added debug on channel finalize. December 18, 2006 v.2.5.9-DEBUG3 1. Added a few more debug messages. December 18, 2006 v.2.5.9-DEBUG2 1. Trap for a null InapClient in the Channel constructor. December 15, 2006 v.2.5.9-DEBUG 1. Set the WatchDog thread to use a fixed channel when pinging the server. November 20, 2006 v.2.5.8 1. Removed classes ReadCounts & ResourceIDCount from package. 2. Added classes QuantifiedHeadline, QuantifiedHeadlineAnswer, and QuantifiedHeadlineRequest. These new classes are used to retrieve the headline and read count of the most read stories. 3. Update sample program ReadCountsExample to use new classes listed above. 4. Changed InapClient constructors. Product code is now hidden from public access. 5. Set default value for (HistorySearch|Profile).MetaDataType to now be MT_SYMBOLS_AND_CODES. It was previously set to a default value of MT_NONE. November November 7, 2006 v2.5.7 1. Crypt key is now created in QuipSocket.send(). Now SimpleDateFormat only needs to be created once. Should be a performance boost and resource saver. 2. In Header.encryptHeader(), explicitly set key & crypt_key to null in finally. 3. Added ReadCounts(). This class is used to retrieve the top ten most read stories. 4. Added ReadCountsExample sample program to demonstrate usage of the ReadCounts class. October 31, 2006 v2.5.6 1. Added proxy support to HistoryCacheSearch(). October 26, 2006 v2.5.5 1. Removed Channel() constructor that allows user specified channel numbers. 2. Changed order of channel availability check in QuipClient.popChannelNumber() 3. After after server ping, channel is set to null. October 25, 2006 1. Set Channel.close() back to private. Though a closed channel was being put back on the stack, not all resources were immediately being freed. If a channel was being reused we sometimes ran into problems. Allow JVM garbage to close channel when ready. Need to investigate. 2. HistoryCacheSearch() has been added. This can be used on machines configured with NewsCache. September 20, 2006 1. Explicitly close channel after Ping. Don't want to wait for JVM garbage collection. 2. Exposed close() method for Channel object. 3. Added convenience method Headline.getImpactRating(). September 5, 2006 1. Fixed issue with parsing new PC/dd. code. July 19, 2005 1. Before closing input/output stream call shutdownOutput() and shutdownInput() in InapClient.shutdown(). July 17, 2006 1. WatchDog waits 15 seconds before it starts pinging server. May 11, 2006 1. Removed race condition where WatchDog would start pinging with account 0 before user's real account number was returned. April 20, 2006 1. Added additional Quip Error codes to QuipEvent. March 30, 2006 1. Added new headline request option. MT_SYMBOLS_AND_SPECIAL = B7. Returns Symbols and special code. 2. In StoryRequest, added ability to specify if you want the story to be chained. March 24, 2006 1. Set default drain_freq in ProfileManager to "DI". This should cut down any noticeable latency between in profile drains. 2. Add class ServerCommand. This class has a method called askForFile() which will allow for the requesting of server files. 3. Add new interface QuipEventListener. This will allow an application to register with QuipClient to receive quip level messages.