Sling IDE toolingPage edited by Robert Munteanu
Comment:
Added link to Use Cases
Changes (1)
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. 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
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
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)