OpenLR™ - Software projects
The OpenLR™ reference implementation is split into several software packages. The packages are implemented
using Java version 6 which can be found at (http://java.sun.com).
Remarks on software versions
The current OpenLR™ software version is: 1.2.1
The version of the corresponding OpenLR ™ whitepaper is: 1.3
Older software and document versions may not be further supported and maintained. See also the notes
on software changes below.
All software versions use the format "x.y.z" whereby "x" stands for the OpenLR™ method version, "y" indicates
major software changes and "z" indicates minor software changes. The whitepaper document version uses the
format "a.b" whereby "a" stands for the OpenLR™ method version and "b" indicates any additions or corrections of
the document.
Package overview:
| Package name | Description |
|---|---|
| Map | The map package consists of the map interface and map tools being used by the OpenLR™ encoder and decoder. The user of this package needs to implement the required methods and needs to translate the internal data structure to the OpenLR™ map interface. |
| Data | The data package consists of abstract classes and interfaces for OpenLR™ data handling and services. The package comprises interfaces for OpenLR™ location references and also for encoding and decoding services converting the internal data into a defined physical format and the other way round. |
| Encoder | The encoder package holds the reference implementation for the OpenLR™ encoder. It takes a (map-dependent) location as input and generates a corresponding (map-agnostic) location reference. This package uses the OpenLR™ map package and the OpenLR™ data package. |
| Decoder | The decoder package holds the reference implementation for the OpenLR™ decoder. It takes a (map-agnostic) location reference as input and finds back a corresponding (map-dependent) location reference. This package uses the OpenLR™ map package and the OpenLR™ data package. |
| Binary | The binary package consists of classes for reading and writing binary location reference data. This package implements the OpenLR™ data interfaces and provides physical encoder and physical decoder services. |
| XML | The xml package consists of classes for reading and writing xml location reference data as a service. The OpenLR™ encoder may use this package to create a xml representation of a location reference. The OpenLR™ decoder may use this package to receive and decode xml location reference data. This package implements a schema as described in the OpenLR™ white paper. |
| Datex2 | The datex2 package consists of classes for reading and writing Datex II xml location reference data as a service. The OpenLR™ encoder may use this package to create a Datex II xml representation of a location reference. The OpenLR™ decoder may use this package to receive and decode Datex II xml location reference data. This package implements a schema as described on the Datex II website (http://www.datex2.eu/content/openlr-extension-10). |
| Tools | The tooling section provides software applications which can be used in combination with the OpenLR™ reference implementation. These tools are not part of the reference implementation and are not required to use the OpenLR™ method. |
The OpenLR™ uses the software project management tool Maven (see http://maven.apache.org/). One advantage of Maven is the automatic generation of project information during the build and packaging process. These generated pages for the project overview are accessible under www.openlr.org/maven/index.html (link opens in a new window).
Notes on software changes
- 1.2.0 -> 1.2.1
- New physical format: datex2. This format supports the Datex II protocol (see http://www.datex2.eu).
- New tool: Physical Format Converter. Can convert one physical format into another.
- Update of the Map Viewer tool. The new version supports point locations. Additionally it is now possible to take screenshots, to store locations in a map-dependent format, to decode location references in one of the supported physical formats.
- Refactoring of the code and update of the documentation.
- 1.1.0 -> 1.2.0
- OpenLR™ supports point locations
- New binary format version 3 supporting better offsets
- 1.0.0 -> 1.1.0
- New physical format for OpenLR™ location references: XML
- New package for OpenLR™ data abstraction: data
- Encoder and decoder package do not depend on binary package anymore, both packages look for physical format encoder/decoder during runtime
- Encoder and decoder will throw an OpenLRRuntimeException if encoding/decoding is not possible due to configuration or implementation errors, all other exceptions are caught internally and represent an invalid location or location reference respectively
- Map interface has some new optional methods for drawing a map
- Binary and xml package implement the PhysicalEncoder and PhysicalDecoder interfaces provide this as a service to the encoder and decoder package

