You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Andreas Schaefer (JIRA)" <ji...@apache.org> on 2018/06/12 15:54:00 UTC
[jira] [Created] (SLING-7728) Create an Abstract Communication
Layer that deals with the Server Communication common to all IDEs
Andreas Schaefer created SLING-7728:
---------------------------------------
Summary: Create an Abstract Communication Layer that deals with the Server Communication common to all IDEs
Key: SLING-7728
URL: https://issues.apache.org/jira/browse/SLING-7728
Project: Sling
Issue Type: Improvement
Components: Tooling
Reporter: Andreas Schaefer
Attachments: AbstractDeploymentManager.java, IntelliJDeploymentManager.java
All the code that does deal with the Sling server while doing synchronization, deployment or imports has a lot of common code on all IDEs because it deals with the server(s).
The Abstraction Layer should extract the IDE/UI code from the server communication code so that an IDE developer only has to provide that integration.
For example to publish a Module this is the shared code:
* Get the Repository
* Loop of the list of changed resources
* Handle deployment order
* Handle filters
* Handle last modification timestamp
* Deploy as necessary
* Handle response
The IDE/UI provides this:
* Display Messages / Alerts
* Change status
* Provide and Update Last Modification Timestamps
The basic idea is to keep as much code inside a shared package for all IDEs to use so that updating to a new version of the Sling IDE tooling is just focusing on the UI / IDE part.
Attached are two classes:
* AbstractDeploymentManager: this is the shared code for publishing a module. It uses three sub classes to wrap the Project, Module and File which are IDE dependent and defining the requirements that the IDE implementor to implement
* IntelliJDeploymentManager: implementation of the AbstractDeploymentManager that provides the implementation for IntelliJ.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)