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 2018/10/23 22:35:50 UTC

svn commit: r1036503 - in /websites/staging/felix/trunk/content: ./ documentation/subprojects/apache-felix-dependency-manager/tutorials/sample-code.html

Author: buildbot
Date: Tue Oct 23 22:35:50 2018
New Revision: 1036503

Log:
Staging update by buildbot for felix

Added:
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/tutorials/sample-code.html
Modified:
    websites/staging/felix/trunk/content/   (props changed)

Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Oct 23 22:35:50 2018
@@ -1 +1 @@
-1844703
+1844705

Added: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/tutorials/sample-code.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/tutorials/sample-code.html (added)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/tutorials/sample-code.html Tue Oct 23 22:35:50 2018
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+
+    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
+
+       http://www.apache.org/licenses/LICENSE- 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 Felix - Dependency Manager - Getting Started</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="http://felix.apache.org/">
+          <img border="0" alt="Apache Felix" src="/res/logo.png">
+        </a>
+      </div>
+      <div class="header">
+        <a href="http://www.apache.org/">
+          <img border="0" alt="Apache" src="/res/apache.png">
+        </a>
+      </div>
+    </div>
+    
+    <div class="menu"> 
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><a href="/news.html">News</a>  <br />
+<a href="/license.html">License</a>  <br />
+<a href="/downloads.cgi">Downloads</a>  <br />
+<a href="/documentation.html">Documentation</a>  <br />
+<a href="/mailinglists.html">Mailing Lists</a>  <br />
+<a href="/documentation/community/contributing.html">Contributing</a>  <br />
+<a href="/sitemap.html">Site Map</a>  <br />
+<a href="http://www.apache.org/">ASF</a>  <br />
+<a href="http://www.apache.org/security/">Security</a>  <br />
+<a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>  <br />
+<a href="http://www.apache.org/foundation/thanks.html">Sponsors</a>    </p>
+<iframe
+    src="http://www.apache.org/ads/button.html"
+    style="border-width:0; float: left"
+    frameborder="0"
+    scrolling="no"
+    width="135"
+    height="135">
+</iframe>
+    </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 href="/documentation/subprojects.html">Apache Felix Subproject Documentation</a>&nbsp;&raquo&nbsp;<a href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache Felix Dependency Manager</a>
+      </div>
+
+      <h1>Dependency Manager - Getting Started</h1>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="dependency-manager-sample-code">Dependency Manager sample code<a class="headerlink" href="#dependency-manager-sample-code" title="Permanent link">&para;</a></h1>
+<p>You can download this <a href="dm.hello.tgz">archive</a> which contains the following directories:</p>
+<ul>
+<li>felix-framework-6.0.1/ -&gt; this is a felix framework with pre-installed dependency manager r13 artifacts, as well as with 
+configadmin and metatype bundles (these dependencies are required by dm)</li>
+<li>hello.api/ -&gt; provides a sample component using the dependency manager API. </li>
+<li>hello.lambda/ -&gt; provides a sample component using the dependency manager Lambda API. </li>
+<li>hello.annotations -&gt; provides a sample component using the dependency manager annotations.</li>
+</ul>
+<p>All samples can be built using either gradle or maven. 
+To build with gradle, simply type "./gradlew jar", and to build with maven, type "mvn clean install".
+If you are using an http proxy, you must set the following environment:</p>
+<ul>
+<li>for gradle: export GRADLE_OPTS="-Dhttp.proxyHost=<ip> -Dhttp.proxyPort=<port> -Dhttps.proxyHost=<ip> -Dhttps.proxyPort=<port></li>
+<li>for maven, you must setup your http proxy in your ~/.m2/settings.xml</li>
+</ul>
+<p>Once built, the three jars for all hello projects can be put in the felix-framework-6.0.1/bundles/ directory.
+Now start felix like this:</p>
+<div class="codehilite"><pre><span class="n">cd</span> <span class="n">felix</span><span class="o">-</span><span class="n">framework</span><span class="o">-</span>6<span class="p">.</span>0<span class="p">.</span>1
+<span class="n">java</span> <span class="o">-</span><span class="n">jar</span> <span class="n">bin</span><span class="o">/</span><span class="n">felix</span><span class="p">.</span><span class="n">jar</span>
+</pre></div>
+
+
+<p>You should then see the following logs displayed to stdout:</p>
+<div class="codehilite"><pre><span class="n">HelloComponent</span> <span class="n">started</span> <span class="n">using</span> <span class="n">Dependency</span> <span class="n">Manager</span> <span class="n">API</span>
+<span class="n">HelloComponent</span> <span class="n">started</span> <span class="n">using</span> <span class="n">Dependency</span> <span class="n">Manager</span> <span class="n">Lambda</span>
+<span class="n">HelloComponent</span> <span class="n">started</span> <span class="n">using</span> <span class="n">Dependency</span> <span class="n">Manager</span> <span class="n">Annotations</span>
+</pre></div>
+
+
+<p>You can also play with the dm shell commands. First, type "help dm":</p>
+<div class="codehilite"><pre><span class="n">g</span>! <span class="n">help</span> <span class="n">dm</span>
+
+<span class="n">dm</span> <span class="o">-</span> <span class="n">List</span> <span class="n">dependency</span> <span class="n">manager</span> <span class="n">components</span>
+   <span class="n">scope</span><span class="p">:</span> <span class="n">dependencymanager</span>
+   <span class="n">flags</span><span class="p">:</span>
+      <span class="n">compact</span><span class="p">,</span> <span class="n">cp</span>   <span class="n">Displays</span> <span class="n">components</span> <span class="n">using</span> <span class="n">a</span> <span class="n">compact</span> <span class="n">form</span>
+      <span class="n">nodeps</span><span class="p">,</span> <span class="n">nd</span>   <span class="n">Hides</span> <span class="n">component</span> <span class="n">dependencies</span>
+      <span class="n">notavail</span><span class="p">,</span> <span class="n">na</span>   <span class="n">Only</span> <span class="n">displays</span> <span class="n">unavailable</span> <span class="n">components</span>
+      <span class="n">stats</span><span class="p">,</span> <span class="n">stat</span><span class="p">,</span> <span class="n">st</span>   <span class="n">Displays</span> <span class="n">components</span> <span class="n">statistics</span>
+      <span class="n">wtf</span>   <span class="n">Detects</span> <span class="n">where</span> <span class="n">are</span> <span class="n">the</span> <span class="n">root</span> <span class="n">failures</span>
+   <span class="n">options</span><span class="p">:</span>
+      <span class="n">bundleIds</span><span class="p">,</span> <span class="n">bid</span><span class="p">,</span> <span class="n">bi</span><span class="p">,</span> <span class="n">b</span>   <span class="o">&lt;</span><span class="n">List</span> <span class="n">of</span> <span class="n">bundle</span> <span class="n">ids</span> <span class="n">or</span> <span class="n">bundle</span> <span class="n">symbolic</span> <span class="n">names</span> <span class="n">to</span> <span class="n">display</span> <span class="p">(</span><span class="n">comma</span> <span class="n">separated</span><span class="p">)</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">optional</span><span class="p">]</span>
+      <span class="n">componentIds</span><span class="p">,</span> <span class="n">cid</span><span class="p">,</span> <span class="n">ci</span>   <span class="o">&lt;</span><span class="n">List</span> <span class="n">of</span> <span class="n">component</span> <span class="n">identifiers</span> <span class="n">to</span> <span class="n">display</span> <span class="p">(</span><span class="n">comma</span> <span class="n">separated</span><span class="p">)</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">optional</span><span class="p">]</span>
+      <span class="n">components</span><span class="p">,</span> <span class="n">c</span>   <span class="o">&lt;</span><span class="n">Regex</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="n">used</span> <span class="n">to</span> <span class="n">filter</span> <span class="n">on</span> <span class="n">component</span> <span class="n">implementation</span> <span class="n">class</span> <span class="n">names</span> <span class="p">(</span><span class="n">comma</span> <span class="n">separated</span><span class="p">),</span> <span class="n">can</span> <span class="n">be</span> <span class="n">negated</span> <span class="n">using</span> &quot;!&quot; <span class="n">prefix</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">optional</span><span class="p">]</span>
+      <span class="n">services</span><span class="p">,</span> <span class="n">s</span>   <span class="o">&lt;</span><span class="n">OSGi</span> <span class="n">filter</span> <span class="n">used</span> <span class="n">to</span> <span class="n">filter</span> <span class="n">some</span> <span class="n">service</span> <span class="k">properties</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">optional</span><span class="p">]</span>
+      <span class="n">top</span>   <span class="o">&lt;</span><span class="n">Max</span> <span class="n">number</span> <span class="n">of</span> <span class="n">top</span> <span class="n">components</span> <span class="n">to</span> <span class="n">display</span> <span class="p">(</span>0<span class="p">=</span><span class="n">all</span><span class="p">)</span><span class="o">&gt;</span> <span class="n">This</span> <span class="n">command</span> <span class="n">displays</span> <span class="n">components</span> <span class="n">callbacks</span> <span class="p">(</span><span class="n">init</span><span class="o">/</span><span class="n">start</span><span class="p">)</span> <span class="n">times</span><span class="o">&gt;</span> <span class="p">[</span><span class="n">optional</span><span class="p">]</span>
+</pre></div>
+
+
+<p>Now type "dm" in order to see all dependency manager components:</p>
+<div class="codehilite"><pre> <span class="n">g</span>! <span class="n">dm</span>
+<span class="p">[</span>1<span class="p">]</span> <span class="n">hello</span><span class="p">.</span><span class="n">annotations</span>
+ <span class="p">[</span>3<span class="p">]</span> <span class="n">hello</span><span class="p">.</span><span class="n">HelloComponent</span> <span class="n">registered</span>
+<span class="p">[</span>2<span class="p">]</span> <span class="n">hello</span><span class="p">.</span><span class="n">api</span>
+ <span class="p">[</span>0<span class="p">]</span> <span class="n">hello</span><span class="p">.</span><span class="n">HelloComponent</span> <span class="n">registered</span>
+<span class="p">[</span>3<span class="p">]</span> <span class="n">hello</span><span class="p">.</span><span class="n">lambda</span>
+ <span class="p">[</span>1<span class="p">]</span> <span class="n">hello</span><span class="p">.</span><span class="n">HelloComponent</span> <span class="n">registered</span>
+<span class="p">[</span>10<span class="p">]</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">dependencymanager</span><span class="p">.</span><span class="n">runtime</span>
+ <span class="p">[</span>2<span class="p">]</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">dm</span><span class="p">.</span><span class="n">runtime</span><span class="p">.</span><span class="n">DependencyManagerRuntime</span> <span class="n">registered</span>
+    <span class="n">active</span> <span class="p">(</span><span class="n">DependencyManager</span><span class="o">-</span><span class="n">Component</span><span class="p">=</span><span class="o">*</span><span class="p">)</span> <span class="n">bundle</span> <span class="n">optional</span> <span class="n">available</span>
+    <span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">packageadmin</span><span class="p">.</span><span class="n">PackageAdmin</span> <span class="n">service</span> <span class="n">required</span> <span class="n">available</span>
+    <span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="nb">log</span><span class="p">.</span><span class="n">LogService</span> <span class="n">service</span> <span class="n">optional</span> <span class="n">unavailable</span>
+</pre></div>
+      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+        Rev. 1844705 by pderop on Tue, 23 Oct 2018 22:35:11 +0000
+      </div>
+      <div class="trademarkFooter"> 
+        Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix 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>
+</html>