eBus release 7.6.2
*** ATTENTION ***
As of release 6.0.0, eBus is now based on Java 11.
eBus does *not* use modules at this time. Therefore include
eBus jars in -classpath and not -modulepath.
The eBus license also converted from LGPL 2.1 to
Apache License 2.0. The reason for the license change is
due to Apache License 2.0 being more end-user friendly that
LGPL 2.1.... [read more](/p/ebus/news/2025/12/ebus-762-merry-christmas/)
Release 7.6.0 made the following changes:
Feature Requests:
eBus 7.5.0 Downloads
*** ATTENTION ***
As of release 6.0.0, eBus is now based on Java 11.
eBus does *not* use modules at this time. Therefore include
eBus jars in -classpath and not -modulepath.
The eBus license also converted from LGPL 2.1 to
Apache License 2.0. The reason for the license change is
due to Apache License 2.0 being more end-user friendly that
LGPL 2.1.... [read more](/p/ebus/news/2024/12/ebus-750-merry-christmas/)
Release 7.4.0 made the following changes:
Feature Requests:
Release 7.3.0 made the following changes:
Feature Requests:
Ticket 33: Switch to org.slf4j logging framework.
Since its inception, eBus used java.util.logging framework
since that was the only framework guaranteed to be available
20 years ago.
With the rise of Maven and Gradle, other logging frameworks
are easily obtained. Given this, eBus API now uses slf4j,
a logging framework which supports any number of underlying
logging frameworks. This means that eBus will use the logging
framework the application chooses.... read more
Release 7.2.0 made the following changes:
Feature Requests:
Ticket 32: Add IEMessageStore implementations.
Provide two message store implementations: in-memory and SQL.
In-memory stores a fixed number historic messages using a
ring buffer. These messages are not persisted.
The second stores eBus messages in an SQL database. User is
required to provide code which stores, retrieves, and decodes
eBus messages to and from the database.... read more
Release 7.1.0 made the following changes:
Feature Requests:
Ticket 30: Add generic parameter to NotifyCallback.
Currently, NotifyCallback requires method signature to accept
a ENotificationMessage parameter. This means that the
NotifyCallback method has to downcast the message parameter
to the target message type.
Adding the generic parameter:
public interface NotifyCallback<t extends="" enotificationmessage="">... read more</t>
Release 7.0.0 made the following changes:
Feature Requests:
eBus release 7.0.0 will introduce a simple reliable UDP connection guaranteeing UDP packets arrive in order and no missing packets. More about this later.
Release 7.0.0 will also be dropping the deprecated feed open methods and related methods and data members. This means that feeds may only be created using the associated builder. If still using feed open methods, then moving to eBus release 7.0.0 will require code changes.
Release 6.6.0 made the following changes:
Feature Requests:
java.lang.management package. Added net.sf.eBus.util.ERuntime class which provides static method isAndroid which returns true if running on Android Runtime (ART). eBus API v. 6.6.0 is verified as being Android-compatible.net.sf.eBus.util.logging.StatusReporter is now marked with @FunctionalInterface allowing compatible methods to be used for status reporting.SocketAddress for binding.Release 6.5.0 made the following changes:
Release 6.4.1 made the following changes:
Add static method:
EFeed.createDispatcher(EConfigure.Dispatcher)
which allows an eBus Dispatcher and it subordinate threads to
be created dynamically post-JVM initialization.
Corrected MavenCentral release adding in missing historic
feed package.
Top-level eBus pom.xml now uses <dependencymanagement> tag.</dependencymanagement>
There are four download folders:... read more
Release 6.4.0 made the following changes:
Feature 22: Support org.decimal4j.api.Decimal in eBus
messages.
Added org.decimal4j.api.Decimal as a supported type in eBus
messages. All immutable decimal4j classes implementing
the Decimal interface are supported.
Feature 23: Cleaned up net.sf.eBus.client.EMultiFeed API.
Moved EMultiFeed classes to Builder paradigm for creating
EMultiPublishFeed, EMultiSubscribeFeed, EMultiRequestFeed,
and EMultiReplyFeed.... read more
Release 6.3.0 made the following changes:
Added historic publisher and subscriber feeds in package
net.sf.eBus.feed.historic. An historic publisher both posts
notification messages to active subscribers, persist those
messages to a user-specified message store, and reply to
requests for historic (previously persisted) notification
messages.
An historic subscriber is capable of requesting and merging
both historic and live notification message feeds and
forwarding those messages to the subscriber in the same
manner as with ESubscriber.... read more
Release 6.2.0 made the following changes:
Release 6.1.0 made the following changes:
The preferred technique for creating single feeds (EPublishFeed, ESubscribeFeed, ERequestFeed, and EReplyFeed) is now using the feed's Builder sub-class. A Builder instance is obtained via the class' static "builder()" method. See feed Javadoc API or eBus Programmer's Manual for detailed explanation on how to use the feed Builder.
The single feed open methods are now deprecated.
Added EClient static method... read more
Maven Central showed two vulnerabilities in eBus 6.0.0 in the dependencies used:
* CVE-2020-8908
(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908)
Corrected by moving from JUnit version 4.12 to 4.13.1.
* CVE-2020-15250
(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15250)
Corrected by moving from com.google.guava version 27.0.1-jre to 31.0.1-jre
This release includes no new eBus source code. Only changes to eBus dependencies.
eBus release 6.0.0 is a milestone release for this project with the following major changes:
net.sf.eBus.config.EConfigureand net.sf.eBus.config.ENetConfigure classes. Command line option:... read moreRelease 5.7.0 provides the following changes:
Added net.sf.eBusx.time.EInterval
An EInterval defines two instances: a begin time and an end
time where begin time is ≤ to the end time. These time may be
separately marked as inclusive or exclusive. If begin time
and end time are equal then both times must be marked as
inclusive.
While EInterval overrides equals(Object) it does not
implement the Comparable interface. Instead EInterval
implements Allen's Interval Algebra via the following
methods:... read more
Release 5.6.0 provides the following changes:
Added ERequestFeed.ERequest.cancel() method.
Method ERequestFeed.ERequest.close() unilaterally cancels a
request and does not allow the replier to reject the
cancellation.
ERequestFeed.ERequest.cancel() allows a replier the
opportunity to accept or reject the cancel request. If
rejected the request remains active and the replier continues
processing the request.... read more
eBus has been based on Java 8 for 5 years while Java 11 has been around for almost 3 years. Since Java 11 has Long Term Support (LTS) it is time to move eBus to Java 11. Java 11 has significant improvements to performance and garbage collection which I would like to take advantage of. I plan to make the move to either the end of this year or the start of 2022.
If this move to Java 11 is a problem for you please let me know. I can be reached either here at Sourceforge as cwrapp or at rapp@acm.org If there is enough demand for continued Java 8 support, then I will release both Java 8 and 11 versions. Otherwise eBus will be purely a Java 11 API.... read more
Release 5.5.0 provides the following changes:
Release 5.4.0 provides the following changes:
An general-purpose eBus user interface based on eBus v. 5.3.5 is now available in the release 5.3.5 Tools folder. The application is an executable JAR egui.jar and must be used with the eBus JSON configuration file egui.conf. To use, down load the jar and conf files and run the following command:
$ java -Dnet.sf.eBus.config.jsonFile=egui.conf -jar egui.jar
The application come with an extensive Help window. Bring up that window and learn how to create an eBus publisher, subscriber, requestor, and replier user interface. The user interface is easy to use because the underlying eBus API is easy.... read more
Release 5.3.5 provides the following changes:
Bug 31: Open feeds not closed when remote application logs
off.
Code clean-up and test coverage expansion continuing.
There are three download folders:
Libary: contains the eBus API jar files.
Documentation: contains the eBus Programmer's Manul in PDF and
Javadoc folders in tar, gzipped and zip formats.
Source Code: snapshot of eBus NetBeans project files at release
time.... read more