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

SO-2178-job-api #132

Merged
merged 81 commits into from
Mar 3, 2017
Merged

SO-2178-job-api #132

merged 81 commits into from
Mar 3, 2017

Conversation

cmark
Copy link
Member

@cmark cmark commented Mar 3, 2017

Introduce request based job API.
The implementation allows any Request to be wrapped into a job to monitor its execution.

Major changes:

  • Added a single EventBus instance to the global ApplicationContext to handle all incoming requests (Remote Jobs are still managed by the Eclipse Job API under the hood)
  • Removed repository specific IEventBus handlers
  • Support java.util.Date types in document mapping
  • Introduced RxJava based Notification observable for all system level notifications
  • Request interface is now a FunctionalInterface (automatically detects the return type based on the generic type parameters)
  • Flatten RequestBuilder hierarchy (classes/methods that supported asynchronous request wrapping are now extracted to interfaces with default methods)

Minor changes/fixes:

  • DelegatingServiceProvider now disposes all locally registered services during server shutdown
  • ReviewManager is now an IDisposableService

cmark added 30 commits February 20, 2017 17:48
Remove repository specific notification and request bus addresses.
Introduce new global /notifications and /requests bus addresses.
Introduce global ObjectMapper instance.
Add CANCELLED end state to RemoteJobState.
Convert RemoteJobEntry to immutable object.
Rename RemoteJobStore to RemoteJobTracker.
Add deleted flag to RemoteJobEntry.
Search returns only not deleted jobs.
Use search API in GetJobRequest.
Make Request a functional interface.
Resolve return type information reflectively using typetools library.
Remove BaseRequest abstract base class reference.
Remove getReturnType implementations.
Conflicts:
	core/com.b2international.snowowl.datastore.server/src/com/b2international/snowowl/datastore/server/internal/merge/BranchMergeJob.java
	core/com.b2international.snowowl.datastore.server/src/com/b2international/snowowl/datastore/server/internal/merge/BranchRebaseJob.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRefSetCreateRequest.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRefSetMemberCreateRequest.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRefSetMemberUpdateRequest.java
apeteri and others added 17 commits March 2, 2017 16:11
...exists for them to extract information from.
...if the corresponding reference set is removed, leaving the identifier
concept behind.
...methods in SnomedEditingContext#delete(EObject, boolean)
...JsonIgnore annotations to the lock context description and additional
concept definitions properties; change branch path to a String
cmark and others added 6 commits March 3, 2017 14:41
Conflicts:
	core/com.b2international.snowowl.core/src/com/b2international/snowowl/core/events/BaseRequest.java
	core/com.b2international.snowowl.datastore/src/com/b2international/snowowl/datastore/request/BaseResourceRequestBuilder.java
	core/com.b2international.snowowl.datastore/src/com/b2international/snowowl/datastore/request/RevisionSearchRequestBuilder.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRequests.java
	snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedSearchRequestBuilder.java
Remove branching/merging/reviews API access methods from SnomedRequests.
They are available via RepositoryRequests.
@cmark cmark requested a review from apeteri March 3, 2017 14:52
Copy link
Member

@apeteri apeteri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider making ApiError a generic status response. Looks good otherwise!

@cmark
Copy link
Member Author

cmark commented Mar 3, 2017

👍

@cmark cmark merged commit e0df6bc into develop Mar 3, 2017
@cmark cmark deleted the feature/SO-2178-job-api branch April 5, 2017 20:12
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.

2 participants