Latest Document for OSLC Development using Lyo Designer

I have heard a lot great about OSLC and have reviewed numerous articles, blogs, and videos on the subject. I am a beginner in OSLC development and have been struggling to find a comprehensive and up-to-date guide that provides step-by-step instructions for developing both OSLC consumers and providers using Eclipse Lyo Designer. Although I did come across a video tutorial, it appears to be outdated. As a result, I am currently stuck and unsure how to proceed.

I would greatly appreciate any support or guidance available, as I am keen to learn OSLC and deepen my understanding of its development. In addition to building my skills, I’m also enthusiastic about contributing to enhancements and improvements in this space wherever possible.

Oh, Ketan, it’s been a while since we recorded that video! I would say that most of the content up to 7:30 is still valid.

Things have indeed changed quite a bit on the adaptor interface diagram. @jad leads the Lyo Designer modelling environment, so he knows recent changes better.
Having said that, the changes on the adaptor interface diagram are mostly about rearranging model entities in a better way and adding features.

If you watched the video and navigated around the tool, I recommend you open the existing project for the OSLC Reference Implementation in Lyo Designer and look around. Here are the steps you need to do:

  1. Download the ‘devel’ version of Lyo Designer, see the link at the top of the README: lyo.designer/README.md at master · eclipse-lyo/lyo.designer · GitHub (usually, you should use the stable version but I recently fixed a few things in the devel version and would be able to better support you if you encounter issues).
  2. Clone GitHub - eclipse-lyo/lyo: Eclipse Lyo, a Java SDK for OSLC-based tool integration and import lyo/domains/org.eclipse.lyo.tools.domainmodels at master · eclipse-lyo/lyo · GitHub as an Existing Project in Eclipse.
  3. Clone GitHub - oslc-op/refimpl: A reference implementation of OSLC servers in RM, CM, QM, and AM domains. and import refimpl/model at master · oslc-op/refimpl · GitHub in the same way.

That should give you a good starting point for exploring the modelling environment around real domains. I recommend you go through Introduction - OSLC Developer Guide after that. I agree that there are some outdated concepts, feel free to propose changes to the text or file an issue GitHub · Where software is built or report back here, let’s try to improve it. Note: I just migrated the docs a few weeks ago to a new build system and some links may be broken - report if you find any, I will fix it.

Regarding the client-only projects, I have not seen any success stories for them. All clients that I used in real cases were hand-written. Some examples for you:

  1. lyo-samples/lyo-client-samples at master · OSLC/lyo-samples · GitHub (clients for various Jazz tools, Java)
  2. refimpl/src/client-toolchain/src/main/kotlin/co/oslc/refimpl/client at master · oslc-op/refimpl · GitHub (client for all 4 refimpl servers, Kotlin)

I think with appropriate amount of attention, client-only Lyo Designer projects could become quite useful, but for now I recommend you start with one of the client samples above. They both use lyo/client/oslc-client/src/main/java/org/eclipse/lyo/client/OslcClient.java at master · eclipse-lyo/lyo · GitHub

Regarding attention, there is a list of various open-source OSLC (servers, mostly) built using Lyo under GitHub - eclipse-lyo/lyo: Eclipse Lyo, a Java SDK for OSLC-based tool integration - but a few have been maintained, partly due to lack of attention. Tell us if any of them are interesting for your use or which ones you would like to see. An even more complete list of repos related to OSLC can be found under Sourcebot (even has a simple MCP support, see MCP demo server for OSLC-related code)

For more architect-level content regarding OSLC, see presentations on https://www.oslcfest.org/

To follow current standardization efforts, keep an eye on https://lists.oasis-open-projects.org/g/oslc-op/topics?sidebar=true

@jamsden has been working recently to bring JS libs for OSLC into shape GitHub - OSLC/oslc-client: A simple Node.js asynchronous OSLC client API to facilitate rich application development in JavaScript. while I focused on the .NET SDK https://oslc4net.github.io/.

