incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r914592 - in /websites/staging/sling/trunk/content: ./ documentation/development.html documentation/development/ide-tooling.html
Date Tue, 01 Jul 2014 13:35:15 GMT
Author: buildbot
Date: Tue Jul  1 13:35:15 2014
New Revision: 914592

Staging update by buildbot for sling

    websites/staging/sling/trunk/content/   (props changed)

Propchange: websites/staging/sling/trunk/content/
--- cms:source-revision (original)
+++ cms:source-revision Tue Jul  1 13:35:15 2014
@@ -1 +1 @@

Modified: websites/staging/sling/trunk/content/documentation/development.html
--- websites/staging/sling/trunk/content/documentation/development.html (original)
+++ websites/staging/sling/trunk/content/documentation/development.html Tue Jul  1 13:35:15
@@ -100,6 +100,7 @@
 <li><a href="/documentation/development/monitoring-requests.html">Monitoring
 <li><a href="/documentation/development/repository-based-development.html">Repository
Based Development</a></li>
 <li><a href="/documentation/development/sling-testing-tools.html">Sling Testing
+<li><a href="/documentation/development/ide-tooling.html">Sling IDE Tooling</a></li>
 <h2 id="maven-stuff">Maven Stuff</h2>
 <p>Sling is using Apache Maven 3 as its build system. Over time we have created a number
of Maven 3 plugins and gathered a whole range of knowledge about using Maven.</p>
@@ -121,7 +122,7 @@
 <li>A Sonar analysis is available on the <a href=""></a>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1594581 by bdelacretaz on Wed, 14 May 2014 13:50:42 +0000
+        Rev. 1607072 by rombert on Tue, 1 Jul 2014 13:35:08 +0000
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project

