Skip to main content
Jump to: navigation, search

Difference between revisions of "Lyo"

(Installation)
(Basic Topics)
Line 60: Line 60:
 
== Basic Topics ==
 
== Basic Topics ==
  
* How to [https://wiki.eclipse.org/Lyo/ToolchainModellingAndCodeGenerationWorkshop use Lyo Designer] to model a toolchain and generate an initial code base
+
* How to use [https://github.com/eclipse/lyo.designer Lyo Designer] to [https://github.com/eclipse/lyo.designer/wiki/User-Manual-for-Toolchain-Modelling model a toolchain] and generate an initial code base
* How to [https://wiki.eclipse.org/Lyo/DomainSpecificationModelling use Lyo Designer] to model domain specifications, and generate OSLC4J-annotated Java classes to reflect the defined OSLC Resources.
+
* How to use [https://github.com/eclipse/lyo.designer Lyo Designer] to [https://github.com/eclipse/lyo.designer/wiki/User-Manual-for-Domain-Specification-Modelling model domain specifications], and generate OSLC4J-annotated Java classes to reflect the defined OSLC Resources.
 
* How to implement an [https://wiki.eclipse.org/Lyo/TRSWorkshop Tracked Resource Set (TRS)] OSLC server
 
* How to implement an [https://wiki.eclipse.org/Lyo/TRSWorkshop Tracked Resource Set (TRS)] OSLC server
 
* Hot to solve common issues – [https://wiki.eclipse.org/Lyo/FAQ Frequently Asked Questions (FAQ)]
 
* Hot to solve common issues – [https://wiki.eclipse.org/Lyo/FAQ Frequently Asked Questions (FAQ)]

Revision as of 09:17, 9 June 2018

Eclipse Lyo promotes the use of Linked Data principles and the OSLC (Open Services for Lifecycle Collaboration) standard for publishing lifecycle data, to enable the interoperability of heterogeneous products, services, and other distributed network resources. The open OASIS OSLC standard is based on a RESTful architecture and Linked Data principles, such as those defined in the RDF family of specifications, and the W3C Linked Data Platform.

Eclipse Lyo supports Java developers with the development of REST-based servers and clients that need to share heterogeneous information as RDF resources.

What is OSLC? For details on the OASIS OSLC standard, see the various resources on open-services, or the oslc Core 3.0 specification.

OSLC4J SDK

Lyo’s central component is the OSLC4J SDK (Software Development Kit) that helps build REST-based servers and clients, compliant with the OSLC standard.

The library provides:

  • Annotations that automate the marshaling/unmarshaling of Java objects to/from Linked Data RDF resources (Apache Jena model).
  • Annotations that allow servers to publish their RESTful API capabilities, based on the OSLC Discovery approach. This in turn facilitates for clients to discover and use available capabilities.
  • JAX-RS Providers and utility classes to facilitate the development of REST operations for accessing, creating, updating and deleting RDF resources.

Lyo Designer

Lyo Designer is an Eclipse plugin that allows one to graphically model (1) the overall system architecture, (2) the information model of the RDF resources being shared, and (3) the individual services and operations of each Server in the system. The figure below shows the information modelling interface:

Lyo Designer includes a integrated code generator that synthesizes the model into almost-complete OSLC4J-compliant running implementation. The resulting code includes:

  • Java classes with appropriate OSLC4J-annotations to reflect the modelled RDF resource shapes
    • This automates the marshaling/unmarshaling of Java instances as Linked Data RDF resources.
  • JAX-RS Service operations for accessing, updating, creating and deleting RDF resources.
    • These operations handle any of the supported formats (turtle, RDF/XML, Json, etc.)
    • For debugging purposes, JSP pages are also produced to deliver HTML representations of all RDF resources.
  • JAX-RS Service operations to completely handle Delegated UI for both creation and selection dialogs.
    • Including the initial generation of basic JSP pages for the html-representation of the dialogs.
  • JAX-RS Service operations to handle Resource Preview
    • Including the initial generation of basic JSP pages for the html-representation of the resource previews.

Lyo Designer supports incremental development, where manual changes to the generated code are preserved upon changes to the model, and subsequent code regeneration.

Tutorials and Documentation

Installation

Basic Topics

Example OSLC Servers

Lyo also includes instructions and source code for a range of OSLC Server implementations:

  • Bugzilla - an example of what Eclipse Lyo can be used for, in the form of an OSLC-CM compatible adapter for the Bugzilla bugtracker application. It wraps Bugzilla (interacting with it through Bugzilla's native XMLRPC API) with an OSLC-CM provider server accessible through REST calls.
  • Sample OSLC client - that demonstrates how to use the Lyo client to interact with OSLC Service Providers in various ways.
  • SharePoint - This SharePoint adapter looks through the sharepoint OData collections for collections where the ContentType is defined as "Document". For each SharePoint library that contains documents, an OSLC service provider is created with the basic services for OSLC Delegated dialogs for selection and creation as well as listing the documents with a UI preview.
  • The Hudson and Jenkins adapor implements the OSLC Automation specification.
  • Simulink
  • MagicDraw
  • The Lyo LDP reference implementation - is a sample Java implementation of the W3C Linked Data Platform 1.0 Candidate Recommendation using JAX-RS (Apache CXF) and Jena TDB.

What is OSLC?

For an introduction to the OASIS OSLC standard:

Additional components

Additional components of the Lyo project include:

OSLC Client provides helpful APIs to interact with OSLC Servers. It provides an additional layer of functionality on top of Apache HttpClient, Apache Wink, and OSLC4J that can give you a head start on some of the common use cases such as form login, OAuth handling, service discovery, sending queries, and processing query results. Io order to use it, include the following dependency from the Eclipse Maven repositories:

<dependency>
    <groupId>org.eclipse.lyo.clients</groupId>
    <artifactId>oslc-java-client</artifactId>
    <version>2.2.0</version>
</dependency>

Find more information in the Javadocs.

Other components:

Working from Source Code

Contributing to Lyo

Project Plans

Lyo 2.4.0 release plan

After 2.1 there was a plan for immediate Lyo 3 release, but it was not picked up eagerly enough. Right now the new roadmap continues to make 2.x releases: Lyo 2.3+ roadmap (updated on 2017-07-29).

Lyo project plan for Lyo 1.0-2.1.2

Back to the top