Collaboration Backend
The Purpose
The extension point CollaborationBackend allows for connecting Semantic Turkey to different collaboration platforms, enabling a smooth integration with these external services for issue and discussion management.
The Model
A CollaborationBackend (it.uniroma2.art.semanticturkey.extension.extpts.collaboration.CollaborationBackend
) defines a number of operations to (optionally) create a project on the collaboration platform and bind it (or an existing one) to a Semantic Turkey project. Interestingly, the input to some operations is defined as an opaque object, which is instantiated from a form that is returned by other operations of the extension point.
Extension Point Details
The table below summarizes the details of the extension point CollaborationBackend.
Name | Collaboration Backend |
Description | This extension point allows for connecting Semantic Turkey to a collaboration management platform |
Identifier | it.uniroma2.art.semanticturkey.extension.extpts.collaboration.CollaborationBackend |
Configuration | n/a |
Settings | n/a |
Interfaces
The following interface defines the contract for the CollaborationBackend extension point.
/**
* This extension point allows for connecting Semantic Turkey to a collaboration management platform.
*/
public interface CollaborationBackend extends Extension {
public void checkPrjConfiguration()
throws STPropertyAccessException, IOException, CollaborationBackendException;
public STProperties getCreateIssueForm();
public void createIssue(String resource, ObjectNode issueCreationForm)
throws STPropertyAccessException, IOException, CollaborationBackendException;
public void assignProject(ObjectNode projectJson) throws STPropertyAccessException, IOException,
CollaborationBackendException, STPropertyUpdateException;
public void createProject(ObjectNode projectJson) throws STPropertyAccessException, IOException,
JsonProcessingException, CollaborationBackendException, STPropertyUpdateException;
public void assignResourceToIssue(String issue, IRI resource)
throws STPropertyAccessException, IOException, CollaborationBackendException;
void bind2project(Project project);
public JsonNode listIssuesAssignedToResource(IRI resource)
throws STPropertyAccessException, IOException, CollaborationBackendException;
public JsonNode listIssues(int pageOffset)
throws STPropertyAccessException, IOException, CollaborationBackendException;
public JsonNode listUsers() throws STPropertyAccessException, IOException, CollaborationBackendException;
public JsonNode listProjects()
throws STPropertyAccessException, IOException, CollaborationBackendException;
/**
* Tells if a Collaboration project is linked to the VB project
*
* @return
* @throws STPropertyAccessException
*/
public boolean isProjectLinked() throws STPropertyAccessException;
}
Choosing and Configuring a Collaboration Backend
A CollaborationBackend can be associated with a Semantic Turkey project after it has been created, in order to enable certain collaboration features (e.g. issue management). The chosen backend is stored in the file project.info using the property plugins.optional.collaboration.factoryID. However, the collaboration backend is considered not initialized, as long as its settings are not configured correctly. Currently, Semantic Turkey assumes that the backend does not require any configuration upon instantiation, while actual configuration is stored in project and project-user settings. These settings are stored according to the standard configuration/settings mechanism.
Collaboration Backend Implementations
Jira Backend
Name | Jira Backend | |||||||||||||||||||||||||||||||||||||
Description | Use Atlassian Jira as a collaboration backend | |||||||||||||||||||||||||||||||||||||
Identifier | it.uniroma2.art.semanticturkey.extension.impl.collaboration.jira.JiraBackend | |||||||||||||||||||||||||||||||||||||
Configuration | n/a | |||||||||||||||||||||||||||||||||||||
Settings |
|