Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove CDO data layer completely from Snow Owl #257

Merged
merged 252 commits into from
Aug 13, 2018
Merged

Conversation

cmark
Copy link
Member

@cmark cmark commented Aug 13, 2018

The following changes have been applied to Snow Owl in order to support CDO features (like ORM, transactions, merging, conflict processing, etc.) via the ES based index module.

  • Removed all CDO, DB modules and all APIs that have been developed on top of them
  • Refactored how index.api module manages/searches/etc. revisions in a given repository (introduced RevisionBranchRef, RevisionBranchPoint, RevisionBranchSegment classes).
  • Developed a new commit API, the StagingArea (instead of directly writing revisions using the RevisionWriter interface) to provide similar functionality compared to the CDOEditingContext, CDOTransaction, CDOSavePoint APIs.
  • Added support for pre and post-commit hooks that pre and post process the contents of the StagingArea before and after commits.
  • Removed all EMF Ecore models and much of the infrastructure around them
  • Request APIs now use the domain and index document models to commit new/changed/deleted revisions to the underlying repository index.
  • Replaced the old commit history infrastructure with a brand new one that manages committed changes during StagingArea.commit and can be accessed via a dedicated API
  • The compare, merge and conflict processing APIs have been rewritten from the ground up on top of the new revision commit changeset API to support much of the infrastructure that existed in the CDO alternatives
  • Completely rewrote how Snow Owl manages/detects plug-ins (auto-detection via classpath scanning) to support simplified, easily understandable plug-in development flow
  • Refactored and improved Snow Owl CLI using the awesome picocli library
  • Deprecated and removed the current RF2 importer with a previously developed improved version

cmark added 30 commits June 21, 2018 16:53
Remove ObjectLockManager.
Remove CodeSystemBuilder and CodeSystemVersionBuilder.
Remove unnecessary DocSearcher and DocWriter interfaces.
Remove SNOMED CT lookup services.
cmark and others added 27 commits August 10, 2018 18:01
Remove jackson jaxrs and scala dependencies.
Refactor SnomedComponentReferencingDetachedConceptRule and add more
entity properties to check for detached components during merge.
...on SNOMED CT component APIs

Remove ISnomedComponentMixin add annotations directly to the domain
classes.
...SnomedDescriptionAcceptabilityUpdateRequest,
SnomedInactivationReasonUpdateRequest,
SnomedAssociationTargetUpdateRequest.
Add MessagingRequests.
Add SendMessageRequest and Builder.
Use new API from REST and CLI.
Remove old IMessagingService and Impl.
...is annotated with Component and not the subclass.
Migrate commands from the old framework to the new:
* BranchesCommand
* RepositoriesCommand
* SendMessageCommand
* CodeSystemsCommand
Conflicts:
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/core/store/SnomedMemberBuilder.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/SnomedRf2ImportRequest.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2AssociationRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2AttributeValueRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2ComplexMapRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2DescriptionTypeRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2EffectiveTimeSlice.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2ExtendedMapRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2LanguageRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2MRCMAttributeDomainRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2MRCMAttributeRangeRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2MRCMDomainRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2MRCMModuleScopeRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2ModuleDependencyRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2OwlExpressionRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2SimpleMapRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2SimpleMapWithDescriptionContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2SimpleRefSetContentType.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/rf2/importer/Rf2TransactionContext.java
Fix incorrect update of documents in SnomedVersioningRequest (note:
always use the fully loaded document for an update, otherwise you lose a
bunch of derived values).
@cmark cmark self-assigned this Aug 13, 2018
@cmark cmark merged commit d8540a5 into 7.x Aug 13, 2018
@cmark cmark deleted the remove-cdo-data-layer branch March 8, 2019 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant