Sling IDE toolingPage edited by Robert Munteanu
Comment:
Added some of the issues discussed on Sling-dev, not yet complete
Changes (3)
Full ContentSling IDE tooling 1.0The 1.0 release will be a release with minimal release which will allow users to sync content between their IDE and the repository. Also see the Use Cases page for a list of use cases we want to support, either in the initial or in the subsequent releases. See also the Moving forward with IDE tooling discussion on the Sling dev mailing list for a more in-depth discussion on some of the technical issues. NamingOur IDE tooling should not focus on a single IDE and the naming should reflect that. Possible names
Platform supportWe will aim to support Eclipse and IntelliJ with a first 1.0 release. High-level architectureCore servicesThe core services will be IDE-agnostic and aim to support all platforms. As such, they will be constrained to not use specific APIs. Eclipse mandates that all I/O operations be done using its resource layer. Server controlThe server control service will handle communication with a Sling Launchpad instance, including
Resource serialization formatThe way resources are serialized to disk is outside the scope of the Transport API. As such, we need to define a standard serialization format. One serialization format is defined by VLT
This may or may not be the ideal format for our IDE tooling. One serious drawback is that 'dot-files' are hidden by default in IDEs and the command-line. Auto-sync is also not possible for .content.xml files for now , possibly for performance reasons We can ( and probably should ) define our own resource serialization format. One proposal is
Transport APIContains the APIs needed to connect to Sling launchpad and import/export content. Transport implementationsVLT transportFile vault is in process of being donated to to ASF and is a good candidate for a transport implementation. Pros
Cons
Lightweight HTTP-based transportThe current implementation is based on the Sling DefaultGetServlet and DefaultPostServlet and is another candidate for a transport implementation. Pros
Cons
Resource editorInclude a basic resource editor which works with the files defined by our serialization format. Eclipse implementationHigh-level pieces
We will inherit some code from the current implementation, and need to work out a way to export content from the repository into the workspace with the proposed UI flow. Intellij ImplementationHigh-level pieces
Sling IDE tooling 1.xEclipse implementationBundle moduleOnce we have the content module nailed down we can focus on deploying Java code changes quickly into a Sling launchpad, using a bundle module. Libra implementationOne possibility is reusing the Eclipse Libra stuff. However, AFAIK Libra works with Apache Felix, not over JCR, and this can be problematic. Sling-based implementationAnother possibility is to mount a virtual FS provider at /system/ide/install and mount each target directory at /system/ide/install/(bundle-symbolicname)-(version).jar using a custom resource provider . The jar can be refreshed on each incremental change. Bonus points for (somehow?) refreshing only java classes or only affected SCR components. An idea is to use a special /META-INF/last-session-changes.xml file which records what files have changed ; this file is only available when generated by the IDE ( maven plugin? ) and the JCR installer ( or someone else ) is smart enough to take it into account. CLI implementationIf there is interest, we can also build a CLI-only implementation, although for the initial release we can defer to the vlt command-line tool. Sling IDE 2.x
UI conceptsEclipseThese mockups are based on a work-in-progress version of Slingclipse. Since it doesn't actually work I haven't pushed it to SVN yet. Server definition
Content module definition
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
- [CONF] Apache Sling > Sling IDE tooling confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... confluence
- [CONF] Apache Sling > Sling IDE tooli... Robert Munteanu (Confluence)
- [CONF] Apache Sling > Sling IDE tooli... Robert Munteanu (Confluence)
- [CONF] Apache Sling > Sling IDE tooli... Robert Munteanu (Confluence)