-
Notifications
You must be signed in to change notification settings - Fork 500
ChangeLog
-
Fix path traversal in
ENABLE/DISABLECLI commands by canonicalizing deploy paths and rejecting resolved files outside the deploy directory, blocking inputs such as../../etc/passwd991400fde -
Serialize log compression through a shared background thread — introduce singleton
LogCompressorbacked by aTSpacework queue soDailyLogListenercompressions run one at a time; deprecategetCompressorThread()0661bf4f9 -
Add
ObjectInputFilterto all deserialization points — introduce reject-list and allow-list filters inSerializerandJESpaceto mitigate gadget-chain attacks (CWE-502); enforce maximum object graph depth of 32 631b45f48 -
Fix XXE vulnerability in
XML2003Packager— remove backward-compatibility block that re-enabled DOCTYPE declarations and external entity processing, overridingXMLPackager's secure defaults 52b6bce21 -
Fix hostname verification bypass in
GenericSSLSocketFactory— replace naive substring-based CN extraction with proper RFC 2253 DN parsing usingX500PrincipalandLdapName/RdnAPIs to prevent CN injection attacks e41707078 GHSA-9vrg-2h5q-2xhg -
Upgrade Bouncy Castle from 1.83 to 1.84, Micrometer core/prometheus from 1.16.4 to 1.16.5, and JLine from 3.30.6 to 4.0.12 PR704
-
Bump JUnit from 6.0.1 to 6.0.3 PR700
-
Add CMFChannel 7956676e
-
Add structured JSONL logging with PCI protection, tags and flat metadata. New
JsonlLogWriterwith built-in PAN masking, track/PIN wipe. DeprecatesJsonLogWriter,XmlLogWriter,TxtLogWriter,MarkdownLogWriterPR680 -
Add core realm vocabulary and stable logging tags. Normalize channel/server/QBean realms; emit endpoint/session/participant as per-event tags 46994a76
-
KSN parse and serialize now uses standard 10-5-5 format PR676
-
CMF result codes aligned with ISO 8583:2023 and jPOS-CMF DocBook. Added 0085 (replaces 0885), 1813–1828 range codes PR682
-
Upgrade to Java 26 and Gradle 9.4.1 39a3daa2
-
Add ISO 8583:2023 composite data element (Dataset) support. New
DatasetPackager,ICCDataPackager,ISODatasetField, fluentISOMsg.with()/without()API, andcmfv3.xmlpackager with dataset-aware field definitions for DE-034, DE-043, DE-049, DE-055, DE-071, DE-104 PR683 -
Add
MessageErrorIndicatorfor structured DE-018 (Message Error Indicator) wire encoding/decoding. InnerErrorCodeenum covers ISO 8583:2023 Table D.15 codes 0001–0013;FieldErrorfactory methods support primitive, constructed, and composite DE errors PR684 -
Add
LifeCycleIdfor structured DE-021 (Transaction Life Cycle Identification Data) encoding. Integrates withTxnIdfor trace identifier generation; fluenttoBuilder()supports the financial presentment echo pattern PR685 -
Add
PosCapabilityfor structured DE-027 (POS Capability) encoding. ReusesPosDataCode.ReadingMethodandVerificationMethodenums for sub-fields 27-1/27-2; fluent builder for capacity and feature flags PR688 -
Fix DE-072 Data Record packager to use
IFB_LLLLBINARYwithlength=9999per ISO 8583:2023 (wasIFB_LLLBINARYwithlength=999) in bothcmf.xmlandcmfv3.xmlPR686 -
Fix
cmfv3.xmlDE-096 Key Management Data toIFB_LLLBINARY length=999; was incorrectly labelled "Reserved for ISO use" withIFB_LLLLBINARY length=9999PR687 -
Fix
cmfv3.xmlDE-043 Card Acceptor Name/Location: add missing sub-fields geographic location (LLVAR ans..19) and additional address information (LLLVAR an..255) per ISO 8583:2023 Annex C PR689 -
Fix
cmfv3.xmlDE-043 and DE-049: remove deademitBitmap/bitmapFieldattributes and unusedIFB_BITMAPsub-field;DatasetPackageralready encodes correct dataset envelopes regardless PR690 -
Fix
cmfv3.xmlDE-113.14 State Code: widen from 2 to 3 characters and rename to "State, Province, or Region Code" to align with ISO 3166-2 and ISO 8583:2023 DE-043 PR691 -
Fix
cmfv3.xmlDE-113: add missing sub-fields 64 (Source Station), 65 (Destination Station), and 66 (Card Scheme) PR692 -
Fix
cmfv3.xmlDE-113.68 PayFac ID: correct fromAN1(copy-paste error) toIFB_LLCHAR length=15; add full DE-113.67 (Tokenization Data) and DE-113.68 (PayFac Marketplace Data) composite sub-packagers PR693 -
Add DE-051 Customer Related Data as
DatasetPackagerwith 5 datasets: PAR/PAN reference (0x71), contact (0x72), identification (0x73), wallet provider (0x74), account owner (0x75) PR694 -
Fix
cmfv3.xmlDE-113.67: replace sub-fields 4 (Wallet Provider Account Hash) and 5 (Tokenization Cardholder Name) withIF_NOP; superseded by DE-051 datasets 0x74 and 0x75 PR695 -
Fix
cmfv3.xmlDE-113.69/70/71: convert from fixed-length to variable-length packagers (IFB_LLCHAR/IFB_LLNUM) matching theAN..40/N..19design intent PR696 -
Fix
cmfv3.xmlDE-044 Additional Response Data: convert from opaqueIFB_LLLLBINARYtoDatasetPackagerwith dataset 0x71 carrying display/receipt data and issuer telephone number PR697 -
Simplify
DirPollAdaptorvirtual-thread executor setup by switching toExecutors.newVirtualThreadPerTaskExecutor()PR698 -
Bump
jansito 2.4.3,micrometer-core/micrometer-prometheusto 1.16.4, andjacksonto 2.21.2; hardenJESpaceTestCaseexpiration timings to avoid flaky boundary failures on slower hosts PR699 -
Added
class-pathandclass-path-hashtoSystemMonitoraudit output, exposing the full runtime classpath and its SHA-1 fingerprint viaQ2.getClassPath()andQ2.getClassPathHash()for deployment auditability. -
Use try-with-resources in
DirPollandSimpleKeyFilef004bbe2c -
Use TLS instead of deprecated SSL protocol in
GenericSSLSocketFactoryc2e712dac -
Honor
JAVA_OPTSand auto-detectJAVA_HOMEinq2launcher bab103383 -
Add Track1 IC card service code indicators PR712
-
Upgrade JLine to 4.0.14, Jackson to 2.21.3, and Gradle dependency plugins PR714
-
Avoid
ConcurrentModificationExceptionwhile dumping liveProfilerinstances PR715 -
Add
EMVSMAdapterwith EMV cryptogram generation, key derivation, secure messaging, and offline data authentication support PR718 -
Upgrade Gradle to 9.5.1 and JLine to 4.1.0; enable javadoc fail-on-error to catch malformed API docs early PR719
-
Add structured payload conversion for
JsonlLogWriter, preserving frozen log-event payloads and renderingProfiler,Context, and nestedLogEventdata as typed JSON 3edfeb442 -
Upgrade JLine to 4.1.1 and JUnit to 6.1.0 PR720
-
Support nested ISO field paths in
JsonlLogWriterprotectandwipeconfiguration PR721 -
Add Q2 node number to
SystemMonitorSysInfoaudit output PR723 -
Upgrade JLine to 4.1.3, JNA to 5.19.0, and Jackson to 2.22.0 PR724
-
Upgrade JNA to 5.19.1 and Micrometer to 1.17.0 PR726
-
Add DE-113.38 Cardholder Name Verification Result to
cmf.xmlandcmfv3.xmlPR727 PR728 -
Add DE-113.34 Extended Authorization Indicator to
cmf.xmlandcmfv3.xmlPR730 -
Add optional
log-connectionschannel configuration while keeping routine connection logging enabled by default PR725 -
Upgrade JLine to 4.2.1 and Gradlex extra-java-module-info to 1.14.2 PR731
-
Support explicit enum keys in TransactionManager
requires,optional, andprovidescontext contracts PR733 -
Upgrade Jackson to 2.22.1 0c9dff05a
-
Normalize raw Track 2 sentinels and lowercase separators before card parsing PR735
-
Upgrade JLine to 4.3.1, Bouncy Castle to 1.85, and CycloneDX to 3.3.0 PR738
-
Add self-inclusive binary length prefixes for
GenericPackagerfields PR740 -
Bump JUnit to 6.1.2 PR745
-
Use JSSE endpoint identification for TLS hostname verification PR744
-
Upgrade Gradle to 9.6.1 PR746
-
Add longest-prefix fallback mode to
SwitchPR749 -
Upgrade Gradle to 9.7.0 and reduce test worker heap requirements PR752
-
Add CMF DE-113.72 Crypto Card Indicator and DE-113.73 Age Verification Data packagers PR753
-
Harden Context logging by suppressing values held under
Inhibitkeys PR754 -
Reduce Q2 observability memory use by streaming Prometheus scrapes, limiting TM histogram buckets, and bounding default JFR recordings PR756
-
Add registered log-event kind vocabulary with family projection and type-implied kinds PR760
-
Align core log emissions with the registered
Kindvocabulary PR762 -
Fix PGP cleartext signature verification by stripping trailing spaces and tabs before signature verification 85eac1a20
-
Keep nested packager realms unchanged and identify nested fields with a
fieldtag instead of a realm suffix; add the QBeancomponenttag even with an explicit realm. Remove the unused protectedISOServer.realmChannelfield PR764 -
Prevent embedded Q2 from terminating the host JVM on a startup exception; command-line Q2 retains its exit-on-error behavior PR766
-
Replace opaque
infoinSessionStartandSessionEndpayloads with typedhost,remotePort, andlocalPortfields; add sessiondurationtoSessionEnd. Log consumers must accommodate the new payload shape PR768 -
Add content-derived wire-exchange trace IDs to
ISOMsgand propagate them throughIncomingListener, TransactionManager, andSendResponse. Channeltrace-idnow identifies the exchange rather than the connection; use thesessiontag for connection correlation andtrace-claimedto link differing claimed IDs PR771 -
Remove TransactionManager's static thread-local context mapping and public static
getSerializable(),getContext(), andgetId()accessors. Callers must pass the transaction context and ID explicitly PR772 -
Have
QueryHostclaim the Context trace ID on outbound requests that have no existing claim, linking rebuilt outbound messages to the inbound transaction PR774 -
Document log kinds, families, realms, and tags; make
LogEventOutputStreamemitinforather than an empty event kind and clarifySysLogListenerkind filtering 431ee99c1 -
Upgrade Gradle to 9.7.1, including the SDKMAN pin and wrapper checksum PR776
-
Preserve receive-side peer details when a socket closes concurrently, preventing disconnect diagnostics from masking the original I/O exception 2704e3972
-
Upgrade Jackson to 2.22.2, Bouncy Castle provider to 1.85.2, JLine to 4.4.3, SnakeYAML to 2.7, Micrometer core/Prometheus to 1.17.1, and JUnit to 6.1.3. Keep
bcpg/bcutilat 1.85 and declare the provider explicitly for published Maven dependencies PR777 -
Fix
ISODate.parseISODate()year inference for leap-day dates: evaluate candidate years independently so February 29 is not corrupted into March 1 by Calendar normalization. Reset all date/time fields between candidates to prevent DST-gap normalization from shifting later candidates, and capture the reference year before applying input fields so rollover cannot shift the candidate-year window PR779 -
Prevent
DailyLogListenerfrom overwriting same-day archives on POSIX systems by atomically reserving unused archive names before moving the active log; start compression only after a successful move PR781 -
Preserve log contents on rotation and compression failures: clean up only successfully reserved archive names, stop
RotateLogListenernumbered rotation on real move failures and attempt to reopen the active log, and publish compressed output only after successful compression and stream closure. Retain the raw archive on compression/publication failure (possibly under a compressed suffix), report failures, and fall back to the 128 KiB default for non-positive compression buffer sizes PR782 -
End
ISOServersessions normally when a request listener deliberately disconnects the channel, avoiding a subsequent receive and spurioussession-error("unconnected ISOChannel"). Preserve listener dispatch, disconnect/SessionEndevents, and logging of genuine receive, listener, and cleanup failures PR784
- ProtectDebugInfo should implement Configurable 5eb548c0
- Add SnapshotLogListener 100644
- Add 'virtual-thread' property to ISOServer(default false), ChannelAdaptor(default false) and TransactionManager (default true) 53b10f20
- Add /jpos/q2/status endpoint when metrics are enabled a721d79b
- New Q2 constructor can receive a main classloader. 6bd16741
- Add Q2.node() method 58897aca
- Add property to debug iso errors PR636
- DirPoll now support virtual threads 1cf1c60a
- ChannelAdaptor - add soft-stop support f6ff4273
- New Zimbabwe Gold currency ZWG 4ba7639f
- Improved ChannelAdaptor reconnect logic 9fc517b4
- Add restricted context support for non-String keys fe2209e6
- Q2.node() is now static 1dd73cbf
- Temporarily remove SSHd support due to multiple CVEs 50d4a80c
- Instrument QMUX metrics ba0670df
- Early detection of dead peer c03c2ede
- Fix FSDMsg pack on field with separator to not unpad PR641
- Improve XMLPackager performance by reducing synchronized code PR645
- Add MTI tag to counter metrics for transaction type identification PR650
- Q2 template enhancements (comments) PR654
- Upgrade mockito and gradle wrapper PR655
- Avoid exceptions when dumping ctx PR656
- feat(qmux): add support for pcode-based key mapping PR648
- Fix channel name split issue in JPOS 3 PR634
- Export org.jpos.iso.channel.* via JPMS PR629
- Allow Environment to resolve multiline strings PR609
- MUXPool: sanitize mux list on startup and be lenient about missing muxes PR659
- Library updates e146216e
Updated library versions:
- commonscli: 1.9.0 → 1.11.0
- commonslang3: 3.17.0 → 3.20.0
- jline: 3.26.3 → 3.30.6
- jna: 5.15.0 → 5.18.1
- mockito: 5.20.0 → 5.21.0
- mockitojupiter: 5.18.0 → 5.21.0
- junit: 5.11.0 → 6.0.1
- bouncycastle: 1.79 → 1.83
- yaml: 2.0 → 2.5
- micrometercore: 1.14.6 → 1.16.1
- micrometerprometheus: 1.14.6 → 1.16.1
- jackson: 2.17.2 → 2.20.1 Gradle plugins:
- org.gradlex.extra-java-module-info: 1.9 → 1.13.1
- org.owasp.dependencycheck: 11.1.0 → 12.1.9
- org.cyclonedx.bom: 2.3.0 → 3.1.0 Updated Gradle wrapper:
- Gradle: 9.2.0 → 9.2.1
- Add LSPace a552b07d
- ISOServer: catch BindException PR660
- Environment equals match expression PR661
- Add Metrics Utility class for accessing Micrometer metrics 3df6be39
- Add ConfigValidator c63aeb33
- Refactor Environment class to avoid regexp stackoverflow bb24ccbb
- QServer: honor enabled attr for some children elements 33c69937
- new QFactory method to instantiate from Element [PR699](new QFactory method to instantiate from Element)
- Enable PrometheusMeterRegistry throwExceptionOnRegistrationFailure PR671
- Add Environment.resolve(String) static method 77047e7d
- Channel metrics refactor PR672
- removed compat_1_5_2 module - will remain part of jPOS-2 branch 35c79e73
- Honor JEP 411 - SecurityManager is now deprecated for removal 5c33c1a1
- Add ZoneId to RotateLogListener's rotate event PR478
- Use Duration in org.jpos.util.Chronometer 8cf9382b
- Add TM managed timeout and max-timeout on participants 100644
- IFEMC_LLCHAR the LL part of the field is defined as ASCII 480
- QueryHost force abort when expired in continuations mode 481
- Add support for CMF DE 027 - POS Capability PR486
- MUXPool.send may block if no connected MUXes 487
- Upgrade to Gradle 7.5 37c14676
- Bump JLine to 3.21.0 12215687
- Bump Mockito to 4.6.1 a6b4cb22
- Bump JUnit to 5.8.2 e1a43b14
- Bump BouncyCastle to 1.71 34eafb0e
- Bump SLF4J to 1.7.36 1ee44273
- Bump SnakeYAML to 1.30 3638dbd5
- Add IFB_LLLLLLCHAR PR493
- Add templates support PR494
- Honor Q2 SHUTDOWN_TIMEOUT 3fd41d74
- Add IFB_LLLHEX b684bb5f
- Bump commons-cli to 1.5.0 3644a10e
- Bump commons-lang3 to 3.12.0 57e7fb8d
- Bump Mockito to 4.7.0 ffc2fbef
- Remove org.easytesting:fest-assert dependency 17926711
- Upgrade SnakeYAML to 1.33 e22edee5
- Add SLE Currency d417dd35
- Add Application Cryptogram Spec PR500
- Properly recognize subsequent bytes in BER/TLV fields 26d08c12
- add QBean.getStateAsString default impl 12831cf6
- BSH provide access to Q2 server b044f71f
- Upgrade Gradle to 7.6 b08ddd88
- Baseline is now Java 19 7d38c2ac
- Upgrade JLine to 3.22.0
- DailyLogListener defaultDeleteRegex depends on compressedSuffix PR511
- rc.CMF: add CONFIGURATION_ERROR, plus fixing typos and enum conflicts (PR512)[https://github.com/jpos/jPOS/pull/512]
- Fix/isomsg set isocomponent PR513
- BREAKING CHANGE - Remove TM Continuations 87b687a8
- make CMF SYSTEM_ERROR_DB and SYSTEM_ERROR_TXN response inhibitors f717ad12
- Dump GC stats to SystemMonitor 5099c683
- Metrics: Set start timestamp to metrics histograms. 4cbcf42c
- Upgrade JLine to 3.23.0 be165faf
- Better ThreadDump in SystemMonitor (dump-stacktrace) 230df126
- Negate expressions in Environment PR519
- Basic support for string array auto-configuration (PR520)[https://github.com/jpos/jPOS/pull/520]
- BASE1Header.formatHeader now shows reject data 54c5fd03
- Add Context clone(Object...), hasKeys(Object...) ad keysNotPresent(Object...) 6dc55224
- Add Context.merge(Context) 8591300c
- KeySerialNumber overhaul 7a9468a7
- Better logging for EuroSubFieldPackager unpack PR540
- Better handling of multi-level nested isomsgs in non-bitmapped tagged sequences PR542
- 8be658f7
- Upgrade SnakeYaml to 2.0 - CVE-2022-1471 8be658f7
- CMF add add result codes 1820, 1821, 1822, 1823 Add d82313ac
- ASCIIChannel Only reply keep-alive if expecting it 9e9c1107
- Remove OSGi support - Upgrade Gradle to 8.2 dba1e0cc
- Remove QNode module b55b6c21
- Upgrade BC to 2.73.2 - CVE-2023-33201 e30c9449
- Add IFEPE_LLBINARY PR556
- ISOMsg: add helper methods to identify the message class (PR557) c396c405
- Q2 Enable environment property replacement anywhere PR554
- SMAdapter: add new operation to encrypt clear PIN under PEK. PR558
- Fixed BERTLVAsciiHexPackager getUninterpretLength always returns 0 with AsciiHex interpreter PR570
- TSpace: simplifying usage of monotonic nanoTime() 5aaa2490
- Protect against NTP sending clock backward b202cc1b
- ISODate.parseISODate protect against Y2.1K d57a5436
- Added a padding option to cryptogram builder PR577
- ISOUtil.protect: better handling of track1 data f66f287b
- Enable handling of complex field for IsoTagStringFieldPackager PR581
- Q2 added --shutdown-delay=xx and --no-shutdown-hook switches PR582
- Upgrade Gradle to 8.6, use Version Catalogs
- Environment uses commaEncode to represent arrays c03744f8
- Q2 arguments via q2.args environment 6f2658dc
- ISOMsg.merge honors header fbebfee7
- Track1 and Track2 now generate track data fb21890e
- Add ISOUtil.toASCII and toLatin methods 81e10478
- Add ISODate.formatDuration helper 44070167
- KeyUsage is now serializable PR597
- Add the chance to autoconfigure enum fields PR600
- Bugfix in TSpace gc(1) not honoring GCLONG 4defbc69
- Graduate TxnId to jPOS 86c3cce9
- Graduate ProtectDebugInfo to jPOS b7359da6
- Define padding method for each CryptogramDataBuilder PR613
- Add SSH remote resize (WINCH) 53929360
- Add NoCardValidator PR620
- Add QBean eager-start support 8b09f4f3
- Added a padding option to cryptogram builder PR577
- Enable handling of complex field for IsoTagStringFieldPackager PR581
- Q2 added --shutdown-delay=xx and --no-shutdown-hook switches PR582
- ISOMsg.merge honors header fbebfee7
- Track1 and Track2 now generate track data fb21890e
- FSDProtectedLogListener now supports a parameter to optionally print ellipsis for truncated fields PR584
- KeyUsage is now serializable PR597
- Add the chance to autoconfigure enum fields PR600
- Bugfix in TSpace gc(1) not honoring GCLONG 4defbc69
- fixed ISOServer usable channels issue 602
- Define padding method for each CryptogramDataBuilder PR612
- Add NoCardValidator PR619
- Add QBean eager-start support 03b3bc15
- New ISOUtil.padISO9797Method2 method PR622
- Display exceptions in Context.dump PR624
- Mute BaseSMAdapter's log entries by default. PR630
- New Q2 constructor can receive a main classloader. 7e16fe4e
- Graduate TxnId to jPOS def04c89
- New Zimbabwe Gold currency ZWG 4ba7639f
- Improved ChannelAdaptor reconnect logic 2a02ff7b
- Upgrade BouncyCastle to 1.70 508e689b
- rc.CMF: add CONFIGURATION_ERROR, plus fixing typos and enum conflicts (PR512)[https://github.com/jpos/jPOS/pull/512]
- Fix/isomsg set isocomponent PR513
- make CMF SYSTEM_ERROR_DB and SYSTEM_ERROR_TXN response inhibitors PR514
- TxnMgr: Handle race condition where txn gets early resumed a929f244
- Metrics: Set start timestamp to metrics histograms. PR516
- Upgrade JLine to 3.23.0 6c9d6b7d
- Negate expressions in Environment PR518
- Basic support for string array auto-configuration (PR520)[https://github.com/jpos/jPOS/pull/520]
- MUXPool strategy handler PR524 forward port
- BASE1Header.formatHeader now shows reject data a3e64f30
- Add LogEvent.getCreatedAt() PR538
- Better logging for EuroSubFieldPackager unpack PR540
- Better handling of multi-level nested isomsgs in non-bitmapped tagged sequences PR542
- Upgrade SnakeYaml to 2.0 - CVE-2022-1471 748aa3ba
- CMF add add result codes 1820, 1821, 1822, 1823 Add 081263c6
- ASCIIChannel Only reply keep-alive if expecting it 9e9c1107
- QueryHost: timeout override through ctx entry PR550
- Add IFEPE_LLBINARY PR554
- ISOMsg: add helper methods to identify the message class PR557
- Upgrade BC to 2.73.2 - CVE-2023-33201 65999725
- SMAdapter: add new operation to encrypt clear PIN under PEK. PR558
- QBeanSupport: Allow setting of a higher corePoolSize while creating new ScheduledThreadPoolExecutor PR559
- Fixed leak in TransactionManager.names optimization (not required in jPOS 3) 86950d6e
- Fixed BERTLVAsciiHexPackager getUninterpretLength always returns 0 with AsciiHex interpreter PR570
- TSpace: simplifying usage of monotonic nanoTime() [PR571(https://github.com/jpos/jPOS/pull/571)]
- Protect against NTP sending clock backward b202cc1b
- ISODate.parseISODate protect against Y2.1K d57a5436
- Initialize ServiceConfig prior to calling readCongig PR472
- TransactionManager: abort on misconfigured groups PR474
- Adding getBin(len) to Card and CardHolder (support 8-digit-bin) PR476
- Add ZoneId to RotateLogListener's rotate event PR478
- IFEMC_LLCHAR the LL part of the field is defined as ASCII 480
- QueryHost force abort when expired in continuations mode 481
- Add support for CMF DE 027 - POS Capability PR486
- MUXPool.send may block if no connected MUXes 487
- Add IFB_LLLLLLCHAR PR493
- Add IFB_LLLHEX b684bb5f
- Upgrade SnakeYAML to 1.33 cba2fc61
- Add SLE Currency 942720fd
- Add Application Cryptogram Spec PR499
- Properly recognize subsequent bytes in BER/TLV fields PR502
- add QBean.getStateAsString default impl 12831cf6
- BSH provide access to Q2 server b044f71f
- Upgrade Gradle to 7.6 208188d6
- Upgrade SSH to 2.9.2 - Fixes CVE-2022-45047 82349cee
- Upgrade JLine to 3.22.0 968af747
- Remove JavaAssist dependency 82eef68b
- MUXPool strategy handler PR524
- Upgrade JLINE to 3.20.0 02447f6b
- Connection confirmation message for BaseChannel in client mode PR412
- Upgrade to Gradle 7.0.2 fbf3a78f
- Add PosDataCode::isCardNotPresent PR413
- MuxPool not honoring a timeout of 0 issue-414
- Added CODE_OF_CONDUCT PR429
- Bump SLF4J to 1.7.32 d23d09ee
- Add
IgnoreLogListener0e36304b - NameRegister TxnMgr at end of startService issue-439
- Add
$cfg{...}syntax to Environment PR440 - Fixed NPE as the check value is never set in the SecureKeyBlockBuilder issue-437
- Add Q2 cmd line option to set the jpos.envdir PR441
- CryptographicServiceMessage add removeField(s) methods d44004aa
- Implement TVR parser PR444
- Support for QBean start / stop in a non-blocking way PR446
- Fixed race condition in Context resume aef3de5f
-
org.jpos.rc.Resultadd add hasFailure, hasWarning, hasInfo, hasIRC helpers a2d7eaed - ISOUtil new charEncode and charDecode PR448
- Card.Track2 now handle short PANs issue-449
- honor multiple EnviromentProviders in single property fc38c2ca
- Add autoconfig support PR455
- FSDProtectedLogListener protects FSDMsg PR456
- Upgrade BouncyCastle to 1.69 475a0cef
- Add support for multiple environments PR459
- SECURITY: log4shell prevention d615199a jPOS doesn't use log4j, but in order to prevent jPOS based applications that do use log4j, we disable lookups at Q2 start.
- Added Context.move and hasKey 67e4ee4b
- Prevent loop in Environment.get c27ebd13
- Add Environment awareness to the SimpleConfiguration Factory PR468
- Replace System.currentTimeMillis() with Instant.now() in Space implementations PR369
- Make RotateLogListener AutoCloseable so that we can clean up the test directory properly. PR373
- TPS: Replace System.currentTimeMillis() with Instant.now(). PR374
- ThroughputControl: Replace System.currentTimeMillis() with Instant.now() PR375
- Space Tests: Replace System.currentTimeMillis() with Instant.now() PR376
- ThroughputControlTestCase: Replace System.currentTimeMillis() with Instant.now() PR378
- Add github workflow and fix some unreliable tests PR379
- QMUXTestCase: Improve deploy directory isolation. PR380
- Upgrade JLine to 3.18.0 dd4218a8
- DUKPT: support KSN of length > 16 PR384
- QClassLoader: Classloader creation is a privileged operation 3e1ccf6d
- Allow empty defaults in environment references PR390
- Improved EBCDIC handling of DE-48.0 (TCC) PR392
- Upgrade JLine to 3.19.0 aba4b6b9
- ChannelAdaptor honor 'enabled' on filters config PR396
- TransactionManager to expose session increase/decrease logic PR398
- Graduated SensitiveString from jPOS-EE 400eb89a
- Upgrade OWASP dependency check to 6.1.1 718910c0
- Upgrade Mockito to 3.8.0 071c467d
- add GenericPackagerParams - support TLV/LTV encoded subfields - PR401
- Security Module subsystem for the CLI PR296
- Upgrade Gradle to 6.3 773215f6
- TM alerts if group is not configured 9aa86842
- Run tests under openjdk 14 PR288
- Upgrade Javassist to 3.27.0 PR303
- LoggerAdaptor honors LogListener's
enabledattribute b638f1e2 - Allow empty (conditional NOP) SE 0 in EuroSubFieldPackager PR310
- BERTLVPackager throws a java.lang.ArithmeticException: divide by zero PR315
- Relax ssh authorized_keys permissions check PR321
- Add support for additional ssh key types PR322
- Fix BERTLVPackager padding in
PACKED_NUMERIC,PACKED_NUMERIC_DATE_YYMMDDandPACKED_NUMERIC_TIME_HHMMSSfields Issue #314 - Add TransactionManager.prepareForLog(LogEvent) b5e1c009
- Upgrade JLine to 3.16.0 8e11fa88
- Card.Builder allows override of track1/2 pattern 5b65fede
- Adding default values to ${} property expressions PR331
- Run tests on OpenJDK 15. PR332
- Update bouncycastle to version 1.66 PR305
- Add support for variable length fields (LLVAR, LLLVAR) in FSDMsg PR340
- Add cfg option packager-log-fieldname to GenericPackager when running in debug mode (defaults to true) PR348
- Add check-connected flag to QueryHost PR351
- Add EnvironmentProvider support 92cbcdb3
- Upgrade JLine to 3.17.1 7844a383
- new 'CVV' CLI command eb8cdaf7
- BufferedLogListener uses its own ScheduledExecutor c1034b0d
- Allow default environment override with uppercase version of property eb9687bc
- Handle track2 without expiration PR361
- handle [default] charset in ISOUtil.hex2byte PR364
- Upgrade BouncyCastle to 1.67 bae04018
- Improve JDBMSpace gc() SpaceError handling PR367
- TM.getInTransit goes back to report head-tail 624485de
- Upgrade Gradle to 6.7 PR354
- Add ACL based permission support to LogRotationTestDirectory PR370
- New
ISOUtil.decodeHexDumpmethod c3131b5c - New property allow-extra-fields for CheckFields PR224
- Optimize Context.dumpMap to avoid locking during dumpEntry PR222
- Run tests against all recent jdk versions. PR223
- Migrate junit4 tests to junit5 PR228 PR229
- Prevent recursive call to
Context.dumpb868d1d9 - QFactory should unregister MBean on initiallization errors Issue 236
- Fixed CheckFields regex pattern for local transaction date PR240
- Allow varargs in ISOMsg.clone PR241
- Break on ConcurrentModificationException when logging in Logger.log PR244
- XMLPackager and XML2003Packager refactoring PR246
- JCESecurityModule: expose more entry points for simulator systems PR247
- SystemMonitor cache processName and localHost 932d5ca5
- Upgrade jLine to 3.12.1, javassist to 3.25.0-GA, SLF4J to 1.7.28, SnakeYaml to 1.25, SSHD to 2.3.0 PR249
- Add utility methods to interface IRC and enum CMF PR250
- Set of minor fixes releted to TLV packagers, added Jacoco test report PR251
- Handle undefined tags and prevention against an infinite loop PR252
- Improved handling undefined tags by GenericTaggedFieldsPackager, added CharTagMap support PR253
- Upgrade JLine to 3.13.0 4ae09d51
- Add shortcut methods to PosDataCode PR256
- Add new handy
org.jpos.util.ServiceCodeclass PR259 - Context.dump properly dumps arrays 831917ed
- Upgrade to Gradle 6 PR262
- Fix X509Certificate and gradle classifier deprecation warnings PR263
- CVR parser based on the Mastercard format PR265
- Q2 honor Environment when checking 'enabled' attribute 1a9fec97
- Parser class for Issuer Application Data (IAD, 0x9F10) PR266
- Support for LogEventWriters PR268
- PosDataCode: safety length/null checks & safety copy PR271
- Added FlatLogListener and mappers PR273
- MacroField process field paths, not only ints PR282
- Added QServer.getISOServer() 8e2d6f1a
- Moved DateUtil class from jposee-syslog to jpos core PR283
- Handle Q2 renameTo failure Issue #289
- TM honors 'enabled' attribute 2a9b3f65
- Use non-blocking SecureRandom for SensitiveString. PR146
- Deprecate SunJSSESocketFactory PR294
- Add haveged to travis to ensure it always has enough entropy PR293
- NACChannel Minus length of length from the 2 byte msg length PR186
- Add "RR" (round-robin) option to QServer PR187
- CMFConverter protect against null cfg ddd9ee0a
- Protect against NPE in ResultCode.warns 85f63b59
- Upgrade javassist to 3.23-1-GA 647f8fe9
- NPE in SystemMonitor metrics dump #189
- QueryHost new property 'ignore-host-unreachable' ab045cc7
- CheckFields Return CMF error on INVALID_CARD_NUMBER 37a418d0
- Fixed DirPoll performance issue - high CPU/memory consumption Issue 190
- CheckFields: if card is optional, but present, it has to be a good one ee4eeb28
- PADChannel now logs event before running filters df8bbe1f
- Added boolean rotate-on-startup configuration to RotateLogListener PR192
- CMF changes (see issue 193 a0ef52b3
- RotateLogListener log file name token replacement PR194
- ThreadPool race condition - active count lost synchronicity Issue 196 2cd1537a
- Remove deprecated Gradle 'osgi' plugin 46f40b91
- ISOUtil's commaEncode now accepts variable arguments PR197
- Upgrade to Gradle 5.0 d684c1fc
- New functional supplier
org.jpos.util.Recyclable1ac1ad95 - TransactionManager now destroys Destroyable participants 3ba0de4d
- Use type inference in Context.get(key,timeout) 94e6e834
- Upgrade commons-cli to 1.4 737213c3
- Add SMAdapter.formKEYfromThreeClearComponents as public method 2416289b
- Added functionality and bug fix to PosDatCode. PR199
- ISOServer accept/disconnect events now hold weak reference to channel bc04e404
- Add field max length initialization for IFEP_LLLBINARY PR202
- Prevent XXE in XMLPackager 6d2a7b10
- Optimize ISOMsg.dump 430e093d
- Optimize ISOMsg.merge d60db2dd
- Add format configuration to field packagers PR203
- Add LLLTTvvvvv Ebcdic encoded header and value, length left zero padded. PR204
- Add suuport for trimmed last field in variable length fields 9212cbaf
- Add TLVList builder pattern PR205
- Upgrade SLF4J to 1.7.26 10719729
- ISOMsg allow hex notation in fpath fd475019
- Update com.sleepycat:je to 18.3.12 PR208
- Added modules/uuids support 4d35a7f1
- Upgrade HdrHistogram to 2.1.11 ac167bee
- Upgrade Gradle to 5.3 63cb7c1a
- Add OWASP dependency check 3a5aa92f
- Upgrade BouncyCastle to 1.61 1e6843d8
- SimpleConfiguration supports 'sys:' and 'env:' prefix 95e7e690
- Add Environment support 03a13d42
- Set of small fixes for QMUX, SimpleMsg and SecurePrivateKey PR209
- Use generics inferred return type in QFactory.newInstance and TransactionManager.getContext PR210
- ChannelAdaptor disconnects on VetoException #211
- Maintenance changes to SMAdapter PR213
- SMAdapter keyblock handling extension PR215
- Add IFB_LLLLCHAR field packager 61c4a16b
- Added
Q2.ready()andQ2.ready(timeout)fbe61555 - Added IFE_L* set of field packagers PR151
- Issue 155: metrics related NPE when debug=false eb5c1f60
- Adds CDATA tag to strings on log when needed PR155
- Upgrade Gradle to 4.6 77ee81ae
- Protect against log event exceptions PR162
- Added Profiler accessor for events field so that external systems can process PR163
- LoggerAdaptor now honors XmlConfigurable interface b27e8c0f
- Upgrade BouncyCastle to 1.57 f0e76d33
- Added RealmLogFilter to filter log events by their realm 914c220
- Upgrade sshd to 1.7.0 ba48b9b3
- Replaced sensitive data in CardHolder generated exceptions with safe PR167
- Added IFAE_LLCHAR PR168
- Maven artifact now do not include Main-Class nor Class-path Issue 169
- Custom Exception Handler Pipelines PR170
- ISOUtil.protect: Provide a protect method with a char to protect with. PR172
- Added static
StopWatch.getbefa21f7 - Added Automatic-Module-Name to MANIFEST.MF a83fee50
- Upgrade JLine to 3.9.0 3408309a
-
IF_TCHARpass encoding to getBytes method PR177 - Added
Pauseparticipant bee3825e - Upgrade Gradle to 4.9 023d7030
- New NACChnanel
include-header-lengthproperty 3b5f9d60 - FrozenLogEvent now honors log-source 3c1df1c9
- DailyLogListener changes for support maxage property were added PR181
- Added support for Venezuelan Bolivar Soberano 1d652a4d
- Protect against ISOServer side effects by bad end user code PR185
- Fix for Context.dumpMap is throwing ConcurrentModificationException #212
- Added WHOAMI command 77b21471
- Added activeTransactions counter in TransactionManager PR133
- Corrected error message in QueryHost when mux is not connected f46ed5cf
- Added
IgnoreLuhnCardValidator0408ac5 - Added
SelectDestinationparticipant 1ef57b2 - Added Context
persist, evict, clone, equals, hashCodemethods 7c8b7fa - Logger adaptor honors 'redirect' property bec01ea
- Added IRCConverter RC to IRC 8ea4184
- BaseChannel now honors local-port if timeout is set a9c66f1
- extract QBeans from META-INF/q2/deploy 1dc8a15
- Bugfix in ISOUtil.bcd2str(String,boolean,byte) 4ca1c5b1
- ChannelAdaptor and QMUX check in/out queues at config time 154cb021
- SelectDestination support regexp eaf0a57c
- iso87binary.xml DE55 now binary 4b4baa99
- TSpace handle race condition with templates and expirables 31dd37e5
- Added SpaceSource with IncomingListener support for remote spaces 1ab5d8f5
- SendResponse now handle SpaceSource 436e2d06
- Fine tune TransactionManager InputQueueMonitor 5cca039d
- TransactionManager new
abort-on-pause-timeoutproperty (defaults to true) 1ad478f1 - Added CALCLUHN command dcd75442
- SendResponse adds support for
header-strategya0d0a4d2 - Card now gets and validates service code from track1/track2 c9fdbf39
- Temporary fix to unsorted tags in GenericTaggedFieldsPackager 686be859
- TransactionManager getInTransit now users activeTransation counter 8dfe8d33
- Added
boolean ISOMsg.hasMTI()method PR140 -
org.jpos.util.Tagsproperly deal with empty tags df24aa52 -
org.jpos.rc.Resultprotect against null 'format' 545e8802 - Allow in-memory LMKs in JCESecurityModule 4ad06b1e
- added Serializer compact Map<String,String serializer 7a670e64
- Added JCESecurityModule DUKPT Data Encrypt/Decrypt b4aabfbc
- SystemMonitor show Java version/vendor/AES info 51edcc96
- Added PGPHelper.encrypt/decrypt 3a7dd6b7
- SystemSeed handle dual seed (system/custom) c6165d34
- Context now back to
<Object,Object>05234c63 - QMUX.notify add debug info cf8859e3
- TM Debug and Trace now shows abbreviated package names and optional realm ad4a6fef
- Context now tells apart String versus non-String keys 8eda685d
- Added NativePackager 918023a6
- ISOUtil.normalize now use unicode-like escaping f75807de
- Upgraded HdrHistogram dependency 07ec0290
- Dump metrics a4d66c5b
- ISOUtil.hexdump with CharSet support PR146
- Moved to semantic versioning
- TransactionManager unified debug and trace d04e77c2
- Upgrade Gradle to 3.3 04094a0
- Upgrade JLine to 3.1.2 4394eef
- Upgrade BouncyCastle to 1.56 6e864b0
- Upgrade SSHD to 1.3.0 6780c94
- Upgrade SLF4J to 1.7.22 ab85f61
- SimpleConfiguration implements Serializable a5b1049
- Prevention against locking of deploy directory scanning PR115
- JESpace accept lock.timeout and txn.timeout 7e8e917
- Removed SLF4J-NOP dependency 598d73f7
- Add jPOS custom SLF4J provider dynamically PR123
- QMUX supports per-MTI key override 73ace32
- QMUX validate responses aac64d3
- Added QMUX return-rejects property (default to false) 13b7991
- Upgrade JLine to 3.2.0 1645444
- Add metrics to TM 413ddbe4
- Debug participant use FrozenLogEvent 669275d5
- Avoid possible NPE when throwing ISOExceptions PR124
- Provide default implementaion of TM.commit, abort and prepareForAbort 3f93807
- Added general purpose IncomingListener 06dbce9
- Added ContextConstants enum 090be9a
- Added SendResponse participant 5ee0e52
- Added Switch participant 33cdf7b
- Added Caller.info helper class 1429584
- Added org.jpos.rc package (RC, IRC, IRCConverter, CMF, CMFConverter, Result) 247ef72
- Make sure Context key is a String 16b5737
- Added ISOMsg.hasAny methods 9006fba
- Added ISOAmount toString, hashCode, equals 2489e9d
- Added jPOS CMF packager (cmf.xml) b2a9bce0
- Added CheckFields participant e8813a3
- Corrected
TPS.peakWhenPR125 - Handle debug on TMs without participants bb546013
- Added
TransactionConstants.FAIL(equals toABORTED | READONLY | NO_JOIN) e6d3cfa - Added QueryHost participant 2cc2349
- Upgrade to Gradle 3.5 6d2de3f
- Fixed QMUX counters on async requests 903f1a2
- Added metrics to QMUX 3157363
- Removed 01_single.xml (use
--pid=xxxinstead) 9377319 - ASCIIChannel, add
length-digitsproperty... PR127 - Synchronize LogEvent.payLoad in toString eeed89f
- Major issue with TM debug output 783e68a1
- QMUX race condition detecting duplicate STAN 07c4c145
- Added
Profiler.getPartialInMillis()method 4d70f65 - Added TransactionManager resumed metrics and
metrics-highest-trackable-valueproperty b57faf2 - Log paused transaction counters in TransactionManager 1ce69fe
- Removed shutdownQ2 operation from MBean 5f4c0a5
- Added QBeanSupport.getDump 297f250
- TM now uses loadMonitorExecutor e4ed756
- Added a getter method for
TransactionManager.pausedCounterPR131 - Improved logic to calculate average TPS PR132
- Added inhibit() indicator to IRC 2ad73e0
- Upgrade JLine to 3.0.0 f915457
- CLI Builtin commands, colon to run subsystems, semicolon now escaped 2a285ac
- CLISubSystem has access to CLIContext 04b8aaa
- Upgrade to Jline 3.1.0 fac4811
- INFO_NOT_FROM_CARD renamed to CONTACTLESS d6d9061
- Upgrade to Gradle 3.2.1 a6ba5cf
- optionally read license file from external file c893bf2d
- Upgrade to JLine 3.1.1 43bf7e6
- Removed double-logging in PADChannel 05da7cfa
- ISOMsg, no reason to declare never thrown ISOException PR107
- Upgrade to Gradle wrapper 2.13 af1797c
- Remove verbosity of common peer-disconnect event 1404032
- QFactory.properties expands 'groovy' to
org.jpos.q2.qbean.Groovyf663653 - Fixed ISOUtil.byte2BitSet (3rd bitmap support) PR108
- multiple dependency upgrades 1d3127c
- small fixes, comments, and tiny performance improv PR109
- Added jPOS default ISOCurrency overrides 5037153
- ISOCurrency sorts JRE currencies by currencyCode 04ae697
- Got rid of Xerces and JUnit addons deps 04ae697.
- q2 --cli now defaults to
deploy/clidirectory 86e3450 - ISOResponseListener converted into functional interface PR112
- Bugfix in ISOUtil.asciiToEbcdic(byte[], int, int) 8a12c18
- Implementation of pin block format 05 in JCESecurityModule PR114
- Prevention against locking of deploy directory scanning PR115
- ISOUtil now use Charset IBM1047 for EBCDIC conversions 6e2d3d3
- Add
--sshet al, migrated to jline3 c6cc6024 - Upgrade Gradle to 3.1 c3dbc3a
- ISOField.dump dumps JSON data as field content 2326752
- Added CLI 'deploy' subsystem PR116
- Upgrade JE to 7.0.6 1d8c330
- Upgrade BC to 1.55 ed5b64dc
- Added CLI.exec methods d66511b
- Correct 3rd bitmap handling for cases of contiguous or split bitmaps (3rd bm in a data element) PR118
- BaseChannel add ability to override pack 79f31a8
- Upgrade to Gradle 2.8 ad26f77
- Add org.jpos.util.Tags helper class c50fb0b
- Add Tags hasAll, hasAny and hasNone methods 95db3dd
- Reduced
Context.dumpverbosity 2e93815 - SystemMonitor: Added OS version and load average a461b9f
- MUXPool adds 'enabled' support a52b088
- Enable PKI (RSA) cryptosystem in SMAdaptor PR99
- Add support for IFB_HEX f9c83e4
- Added
reply-keepaliveproperty to CSChannel and VAPChannel. Defaults totruef9c83e4f3a25...8028e07c47c1 - Upgraded Gradle wrapper to 2.11 fc3e953
- Update ISO-4217 currencies PR100
- ISOCurrency now uses currencies from jvm PR101
- Q2 uses WatchService to speedup deploy dir changes detection 44a9f54
- Transition to org.jdom2 PR102
- Serializable TSpace PR103
- Q2 registers itself with the NameRegistrar bc7be43
- Add Card, Track1, Track2, CardValidator, LUHNValidator 7ceb158
- Possibility to use dCVV/CVC3 calculation PR105
- Add IFEPE_LLLCHAR support for mastercard DE112 PR104
- Do not throw ISOException for a field not present in fpath PR91
- TransactionManager resume checkpoints in profiler e9355878
- Upgraded Gradle wrapper to 2.4 d4295d2
- Added viewTests task d5e8bc2
- BaseHeader and BASE1Header now operates on cloned copies of byte[] 6a4f430
- TransactionManager: Reduce memory footprint of processed transactions 37f5f62b
- Q2 do not force new classloader on first iteration d77dd3f2
- Multiple minor improvements (PMD complains)
- add ability to shutdown SystemMonitor 38173f6
- commons-cli upgraded to 1.3.1 ce5ceb3
- xerces upgraded to 2.11.0 888ec12
- Upgrade to BC 1.52 d14b811
- Added BaseChannel round-robin property f93d986
- Added QBeanSupport.close(Closeable ...) helper ecb3f95
- ChannelAdaptor reduced verbosity on failed connections 2e4bbc8
- TransactionManager call profiler.checkPoint on prepareForAbort 9d4f40d
- Logger.log catches LogListener Throwables 1646073c
- Baseline is now Java 8 c6b996c
- Better alignment of Context.log output 6e2a8bc
- Added JSParticipant 28ba07f
- Fixed issue with JBoss classloader 5d1d2f99
- Fixed jPOS-118 DailyLogListener - OutOfMemory on compress PR-92
- jPOS-115 add deny to iso server PR-94
- Add process name and peak threads to SystemMonitor f47b6e8
- Upgrade to Gradle wrapper 2.6 b3360be
- Fixed jPOS-77 SimpleConfiguration.get fails when multiple entries are used PR97
- Add TZCHECK cli command 34e5adc4
- Add TimeZone info to SystemMonitor 9a84b00
- Show Log timestamp in ISO-8601 format (UTC) cd5aafd4
- Add Q2 --pid-file optional switch 8523b9ab
- Add ISOUtil.readableFileSize method 618a2a5
- Add free and usable diskspace on CWD FS 3febd1b
- Add a timestamp to the transaction manager thread name PR98
- Add SpaceLogListener d29efb1c
- FrozenLogEvent implements Serializable 06d3401
-
BaseChannel.receivethrowsIOExceptioninstead ofISOExceptionif not connected 6d0a883 - Added support encryption and decryption in JCEHandler PR84
- Resolved memory leak in OneShotChannelAdaptorMK2 PR85
- Handle channel-name and socket-info as Strings 7fa77c2
- EuroSubFieldPackager reverted baae23b (issue with LL versus LLLL prefecture)
- Added
IFEP_LLLBINARY,IFEP_LLLCHAR,GICCSubFieldPackagerandGICCChannelc615a1d - Added
org.jpos.util.StopWatch2cc4e6a - Added SystemSeed helper 129a187
- SMAdapter.translateKeyScheme and JCESecurityModule implementation (PR86)
- Got rid of detecting numeric tags in TLV packager to simplify and guarantee order of tags, MUXPool private methods made protected to allow subclassing (PR87)
- SunJSSESocketFactory extends GenericSSLSocketFactory in order to avoid repeated code 8f682ad
- GenericSSLSocketFactory adds support for
enabledProtocolsrequired per PCI compliance e8cf528 - Fix thread allocation error with race conditions and improve thread naming PR88
- TransactionManager more aggressive thread creation 0b41072
- TransactionManager warning if in-transit transactions is too high 5603099
- Updated deps: felix.framework to 5.0.0 org.osgi.core:6.0.0 xmlunit:1.6 c460076
- JSONPackager temporarily on hold 42f8ad6
- MUXPool now has ROUND_ROBIN_WITH_OVERRIDE and SPLIT_BY_DIVISO f14b4e2
- Add space to error
DirPollmessage to make more readable (PR66) - Use default logger when no log source logger or listeners (PR67)
-
TransactionManager.getOutstandingTransactionsneeds to check input-space that can be different than the standard space (9c83a64 ) - Q2 checks if ClassLoader has been already registered with the MBeanServer 2dbd8de
- Allow faster shutdown of dir polls PR70
-
SimpleKeyFiledo not log if logger is null (7c92d0a) - this is a follow-up to PR67 - Fix for PR67 backward compatibility (8d5da6e)
- Added `ISOUtil.hexdump(byte[] buffer, int offset); (efb6e97)
- Added TTTLLLV support e9defcf
- Fix padding end issues in TLVList - PR77
-
PosDataCodenow implementsLoggeable(f25c784) - Added
LogEvent.toString(String indent)helper method (0037ed6) -
LogChannelsupport nested messages and new propertiesrealm-fieldandrealm-timestamp(5a11844) - Added
TPS.setSimulatedNanoTime(long)(b411eda) - Improved LogEvent timestamp PR78
- JCESecurityModule maintenance and added calculatePVVImpl PR80
-
BSHResquestListenernow honor script's boolean return value PR81 - Fix logging issue in calculatePVVImpl, Split formatPANPSN to separate methods, Add ARQC veryfication and ARPC generation support PR82
- BaseChannel now throws
IOExceptioninstead ofISOExceptionon non ISOExceptions 6e08532 221196f d7a92bd - Enhanced DUKPT functionality (exportPIN) PR83
- Added OneShotChannelAdaptorMK2 (experimental, will replace OneShotChannelAdaptor) (2784deea)
- Bugfix in AsciiHexInterpreter lowercase uninterpret (ab7a9a63)
- TransactionManager: convert Thread[] to List, Use foreach, SpceUtil.wipe and generics (see PR47)
- Added
org.jpos.iso.PosDataCode(1fdfd1d) - QMUX use internal space, use
reuse-spaceproperty for backward compatibility (d6194c3) - Added Context trace (cce6a27)
- Fixes javadoc, deprecation and unchecked warnings PR-50
- Generalized BaseChannel (PR-51)
- Added contributed DecimalTagMapper (PR-53)
- Added contributed TLV and EMV support (PR-52)
- Protect sensitive data in ISOMsgPanel (401d820)
- jPOS-65 ISOUtil.hexdump (offset+len) behaviour (e957d1c)
- Added support for setting custom trailers. (Also fix long standing typo) (PR54)
- Simplifications and improvements in SimpleMsg PR55
- Replace ISOUtil.ENCODING with ISOUtil.CHARSET PR56
- Enable nesting in *TaggedPackager other composite fields PR57
- TLVList and TLVMsg implement Loggeable e044c24
- Remove dependency on platform default encoding for ISOUtil.asciiToEbcdic (PR60)
- Added
xml-config(ae05521 ) - Upgrade Gradle to 1.12 (548a57b)
- ISOPackager interface does not extend LogSource anymore (ada3f0c)
- Added
ISOComponent.getFieldNumber()(b53edc7) - Added
JSONPackager(9d1a86e) - Added TransactionManager
getSerializable,getContextandgetIdThreadLocal based statics (c6da5f3) - OSGi Activator now honors org.jpos.q2.autostart property (bfdaa4c)
- Upgraded Gradle to 2.0 (af16f20)
- Added
src/dist/bin/q2.batDOS script (e900fe1) - NameRegistrar now internally use TSpace, adds
get(String,timeout)method (c5160f2) - Added PosDataCode.valueOf(byte[]) (e1a0c38)
- Fixed TM ConcurrentMotificationException in TM stop introduced in PR47 (bd97570)
- Added TRACK1 and TRACK2 flags to PosDataCode.ReadingMethods according to jPOS-CMF 1.0.11 (1335d6a)
- Prevent ISOMsgFieldPackager.unpack NPE PR61
- Initial support for types ZEK, DEK, MK-DAC, MK-DN PR62
- SMAdapter: add methods for CAVV/AAV calculation and verification PR63
- Added preliminary PGP support (ce66f8d)
- Support for jar: protocol for FSDMsg schema (PR64)
- QConfig and QXmlConfig now has get with timeout (aee43ca)
- Fixed
IFA_BITMAPissue with small bitmaps ([42b1f035]) -
QMUX.isConnected()check thatQMUXis in running state (df69a8c) -
EuroSubFieldPackagertag prefix is actually LLLL ([baae23b3])
-
Added DUKPT support (dc24d14)
-
Added interface TaggedFieldPackager (568011e)
-
Upgrade to JE 5.0.73 (3d49428)
WARNING This upgrade requires running the
DbPreUpgrade_4_1script using version 4.1.20.
The command is:java -jar je-4.1.20.jar DbPreUpgrade_4_1 -h directoryNameon every JE space created with the previous version. See JE's ChangeLog.
-
Avoid unpacking fields not required in requests (acfb52c)
-
Added new Space NRD (not read) operation (f50169206)
-
qbean.SystemMonitor now shows default encoding (26ebd40)
-
PR37 - Remove unpadding of binary fields in FSDMsg.pack method (112b0a3d)
-
jPOS-113 SimpleKeyFile.getKeys fails when key names have dots f552682
-
PR38 - Clean shutdown of DirPoll when file processing is in progress (7dd4090)
-
PR39 - Allow schema attribute separator to use in new separators (12486354)
-
BaseChannel.closeSocket is now protected (4caab615)
-
PR42 PIN mailer api
-
Indonesian Rupiah (360) will have 2 decimals ef843b58
-
Added ISOCurrency
parseFromISO87StringandtoISO87String- deprecateddouble convertFromISOMsge67d4af -
PR45 TLVMsg and TLVList improvements
-
Added
SpaceUtil.outIfEmptyandoutWhenEmpty647ebfe -
Bugfix in
IFE_BITMAPnot properly dealing with secondary bitmap e610f11 -
jPOS-116 XML parser behaviour causing field value to be set prematurely 1f8ce54
-
Improved TSpace performance by reducing calls to
notifyAlle59d679 -
BSH script now expose
cfgConfiguration -
Added new
QConfigservice ea9c1a3 -
Added
merge-configurationsupport 35a1a208
- Added len,description constructor to IF_NOP
- Added IFB_LLHEX (can be used to deal with encrypted track2s)
- Added HexNibblesPrefixer (required by IFB_LLHEX)
- Added OSGi support
- Added 'qnode' (OSGi testbed)
- DirPoll now supports file compression
- Profiler can be
reenabled - TransactionManager PAUSED transactions reuse profiler to provide combined elapsed times
- Added
org.jpos.iso.GenericSSLSocketFactory - jPOS-105 QServer should unregister as a space listener
- jPOS-106 ChannelAdaptor reconnect flag uses non serializable Object
- jPOS-108 FSDMsg consuming input stream
-
DirPoll.scanis now protected -
MUXinterface now extendsISOSource -
QMUX.sendnow checksisConnected() -
DirPollnow accepts apriority.regexboolean property (73c2f84) - jPOS-110 QMUX major start-up issue (1526dab)
- DirPoll Retry when archive.timestamp is set to true (pull/33)
- Generate optional app specific version info 02f739a
- TransactionManager sets activity related thread name
- TransactionManager
call-selector-on-abortproperty now defaults to true - Added QThreadPoolExecutor contributed by Damien pull/18
- QServer now fire connect/disconnect events contributed by Chhil pull 22 and pull 23.
- Assorted contributed code inspections
- Bugfix for ArrayIndexOutOfRange in EuroSubFieldPackager
- Contributed IFE_LLLLCHAR and IFE_LLLLBINARY field packagers
- QExec now has an QFactory alias, logs stdout to jPOS logger
- SystemMonitor can run optional scripts (using multiple
scriptproperties) -
jPOS-104 make sure the TransactionManager
sessions <= max-sessions <= max-active-sessions - jPOS-103 BaseChannel now has default 5 minutes timeout
- jPOS-101 ISOAmount constructor forces ISOCurrency scale
-
org.jpos.iso.Connectornow supports apreserve-source-headerproperty (defaults to 'true') d - Q2 now honors optional 'enabled' attribute in QBean descriptors
- PADChannel now supports 'delay' property.
- Added
org.jpos.util.ConcurrentUtil - jPOS-102 QMUX use ScheduledThreadPoolExecutor
- jPOS-55 QMUX getKey - make sure MTI is padded to 4 positions
- jPOS-63 Filter sensitive in org.jpos.transaction.Context dumpMap
- jPOS-61 Extending SMAdapter for support validation and generation of EMV Application Cryptograms ARQC/TC/AAC and ARPC
- JESpace has now a default txn lock timeout of 5s (instead of JE's default 500ms)
- BaseChannel removed double notification to observers at
connecttime - KeyStoreAdaptor now registers with the NameRegistrar at init time
- Upgraded to Gradle wrapper 1.4
- jPOS-98 Context not serializable to JESpace
- Added
org.jpos.util.BufferedExceptionLogListener - GenericPackager supports 'jar:' prefix in packager-config
- Added INSTALL support (backported from jPOS-EE, extract META-INF/q2/installs from available jars)
- Context.dumpMap is now protected
- added
IFE_LLLEBINARY(Binary version of IFE_LLLCHAR) - added
EbcdicBinaryInterpreter - added
ISOUtil.asciiToEbcdic(byte[] s, byte[] e, int offset) - added
ISOUtil.char calcLUHN (String p) - added
ISOUtil.String getRandomDigits(Random r, int l, int radix) - jPOS-95 jPOS-95 Handling different character encodings by FSDMsg
- New Build system Gradle
- jPOS-94 KeepAlive not honored in BaseChannel.connect(Socket)
- jPOS-92 CLI parser gets confused with spaces
-
jPOS-89 GroupSelector's select should not be called if prepare is ABORTING (IMPORTANT NOTICE: make sure you don't need to set the
call-selector-on-abortproperty) - Added wait-for-workers-on-stop to ChannelAdaptor pull#14 8e97165
- BaseChannel now has a setSoLinger method
- jPOS-85 UnsupportedOperationException in BaseChannel.closeSocket when using SunJSSESocketFactory
- XMLPackager.unpack input stream now honors header
- FSDMsg binary fields can be used as key (they get converted to hex when looking for the schema) 74d306c
- ISOServer start/end now shows remote port number in realm
- Profiler.dump end event now shows partial time since last checkpoint 1d6fe26
- jPOS-80 Expose TPS data in TransactionManager via JMX ([https://github.com/jpos/jPOS/commit/53ab608c2981a893284f04570591c53bd7b1a724 53ab608])
- jPOS-79 Add support for Configuration providers to Q2
- jPOS-74 Add support for Secure Messaging in JCESecurityModule
- jPOS-73 NPE in ISOServer run when configured outside Q2
- jPOS-72 New MultiSessionChannelAdaptor
- jPOS-71 Extended SMAdapter to support CVC3 verification
- jPOS-68 Improved default server socket creating in ISOServer
- jPOS-69 Fix ThreadPool.getPoolSize()
- Upgraded BerkeleyDB to 4.1.10 (requires java -jar je-4.1.10.jar
- DbPreUpgrade_4_1 -h before moving to version 5, see BDB Release * Notes
- New TSpace gc strategy with dual expirables sets
- jPOS-47 Add support to ISOUtil.protect to accept 'D' as delimiter
- jPOS-48 Added methods to parse and format conversion rate fields
- jPOS-50 Adding implementation of LocalSpace for JESpace
- jPOS-51 Update ISOCurrency.properties
- jPOS-49 Added service of packaging complex field (as binary) if it is defined as opaque
- jPOS-46 SimpleMsg support in ProtectedLogListener
- [jPOS-45[(https://jpos.org/issues/issue/jPOS-45) EncryptedPIN.extractAccountNumberPart with length of accountNumber < 13
- jPOS-44 LogEvent: ConcurrentModificationException issue
- jPOS-43 'truncate' attribute in fixed length fields
- jPOS-5 XMLPackager header encoding
- jPOS-3 XMLPackager header encoding
- jPOS-42 QMUX, header and non ISOMsgs (i.e. FSDISOMsg)
- raise ISOException if QMUX.getKey() does not have content besides the MTI * 20b388b
- jPOS 1.8.2 0141850
- bugfix: DirPoll sets processor even if Processor is not an instance of LogSource
- jPOS-39 XMLPackager charset bytes issue
- TransactionManager now support dynamic session creation [g142f8bb]
- jPOS-40 QMUX startService method query
- Added jPOS Archetype
- First jPOS version built by Maven - We have now jpos-1.8.0 and compat_1_5_2 as independent Maven artifacts. The 1.7 series has been tagged as v1_7
- jPOS-37 Add xml definition support for TransactionManager.statusListeners ([https://github.com/jpos/jPOS/commit/0b8b16e0de116b805dc4c6088f4b238426d47934 0b8b16e])
- As of r3019, we moved the jPOS development to [http://github.com/ar/jPOS Github]
- GenericPackager now uses an entity resolver (r3019)
- Bugfix on MAC generation, use HashMap instead of TreeMap in JCEHandler (r3002)
- jPOS-24 TSpace.dump now shows key count (r3008)
- Tagged as tags/v1_7_0
- jPOS-21 QServer registers the underlying ISOServer with the NameRegistrar, but not QServer itself (r2944)
- Q2 now has an instanceId (r2949)
- Q2 now support transient descriptors (r2950)
- jPOS-23 Encoding issue in ISOMsg.getBytes(int) and ISOMsg.getBytes(String) (r2959)
- ReConfiguration now deprecated (r2961)
- BSHTransactionParticipant, BSHGroupSelector and BSHMethod moved to module txnmgr. Package renamed to org.jpos.transaction.participant (r2962)
- ISORequest moved to compat_1_5_2 module (r2963)
- jPOS-3 improved unpack exceptions
- jPOS-12 Add ability to use 'header' as part of the key in QMUX's ''
- jPOS-25 JESpace now implements Loggeable
- jPOS-19 QMUX - add ability to use inner fields as keys (r2972)
- jPOS-20 ChannelAdaptor write-only mode and timeout (r2974)
- Q2 now supports NameSpaces and XInclude (r2982)
- jPOS-30 LMK & scheme variants for JCESecurityModule (r2983)
- jPOS-31 BaseChannel small issues packager before filters (r2989)
- jPOS-32 Updated ISOCurrency.properties (r2996)
- jPOS-33 NPE issue on unconnected ChannelAdaptor when calling isConnected() (r2997)
- jPOS-34 ISODate now supports Locale (r2998)
- jPOS-35 BaseChannel.receive now logs ISOMsg before applying filters (r2999)
- Tagged as tags/v1_6_8
- Added ISOPackager.getDescription(), ISOMsg.dump() now shows packager's description as a comment (r2850)
- HEXChannel new behavior [https://jpos.org/issues/issue/jPOS-6 jPOS-6] (r2851)
- GenericPackager now push logger to sub packagers [https://jpos.org/issues/issue/jPOS-8 jPOS-8] (r2853)
- Added Space.put operation (r2858)
- Profiler support for duplicate checkpoint descriptions (r2859)
- Include fpath option on hasField and unset (r2860)
- [https://jpos.org/issues/issue/jPOS-10 jPOS-10] Issue with ProtectedLogListener and ISOMsg change to use TreeMap (r2861)
- Added ISOMsg.getComponent(fpath) (r2864)
- [https://jpos.org/issues/issue/jPOS-2 jPOS-2] ISOUtil.protect doesn't properly mask track-1 trailer (r2867)
- Add support for a FSDMsg to have a default key schema and not require every key to has its own schema (r2869)
- [https://jpos.org/issues/issue/jPOS-13 jPOS-13] ISOMsg/ISOAmount serialization issue (r2873)
- [https://jpos.org/issues/issue/jPOS-16 jPOS-16] LogEvent records log time and LogEvent lifespan (r2877)
- [https://jpos.org/issues/issue/jPOS-17 jPOS-17] Added max-active-sessions and retry-timeout to TransactionManager (r2886)
- Upgraded jDOM to 1.1.1 (r2887)
- QServer has support for in and out queues (r2892)
- Added new QMUXProxy, QMUXProxyAdaptor and RemoteQMUX (r2892)
- Profiler now uses nanos instead of millis for better accuracy (r2898)
- Added automatic profiling to TransactionManager (r2899)
- Added org.jpos.util.TPS, TransactionManager StatusEvents, TMMonitor (r2919)
- Updated JE libraries to 4.0.103 (r2929)
- CardHolder(ISOMsg) expiration date is now optional (r2932)
- TransactionManager's paused-timeout default is now 0 (r2933)
- Tagged as tags/v1_6_6
- DirPoll now accepts a 'zero-length' property (r2721)
- Space interface now supports generics (r2729)
- Added ISO-8583 v2003 support (r2731)
- Added helper method boolean ISOMsg.getFields() (r2733)
- Added Q2 start() and stop() methods (r2735)
- OneShotChannelAdaptor now support handback-field(s) property (r2740)
- New build target 'srcjar' for source browsing and debugging in IDEs like Eclipse (r2750)
- Added org.jpos.util.WatchDog (r2752)
- Added XML preamble to RotateLogListener (and DailyLogListener) r2761
- Fixed issue with ISOMeter counters not going beyond 1M messages (r2763)
- Added JESpace (r2784)
- Added junit.jar to lib/test directory, and added tests and code for separator attribute and nested property elements in key fields for handling key fields with values like backslash and spaces (r2788).
- ChannelAdaptor.getCountersAsString() now show idel time instead of last transaction timestamp (r2789)
- Added BaseChanne.getDynamicHeader(header, image) (r2791)
- QMUX fixed bug with notifications (xx4x/xx50) (r2804)
- QMUX Handle situations where STAN length is > 6 in versions earlier than v2003 (r2808)
- BaseChannel fixed important bug in clone that affects ISOServer (r2813)
- XMLPackager now suppors payload as field content in addition to the 'value' attribute (r2817)
- Aligned packing length error to match class name on several ISOFieldPackagers (r2818)
- Provide direct route into Channel to allow sending of data in addition to ISOMsg (r2822)
- Added Dumpable helper class and DebugFilter (r2827)
- ISOComponent.getChildren is now a Map (r2836)
- Bugfix in BCDInterpreter, RIGHT_PADDER_F, added IFB_FNUMERIC and IFB_FLLNUM (r2841)
- QMUX XML config now support mtimapping element (r2842)
- Tagged as tags/v1_6_4
- 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)
- FSDMsg now has a setMap(Map) method (r2645)
- FSDMsg added dummy separator (DS) (r2646)
- Prevent defense in JDBMSpace.gc() and TSpace.gc() to avoid killing DefaultTimer on exeption (r2649)
- Added Contributed QBeanFactory (r2656 - bharavi)
- ISOUtil handle odd-length in hex2byte (String) (r2656 - bharavi)
- Added Space.existAny(Object[] keys) and Space.existAny(Object[] keys, long timeout) (r2664)
- NACChannel supports new optional property 'tpdu-swap', defaults to true, the old behavior (r2667)
- Added IFMC_LLBINARY, patched EuroSubFieldPackager in order to deal with Binary fields (r2669)
- Added TelnetXMLChannel (r2670 - mark)
- Fixed bug in ISOMsg's bitmap when using fields > 192 (r2673)
- Added ChannelInfoFilter (r2674)
- Added SysLogListener (r2688)
- Prevented ArrayIndexOutOfRange in ISOBasePackager.getFirstField() (r2700)
- Optimized imports in DirPoll, removed dependencie with compat_1_5_2 [ReConfigurable] (r2701)
- Added getEntry to Profiler (r2704 - dbergert)
- Tagged as tags/v1_6_2
- 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 progress) (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)
- 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 .. configuration element (defaults to 41, 11).
- 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' element at unpack time. (r2426)
- bugfix in ChannelAdaptor: honor reconnect delay on peer-disconnect exceptions (r2429)
- Added new 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)
- Tagged as v1_5_2 - only available via subversion
- 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)
- Released in 09/18/2005 (Tagged v1_5_0)
- 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 "'")
- released Oct 2004 (tagged: v1_4_8)
- 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
- released Jul 2003 (tagged: v1_4_6)
- 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)
- released Sep 2002 (tagged: v1_4_4)
- Removed deprecated ISOFactory and ISOFactory based examples
- New org.jpos.apps.qsp.Router class
- SQLFilter and CalculateFilter contributed by Zhiyu Tang
- QSP New 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 tag now support new "class" attribute (code contributed by Andres Alcarraz aalcarraz@cabal.com.uy)
- Released May 2002 (tagged: v1_4_2)
- 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
- Released Feb 2002 (tagged: v1_4_0)
- 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()
- Released Nov 2001 (tagged: v1_3_8)
- 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 : name attribute is added as a property to configuration object.
- QSP : 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 Soren Hilmer <sh@itplus.dk>). - bugfix: ISOBaseHeoder.unpack, use factory method for MTI too
-
(Thanks Soren 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)
- 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)
- 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.