Qbit Versions Save

The Java microservice lib. QBit is a reactive programming lib for building microservices - JSON, HTTP, WebSocket, and REST. QBit uses reactive programming to build elastic REST, and WebSockets based cloud friendly, web services. SOA evolved for mobile and cloud. ServiceDiscovery, Health, reactive StatService, events, Java idiomatic reactive programming for Microservices.

2.0.0

7 years ago

Uses new Reakt and new Lokate libs which simplified Promise and Callback interfaces.

1.10.0.RELEASE

7 years ago

QBit Microservices Lib 1.10.0.RELEASE

There have been a lot of improvements to WebSocket RPC. We also improved marshaling and now support Java 8 LocalDateTime for WebSocket RPC and JSON/REST. We continue to improve our Reakt support. Now both clients proxies and services can return invokable promises. This gives a nice fluent interface for reactive microservices.

  • 709 Fixed Reakt WebSocket client proxy
  • 735 ManagedServiceBuilder.addEndpointServiceWithServiceManagmentBundle was not passing the endpoint object (BUG)
  • 733 HttpServer and Startable should not have default methods for methods that take callbacks (buglet)
  • 730 Allow HttpRequest to be passed to REST methods.
  • 729 ServiceDiscovery and Websocket client integration was not working as well as it should (enhancement)
  • 726 Add support for auto serializing LocalDateTime (new feature/enhancement)
  • 724 @RequestParam now works with HTTP form params (feature)
  • 723 Fail fast if connection can't be open Client (WebSocket RPC proxy client) (BUG)
  • 722 jdk 只能支持1.8?可否改造一下支持1.7?No we will not support 1.7. 1.7 is EOL.
  • 721 Not handling Boolean Value correctly (BUG)
  • 720,721,718 ServiceManagementBundleBuilder enhancements and usage enhancements to support ServiceManagementBundle
  • 711,712 Fixed issues with scalars and callbacks around proxies and WebSocket proxies

1.6.0.RELEASE

8 years ago

QBit Java Microservices Lib 1.6.0.RELEASE

QBit Java Microservices Lib uses Reakt Reactive Java Lib.

  • 689 Fixed issue where admin health check was returning the wrong HTTP stats code (we have another health check that we use that was returning the right code.).
  • 687 You can now register QueueCallbackHandlers with serviceEndpoints, serviceQueues and serviceBundles. You can also register QueueCallbackHandlers when you register a service with the ManagedServiceBuilder. This allows you to get rid of @QueueCallback annotation.
  • 686 see 687 (for serviceQueue).
  • 684 see 687 (for ManagedServiceBuilder)
  • 691 Improvement on ServiceManagementBundle.
  • 683 Adopt Metrik interface for gathering microservice KPIs
  • 692 Create common facade for stats, KPI, health checks, to get rid of boiler plate code.

1.5.0.RELEASE

8 years ago

QBit Microservices Lib now supports Reakt invokable promises for local and remote client proxies. This gives a nice fluent API for async programming.

Invokeable promise

        employeeService.lookupEmployee("123")
               .then((employee)-> {...}).catchError(...).invoke();

QBit callbacks are now also Reakt Callbacks without breaking the QBit contract for Callbacks.

See Reakt Invokable Promises for more details.

A full write up on QBit Invokable Promise is pending, but the curious can see ReaktInterfacesTest Service Queue, ServiceBundle for more details, and the Remote Websocket Reakt interfaces for remote access proxies.

  • 683 Use Metrik for metrics system
  • 682 Support Reakt with Websocket RPC proxies
  • 680 Support Inovkable promises on Service Queues
  • 679 Testing for Inovkable promises on proxies
  • 678 Fix health check logging
  • 676 Remote proxies support Reakt Callbacks and promises
  • 675 Local proxies support Reakt Inokable promises
  • 674 Local proxies support Reakt callbacks
  • 673 Remote proxies support callback
  • 672 Get rid of boiler plate code for Reactor, StatsCollector and Health Check

Early on in this release, we added this.

The current release notes for the current build can be found under releases and there are 27 public releases in the maven repo.

Added support for Reakt in QBit 1

We added ability to convert to Reakt promises and Reakt Callbacks.

QBit 2 will use Reakt for reactor, callbacks and promises by default, but until then we need a way to start using promises on new projects as it is a simpler API than QBit CallbackBuilder (which will be gone in QBit 2).

Using Promise for success


import io.advantageous.qbit.reactive.Callback;
import io.advantageous.reakt.promise.Promise;
import static io.advantageous.qbit.reakt.Reakt.convertPromise;
import static io.advantageous.reakt.promise.Promise.promise;
...

        final AtomicReference<Employee> ref = new AtomicReference<>();
        final Promise<Employee> promise = promise();

        /* Set then callback in promise. */
        promise.then(ref::set);

        /* Convert promise to callback and then call the callback. */
        final Callback<Employee> employeeCallback = convertPromise(promise);
        employeeCallback.returnThis(new Employee("Rick"));

Using Promise for failure


        /** Set up success callback and failure callback. */
        promise.then(ref::set)
               .catchError(error::set);

        /** Convert promise to callback and then call the callback with error. */
        final Callback<Employee> employeeCallback = convertPromise(promise);
        employeeCallback.onError(new IllegalStateException());

1.3.0.RELEASE

8 years ago

QBit Microservices Lib 1.3.0.RELEASE

  • Got rid of boilerplate code when using QBit and Reakt, Reactor, Stats Collector, Health check, etc. Created ServiceManagementBundle. See issue 672

This release was published to the maven public repo.

1.2.0.RELEASE

8 years ago
  • Now using latest Reakt 'io.advantageous.reakt:reakt:2.3.0.RELEASE'
  • Added ServiceHealthManager to simplify access to the low level service health system.
  • Added Utility methods to ManagedServiceBuilder to create ServiceHealthManager with callbacks for service failure and service recovery.
  • Changed ManagedServiceBuilder to work better with Mesosphere/Marathon port binding in bridge mode and host mode.

This release was published to the maven public repo.

1.1.0.RELEASE

8 years ago

Using newest version of Reakt which is using a different group name.

This release was published to the maven public repo.

1.0.0.RELEASE

8 years ago

Added support for Consul Session to support leader election.

Moved add-on libs into QBit Extensions.

0.9.10.RELEASE

8 years ago

Updated to match Reakt 2.0.0.RELEASE. You can now use Reakt's expect(), thenExpect(), Expected with Reakt as well as the Reakt Reactor. See Reakt 2.0.0.RELEASE release notes for more information. We recommend using the Reakt Reactor instead of the QBit Reactor for new projects. The QBit Reactor is getting phased out and will not exist in QBit 2.0. From QBit 0.9.10 to QBit 1.x , the QBit Reactor will still exist, but all new focus will be on using Reakt's Reactor.

0.9.9.RELEASE

8 years ago

Skip this release and use 0.9.10.RELEASE.

Updated to match Reakt 2.0.0.RELEASE. You can now use Reakt's expect(), thenExpect(), Expected with Reakt as well as the Reakt Reactor. See Reakt 2.0.0.RELEASE release notes for more information. We recommend using the Reakt Reactor instead of the QBit Reactor for new projects. The QBit Reactor is getting phased out and will not exist in QBit 2.0. From QBit 0.9.9 to QBit 1.x , the QBit Reactor will still exist, but all new focus will be on using Reakt's Reactor.