Added: websites/staging/sling/trunk/content/documentation/development/ide-tooling.html
--- websites/staging/sling/trunk/content/documentation/development/ide-tooling.html (added)
+++ websites/staging/sling/trunk/content/documentation/development/ide-tooling.html Tue Jul
 1 13:35:15 2014
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+ 2.0
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+  <head>
+    <title>Apache Sling - Sling IDE tooling for Eclipse User Guide</title>
+    <link rel="icon" href="/res/favicon.ico">
+    <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
+    <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+  </head>
+  <body>
+    <div class="title">
+      <div class="logo">
+        <a href="">
+          <img border="0" alt="Apache Sling" src="/res/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="">
+          <img border="0" alt="Apache" src="/res/apache.png">
+        </a>
+      </div>
+    </div>
+    <div class="menu"> 
+      <p><strong><a href="/documentation.html">Documentation</a></strong>
<br />
+<a href="/documentation/getting-started.html">Getting Started</a> <br />
+<a href="/documentation/the-sling-engine.html">The Sling Engine</a> <br />
+<a href="/documentation/development.html">Development</a> <br />
+<a href="/documentation/bundles.html">Bundles</a> <br />
+<a href="/documentation/tutorials-how-tos.html">Tutorials &amp; How-Tos</a>
<br />
+<a href="/documentation/configuration.html">Configuration</a> <br />
+<a href="">Wiki</a> <br />
+<a href="">FAQ</a> <br />
+<a href="/sitemap.html">Site Map</a></p>
+<p><strong>API Docs</strong>  <br />
+<a href="/apidocs/sling6/index.html">Sling 6</a> <br />
+<a href="/apidocs/sling5/index.html">Sling 5</a>   </p>
+<p><strong>Project info</strong> <br />
+<a href="/downloads.cgi">Downloads</a> <br />
+<a href="">License</a> <br />
+<a href="/contributing.html">Contributing</a> <br />
+<a href="/news.html">News</a> <br />
+<a href="/links.html">Links</a> <br />
+<a href="/project-information.html">Project Information</a> <br />
+<a href="">Issue Tracker</a> <br
+<a href="">Build Server</a> <br />
+<a href="/project-information/security.html">Security</a>   </p>
+<p><strong>Source</strong> <br />
+<a href="">Subversion</a> <br />
+<a href="git://">Git</a> <br />
+<a href="">Github Mirror</a>   </p>
+<p><strong>Sponsorship</strong> <br />
+<a href="">Thanks</a> <br />
+<a href="">Become a Sponsor</a>
<br />
+<a href="">Buy Stuff</a>   </p>
+<!-- no valid ads for now, we'll  reactivate this when needed
+    src=""
+    style="border-width:0; float: left" frameborder="0" 
+    scrolling="no"
+    width="135" 
+    height="135">
+    </div>
+    <div class="main">
+      <div class="breadcrump" style="font-size: 80%;">
+        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>&nbsp;&raquo&nbsp;<a
+      </div>
+      <h1>Sling IDE tooling for Eclipse User Guide</h1>
+      <h2 id="prerequisites">Prerequisites</h2>
+<p>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.</p>
+<p>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.
+<h2 id="overall-concepts">Overall concepts</h2>
+<p>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.</p>
+<p>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. Content modules support support setting JCR properties for nodes
other than nodes and files, based on the FileVault serialization format. You can read mode
about FileVault at the Apache Jackkrabit FileVault docs Bundle modules represent a single
OSGi bundle.
+Server definition</p>
+<p>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.</p>
+<p>To kick off, create a new Sling Launchpad Server using the File -&gt; New -&gt;
Other... menu entry.</p>
+<p>In the resulting wizard, select the External Sling Launchpad category and enter
the host name.</p>
+<p>Once that is done, press finish.</p>
+<h2 id="server-configuration">Server configuration</h2>
+<p>The server will appear in the servers view. You can double-click on it to review
the settings which were automatically provided.</p>
+<p>There are a couple of important settings in the server definition page:</p>
+<h1 id="port-used-for-connecting-to-the-server">port: used for connecting to the server</h1>
+<h1 id="publishing-interval-controls-how-fast-the-resources-will-be-published-after-a-change-we-recommend-setting-the-interval-to-0-for-fast-deploy-times">publishing
interval: controls how fast the resources will be published after a change. We recommend setting
the interval to 0, for fast deploy times</h1>
+<h1 id="username-password-context-path-controls-the-connection-details-to-the-sling-instance">username,
password, context path: controls the connection details to the Sling instance.</h1>
+<h1 id="debug-port-used-for-connecting-in-debug-mode">debug port: used for connecting
in debug mode</h1>
+<p>For working with OSGi bundles, a special support bundle must be installed to support
fast bundle redeployment. If it is not present, you can install it using the hyperlink from
the Install section.</p>
+<p>You can now connect to the server</p>
+<h2 id="content-sync">Content sync</h2>
+<p>Content projects are required to have at least</p>
+<h1 id="a-jcr_root-directory-which-contains-the-serialized-content-of-the-repository">a
jcr_root directory, which contains the serialized content of the repository</h1>
+<h1 id="a-meta-infvaultfilterxml-file-which-contains-the-workspace-filter-definition">a
META-INF/vault/filter.xml file, which contains the workspace filter definition</h1>
+<p>All changes performed in the local workspace are synchronized to the repository,
given that they are included in the workspace filter definition.</p>
+<h3 id="creating-a-new-content-project">Creating a new content project</h3>
+<p>Creating a new Sling content project is easily done by using the new Sling Content
Project Wizard. To kick off, start by selected File -&gt; New -&gt; Project and select
Sling Content Project under the Sling category.</p>
+<p>You will then be asked to name the project and select its location.</p>
+<p>Finally, you can select whether to add the project to an existing server or create
a new one.</p>
+<p>Once you press finish, the project will be created and deployed to the server.</p>
+<h3 id="converting-existing-projects">Converting existing projects</h3>
+<p>To mark a project as being a Sling content module, click it in the Project Explorer
and Select Configure -&gt; Convert to Sling Content Project... . A dialog will pop up
and will ask you to confirm the inferred location of the jcr_root directory. You can also
change this from the project properties, the Sling page.</p>
+<h3 id="content-navigator">Content navigator</h3>
+<p>In the Project Explorer view there is an additional 'jcr_root' contribution to the
project. It is denoted by a folder icon with a small web overlay. This contribution provides
a logical view over the repository content, taking into account JCR metadata. As such, .content.xml
files will be folded into the corresponding node.</p>
+<p>Node properties can be edited in a distinct JCR properties view.</p>
+<h3 id="filterxml-workspace-filter-definition">filter.xml - workspace filter definition</h3>
+<p>A content project does not synchronize all its contents to the workspace. Instead,
it looks for a filter.xml file which defines which content is included in synchronization
operations. More information about the filter.xml file format and semantics can be found at
FileVault docs - Workspace Filter</p>
+<h3 id="deploying-projects-on-the-server">Deploying projects on the server</h3>
+<p>To deploy a project on the server, open the Servers view and use the Add and Remove...
dialog to add one or more modules.</p>
+<p>After content projects are deployed, each change will cause the changed resources
to be updated in the repository.</p>
+<h3 id="manual-content-sync">Manual content sync</h3>
+<p>It is possible to manually import/export content from/to the repository. The precondition
is that the content project must be associated with a started Sling launchpad server. The
actions are available on the project root, or on any child resource under the jcr_root folder.</p>
+<p>The export wizard is available under the Sling -&gt; Export Content ... action.</p>
+<p>The import wizard is available under the Sling -&gt; Export Content ... action.</p>
+<h2 id="bundle-sync">Bundle sync</h2>
+<p>The only requirement for bundle projects is that they are Java projects which generate
an exploded OSGi bundle in their output directory. That requires at least a valid OSGi Manifest
located in META-INF/MANIFEST.MF, but typically one of more Java classes. Other auxiliary files,
such as Declarative Service descriptors, must also be placed under the project's output directory.</p>
+<h3 id="creating-a-new-bundle-project">Creating a new bundle project</h3>
+<p>Creating a new Sling bundle project is easily done by using the new Sling Bundle
Project Wizard. This wizard is only available when the Maven-based integration is installed.
To kick off, start by selected File -&gt; New -&gt; Project and select Sling Bundle
Project under the Sling category.</p>
+<p>The next page allows you to select the archetype to use. It's recommended to select
the latest version of the archetype.</p>
+<p>You will be asked to configure the archetype's properties.</p>
+<p>Finally, you can select whether to add the project to an existing server or create
a new one.</p>
+<p>Once you press finish, the project will be created and deployed to the server.</p>
+<h3 id="converting-existing-projects_1">Converting existing projects</h3>
+<p>To mark a project as being a Sling bundle module, right click it in the Project
Explorer and Select Configure -&gt; Convert to Sling Bundle Project... . A dialog will
appear with all the candidate Sling bundle project from the workspace so that you can quickly
select multiple projects.</p>
+<h3 id="deploying-projects-on-the-server_1">Deploying projects on the server</h3>
+<p>To deploy a project on the server, open the Servers view and use the Add and Remove...
dialog to add one or more modules.</p>
+<p>After OSGi bundle projects are deployed, each change will cause the bundle to be
redeployed on the server.</p>
+<h2 id="troubleshooting">Troubleshooting</h2>
+<h3 id="gathering-debug-information">Gathering debug information</h3>
+<p>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 -&gt;
Sling Console.</p>
+<p>Additional information can be obtained by enabling the Eclipse platform tracing
facility. To do so, open the Eclipse preferences and navigate to General -&gt; Tracing.
Make sure that 'Enable tracing' is checked and all options under 'Sling IDE Tooling' are enabled.</p>
+<p>Why do I get an errror about "No DS descriptor found at..."?</p>
+<p>Bundle deployment assumes that the OSGi bundle is packaged into the project's output
directory. This includes:</p>
+<h1 id="the-manifest">the manifest</h1>
+<h1 id="compiled-class-files">compiled class files</h1>
+<h1 id="resources">resources</h1>
+<h1 id="declarative-services-descriptors">Declarative Services descriptors</h1>
+<p>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.
To fix this, make sure that you're using the maven-scr-plugin 1.15.0 or newer and that you
have not set a custom outputDirectory.</p>
+<h1 id="known-issues">Known issues</h1>
+<p>The content sync implementation tries to mimic the FileVault semantics as closely
as possible. However, it is possible that some more exotic content structures will not be
handled properly. Some of the problems we're are of are:</p>
+<h1 id="sling-3586-publishing-content-fails-if-intermediate-nodes-are-not-present-in-the-repository-the-workaround-is-to-manually-create-the-missing-nodes-in-the-repository"><a
href="">SLING-3586 - Publishing content
fails if intermediate nodes are not present in the repository</a> . The workaround is
to manually create the missing nodes in the repository .</h1>
+<h1 id="sling-3591-unable-to-delete-all-nodes-of-a-full-coverage-aggregate-the-workaround-is-to-manually-delete-the-child-nodes"><a
href="">SLING-3591 - Unable to delete all
nodes of a full coverage aggregate</a> . The workaround is to manually delete the child
nodes .</h1>
+<h1 id="sling-3573-local-resources-which-are-no-longer-present-in-the-repository-are-not-deleted-when-importing-the-workaround-is-to-manually-delete-the-workspace-files"><a
href="">SLING-3573 - Local resources which
are no longer present in the repository are not deleted when importing</a> . The workaround
is to manually delete the workspace files .</h1>
+<h1 id="sling-3644-improve-handling-of-binary-properties-outside-ntfile-file-nodes-currently-there-is-no-workaround-but-in-practice-this-is-not-an-often-encountered-situation"><a
href="">SLING-3644 - Improve handling of
binary properties outside nt:file file nodes</a> . Currently there is no workaround,
but in practice this is not an often-encountered situation.</h1>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1607072 by rombert on Tue, 1 Jul 2014 13:35:08 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
+        logo are trademarks of The Apache Software Foundation. All other marks mentioned
+        may be trademarks or registered trademarks of their respective owners.
+      </div>
+    </div>
+  </body>

View raw message