ChangeLog
From jPOS.org
jPOS 1.6.3
- Default MAC implementations in JCESecurityModule for CBC-MAC and EDE-MAC based on MAC algorithms available in BouncyCastle JCE provider (r2633 - demsey)
- Added FSDISOMsg, DummyPackager and FSDChannel (r2635)
- Bugfix in BCDInterpreter related to padding (r2636)
- Use ISO8859_1 encoding in FSDMsg and FSDISOMsg (r2640)
jPOS 1.6.2-- released 25/5/2008 (r2626)
- Tagged as tags/v1_6_2
jPOS 1.6.1
- added ISOCurrency.getCurrency(String) (r2466)
- added ISOPackager.createISOMsg() factory method (r2469)
- new SpaceTap class (r2475)
- added IFA_LLLLBINARY (r2480)
- added Context.resume(), new ISOResponseListener interface (Work in progerss) (r2488)
- added ISOServer.getISOChannel(String) method (r2490)
- added getCountersAsString and resetCounters to QMUX and ChannelAdaptor MBean (r2494)
- added getCountersAsString(*) to QServer and ISOServer (r2500)
- ISOServer, QMUX and ChannelAdaptor are now loggeables (and would dump the counters) r2502
- QMUX implements async functionality (r2509)
- Added jPOS CLI support and some initial commands (r2517)
- add new helpers to Configuration (getInts, getLongs, getDoubles...) (r2530)
- new ThroughputControl and ThroughputControlFilter (r2530)
- added ISOMsg.getBytes(int) (r2532)
- bugfix in FSDMsg leading blanks on variable length fields, added EOF modifier (r2539)
- added Space.push operation (r2541)
- resumed transactions take precedence over standard ones (r2542)
- added GZIPChannel flush (r2545)
- fixed race condition in TransactionManager pausable context (r2547)
- Added optional "recover" configuration property to TransactionManager (defaults to true, r2548)
- ChannelAdaptor, added optional 'ignore-iso-exceptions' element (r2551)
- bug fix in QMUX.mapMTI (issue matching retransmissions) (r2556)
- QMUX support for ISO-8583 version 2003 (STAN's length is 12) (r2564)
- Added new connect-timeout configuration property to BaseChannel (r2567)
- BaseChannel now support [multiple] alternate-host and alternate-port (r2568)
- License upgrade to AGPLv3.0 (r2569)
- Removed MX4J-specific JMX extensions - MX4J is now optional (r2571)
- Added NameRegistrar.getIfExists (r2576)
- EBCDIC related packager support contributed by Alexander Yakovlev (r2593)
- ISOMsg - added support for field paths (r2596)
- ProtectedLogListener support field paths (r2598)
jPOS 1.6.0 -- released 21/4/2007 (r2465)
- Upgrade to jdom-1.0.jar
- Changed LogEvent to support new jdom version
- Upgraded build system (uses jPOS-EE's approach
- Added DailyLogListener
- Use crimson instead of xerces
- Created compat_1_5_2 module
- Upgraded jdbm to 1.0
- transient:* and persistent:* Spaces 'urns' now maps to TSpace and JDBMSpace
- ISOMsg writeExternal and readExternal now honors packager if available
- ISOMsg.set(int,String) can be used for ISOBinaryFields provided there's a packager associated with the ISOMsg (the string is interpreted as hex)
- Added appropriate thread names
- TransactionManager stuff moved to its own module 'txnmgr'
- BaseChannel.disconnect closes socket before closing streams (better SSL behaveour)
- ISOServer do not drop connection on VetoException
- bugfix in Log4JListener (if watch=0 use default watch to avoid CPU going up to 100%
- TSpace and JDBMSpace throws NPE at out time if either key or value are null
- ISOCurrency's data moved to a ResourceBundle
- Dump hexstring of binary fields in ISOBasePackager.unpack
- Added IFE_AMOUNT
- Added TransactionManager debug property
- TransactionManager creates default persistent-space if one is not specified
- TransactionManager honors participants configured after group selectors
- TransactionManager now support RETRY action at prepare time (r2359)
- QServer.stop - avoid npe on unstarted/misconfigured servers (r2360)
- ISOChannelPanel now supports wipe and protect attributes (r2363)
- Added IFE_SIGNED_NUMERIC and SignedEbcdicNumberInterpreter
- Added sendKeepAlive() method to BaseChannel
- New ´keep-alive´ element in ChannelAdaptor
- FSDMsg trunk fields bigger than length
- Reworked 3rd bitmap support
- QMUX now support multiple ready indicators
- NPE in Q2 startup when deploy directory is not available/readable
- ISOServer now honors new keep-channels property (true|false)
- Added bind-address and backlog properties to ISOServer
- ISOServer: close ThreadPool on shutdown
- FSDMsg truncate A fields larger than length
- synchronized NameRegistrar
- GenericSubFieldPackager - pack dummy fields if field is not available and inner message has no bitmap
- QMUX now supports new <key>..</key> configuration element (defaults to <key>41, 11</key>).
- Added org.jpos.transaction.participant.HasEntry general purpose Group Selector
- TransactionManager attempts to call setTransactionManager(TransactionManager) on participants
- Bugfix in IF_TCHAR (unpack offset - r2410)
- Added Q2.shutdown (boolean join) (r2414)
- Added Join participant (r2416)
- Added keep-alive property to BaseChannel (r2417) - feature request #404
- Include a call to tx & rx.interrupt so that an idle ISOMUX will honour terminate requests.
- added setOverrideHeader(boolean) and isOverrideHeader() to BaseChannel
- ISOUtil.normalize uses UTF-8 encoding
- BaseChannel: added protected int getHeaderLength(ISOMsg m)
- TransactionManager.stop() wait (via join) for sessions to terminate (r2422)
- ISOServer/ThreadPool: Added socket closure in the event of ThreadPool exhaustion. Combined with a tightening of count of active, working and available Threads in ThreadPool itself (r2423).
- Added IFA_LLLLLLCHAR field packager (r2424)
- Bugfix in DailyTaskAdaptor in order to deal with daylight saving change (r2425)
- XMLPackager honors optional <header>...</header> element at unpack time. (r2426)
- bugfix in ChannelAdaptor: honor reconnect delay on peer-disconnect exceptions (r2429)
- Added new <ignore-rc> configuration element to QMUX (r2432)
- genericpackager.dtd - added optional firstField element to fieldpackager and isofieldpackager (r2434)
- QMUX added removeISORequestListener (r2435)
- IFB_LLLHCHAR, IFB_LLLHECHAR and IFB_LLLHBINARY length can go up to 65535 (r2437)
- ISOBasePackager - add support for composite MTIs (r2438)
- BaseChannel accepts new max-packet-length optional property - new default size 100k (r2441)
- bugfix: ISOServer clones max-packet-length
- Added new MUXPool component (r2443)
- TransactionManager minor optimization - do not take snapshot if psp is not actually persistent (r2444)
- SpaceUtil new wipeAndOut helpers (r2447)
- TransactionManager - new PAUSE support (r2448)
- bugfix: GZipChannel compressed/uncompressed length (r2458)
- TransactionManager new method getOutstandingTransactions (r2459)
- added org.jpos.transaction.participant.Forward (r2459)
- added org.jpos.transaction.participant.CheckPoint (r2460)
- QFactory.properties added txnmgr and transaction-manager aliases (r2462)
jPOS 1.5.2
- Tagged as v1_5_2 - only available via subversion
jPOS 1.5.1
- org.jpos.util.DefaultTimer - set daemon flag
- FSDMsg: use TSpace instead of TransientSpace
- BASE1Header.unpack doesn't clone byte array
- ChannelAdaptor now registers itself in the NameRegistrar
- IFB_BITMAP, deal with primary bitmaps where bit 0 turned on doesn't mean we have a secondary bitmap.
- FSDMsg, bugfix: read was breaking on FS, even if fs=false
- ConnectionPool - Altered getConnection to wait if maxConnections is not reached and a new connection is pending even if waitIfBusy is false.
- Added QBean based SystemMonitor (org.jpos.q2.qbean).
- BSHFilter honors returned ISOMsg
- Q2 prevents exiting the JVM when not running in standalone mode (i.e. inside an appserver)
- org.jpos.ui.action.Exit now accepts an optional exit code
- q2mod_jpos added ConnectionPoolAdaptor
- BaseChannel.sendMessage (byte[] b, int offset, int len) was not honoring offset and length - fixed.
- QMUX register itself with the NameRegistrar at init time instead of start
- NPE in ISOUtil.trimf
- IF_NOP.pack now returns a zero-length byte array instead of null
- EuroSubFieldPackager.pack fixed problem with ebcdic subfields
- Added support for postpack F127.26
- Fixed postpack fields 127 and 52
- BSHTransactionParticipant implements AbortPartipant - added optional trace attribute
- ISOBasePackager.unpack raises exception if field packager not configured
- Added SunJSSESocketFactory.getConfiguration()
- BaseChannel now honors local-iface and local-port properties
- Fixed bug in ISODate.parseISODate, added unit tests
- ChannelAdaptor doesn't disconnect on VetoException
- BSHFilter handles VetoException
- TLVList allow starting offset on unpack
- FSDMsg.dump more YAML-ish and less XML-ish
- q2modules - added OneShotChannelAdaptor
- TLVList allow data stream being unpacked to end with padding (0x00 or 0xFF)
- Bug fix in BCDInterpreter (when using RIGHT_PADDED_F)
- Added GZIPChannel
- ISOMsgPanel: Ask the message to be displayed for the highest field, rather than assume 128
- ConnectionPool retries connections on errors (r2260)
- GenericSubFieldPackager skip over null fields, this allows fields to be non-sequential in number. (r2262)
- Q2 - Include thrown Errors in the problem renaming processing (.ENV extension)
jPOS 1.5.0
- Released in 09/18/2005 (Tagged v1_5_0)
jPOS 1.4.9
- new package org.jpos.tlv (TLVMsg, TLVList)
- Added HEXChannel
- LogEvent new constructors (no need for LogSource), added toString()
- FSDMsg supports 'B' type (Binary data)
- DirPoll - ability to archive processed requests
- BaseChannel.disconnect - set SO_LINGER to zero
- #423 - ISODate.parseISODate - force milliseconds down to zero.
- Changed sendMessageTrailler signature in order to make packed image available.
- Added interface ReadableConfiguration
- Added Configuration.put
- JDBMSpace and TSpace performs automatic gc by means of a Timer task
- Added LocalSpace.addListener(key,listener,timeout)
- New TSpace implementation
- Added ObjectTemplate
- bugfix in SpaceProxy jndi binding
- BSHRequestListener whitelist support
- Added BSHTransactionParticipant and BSHGroupSelector
- Added XmlConfigurable to jpos-util.jar
- Q2Configurable replaced by org.jpos.core.XmlConfigurable
- Q2ConfigurationException replaced by ConfigurationException
- ISOException accepts throwable as nested parameter (instead of Exception)
- Bugfix in ISOUtil ebcdic tables
- Enhanced support for SSL in ChannelAdaptor and QServer
- Added IFB_LLLHCHAR
- Bugfix in RowMap (escape "'")
jPOS 1.4.8
- released Oct 2004 (tagged: v1_4_8)
jPOS 1.4.7
- Added ExceptionLogFilter
- Added setSocketFactory(ISOClientSocketFactory) to ISOChannel. All classes who implement ISOChannel will need to add this method.
- Made SunJSSESocketFactory configurable. Can specify keystore and clientauth now in Q2.
- SunJSSESocketFactory client authentication added.
- Upgrade to JDom beta 10
- LogEvent now handle JDom Elements
- added org.jpos.transaction.GroupSelector
- added JDBMSpace.getKeys()
- Bugfix in ISOBasePackager (fields > 128)
- Added SpaceUtil.nextLong(sp,key)
- MX4J upgraded to 2.0.1
- ISOServer: new factory method createSession
- ISOServer: new method getLastConnectedISOChannel
- BaseHeader implements Loggeable
- ISOMsg.dump dumps header
- BaseChannel.receive hexdumps header and binary image on ISOException
- Added org.jpos.transaction package
- Added ISOUtil.hexdump (byte[], int, int);
- Bugfix in IFEB_LLNUM.unpack (ISOComponent, InputStream)
- Added TinySpace, org.jpos.space.Request
- CardSelector, added remove(CardBrand) method
- CardBrand, added handBack object
- Added Padder, Interpreter and Prefixer interfaces for easy implementation of field Packagers.
- Added JDBMSpace template based in/rd
- New ISOFieldPackager implementation (based on interpreters, padders and prefixers)
- Added BSHLogListener
- Track1 support in CardHolder
- Added SpaceUtil
- Added SpaceFactory(spaceUri), SpaceInterceptors
- Added FSDMsg (Field Separator Delimited Message)
- Bugfix: IFB_LLLHECHAR wrong maxlength
- Added helper ISOUtil.hexdump (String)
- Bugfix: handle ISOException in ISOMUX.doTransmit
- Added ISOBasePackager.setFieldPackager (int, ISOFieldPackager)
- Added JDBMSpace
- Added Space.out (key,value,timeout) method
- New ISO93BTLVPackager/TLVField, etc.
- LogListener.log now returns a [possibly null] LogEvent
- New package org.jpos.ui
- Added org.jpos.bsh (BSHFilter, BSHRequestListener)
- New method ISOUtil.str2bcd (String s, boolean padLeft, byte fill)
- Bugfix: NPE in ISOServer.checkPermission when used standalone
- Bugfix: RotateLogListener.logDebug () - synchronized
- Support AspectJ 1.1
jPOS 1.4.6
- released Jul 2003 (tagged: v1_4_6)
jPOS 1.4.5
- Removed Q2 and related modules.
- Added PersistentSpace
- Added ISOMsg setSource/getSource
- Support for ISOValidators (contributed by Jose Eduardo Leon)
- New application: Q2
- Replaced JMXRI by MX4J, new HTTPAdaptor, JNDIAdaptor and RMIAdaptor
- Security: new 'allow' property in ISOServer (checks peer IP)
- Added: packager/nyceiso8583.xml (contributed by Henry Chan <q8e192@yahoo.com>)
- QSP: new thread-pool tag
- ISOMeter, new scroll and refresh attributes (contributed by Kris Leite)
jPOS 1.4.4
- released Sep 2002 (tagged: v1_4_4)
jPOS 1.4.3
- Removed deprecated ISOFactory and ISOFactory based examples
- New org.jpos.apps.qsp.Router class
- SQLFilter and CalculateFilter contributed by Zhiyu Tang
- QSP New <object> tag
- New org.jpos.space package and supporting classes
- New MUX and Channel interfaces
- New Stream based pack/unpack
- New stream based approach to PADChannel
- New ChannelPool
- Bugfix: MacroFilter problem with nested ISOMsgs
- XMLChannel: Better handling of message boundary
- New BlockingQueue.dequeue (timeout) method
- GenericPackager now support reading config file from XML InputStream (code contributed by Mat?as Salvador <mhs@sisa.com.ar>)
- QSP's <mux> tag now support new "class" attribute (code contributed by Andres Alcarraz <aalcarraz@cabal.com.uy>)
jPOS 1.4.2
- Released May 2002 (tagged: v1_4_2)
jPOS 1.4.1
- Added IFA_LCHAR (contributed by Kris Leite)
- New SubConfiguration class contributed by Andres Alcarraz
- BaseChannel honours header
- Sender and MacroFilter added support for specifying timezone in the $date
- Added org.jpos.security package, examples, unit tests
- QSP Sender task is now an MBean
- new ISOMsg.unset (int []) method
- MacroFilter now accepts "valid" and "unset" config properties
- new WebServer task (integrates Jetty with QSP)
- new TLVPackager
- new EJBConnector (and EJBConnectorMBean)
- new LogChannel/LogPackager can be used to reprocess jPOS's log files
- Bugfix: AWT blocker activation interrupted (JDK1.4+QSP+GUI)
- Bugfix: jmxri.jar added to jpos.jar's manifest
jPOS 1.4.0
- Released Feb 2002 (tagged: v1_4_0)
jPOS 1.3.9
- Added MacroFilter (useful to set sequencers, date, etc.)
- Added SAFChannel (reliable Store and forward)
- Sender task now support $date and $sequencer, sequencer property and one-shot.* Added preliminary JMX support
- Tagged all files as v1_3_9_preJMX
- added byte[] ISOUtil.hex2byte (String s)
- added static Configuration QSP.getGlobalConfiguration()
jPOS 1.3.8
- Released Nov 2001 (tagged: v1_3_8)
jPOS 1.3.7
- Added static QSP.getTask (name);
- QSP allows custom tags
- Configuration now allow multiple properties with the same name.
- New helper method in Configuration.
- QSP qsp-config accepts name and property*.
- QSP <task>: name attribute is added as a property to configuration object.
- QSP <task>: added support for non-Runnable tasks.
- bugfix: NullPointer in Header serialization (reported by Bharavi).
- ConnectionPool QSP example (added by Rajal)
- bugfix: XMLPackager - problem with inner messages (added unittest)
- bugfix: ProtectedLogListener setting alien wiped fields
- (Thanks S?ren Hilmer <sh@itplus.dk>).
- bugfix: ISOBaseHeader.unpack, use factory method for MTI too
- (Thanks S?ren Hilmer <sh@itplus.dk>).
- moved BASE1Header from org.jpos.iso to org.jpos.iso.header.
- added org.jpos.iso.ISOHeader and org.jpos.iso.header package .
- VAPChannel now uses org.jpos.iso.header stuff.
jPOS 1.3.6
- Released Sep 2001 (tagged: v1_3_6)
jPOS 1.3.5
- New renumber test in examples/isomsg
- Added ISOMsg.move (old,new) method.
- Added setFieldNumber to ISOComponent in order to effectively renumber
- a component. --thanks Eoin!
- BaseChannel setHeader before unpack (unpack can access header) --thanks Eoin!
- Bugfix: extended bitmap was generated/expected when MAC present --thanks Hani!
- Added ConnectionPool support (tpl and QSP) --thanks Rajal!
- Added static launch(String) method to QSP
- Added PackagerWrapper and CryptoPackager
- Preliminary jUnit support (ant's "test" target)
- Changed build.xml (conditionally build ext module if jars are available)
- LoopbackChannel now clones incoming ISOMsg (in order to simulate a real channel)
jPOS 1.3.4
- Released Jun 2001 (tagged: v1_3_4)
jPOS 1.3.3
- new Externalizable strategy on ISOMsg.
- new class org.jpos.util.DefaultTimer().
- RotateLogListener uses DefaultTimer (instead of its own Thread requires JDK1.3).
- RotateLogListener accepts new 'maxSize' parameter.
- new method ISOUtil.protect();
- Added ProtectedLogListener.
- LogEvent added getPayLoad() (required by ProtectedLogListener.
- updated build and jars (Ant 1.4 - crimson, jaxp).
- added log4j preliminary support.
- Added BaseChannel.getServerSocket().
- ISOBasePackager.unpack rethrows ISOException (should an Exception occur).
- ISOBinaryField.setValue accepts either byte[] or String.
- ISOMsgFieldPackager.pack allow components other than ISOMsg to be passed in.
- BaseChannel.newSocket changed signature (no args now).
- BaseChannel.accept now closes listening socket.
- ISOMsg set(fldno,String), set(fldno,byte[]) and new constructor ISOMsg(mti).
- New classes ISOServerFactory and ISOClientFactory
- BaseChannel new easy to override sendMessage (encryption hook).
- BaseChannel uses ISOClientFactory (SSL hook).
- Changes to BaseChannel and ISOServer to support SocketFactories
- Added SunJsseSocketFactory contributed by Bharavi Gade.