Last, but not least - Jad’s company develops an enterprise-ready variant of Lyo Designer, Develop Custom OSLC Connectors for Traceability and Integration of Engineering applications — Lynxwork

Hope it helps - don’t hesitate to ask!

Cheers,
Andrew

Hi Andrew,

Thank you very much for your prompt support and for providing the key information. I truly appreciate it.

I will definitely follow all the steps provided and will inform you should I require any further guidance.

Regards,
Ketan

Hi Andrew,

I hope this message finds you well.

Please find attached the documents that reference the following application link: [OSLC explainer - OSLC Developer Guide]. Kindly note that this link appears to be broken.
I will provide the details of the broken links in the remaining tabs shortly.
OSLC web Broken Links.pdf (362.8 KB)
OSLC web Broken Links1.pdf (862.8 KB)
OSLC web Broken Links2.pdf (517.4 KB)

Regards,
Ketan

Hi Ketan,

Thank you for carefully noting down the broken links - didn’t realized we missed that many during the migration. I just pushed an update that should fix all of the reported instances of breakage.

If you want to quickly check the updates I make in the future, you may want to look at the commits directly: Commits · OSLC/developing-oslc-applications · GitHub

Please tell me if you encounter any further challenges with the docs and/or Lyo.

All the best,
Andrew

Hi Andrew,

Thank you for promptly addressing the issue with the broken links. I have revalidated all the pages, and it appears that the links have been successfully resolved.

Furthermore, I have set up the suggested code in Lyo Designer and am in the process of familiarizing myself with its functionality. This has been quite beneficial. I am also attempting to run the server for RM; however, I am encountering the following error. I would greatly appreciate your assistance in resolving this issue.

Please see the relevant information outlined below.

  • Latest version of Eclipse
  • JDK : Oracle JDK 17
  • Tomcat Server : 11.0 & tried with 10 but getting below errors in both

Regards,
Ketan Mehta

Hi Ketan,

Make sure you use with-jstl-impl profile if you choose to use Tomcat, see GitHub - oslc-op/refimpl: A reference implementation of OSLC servers in RM, CM, QM, and AM domains..

We do most testing with the Jetty via mvn clean jetty:run-war .

/A

Hi Andrew,

Thank you very much for your prompt response. I am pleased to inform you that the issue has now been resolved successfully. thank you :slight_smile:

Cheers,
Ketan

Glad to hear, Ketan, you are welcome! I hope your further discovery of the reference implementation and Lyo Designer goes well. /A

Hi Andrew,

Today, I am in the process of setting up the reference implementation and generating code using Lyo Designer. I have successfully configured the model available at this repository, which is functioning as expected and has produced the corresponding code.

Subsequently, I attempted to use the repository located at lyo/domains at master · eclipse-lyo/lyo · GitHub. After importing the models into Lyo Designer and initiating code generation, a message was displayed indicating that the code had been successfully generated. However, upon reviewing the designated output folder, I found it to be empty. Kindly refer to the screenshots below for further context.

I would appreciate it if you could advise whether any steps may have been overlooked during the process.




NOTE: Additionally, I have tested the available project, oslc-domains, located at above repository, and it is functioning as expected.

Regards,
Ketan

Hi Ketan,

Glad to hear you are making progress.

First, that project is only intended to be imported so that all references are present. You don’t need to generate it, because we do that and publish the code to maven central as oslc-domains artifact that you found.

Second, I’m a bit confused because you seem to have both lyo designer 6 and 7 plugins loaded. @jad is that normal after updates inside Eclipse?

UPD: I tried and the generation seems to work fine. I suggest you generate from the model editor window, not right-clicking the file (@jad is that a superstition or a valid caution?):


(mostly whitespace changes)

Cheers,
Andrew

HI Andrew,

Following your valuable suggestion, I proceeded with the process today and am pleased to share that the model project is now being generated. I sincerely appreciate your guidance and continued support.

Regards,
Ketan

1 Like