-
Notifications
You must be signed in to change notification settings - Fork 15
Refactoring eclipse Lyo
eclipse/Lyo is currently a collection of quite different things:
- OSLC4J SDK (client, core)
- RIOs of OSLC domain specifications (three different ones)
- LDP - an implementation that is not part of OSLC4J or used in any of the current RIOs (including oslc.v3.sample)
- Samples
- org.eclipse.lyo.client - contains the OSLC4J client and its samples
- org.eclipse.lyo.docs - contains old Lab examples of OSLC before OSLC4J, and the org.eclipse.lyo.oslc4j.bugzilla example which is used for the tutorial and as a template for creating adapters using OSLC4J
- org.eclipse.lyo.server - these are old, sample OSLC servers, but are referenced by the OSLC4J SampleAdaptor, using its oauth implementation. Tis is not part of OSLC4J distribution so the SampleAdapter won’t compile. The OSLC4J Bugzilla sample uses these too. They are in 3.0.0-SNAPSHOT, but not 2.1.2.
- testsuite - this is a testsuite for the RIO server implementations
- tools - the OSLC4J code generator
There is a high eclipse overhead for contribution to these projects. It is not clear they all benefit from eclipse governance. There is also a large number of eclipse projects associated with Lyo and its git repositories that make maintaining any specific deliverable hard to separate out from all the others. The eclipse process, Lyo git repository organization, and a large number of loosely organized eclipse projects may be a barrier to eclipse/Lyo contribution.
Given existing dependencies on eclipse/Lyo OSLC4J SDK, it makes sense for that part of Lyo to continue under eclipse governance. However, the LDP implementation, sample code, and test suite are not deliverables to any API or SDK that anyone depends upon, and so perhaps do not need to be governed by eclipse.
It is not possible to separate the development of the OSLC4J SDK from the RIOs and samples that use it for development since they are in the same repository.
I propose we:
- Refactor these repositories, separating the different components into smaller, more cohesive repositories.
- Move all the repositories to the OSLC GitHub organization except OSLC4J which remains under eclipse.org governance
The current eclipse/Lyo repositories are:
- OSLC Client - org.eclipse.lyo.client - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.client.git
- OSLC4J core - org.eclipse.lyo.core - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.core.git
- OSLC Server - org.eclipse.lyo.server - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.server.git
- OSLC Testsuite ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.testsuite.git
- OSLC RIOs - org.eclipse.lyo.rio - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.rio.git
- OSLC Docs & Samples- org.eclipse.lyo.docs - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.docs.git
- LDP (Linked Data Platform) - org.eclipse.lyo.ldp - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.ldp.git
- Testsuite - org.eclipse.lyo.testsuite - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.testsuite.git
- dependencies for Hudson build - org.eclipse.lyo.dependencies - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.dependencies.git
- Tools - org.eclipse.lyo.tools - ssh://jamsden@git.eclipse.org:29418/lyo/org.eclipse.lyo.tools.git
Specifically, reorganize the Lyo git repositories and eclipse projects as described in the following sections:
The eclipse/Lyo OSLC4J SDK used to facilitate the creation of OSLC 2.0 client and server applications.
eclipse/Lyo project on eclipse.org:
Client - Client SDK, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.client.git
- org.eclipse.lyo.client.java
Core - Common and shared core, http://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.core.git
- org.eclipse.lyo.core.query
- org.eclipse.lyo.core.trs
- org.eclipse.lyo.core.utils
- org.eclipse.lyo.oslc4j.build
- org.eclipse.lyo.oslc4j.core
- org.eclipse.lyo.oslc4j.provider.jena
- org.eclipse.lyo.oslc4j.provider.json4j
- org.eclipse.lyo.oslc4j.wink
OSLC/OSLC4J-Tests
- org.eclipse.lyo.oslc4j.test
- org.eclipse.lyo.oslc4j.test.build
- org.eclipse.lyo.oslc4j.test.common
- org.eclipse.lyo.oslc4j.test.test
There are currently three different RIOs for OSLC, one built on REST, another on OSLC4J, and a third built OSLC Core 3.0:
- OLD RIO codes built before OSLC4J, may be OSLC 1.0 too. Last commits were close to 3 years ago
- org.eclipse.rio.am
- org.eclipse.rio.cm
- org.eclipse.rio.core
- org.eclipse.rio.rm
- org.eclipse.rio.qm
- oslc4j.rio - newer RIO based on OSLC4J, built with org.eclipse.lyo.oslc4j.rio.build
- org.eclipse.lyo.oslc4j.automation
- org.eclipse.lyo.oslc4j.automation.common
- org.eclipse.lyo.oslc4j.automation.test
- org.eclipse.lyo.oslc4j.changemanagement
- org.eclipse.lyo.oslc4j.changemanagement.common
- org.eclipse.lyo.oslc4j.changemanagement.test
- org.eclipse.lyo.oslc4j.qualitymanagement
- org.eclipse.lyo.oslc4j.qualitymanagement.common
- org.eclipse.lyo.oslc4j.qualitymanagement.test
- OSLCv3 RIO - this is a sample CM 3.0 server that is not built on OSLC4J or org.eclipse.lyo.ldp.build. It is incomplete and out of date with OSLC Core and CM 3.0
- oslc-v3-rio
These are currently all in the org.eclipse.lyo.rio repository. This repository should be refactored into the different implementations, they are not particularly related. The new repositories should be hosted in the GitHub OSLC organization in order to eliminate the eclipse process overhead for things that are not delivered as part of the OSLC4J SDK
OSLC/REST-RIOs (Using Wink OslcRestClient.java)
- org.eclipse.rio.am
- org.eclipse.rio.cm
- org.eclipse.rio.core
- org.eclipse.rio.rm
- org.eclipse.rio.qm
- org.eclipse.lyo.rio.template-webapp
- org.eclipse.lyo.rio.trs
- org.eclipse.lyo.rio.trs.tests
OSLC/OSLC4J-RIOs
- org.eclipse.lyo.oslc4j.automation
- org.eclipse.lyo.oslc4j.automation.common
- org.eclipse.lyo.oslc4j.automation.test
- org.eclipse.lyo.oslc4j.changemanagement
- org.eclipse.lyo.oslc4j.changemanagement.common
- org.eclipse.lyo.oslc4j.changemanagement.test
- org.eclipse.lyo.oslc4j.qualitymanagement
- org.eclipse.lyo.oslc4j.qualitymanagement.common
- org.eclipse.lyo.oslc4j.qualitymanagement.test
OSLC/OSLCv3-RIOs
- oslc-v3-rio
These are eclipse projects used to test some of the RIOs.
OSLC/OSLC-RIO-Testsuite
- org.eclipse.lyo.testsuite.build
- org.eclipse.lyo.testsuite.server
- org.eclipse.lyo.testsuite.trs
Various OSLC sample client and server applications using different implementation architectures. The OSLC4J client and Bugzilla samples are the the most important. The others may be quite out of date, but could be useful.
OSLC/OSLC4J-Client-Samples
- org.eclipse.lyo.client.java.oauth.sample
- org.eclipse.lyo.client.java.sample
- org.eclipse.lyo.client.perl
OSLC/OSLC4J-Bugzilla
- ninacrm
- org.eclipse.lyo.oslc4j.bugzilla
- org.eclipse.lyo.oslc4j.bugzilla.trs
OSLC/OSLC4J-Misc-Samples
- org.eclipse.lyo.oslc4j.registry
- org.eclipse.lyo.oslc4j.stockquote
- org.eclipse.lyo.oslc4j.stockquote.common
- org.eclipse.lyo.oslc4j.stockquote.test
OSLC/OSLC-REST-Labs
-
Lab1
-
Lab2
-
Lab3
-
Lab4
-
Lab5
-
Lab6
-
LabMiscellaneous
-
org.eclipse.lyo.examplechecker
-
org.eclipse.lyo.model
-
org.eclipse.lyo.resourcetable
-
org.eclipse.lyo.tools.common
OSLC/OSLC-Server-Samples
- org.eclipse.lyo.samples.bugzilla
- org.eclipse.lyo.samples.excel
- org.eclipse.lyo.samples.hudson
- org.eclipse.lyo.samples.sharepoint
- org.eclipse.lyo.server.oauth.consumerstore
- org.eclipse.lyo.server.oauth.core
- org.eclipse.lyo.server.oauth.webapp
- org.eclipse.lyo.server.oauth.webapp.sample
- org.eclipse.lyo.server.releng
OSLC/OSLC4J-Toolchain - or leave it in eclipse/Lyo git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.tools.git (up to Jad)
- org.eclipse.lyo.oslc4j.adaptormodel (currently in the Core repository)
- org.eclipse.lyo.oslc4j.codegenerator (currently in the Core repository)
- org.eclipse.lyo.tools.adaptormodel.edit
- org.eclipse.lyo.tools.adaptormodel.editor
- org.eclipse.lyo.tools.adaptormodel.model
- org.eclipse.lyo.tools.adaptormodel.tests
- org.eclipse.lyo.tools.codegenerator.feature
- org.eclipse.lyo.tools.codegenerator.ui
- org.eclipse.lyo.tools.domainmodels
- org.eclipse.lyo.tools.toolchain.design
- org.eclipse.lyo.tools.toolchain.edit
- org.eclipse.lyo.tools.toolchain.editor
- org.eclipse.lyo.tools.toolchain.feature
- org.eclipse.lyo.tools.toolchain.model
- org.eclipse.lyo.tools.toolchain.model.tests
- org.eclipse.lyo.tools.updatesite
This is a reference implementation of LDP in Java, used to support the W3C standardization process. It is not currently used in any other eclipse/Lyo OSLC component. oslc-v3-rio is built on a smaller LDP foundation that implements the minimal LDP capabilities required by OSLC Core and CM 3.0.
OSLC/LDP4J
- org.eclipse.lyo.ldp.build
- org.eclipse.lyo.ldp.sample.loaders
- org.eclipse.lyo.ldp.server
- org.eclipse.lyo.ldp.server.jena
- org.eclipse.lyo.ldp.webapp
Client - Client SDK, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.client.git
- org.eclipse.lyo.client.java
- org.eclipse.lyo.client.java.oauth.sample
- org.eclipse.lyo.client.java.sample
- org.eclipse.lyo.client.perl
Core - Common and shared core, http://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.core.git
- org.eclipse.lyo.core.query
- org.eclipse.lyo.core.trs
- org.eclipse.lyo.core.utils
- org.eclipse.lyo.oslc4j.adaptormodel
- org.eclipse.lyo.oslc4j.build
- org.eclipse.lyo.oslc4j.codegenerator
- org.eclipse.lyo.oslc4j.core
- org.eclipse.lyo.oslc4j.provider.jena
- org.eclipse.lyo.oslc4j.provider.json4j
- org.eclipse.lyo.oslc4j.registry
- org.eclipse.lyo.oslc4j.stockquote
- org.eclipse.lyo.oslc4j.stockquote.common
- org.eclipse.lyo.oslc4j.stockquote.test
- org.eclipse.lyo.oslc4j.test
- org.eclipse.lyo.oslc4j.test.build
- org.eclipse.lyo.oslc4j.test.common
- org.eclipse.lyo.oslc4j.test.test
- org.eclipse.lyo.oslc4j.wink
Dependencies - has the dependencies required to do a Lyo build with Hudson, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.dependencies.git
- oslc4j
ReleaseEngineering - Track build and release engineering tasks that span all components
docs - Documentation and sample code, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.docs.git
- Lab1
- Lab2
- Lab3
- Lab4
- Lab5
- Lab6
- LabMiscellaneous
- ninacrm
- org.eclipse.lyo.examplechecker
- org.eclipse.lyo.model
- org.eclipse.lyo.oslc4j.bugzilla
- org.eclipse.lyo.oslc4j.bugzilla.trs
- org.eclipse.lyo.resourcetable
- org.eclipse.lyo.tools.common
LDP - W3C Linked Data Platform implementation, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.ldp.git
- org.eclipse.lyo.ldp.build
- org.eclipse.lyo.ldp.sample.loaders
- org.eclipse.lyo.ldp.server
- org.eclipse.lyo.ldp.server.jena
- org.eclipse.lyo.ldp.webapp
RIO - OSLC 2.0 and 3.0 reference implementations, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.rio.git There are three versions of the RIO:
- org.eclipse.lyo.rio.cm (etc.) the old minimal implementation
- org.eclipse.lyo.oslc4j.changemenagement - newer OSLC 2.0 implementation built OSLC4J client and server APIs
- oslc.v3.sample - the new sample OSLC CM 3.0 implementation on LDP.
- org.eclipse.lyo.oslc.v3.sample
- org.eclipse.lyo.oslc4j.automation
- org.eclipse.lyo.oslc4j.automation.common
- org.eclipse.lyo.oslc4j.automation.test
- org.eclipse.lyo.oslc4j.changemanagement
- org.eclipse.lyo.oslc4j.changemanagement.common
- org.eclipse.lyo.oslc4j.changemanagement.test
- org.eclipse.lyo.oslc4j.qualitymanagement
- org.eclipse.lyo.oslc4j.qualitymanagement.common
- org.eclipse.lyo.oslc4j.qualitymanagement.test
- org.eclipse.lyo.oslc4j.rio.build
- org.eclipse.lyo.rio.am
- org.eclipse.lyo.rio.cm
- org.eclipse.lyo.rio.core
- org.eclipse.lyo.rio.rm
- org.eclipse.lyo.rio.template-webapp
- org.eclipse.lyo.rio.trs
- org.eclipse.lyo.rio.trs.tests
Server - Server SDK, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.server.git
- org.eclipse.lyo.samples.bugzilla
- org.eclipse.lyo.samples.excel
- org.eclipse.lyo.samples.hudson
- org.eclipse.lyo.samples.sharepoint
- org.eclipse.lyo.server.oauth.consumerstore
- org.eclipse.lyo.server.oauth.core
- org.eclipse.lyo.server.oauth.webapp
- org.eclipse.lyo.server.oauth.webapp.sample
- org.eclipse.lyo.server.releng
TestSuite - OSLC Test suites, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.testsuite.git,see Building and running the OSLC Test Suite
- org.eclipse.lyo.testsuite.build
- org.eclipse.lyo.testsuite.server
- org.eclipse.lyo.testsuite.trs
Tools - code generator tools and utilities, git://git.eclipse.org/gitroot/lyo/org.eclipse.lyo.tools.git
- org.eclipse.lyo.tools.adaptormodel.edit
- org.eclipse.lyo.tools.adaptormodel.editor
- org.eclipse.lyo.tools.adaptormodel.model
- org.eclipse.lyo.tools.adaptormodel.tests
- org.eclipse.lyo.tools.codegenerator.feature
- org.eclipse.lyo.tools.codegenerator.ui
- org.eclipse.lyo.tools.domainmodels
- org.eclipse.lyo.tools.toolchain.design
- org.eclipse.lyo.tools.toolchain.edit
- org.eclipse.lyo.tools.toolchain.editor
- org.eclipse.lyo.tools.toolchain.feature
- org.eclipse.lyo.tools.toolchain.model
- org.eclipse.lyo.tools.toolchain.model.tests
- org.eclipse.lyo.tools.updatesite
- oslc-java-client-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.client/org.eclipse.lyo.client.java
- oslc-query-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.core/org.eclipse.lyo.core.query
- oslc-trs-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.core/org.eclipse.lyo.core.trs
- oslc4j-core-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.core/org.eclipse.lyo.oslc4j.core
- oslc4j-jena-provider-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.core/org.eclipse.lyo.oslc4j.provider.jena
- oslc4j-json4j-provider-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.core/org.eclipse.lyo.oslc4j.provider.json4j
- oslc4j-utils-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.core/org.eclipse.lyo.core.utils
- oslc4j-wink-3.0.0-SNAPSHOT.jar - org.eclipse.lyo.core/org.eclipse.lyo.oslc4j.wink
We should plan to do this refactoring after the OSLC4J 2.2.0 release so we are starting with updated dependencies and a solid basis for forking.
- Review refactoring proposal with eclipse/Lyo community and update as needed
- Review target environments and resolve any issues
- Continue using eclipse.org for OSLC4J SDK
- Use OSLC GitHub organization for samples and reference implementations
- Use OSLC GitHub Wiki and optionally GitHub Pages for documentation, organized by repository
- Use OSLC GitHub issues for change management
- Get approval from the eclipse.org Technology PMC to perform the refactoring and repository migration
- Create the GitHub repositories according to the adopted refactoring plan
- Clone the eclipse.org Git repositories that are to be migrated to GitHub - history is retained at eclipse.org
- Build and test each repository’s components in order to reach a known, stable state
- Migrate eclipse/Lyo documentation to GitHub and GitHub Pages
Questions:
- Where should OSLC4J documentation be deployed? Current documentation:
- Tutorial: Integrating products with OSLC - http://open-services.net/resources/tutorials/integrating-products-with-oslc/
- OSLC Developer Guide - http://oslc.github.io/developing-oslc-applications/
- Lyo Documentation - https://wiki.eclipse.org/Lyo
- OSLC4J SDK https://wiki.eclipse.org/Lyo/LyoOSLC4J