You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by bu...@apache.org on 2013/09/13 18:20:31 UTC

svn commit: r878309 - in /websites/staging/felix/trunk/content: ./ documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html

Author: buildbot
Date: Fri Sep 13 16:20:31 2013
New Revision: 878309

Log:
Staging update by buildbot for felix

Modified:
    websites/staging/felix/trunk/content/   (props changed)
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html

Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Sep 13 16:20:31 2013
@@ -1 +1 @@
-1523000
+1523003

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html Fri Sep 13 16:20:31 2013
@@ -95,7 +95,7 @@ For now, the plugin is not yet released,
 <p><strong>Configure the default BndTools plugin path</strong>:</p>
 <p>In order to let BndTools load the SCR annotations bnd plugin, you can configure the default BndTools plugin path:</p>
 <p>In BndTools menu, click on "BndTools Open ext/pluginpaths.bnd", then click on "Source"
-And append the SCR bnd plugin (${plugin-dir}/org.apache.felix.scr.bnd/org.apache.felix.scr.bnd-X.Y.Z-SNAPSHOT.jar) to the current plugin path. 
+and append the SCR bnd plugin (${plugin-dir}/org.apache.felix.scr.bnd/org.apache.felix.scr.bnd-X.Y.Z-SNAPSHOT.jar) to the current plugin path. 
 For example:</p>
 <div class="codehilite"><pre>-pluginpath: <span class="cp">${</span><span class="n">plugin</span><span class="o">-</span><span class="nb">dir</span><span class="cp">}</span>/biz.aQute.repository/biz.aQute.repository-2.1.0.jar, \
     <span class="cp">${</span><span class="n">plugin</span><span class="o">-</span><span class="nb">dir</span><span class="cp">}</span>/org.apache.felix.scr.bnd/org.apache.felix.scr.bnd-1.0.0-SNAPSHOT.jar
@@ -104,9 +104,57 @@ For example:</p>
 
 <p>You have installed the SCR annotations bnd plugin in Eclipse BndTools, and you can now start using it (see the following Tutorial).</p>
 <h2 id="tutorial">Tutorial</h2>
-<p>TBD</p>
+<p>In this tutorial, we'll create a "greeting" project, which provides a simple Greeting service with a "sayHello" method, and the
+implementation will use the Apache Felix SCR annotations:</p>
+<p>From the File menu, select New -&gt; Bndtools OSGi Project for creating an empty project, and call it "greeting".</p>
+<p>Then click on bnd.bnd file of the greeting project, then click on Source, and add the following (and then save the file)</p>
+<div class="codehilite"><pre>-buildpath: <span class="cp">${</span><span class="n">plugin</span><span class="o">-</span><span class="nb">dir</span><span class="cp">}</span>/org.apache.felix.scr.bnd/org.apache.felix.scr.bnd-1.0.0-SNAPSHOT.jar;version=file
+-plugin: org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin
+Private-Package: greeting.impl
+Export-Package: greeting.api
+</pre></div>
+
+
+<p>Create the greeting.api.Greeting interface:</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">greeting</span><span class="o">.</span><span class="na">api</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kd">interface</span> <span class="nc">Greeting</span> <span class="o">{</span>
+    <span class="kt">void</span> <span class="nf">sayHello</span><span class="o">(</span><span class="n">String</span> <span class="n">name</span><span class="o">);</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>And create the greeting.impl.GreetingImpl class:</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">greeting</span><span class="o">.</span><span class="na">impl</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">greeting.api.Greeting</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">org.apache.felix.scr.annotations.Activate</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.felix.scr.annotations.Component</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.felix.scr.annotations.Service</span><span class="o">;</span>
+
+<span class="nd">@Component</span><span class="o">(</span><span class="n">immediate</span><span class="o">=</span><span class="kc">true</span><span class="o">)</span>
+<span class="nd">@Service</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">GreetingImpl</span> <span class="kd">implements</span> <span class="n">Greeting</span> <span class="o">{</span>
+    <span class="nd">@Activate</span>
+    <span class="kd">private</span> <span class="kt">void</span> <span class="nf">start</span><span class="o">()</span> <span class="o">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&quot;Starting Greeting Service&quot;</span><span class="o">);</span>
+    <span class="o">}</span>
+
+    <span class="nd">@Override</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">sayHello</span><span class="o">(</span><span class="n">String</span> <span class="n">name</span><span class="o">)</span> <span class="o">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&quot;Hello &quot;</span> <span class="o">+</span> <span class="n">name</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>Now, click on bnd.bnd and rebuild the project. you have created your first bndtools project using SCR annotations. </p>
+<p>Create a Run descriptor (call it "run") with Apache Felix 4 With Gogo Shell.</p>
+<p>In Run requirement, add the greeting project, as well as Apache Felix SCR from Bnd HUB.</p>
+<p>Then Run the project: you should see in the console the "Starting Greeting Service" message displayed from the start() method.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1523000 by pderop on Fri, 13 Sep 2013 16:16:17 +0000
+        Rev. 1523003 by pderop on Fri, 13 Sep 2013 16:20:09 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project