You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bu...@apache.org on 2017/01/04 14:04:35 UTC

svn commit: r1004130 - in /websites/staging/sling/trunk/content: ./ documentation/development/osgi-mock.html

Author: buildbot
Date: Wed Jan  4 14:04:34 2017
New Revision: 1004130

Log:
Staging update by buildbot for sling

Modified:
    websites/staging/sling/trunk/content/   (props changed)
    websites/staging/sling/trunk/content/documentation/development/osgi-mock.html

Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Jan  4 14:04:34 2017
@@ -1 +1 @@
-1776931
+1777318

Modified: websites/staging/sling/trunk/content/documentation/development/osgi-mock.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/osgi-mock.html (original)
+++ websites/staging/sling/trunk/content/documentation/development/osgi-mock.html Wed Jan  4 14:04:34 2017
@@ -123,6 +123,7 @@ h2:hover > .headerlink, h3:hover > .head
 <li><a href="#osgi-context-junit-rule">OSGi Context JUnit Rule</a></li>
 <li><a href="#getting-osgi-mock-objects">Getting OSGi mock objects</a></li>
 <li><a href="#activation-and-dependency-injection">Activation and Dependency Injection</a></li>
+<li><a href="#provide-your-own-configuration-via-configadmin">Provide your own configuration via ConfigAdmin</a></li>
 <li><a href="#context-plugins">Context Plugins</a></li>
 </ul>
 </li>
@@ -298,6 +299,21 @@ are preset in the classpath at <code>/OS
 missing if your clean and build the project within your IDE (e.g. Eclipse). In this case you have to compile the
 project again with maven and can run the tests - or use a Maven IDE Integration like m2eclipse.</li>
 </ul>
+<h3 id="provide-your-own-configuration-via-configadmin">Provide your own configuration via ConfigAdmin<a class="headerlink" href="#provide-your-own-configuration-via-configadmin" title="Permanent link">&para;</a></h3>
+<p>If you want to provide your own configuration to an OSGi service that you do not register and activate itself in the mock context you can provide your own custom OSGi configuration via the mock implementation of the <code>ConfigAdmin</code> service.</p>
+<p>Example:</p>
+<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
+2
+3
+4
+5</pre></div></td><td class="code"><div class="codehilite"><pre><span class="n">ConfigurationAdmin</span> <span class="n">configAdmin</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getService</span><span class="o">(</span><span class="n">ConfigurationAdmin</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+<span class="n">Configuration</span> <span class="n">myServiceConfig</span> <span class="o">=</span> <span class="n">configAdmin</span><span class="o">.</span><span class="na">getConfiguration</span><span class="o">(</span><span class="n">MY_SERVICE_PID</span><span class="o">);</span>
+<span class="n">Dictionary</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Object</span><span class="o">&gt;</span> <span class="n">props</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Hashtable</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Object</span><span class="o">&gt;();</span>
+<span class="n">props</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">&quot;prop1&quot;</span><span class="o">,</span> <span class="s">&quot;value1&quot;</span><span class="o">);</span>
+<span class="n">myServiceConfig</span><span class="o">.</span><span class="na">update</span><span class="o">(</span><span class="n">props</span><span class="o">);</span>
+</pre></div>
+</td></tr></table>
+
 <h3 id="context-plugins">Context Plugins<a class="headerlink" href="#context-plugins" title="Permanent link">&para;</a></h3>
 <p>OSGi Mocks supports "Context Plugins" that hook into the lifecycle of each test run and can prepare test setup before or after the other setUp actions, and execute test tear down code before or after the other tearDown action.</p>
 <p>To define a plugin implement the <code>org.apache.sling.testing.mock.osgi.context.ContextPlugin&lt;OsgiContextImpl&gt;</code> interface. For convenience it is recommended to extend the abstract class <code>org.apache.sling.testing.mock.osgi.context.AbstractContextPlugin&lt;OsgiContextImpl&gt;</code>. These plugins can be used with OSGi Mock context, but also with context instances deriving from it like Sling Mocks and AEM Mocks. In most cases you would just override the <code>afterSetUp</code> method. In this method you can register additional OSGi services or do other preparation work. It is recommended to define a constant pointing to a singleton of a plugin instance for using it.</p>
@@ -315,7 +331,7 @@ project again with maven and can run the
 <li><a href="https://github.com/apache/sling/blob/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java">Apache Sling Context-Aware Configuration Mock Plugin Test</a></li>
 </ul>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1773500 by sseifert on Sat, 10 Dec 2016 07:59:19 +0000
+        Rev. 1777318 by sseifert on Wed, 4 Jan 2017 14:04:18 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project