About J-road

Build Status

J-road is a Java library which simplifies the consumption and creation of Estonian X-road services through code generation and protocol implementation.

The library was initially created for internal use in Webmedia Group AS (now known as Nortal AS), where it is used in all projects requiring X-road functionality.

It consists of two parts: the client, which is used for consuming services from databases created by others and the server, which allows you to create your own databases.

Features

General

Consumption

Creation

X-road 6 support

X-road 6 is new version which brings major changes to X-road services because it is not backwards compatible with previous versions. For migration period all message protocols are supported which means that for migration period service providers should support multiple message protocols - pre 4.0 and 4.0.

Some useful links about upcoming changes:

Upgrades to J-road according to X-road 6

Since now J-road service provider supported only protocol 2.0 style service providers and also most service consumers were implemented for protocol 2.0. So to support upcoming changes/migration J-road has changed significantly as well.

Service provider

Upgrading to J-road new version as of service provider point view nothing has changed (as for now/migration period). Just update necessary J-road dependencies and you're done. You might consider changing XSD schema namespace but actually X-road protocol 4.0 does not restrict database namespace naming anymore so existing should be fine as well. For in-depth overview how to implement service provider consult with J-road updated example and documentation provided in J-road.

In short changes to service providers are as follows:

Service consumer

Upgrading to J-road new version as of consumer point of view lot has changed. Changes to consumers are not backwards compatible to previous protocols (by default) so do expect X-road protocol 4.0+ behavior. Naming convention has changed from XTee to XRoad so try to follow it as well. As of brighter side most currently implemented service consumer should be fine with proper database specific configuration and some minor modifications. To support X-road previous protocols use J-road previous versions. For in-depth overview how to implement consumer consult with J-road updated example and documentation provided in J-road.

In short changes to service consumers are as follows:

Things yet to do/figure out