You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Sling IDE Tooling User Guide

Prerequisites

The Sling IDE tooling is known to work on Eclipse versions starting with Kepler. There is a hard dependency on the faceted project framework, which is included in the 'Eclipse IDE for Java EE Developers' package. If you're running a different package, you can always install it from the main Eclipse update site.

There is an optional feature which relies on m2eclipse. For now it only provides project creation wizards, so if you don't use Maven you don't have to install it.

Installation

There is no official release yet, but I ( Robert Munteanu ) am maintaining unnoficial preview builds at http://people.apache.org/~rombert/sling/ide/preview/ . Feel tree to give them a try.

Overall concepts

The Sling IDE tooling is centered around the Server and Module concepts. A Server is an instance of a Sling launchpad - or derivatives such as Adobe CQ - on which you deploy your content. A Module is a collection of resources grouped into a single Eclipse project which can be deployed onto one or multiple Servers.

The tooling supports content and bundle modules. Content modules typically hold Sling scripts - like JSP and ESP files, client-side resources like CSS and JSS file, but also arbitrary repository content. Bundle modules represent a single OSGi bundle.

Server definition

To create a new Sling launchpad server you will need to start a Sling launchpad outside of Eclipse. We do not yet support starting Sling Launchpad instances from Eclipse.

To kick off, create a new Sling Launchpad Server using the File -> New -> Other... menu entry.

In the resulting wizard, select the External Sling Launchpad category and enter the host name.

Once that is done, press finish.

Server configuration

The server will appear in the servers view. You can double-click on it to review the settings which were automatically provided.

There are a couple of important settings in the server definition page:

  • port: used for connecting to the server
  • publishing interval: controls how fast the resources will be published after a change. We recommend setting the interval to 0, for fast deploy times
  • username, password, context path: controls the connection details to the CQ instance.
  • debug port: used for connecting in debug mode

You can now connect to the server

Content sync

Bundle sync

Troubleshooting

Gathering debug information

All operations that are performed on the Sling launchpad are logged in the Sling console. To view these operations, open the Eclipse console view and select Open Console -> Sling Console.

Additional information can be obtained by enabling the Eclipse platform tracing facility. To do so, open the Eclipse preferences and navigate to General -> Tracing. Make sure that 'Enable tracing' is checked and all options under 'Sling IDE Tooling' are enabled.

My bundle is deployed, but services are not picked up

Bundle deployment assumes that the OSGi bundle is packaged into the project's output directory. This includes:

  • the manifest
  • compiled class files
  • resources
  • Declarative Services descriptor

For now there is no validation if anything is missing. One often-occuring situation is that a Maven project using the maven-scr-plugin generates the descriptors outside of target/classes, typically in target/scr-plugin-generated. The fix is to either configure the maven-scr-plugin to generate its descriptors under target-classes, by settings its outputDirectory , or to update to the maven-scr-plugin 1.15.0 or newer, which places the SCR descriptors under target/classes by default.

  • No labels