Author: buildbot
Date: Wed Mar 11 09:07:25 2015
New Revision: 943315
Log:
Staging update by buildbot for felix
Modified:
websites/staging/felix/trunk/content/ (props changed)
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-adapter.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-aspect.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-factory-configuration-adapter.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-resource-adapter.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-singleton.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/components.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependencies.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-bundle.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-configuration.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-resource.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-service.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/thread-model.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/tutorials/getting-started.html
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/tutorials/leveraging-the-shell.html
Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Mar 11 09:07:25 2015
@@ -1 +1 @@
-1665780
+1665812
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager.html
Wed Mar 11 09:07:25 2015
@@ -18,7 +18,7 @@
limitations under the License.
-->
<head>
- <title>Apache Felix - Dependency Manager 4</title>
+ <title>Apache Felix - Apache Felix Dependency Manager</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">
@@ -67,7 +67,7 @@
- <h1>Dependency Manager 4</h1>
+ <h1>Apache Felix Dependency Manager</h1>
<p>Welcome to the Dependency Manager, a great bundle for managing your
components and dependencies!</p>
<h2 id="introduction">Introduction</h2>
<p>In a service oriented architecture, applications are built out of
components that are packaged in bundles and interact through services. These
components, that both publish services and depend on other services, form
networks that are often dynamic in nature. That makes managing these
dependencies something the developer needs to address.</p>
@@ -123,7 +123,7 @@
<li><a
href="apache-felix-dependency-manager/reference/external-links.html">External
Links and Articles</a></li>
</ul>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665777 by pderop on Wed, 11 Mar 2015 08:01:27 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.html
Wed Mar 11 09:07:25 2015
@@ -62,7 +62,7 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
@@ -70,7 +70,7 @@
<h1>Dependency Manager - Annotations</h1>
<p>This section presents a quick overview of the capabilities and usage
of the DependencyManager Java annotations. In particular, we will recap the
DependencyManager annotation architecture, and identify some simple usage
scenarios using a SpellChecker
sample application with annotated components. The application is available
from the felix trunk, in the <code>dependencymanager/samples.annotation</code>
subproject.</p>
-<h1 id="architecture">Architecture</h1>
+<h2 id="architecture">Architecture</h2>
<p>Instead of writing Activators which extends the DependencyActivatorBase
class, service
components can now be annotated using the annotations provided by the
<em>org.apache.felix.dependencymanager.annotation</em> bundle. Annotations are
not reflectively
@@ -87,7 +87,7 @@ component lifecycle and dependencies. Th
DependencyManager programmatic API in order to manage the annotated
components.
Annotated components can then be inspected with the DependencyManager Gogo
shell, as it is
the case with DM components declared through the programmatic DM API.</p>
-<h1 id="registering-a-service">Registering a Service</h1>
+<h2 id="registering-a-service">Registering a Service</h2>
<p>To register a service, your can annotate your class with a
<em>@Component</em> annotation, and
an instance of your class will be registered under all directly implemented
interfaces
into the OSGi registry. You can however take control on the interfaces to be
exposed, and
@@ -128,7 +128,7 @@ thing required is to provide the Pojos w
COMMAND_FUNCTION) which will be used by the Gogo runtime when instropecting
the Pojo
for invoking the proper functions.</p>
<p>So, coming back to the sample code, the SpellChecker class registers
itself into the OSGi registry, using the <em>provides</em> attribute, which
just refer to our SpellChecker class, and the two mandatory Gogo service
properties are also specified using the <em>@Property</em> annotation. It is
not shown here, but service properties can also be provided dynamically from a
method that can return a Map, and annotated with the <em>@Start</em> lifecycle
callback, but we will see this feature in a another section.</p>
-<h1 id="depending-on-a-service">Depending on a Service</h1>
+<h2 id="depending-on-a-service">Depending on a Service</h2>
<p>Our SpellChecker component can expose itself as a Gogo shell command, but
before being
registered into the OSGi registry, we also need to be injected with two
dependencies:
one required dependency (at minimum) on a DictionaryService, and another
optional one on
@@ -205,7 +205,7 @@ this behavior is different from the API,
DictionaryService services in our dictionary list, which is used when checking
word
existence. This list is a copy on write list because the dependency may be
injected at
any time, possibly from another thread. So, using a copy on write list avoid
us to use synchronized methods.</p>
-<h1 id="creating-a-service-from-configadmin">Creating a Service from
ConfigAdmin</h1>
+<h2 id="creating-a-service-from-configadmin">Creating a Service from
ConfigAdmin</h2>
<p>The <em>@Component</em> annotation is not the only one for creating
services. Another one is
the <em>@FactoryConfigurationAdapterService</em> annotation which allows to
instantiate many
instances of the same annotated service class from ConfigAdmin (and
WebConsole).
@@ -313,7 +313,7 @@ So, let's revisit our DisctionaryImpl se
</pre></div>
-<h1 id="providing-an-aspect">Providing an Aspect</h1>
+<h2 id="providing-an-aspect">Providing an Aspect</h2>
<p>As we have seen in the previous section, there are many annotations that
can be used
to specify a service. Another one is the <em>@AspectService</em> annotation.
This annotation
allows to <em>decorate</em> an existing service in order to add certain
"capabilities" to it,
@@ -381,14 +381,14 @@ the aspect chain ordering (multiple aspe
used to configure the extra English words from ConfigAdmin. This annotation
normally
requires a pid parameter, which is a persistent identifier uniquely
identifying our
component, but by default, the pid is set to the fully qualified name of our
class.</p>
-<h1 id="how-to-run-the-sample-code">How to run the sample code</h1>
+<h2 id="how-to-run-the-sample-code">How to run the sample code</h2>
<p>Just import the Dependency source distribution in bndtools and check the
following samples:</p>
<ul>
<li>org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/dictionary/annot/README</li>
<li>org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/dictionary/api/README</li>
</ul>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.html
Wed Mar 11 09:07:25 2015
@@ -62,13 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Background</h1>
- <h1 id="background">Background</h1>
+ <h2 id="background">Background</h2>
<p>In an OSGi framework, services are deployed using bundles and these bundles
feature two types of dependencies: </p>
<ol>
<li>Package dependencies. A bundle can export a package which others import.
These dependencies, although dynamic, are relatively easy to handle and the
whole resolution process is handled by the OSGi framework for you.</li>
@@ -79,7 +79,7 @@
<p>The second is managing service dependencies at runtime. As mentioned
before, a service oriented architecture is dynamic by design, so your
implementation should be able to deal with this. Bundles can start in any order
and any service can go away or be replaced by a different implementation at any
point in time. OSGi itself offers basic assistance for tracking services. You
can track them yourself by registering as a service listener. A slightly more
advanced way is to create a service tracker, which you can subsequently query,
or have it notify you on changes. All of these are too low-level to be good
building blocks for developers.</p>
<p>In real implementations, you are probably going to track multiple services.
Using service trackers in such a scenario has the tendency to result in
dependency logic that is entangled in the implementation instead of being
expressed in a declarative way. Using a declarative way to specify dependencies
has clear advantages when it comes to monitoring and managing them, a task that
becomes more and more important in modern, federated, service oriented
environments.</p>
<p>The Dependency Manager provides you with the right building blocks to
declaratively specify dependencies using a straightforward Java API that is
easy to maintain and refactor.</p>
-<h1 id="design-goals">Design Goals</h1>
+<h2 id="design-goals">Design Goals</h2>
<p>The goals that drove the design of the dependency manager are:</p>
<ul>
<li>Provide a clean separation between a component implementation and the
"glue" that binds it to the OSGi framework. The component implementation should
not have to contain any OSGi specific code. In other words, it should be a POJO
(Plain Old Java Object).</li>
@@ -89,7 +89,7 @@
<li>Supporting powerful high level design patterns. When building real-world
applications, more complex patterns need to be used, such as aspects and
adapters. Support for these needs to be built into the core.</li>
</ul>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Design Patterns</h1>
- <h1 id="osgi-design-patterns">OSGi Design Patterns</h1>
-<p>This section lists a couple of design patterns as they can be applied in an
OSGi context.</p>
+ <p>This section lists a couple of design patterns as they can be applied
in an OSGi context.</p>
<h2 id="singleton-service">Singleton Service</h2>
<p>Provides a service as long as its dependencies are resolved.</p>
<h3 id="motivation">Motivation</h3>
@@ -186,7 +185,7 @@
<p>The traditional model for dealing with listeners in Java needlessly
complicates things in an OSGi context. Instead of having listeners registering
themselves with the component that will invoke them on any change, a listener
simply registers itself in the service registry and the component will do a
lookup of all relevant services. This is explained in more detail on the
OSGi.org wiki in the <a
href="http://www.osgi.org/wiki/uploads/Links/whiteboard.pdf">"Listeners
considered harmful: the 'whiteboard' pattern"</a> article.</p>
<h3 id="structure_6">Structure</h3>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.html
Wed Mar 11 09:07:25 2015
@@ -62,16 +62,16 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Development</h1>
<p>When downloading or checking out the source code, please also consult
release/resources/src/README.src for up to date instructions on how to build
that particular version.</p>
-<h1 id="prerequisites">Prerequisites</h1>
+<h2 id="prerequisites">Prerequisites</h2>
<p>If you are building a released
<code>org.apache.felix.dependencymanager-r<n>-src.zip</code> artifact,
then you also have to extract the
<code>org.apache.felix.dependencymanager-r<n>-deps.zip</code> in the same
directory where you have extracted the source archive. There is no need to do
this if you have checked out from the Felix trunk in Subversion.</p>
-<h1 id="compilation-using-gradle">Compilation Using gradle:</h1>
+<h2 id="compilation-using-gradle">Compilation Using gradle:</h2>
<ul>
<li>
<p>Install Java 7.</p>
@@ -93,7 +93,7 @@
<p>$ ./gradlew check</p>
</li>
</ul>
-<h1 id="compilation-using-eclipse">Compilation Using Eclipse:</h1>
+<h2 id="compilation-using-eclipse">Compilation Using Eclipse:</h2>
<ul>
<li>Install either Eclipse Kepler SR2 or Eclipse Luna.</li>
<li>Use the dependency manager folder as the root of your workspace.</li>
@@ -113,7 +113,7 @@
<li>Click on org.apache.felix.dependencymanager.runtime.itest and run it as
""Bnd OSGi Test Launcer (Junit)".</li>
</ul>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.html
Wed Mar 11 09:07:25 2015
@@ -62,20 +62,21 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - History</h1>
- <h1 id="the-early-years">The early years</h1>
+ <p>Dependency Manager has quite a long history, that starts over ten
years ago.</p>
+<h2 id="the-early-years">The early years</h2>
<p>The first version of the Dependency Manager was created when Marcel started
working on his first commercial OSGi project back in 2002. At that time, the
OSGi specification was still at R2, and the only solution for managing
dependencies was "service binder" which did not support the dynamics we needed
at that time. Therefore, dependency manager was created, based on a fluent,
declarative Java API.</p>
<p>In 2005, after writing a white paper, dependency manager was presented at
the OSGi DevCon in Paris. At that time, the project had been open sourced, but
not yet at Apache. When the Oscar project finally decided to move to the
incubator, where it became Felix, Dependency Manager was one of the subprojects
that joined.</p>
-<h1 id="life-at-apache">Life at Apache</h1>
+<h2 id="life-at-apache">Life at Apache</h2>
<p>The move to Apache definitely gave the project a lot more visibility and,
besides a larger user base, also attracted a few very talented developers.
Xander did a lot of work in getting some of the higher level design patterns
implemented, and Pierre added support for annotations and ensured that the code
ran well on really big, multi-core systems.</p>
<p>In 2014, after many discussions about new features and improvements we
would like to add, we started experimenting with a completely new codebase,
redesigning some aspects from the ground up based on all the knowledge and
experience that we had gained over the years. About a year later, that lead to
the release of Dependency Manager 4.</p>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.html
Wed Mar 11 09:07:25 2015
@@ -62,13 +62,14 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Apache Felix Dependency Manager - Migrating from earlier
versions</h1>
- <h1 id="migrating-from-version-3">Migrating from version 3</h1>
+ <p>Below is a guide to help you migrate from version 3. Whilst older
versions obviously still exist, we don't think people are still actively using
them.</p>
+<h2 id="migrating-from-version-3">Migrating from version 3</h2>
<p>DependencyManager 4.0 has some API changes that need to be taken into
account when migrating from DependencyManager 3. </p>
<ul>
<li>A dependency can no longer be shared accross components. </li>
@@ -131,7 +132,7 @@ We'll try to release DM artifacts to mav
<span class="nt"></project></span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.html
Wed Mar 11 09:07:25 2015
@@ -62,13 +62,14 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Performance Tuning</h1>
- <h1 id="filter-indices">Filter Indices</h1>
+ <p>To further tune the performance of an application using Dependency
Manager and a lot of services, we created the concept of filter indices. They
work similarly to the way indices speed up relational database queries and are
explained below.</p>
+<h2 id="filter-indices">Filter Indices</h2>
<p>Filter indices allow you to speed up the service resolution process by
skipping the services registry, in favor of a fast index on given service
properties.</p>
<p>The Dependency Manager will look for a set of filter indices in the
<code>org.apache.felix.dependencymanager.filterindex</code> system property.
This system property uses the following syntax,</p>
<div class="codehilite"><pre><span class="n">property</span><span
class="o">-</span><span class="n">index</span> <span class="p">::=</span> <span
class="n">service</span><span class="o">-</span><span class="n">property</span>
<span class="o">|</span> <span class="n">service</span><span
class="o">-</span><span class="n">property</span> <span
class="s">','</span> <span class="n">property</span><span
class="o">-</span><span class="n">index</span>
@@ -83,9 +84,9 @@
<li><em>Aspect indices</em> work with Dependency Manager Aspect services, and
will provide indexing for the specific filters that they use.</li>
<li><em>Adapter indices</em> work like Aspect indices, but for Adapter
services.</li>
</ul>
-<h2 id="performance">Performance</h2>
+<h3 id="performance">Performance</h3>
<p>The index isn't free, but reduces the linear (and wasteful) filter-based
lookup to an indexed log(n) lookup. You can expect noticeable speedup if you
have at least several hundred services.</p>
-<h2 id="examples">Examples</h2>
+<h3 id="examples">Examples</h3>
<div class="codehilite"><pre><span class="o">-</span><span
class="n">Dorg</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">filterindex</span><span class="p">=</span><span
class="n">objectClass</span>
</pre></div>
@@ -107,7 +108,7 @@
<p>Provides indexing for all Aspect services.</p>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,15 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - What's new in version 4?</h1>
- <h1 id="new-thread-model">New thread model</h1>
-<p>DependencyManager 4.0 has been significantly reworked to improve support
for concurrency. The following principles form the basis of the new concurrency
model in DM4.</p>
+ <p>Even though the focus for this version is to completely redo the
internals, we also added a few new features to the code. The most important one
is the new thread model, described directly below. Apart from that we also
added a few smaller features, enumerated below that.</p>
+<h2 id="new-thread-model">New thread model</h2>
+<p>DependencyManager 4 has been significantly reworked to improve support for
concurrency. The following principles form the basis of the new concurrency
model in DM4.</p>
<ul>
<li>All external events that influence the state of dependencies are recorded
and given to the serial executor of the component. We record whatever data
comes in, so when the actual job is run by the serial executor, we still have
access to the original data without having to access other sources whose state
might have changed since.</li>
<li>The serial executor of a component will execute a job immediately if it is
being called by the thread that is already executing jobs.</li>
@@ -88,7 +89,7 @@
<p>Here, all components will be handled by Executors provided by the
ComponentExecutorFactory, except those having a package starting with
"org.apache.felix.dependencymanager.samples.tpool" (because the threadpool is
itself defined using the Dependency Manager API).</p>
<p>You will find a full description of the new thread model in the <a
href="../reference/thread-model.html">Reference</a> section.</p>
-<h1 id="new-features">New features</h1>
+<h2 id="new-features">New features</h2>
<p>In addition, some new features have been implemented in dependency
manager:</p>
<ul>
<li>
@@ -131,7 +132,7 @@ org.apache.felix.dependencymanager.sampl
Some of the samples require that you configure some pids or factory pids from
Web Console, which can be accessed using
<em>http://localhost:8080/system/console/configMgr</em> URL.
Please consult org.apache.felix.dependencymanager.samples/README.samples for
up to date instructions on how to execute the various examples.</p>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665701 by marrs on Tue, 10 Mar 2015 21:16:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-adapter.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-adapter.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-adapter.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Adapter</h1>
- <h1 id="adapters">Adapters</h1>
-<p>Adapters, like <a href="component-aspect.html">aspects</a>, are used to
"extend" existing services, and can publish different services based on the
existing one. An example would be implementing a management interface.</p>
+ <p>Adapters, like <a href="component-aspect.html">aspects</a>, are used
to "extend" existing services, and can publish different services based on the
existing one. An example would be implementing a management interface.</p>
<p>An adapter will be applied to any service that matches the specified
interface and filter. For each matching service an adapter will be created
based on the adapter implementation class. The adapter will be registered with
the specified interface and existing properties from the original service plus
any extra properties you supply here. It will also inherit all dependencies,
and if you declare the original service as a member it will be injected.</p>
<p>An example:</p>
<div class="codehilite"><pre><span class="n">manager</span><span
class="p">.</span><span class="n">createAdapterService</span><span
class="p">(</span><span class="n">AdapteeService</span><span
class="p">.</span><span class="n">class</span><span class="p">,</span>
"<span class="p">(</span><span class="n">foo</span><span
class="p">=</span><span class="n">bar</span><span class="p">)</span>"<span
class="p">)</span>
@@ -78,14 +77,14 @@
</pre></div>
-<h1 id="adapterservice">@AdapterService</h1>
+<h2 id="adapterservice">@AdapterService</h2>
<p>Adapters, like with <em>@AspectService</em>, are used to "extend" existing
services, and can publish different services based on the existing one. When
you annotate an adapter class with the <em>@AdapterService</em>
annotation, it will be applied to any service that matches the implemented
interface and filter. The adapter will be registered with the specified
interface and existing properties from the original service plus any extra
properties you supply here. If you declare the original service as a member
it will be injected. </p>
-<h2 id="annotation-attributes">Annotation attributes:</h2>
+<h3 id="annotation-attributes">Annotation attributes:</h3>
<hr />
<p><strong><code>adapteeService</code></strong> <br />
<em>Required</em>: True <br />
@@ -114,7 +113,7 @@ By default, the adapter will inherit all
<em>Default</em>: --</p>
<p>Sets the static method used to create the adapter service implementation
instance. By default, the default constructor of the annotated class is
used.</p>
-<h2 id="usage-example">Usage example</h2>
+<h3 id="usage-example">Usage example</h3>
<p>Here, the AdapterService is registered into the OSGI registry each time an
AdapteeService is found from the registry. The AdapterImpl class adapts the
AdapteeService to the AdapterService. The AdapterService will also have a
service property (param=value), and will also include eventual service
properties found from the AdapteeService:</p>
<div class="codehilite"><pre> <span class="p">@</span><span
class="n">AdapterService</span><span class="p">(</span><span
class="n">adapteeService</span> <span class="p">=</span> <span
class="n">AdapteeService</span><span class="p">.</span><span
class="n">class</span><span class="p">,</span> <span
class="k">properties</span><span class="p">={@</span><span
class="n">Property</span><span class="p">(</span><span
class="n">name</span><span class="p">=</span>"<span
class="n">param</span>"<span class="p">,</span> <span
class="n">value</span><span class="p">=</span>"<span
class="n">value</span>"<span class="p">)})</span>
<span class="n">class</span> <span class="n">AdapterImpl</span> <span
class="n">implements</span> <span class="n">AdapterService</span> <span
class="p">{</span>
@@ -128,7 +127,7 @@ instance. By default, the default constr
<span class="p">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-aspect.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-aspect.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-aspect.html
Wed Mar 11 09:07:25 2015
@@ -62,18 +62,17 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Aspect</h1>
- <h1 id="aspects">Aspects</h1>
-<p>Aspects, as part of aspect oriented programming, can be used in a dynamic
environment such as OSGi to "extend" existing services and add certain
"capabilities" to them. Examples of these are adding a specific caching
mechanism to a storage service or implementing logging. Aspects in OSGi can be
applied to services and can be added and removed at runtime.</p>
+ <p>Aspects, as part of aspect oriented programming, can be used in a
dynamic environment such as OSGi to "extend" existing services and add certain
"capabilities" to them. Examples of these are adding a specific caching
mechanism to a storage service or implementing logging. Aspects in OSGi can be
applied to services and can be added and removed at runtime.</p>
<p>Aspects allow you to define an "interceptor", or chain of interceptors for
a service to add features like caching or logging, etc. An aspect will be
applied to any service that matches the specified interface and filter. For
each matching service an aspect will be created based on the aspect
implementation class. The aspect will be registered with the same interface and
properties as the original service, plus any extra properties you supply here.
It will also inherit all dependencies, and if you declare the original service
as a member it will be injected.</p>
-<h1 id="aspectservice">@AspectService</h1>
+<h2 id="aspectservice">@AspectService</h2>
<p>The <em>@AspectService</em> annotation allows you to create an aspect
service. It supports the following attributes mentioned below.</p>
-<h2 id="annotation-attributes">Annotation attributes</h2>
+<h3 id="annotation-attributes">Annotation attributes</h3>
<hr />
<p><strong><code>ranking</code></strong> <br />
<em>Required</em>: No <br />
@@ -112,7 +111,7 @@ applying to.</p>
instance. The default constructor of the annotated class is used.
The factoryMethod can be used to provide a specific aspect implements,
like a DynamicProxy.</p>
-<h2 id="usage-example">Usage example:</h2>
+<h3 id="usage-example">Usage example:</h3>
<div class="codehilite"><pre> <span class="p">@</span><span
class="n">AspectService</span><span class="p">(</span><span
class="n">ranking</span><span class="p">=</span>10<span class="p">),</span>
<span class="k">properties</span><span class="p">={@</span><span
class="n">Property</span><span class="p">(</span><span
class="n">name</span><span class="p">=</span>"<span
class="n">param</span>"<span class="p">,</span> <span
class="n">value</span><span class="p">=</span>"<span
class="n">value</span>"<span class="p">)})</span>
<span class="n">class</span> <span class="n">AspectService</span> <span
class="n">implements</span> <span class="n">InterceptedService</span> <span
class="p">{</span>
<span class="o">//</span> <span class="n">The</span> <span
class="n">service</span> <span class="n">we</span> <span class="n">are</span>
<span class="n">intercepting</span> <span class="p">(</span><span
class="n">injected</span> <span class="n">by</span> <span
class="n">reflection</span><span class="p">)</span>
@@ -124,7 +123,7 @@ like a DynamicProxy.</p>
<span class="p">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Bundle Adapter</h1>
- <h1 id="bundle-adapters">Bundle Adapters</h1>
-<p>Bundle adapters are similar to AdapterService, but instead of adapting a
+ <p>Bundle adapters are similar to AdapterService, but instead of
adapting a
service, they adapt a bundle with a certain set of states
(STARTED|INSTALLED|...), and provide a service on top of it.</p>
<p>The bundle adapter will be applied to any bundle that matches the specified
bundle state mask and filter conditions, which may match some of the bundle
@@ -86,9 +85,9 @@ here. If you declare the original bundle
</pre></div>
-<h1 id="bundleadapterservice">@BundleAdapterService</h1>
+<h2 id="bundleadapterservice">@BundleAdapterService</h2>
<p>The following attributes are supported.</p>
-<h2 id="annotation-attributes">Annotation attributes:</h2>
+<h3 id="annotation-attributes">Annotation attributes:</h3>
<hr />
<p><strong><code>filter</code></strong> <br />
<em>Required</em>: False <br />
@@ -124,7 +123,7 @@ exposed service properties.</p>
<em>Default</em>: --</p>
<p>Sets the static method used to create the BundleAdapterService
implementation
instance.</p>
-<h2 id="usage-examples">Usage Examples</h2>
+<h3 id="usage-examples">Usage Examples</h3>
<p>In the following example, a "VideoPlayer" Service is registered into the
OSGi registry each time an active bundle containing a "Video-Path" manifest
header is detected:</p>
<div class="codehilite"><pre><span
class="nd">@BundleAdapterService</span><span class="o">(</span><span
class="n">filter</span> <span class="o">=</span> <span
class="s">"(Video-Path=*)"</span><span class="o">,</span> <span
class="n">stateMask</span> <span class="o">=</span> <span
class="n">Bundle</span><span class="o">.</span><span
class="na">ACTIVE</span><span class="o">,</span> <span
class="n">propagate</span><span class="o">=</span><span
class="kc">true</span><span class="o">)</span>
<span class="kd">public</span> <span class="kd">class</span> <span
class="nc">VideoPlayerImpl</span> <span class="kd">implements</span> <span
class="n">VideoPlayer</span> <span class="o">{</span>
@@ -139,7 +138,7 @@ instance.</p>
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-factory-configuration-adapter.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-factory-configuration-adapter.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-factory-configuration-adapter.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Factory Configuration Adapter Service</h1>
- <h1 id="factory-configuration-adapter-service">Factory Configuration
Adapter Service</h1>
-<p>A factory configuration adapter service creates an adapter for each
matching configuration in Configuration Admin. For each new factory
configuration matching the factoryPid, an adapter will be created based on the
adapter implementation class. The adapter will be registered with the specified
interface and with the specified adapter service properties. Depending on the
propagate parameter, every public factory configuration properties (which don't
start with ".") will be propagated along with the adapter service properties.
It will also inherit all dependencies.</p>
+ <p>A factory configuration adapter service creates an adapter for each
matching configuration in Configuration Admin. For each new factory
configuration matching the factoryPid, an adapter will be created based on the
adapter implementation class. The adapter will be registered with the specified
interface and with the specified adapter service properties. Depending on the
propagate parameter, every public factory configuration properties (which don't
start with ".") will be propagated along with the adapter service properties.
It will also inherit all dependencies.</p>
<p>Usage Example:</p>
<div class="codehilite"><pre><span class="n">manager</span><span
class="p">.</span><span
class="n">createFactoryConfigurationAdapterService</span><span
class="p">(</span>"<span class="n">MyFactoryPid</span>"<span
class="p">,</span> "<span class="n">update</span>"<span
class="p">,</span> <span class="n">true</span><span class="p">)</span>
<span class="p">.</span><span class="n">setInterface</span><span
class="p">(</span><span class="n">AdapterService</span><span
class="p">.</span><span class="n">class</span><span class="p">.</span><span
class="n">getName</span><span class="p">(),</span> <span class="n">new</span>
<span class="n">Hashtable</span><span class="p">()</span> <span
class="p">)</span>
@@ -77,7 +76,7 @@
</pre></div>
-<h1
id="factoryconfigurationadapterservice">@FactoryConfigurationAdapterService</h1>
+<h2
id="factoryconfigurationadapterservice">@FactoryConfigurationAdapterService</h2>
<p>Annotates a class that acts as a Factory Configuration Adapter Service.
For each new Config Admin factory configuration matching the specified
factoryPid, an instance of this service will be created. The adapter will be
@@ -88,7 +87,7 @@ propagated along with the adapter servic
<p>Like in @ConfigurationDependency, you can optionally specify the meta types
of
your configurations for Web Console GUI customization (configuration
heading/descriptions/default values/etc ...). </p>
-<h2 id="annotation-attributes">Annotation attributes:</h2>
+<h3 id="annotation-attributes">Annotation attributes:</h3>
<hr />
<p><strong><code>provides</code></strong> <br />
<em>Required</em>: False <br />
@@ -134,7 +133,7 @@ are merged with these. </p>
<em>Required</em>: False <br />
<em>Default</em>: --</p>
<p>Sets the static method used to create the adapter instance.</p>
-<h2 id="usage-examples">Usage Examples</h2>
+<h3 id="usage-examples">Usage Examples</h3>
<p>Here, a "Dictionary" service instance is instantiated for each existing
factory configuration instances matching the "DictionaryServiceFactory"
factory pid:</p>
@@ -214,7 +213,7 @@ it's better to use standard bnd metatype
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-resource-adapter.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-resource-adapter.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-resource-adapter.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Resource Adapter</h1>
- <h1 id="resource-adapters">Resource Adapters</h1>
-<p>Resource adapters work just like adapters, but instead of working with
services, they work with resources. Resources, represented as a URL, are an
abstraction introduced to provide a generic way of dealing with "blobs" and can
be resources inside a bundle, filesystem or some kind of data store.</p>
+ <p>Resource adapters work just like adapters, but instead of working
with services, they work with resources. Resources, represented as a URL, are
an abstraction introduced to provide a generic way of dealing with "blobs" and
can be resources inside a bundle, filesystem or some kind of data store.</p>
<p>A resource adapter will be applied to any resource that matches the
specified filter condition. For each matching resource an adapter will be
created based on the adapter implementation class. The adapter will be
registered with the specified interface and existing properties from the
original resource plus any extra properties you supply here. It will also
inherit all dependencies, and if you declare the original service as a member
it will be injected.</p>
<p>Usage Example:</p>
<div class="codehilite"><pre><span class="n">manager</span><span
class="p">.</span><span class="n">createResourceAdapterService</span><span
class="p">(</span>"<span class="p">(</span><span
class="o">&</span><span class="p">(</span><span class="n">path</span><span
class="p">=</span><span class="o">/</span><span class="n">test</span><span
class="p">)(</span><span class="n">repository</span><span
class="p">=</span><span class="n">TestRepository</span><span
class="p">))</span>"<span class="p">,</span> <span
class="n">true</span><span class="p">)</span>
@@ -78,7 +77,7 @@
</pre></div>
-<h1 id="resourceadapterservice">@ResourceAdapterService</h1>
+<h2 id="resourceadapterservice">@ResourceAdapterService</h2>
<p>Resource adapters are things that adapt a resource instead of a service,
and
provide an adapter service on top of this resource. Resources are an
abstraction that is introduced by the dependency manager, represented as a
URL. They can be implemented to serve resources embedded in bundles, somewhere
on a file system or in an http content repository server, or database.</p>
@@ -95,9 +94,9 @@ properties will be propagated from the r
<li><em>protocol</em>: the resource URL protocol</li>
<li><em>port</em>: the resource URL port </li>
</ul>
-<h2 id="annotation-attributes">Annotation attributes</h2>
+<h3 id="annotation-attributes">Annotation attributes</h3>
<p>TBD</p>
-<h2 id="usage-examples">Usage Examples:</h2>
+<h3 id="usage-examples">Usage Examples:</h3>
<p>Here, the "VideoPlayer" service provides a video service on top of any
movie
resources, with service properties "host"/"port"/"protocol"/"path" extracted
from the resource URL:</p>
@@ -112,7 +111,7 @@ from the resource URL:</p>
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-singleton.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-singleton.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-singleton.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Singleton Component</h1>
- <h1 id="component">Component</h1>
-<p>Components are the main building blocks for OSGi applications. They can
publish themselves as a service, and they can have dependencies. These
dependencies will influence their life cycle as component will only be
activated when all required dependencies are available.</p>
+ <p>Components are the main building blocks for OSGi applications. They
can publish themselves as a service, and they can have dependencies. These
dependencies will influence their life cycle as component will only be
activated when all required dependencies are available.</p>
<p>Usage example:</p>
<div class="codehilite"><pre><span class="n">dm</span><span
class="p">.</span><span class="n">add</span><span class="p">(</span><span
class="n">createComponent</span><span class="p">()</span>
<span class="p">.</span><span class="n">setInterface</span><span
class="p">(</span><span class="n">TranslationService</span><span
class="p">.</span><span class="n">class</span><span class="p">.</span><span
class="n">getName</span><span class="p">(),</span> <span
class="n">null</span><span class="p">)</span>
@@ -86,11 +85,11 @@
</pre></div>
-<h1 id="component_1">@Component</h1>
+<h2 id="component">@Component</h2>
<p>This annotation annotates an implementation class that optionally publishes
an OSGi service, and optionally has some dependencies, with a managed
lifecycle. </p>
-<h2 id="annotation-attributes">Annotation attributes</h2>
+<h3 id="annotation-attributes">Annotation attributes</h3>
<hr />
<p><strong><code>provides</code></strong> <br />
<em>Required</em>: No <br />
@@ -149,7 +148,7 @@ is used. If specified, then this attribu
method, which is called for providing the configuration supplied by the
factory that instantiated this component. The current Service properties will
be also updated with all public properties (which don't start with a dot).</p>
-<p>Usage example:</p>
+<h3 id="usage-example">Usage example:</h3>
<div class="codehilite"><pre><span class="cm">/**</span>
<span class="cm"> * This component will be activated once the bundle is
started and when all required dependencies</span>
<span class="cm"> * are available.</span>
@@ -233,7 +232,7 @@ be also updated with all public properti
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/components.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/components.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/components.html
Wed Mar 11 09:07:25 2015
@@ -62,7 +62,7 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
@@ -70,7 +70,7 @@
<h1>Dependency Manager - Components</h1>
<p>Components are declared by the dependency manager and can be
implemented by POJOs that contain no references to the OSGi framework
whatsoever. Components are the main building blocks of your OSGi application.
They have a life cycle, can register themselves as services and have zero or
more dependencies.</p>
<p>You can either use the Java API or the Java Annotations and this reference
section describes both.</p>
-<h1 id="types-of-components">Types of Components</h1>
+<h2 id="types-of-components">Types of Components</h2>
<p>There are different types of Dependency Manager components:</p>
<ul>
<li><a href="component-singleton.html"><em>Component</em></a>: Components are
the main building blocks for OSGi applications. They can publish themselves as
a service, and/or they can have dependencies. These dependencies will influence
their life cycle as component will only be activated when all required
dependencies are available.</li>
@@ -80,7 +80,7 @@
<li><a href="component-resource-adapter.html"><em>Resource Adapter
Service</em></a>: creates an OSGi service on top of a specific Resource.</li>
<li><a href="component-factory-configuration-adapter.html"><em>Factory
Configuration Adapter Service</em></a>: creates an OSGi service from
ConfigAdmin, using a factoryPid, and a ManagedServiceFactory.</li>
</ul>
-<h1 id="life-cycle">Life cycle</h1>
+<h2 id="life-cycle">Life cycle</h2>
<p>The dependency manager, as part of a bundle, shares the generic bundle life
cycle explained in the OSGi specification. The life cycle of the dependency
manager itself, and the components it manages, can be located inside the
<em>active</em> state of the hosting bundle.</p>
<p>Each component you define gets its own life cycle, which is explained in
the state diagram below.</p>
<p><img src="./diagrams/statediagram.png" alt="State diagram" style="width:
430px"/></p>
@@ -98,14 +98,14 @@
<li><code>()</code>.</li>
</ul>
<p>If you don't specify anything, the methods with these names will be invoked
on the instance. By using <code>setCallbacks()</code> you can however change
this behavior: You can change the names of the methods to look for. Any methods
that are set to <code>null</code> will not be invoked at all. Another thing you
can do is to specify a different instance to invoke these methods on. If you do
that, you will usually want to use the first signature, which gives you a
reference to the <code>Component</code> whose life cycle method was invoked.</p>
-<h1 id="interfaces-and-properties">Interfaces and properties</h1>
+<h2 id="interfaces-and-properties">Interfaces and properties</h2>
<p>Components in the context of the dependency manager can be published as
OSGi services under one or more interface names, plus optionally a set of
properties. This is no different than a normal OSGi service. It's important to
mention that you don't have to register a service. If you don't, you basically
created a component that can do work and have dependencies and a managed life
cycle.</p>
-<h1 id="composition">Composition</h1>
+<h2 id="composition">Composition</h2>
<p>When implementing more complex components, you often find yourself using
more than one instance. However, several of these instances might want to have
dependencies injected. In such cases you need to tell the dependency manager
which instances to consider. This has to be a fixed set of instances
however.</p>
-<h1 id="factories">Factories</h1>
+<h2 id="factories">Factories</h2>
<p>Out of the box, there already is support for lazy instantiation, meaning
that the dependency manager can create component instances for you when their
required dependencies are resolved. However, sometimes creating a single
instance using a default constructor is not enough. In those cases, you can
tell the dependency manager to delegate the creation process to a factory.</p>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependencies.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependencies.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependencies.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Dependencies</h1>
- <h1 id="dependencies">Dependencies</h1>
-<p>The dependency manager supports many different types of dependencies, all
of which can be required or optional. A dependency can be added to one or more
components and it is possible to add them dynamically (even from within the
component itself if necessary, which allows for some really dynamic dependency
configuration).</p>
+ <p>The dependency manager supports many different types of dependencies,
all of which can be required or optional. A dependency can be added to one or
more components and it is possible to add them dynamically (even from within
the component itself if necessary, which allows for some really dynamic
dependency configuration).</p>
<h2 id="injection">Injection</h2>
<p>One way to deal with dependencies is to have them injected into your
component instances automatically. All you need to do is simply declare a field
of the same type as your dependency, make the member volatile so any changes
will become visible immediately and you're done. If a dependency is optional, a
null object will be injected if the dependency is not available.</p>
<p>Sometimes you need more control over injection, so optionally you can even
specify the name of the field to inject into. This allows you to depend on
different dependencies of the same type, or simply to prevent injection into
more than one field.</p>
@@ -90,7 +89,7 @@
In the org.apache.felix.dependencymanager.samples module, you can refer to
src/org/apache/felix/dependencymanager/samples/customdep/README file,
which describes a custom "PathDependency" that tracks files that are added or
removed from /tmp/ directory.</p>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-bundle.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-bundle.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-bundle.html
Wed Mar 11 09:07:25 2015
@@ -62,15 +62,14 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Bundle Dependency</h1>
- <h1 id="bundle-dependency">Bundle Dependency</h1>
-<p>A bundle dependency allows you to depend on a bundle in a certain set of
states, as indicated by a state mask. You can also use a filter condition that
is matched against all manifest entries. Finally you can provide a reference to
an existing bundle.</p>
-<h1 id="bundledependency">@BundleDependency</h1>
+ <p>A bundle dependency allows you to depend on a bundle in a certain set
of states, as indicated by a state mask. You can also use a filter condition
that is matched against all manifest entries. Finally you can provide a
reference to an existing bundle.</p>
+<h2 id="bundledependency">@BundleDependency</h2>
<p>A bundle dependency allows you to depend on a bundle in a certain set of
states (INSTALLED\|RESOLVED\|STARTED\|...), as indicated by a state mask. You
can also use a filter condition that is matched against all manifest entries.
When applied on a class field, optional unavailable dependencies are injected
with a NullObject.</p>
<p>Attributes:</p>
<ul>
@@ -83,7 +82,7 @@
<li><em>name</em>: The name used when dynamically configuring this dependency
from the init method. Specifying this attribute allows to dynamically configure
the dependency filter and required flag from the Service's init method. All
unnamed dependencies will be injected before the init() method; so from the
init() method, you can then pick up whatever information needed from already
injected (unnamed) dependencies, and configure dynamically your named
dependencies, which will then be calculated once the init() method returns.
Please refer to <a href="">Here</a>.</li>
</ul>
-<p>Usage Examples</p>
+<h2 id="usage-examples">Usage Examples</h2>
<p>In the following example, the "SCR" Component allows to track all bundles
containing a specific "Service-Component" OSGi header, in order to load and
manage all Declarative Service components specified in the SCR xml documents
referenced by the header:</p>
<div class="codehilite"><pre><span class="nd">@Component</span>
<span class="kd">public</span> <span class="kd">class</span> <span
class="nc">SCR</span> <span class="o">{</span>
@@ -102,7 +101,7 @@ Please refer to <a href="">Here</a>.</li
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-configuration.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-configuration.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-configuration.html
Wed Mar 11 09:07:25 2015
@@ -62,14 +62,13 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Configuration Dependency</h1>
- <h1 id="configuration-dependency">Configuration Dependency</h1>
-<p>A configuration dependency is always required, and allows you to depend on
the availability of a valid configuration for your component. Optional
configuration dependencies are not supported because in that case you can just
as well register as a <code>ManagedService</code> yourself.</p>
+ <p>A configuration dependency is always required, and allows you to
depend on the availability of a valid configuration for your component.
Optional configuration dependencies are not supported because in that case you
can just as well register as a <code>ManagedService</code> yourself.</p>
<h2 id="configurationdependency">@ConfigurationDependency</h2>
<p>A configuration dependency is always required, and allows you to depend on
the availability of a valid configuration for your component. This dependency
requires the OSGi Configuration Admin Service.</p>
<p>Annotation attributes:</p>
@@ -83,7 +82,7 @@ configuration dependency (the map has to
with the dependency name). Then the dependency will be evaluated after the
component init
method, and will be injected before the start method. </li>
</ul>
-<p>Usage Examples</p>
+<h2 id="usage-examples">Usage Examples</h2>
<p>In the following example, the "Printer" component depends on a
configuration whose PID name is "org.apache.felix.sample.Printer". This service
will initialize its ip/port number from the provided configuration:</p>
<div class="codehilite"><pre><span class="kn">package</span> <span
class="n">org</span><span class="o">.</span><span class="na">apache</span><span
class="o">.</span><span class="na">felix</span><span class="o">.</span><span
class="na">sample</span><span class="o">;</span>
@@ -182,7 +181,7 @@ another pid for a second "global" config
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-resource.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-resource.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-resource.html
Wed Mar 11 09:07:25 2015
@@ -62,15 +62,14 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Resource Dependency</h1>
- <h1 id="resource-dependency">Resource Dependency</h1>
-<p>A resource dependency allows you to depend on a resource. A resource is a
URL and you can use a filter condition based on protocol, host, port, path and
URL.</p>
-<h1 id="resourcedependency">@ResourceDependency</h1>
+ <p>A resource dependency allows you to depend on a resource. A resource
is a URL and you can use a filter condition based on protocol, host, port, path
and URL.</p>
+<h2 id="resourcedependency">@ResourceDependency</h2>
<p>Annotates a method of field as a Resource Dependency. A resource dependency
allows you to depend on a resource. Resources are an abstraction that is
introduced by the dependency manager, represented as a URL. They can be
implemented to serve resources embedded in bundles, somewhere on a file system
or in an http content repository server, or database.
A resource is a URL and you can use a filter condition based on protocol,
host, port, and path.</p>
<p>Attributes:</p>
@@ -83,8 +82,8 @@ A resource is a URL and you can use a fi
<li><em>propagate</em>: Specifies if the resource URL properties must be
propagated. If set to true, then the URL properties
("protocol"/"host"/"port"/"path") will be propagated to the service properties
of the component which is using this dependency.</li>
<li><em>name</em>: The name used when dynamically configuring this dependency
from the init method. Specifying this attribute allows to dynamically configure
the dependency filter and required flag from the Service's init method. All
unnamed dependencies will be injected before the init() method; so from the
init() method, you can then pick up whatever information needed from already
injected (unnamed) dependencies, and configure dynamically your named
dependencies, which will then be calculated once the init() method returns.
Please refer to <a href="">Here</a>.</li>
</ul>
-<p>Usage Examples
-Here, the "VideoPlayer" component plays any provided MKV video resources</p>
+<h2 id="usage-examples">Usage Examples</h2>
+<p>Here, the "VideoPlayer" component plays any provided MKV video resources</p>
<div class="codehilite"><pre><span class="nd">@Component</span>
<span class="kd">public</span> <span class="kd">class</span> <span
class="nc">VideoPlayer</span> <span class="o">{</span>
<span class="nd">@ResourceDependency</span><span class="o">(</span><span
class="n">required</span><span class="o">=</span><span
class="kc">false</span><span class="o">,</span> <span
class="n">filter</span><span class="o">=</span><span
class="s">"(path=/videos/*.mkv)"</span><span class="o">)</span>
@@ -149,7 +148,7 @@ Here, the "VideoPlayer" component plays
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-service.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-service.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dependency-service.html
Wed Mar 11 09:07:25 2015
@@ -62,15 +62,14 @@
<div class="main">
<div class="breadcrump" style="font-size: 80%;">
- <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Dependency
Manager 4</a>
+ <a href="/">Home</a> » <a
href="/documentation.html">Documentation</a> » <a
href="/documentation/subprojects.html">Apache Felix Subproject
Documentation</a> » <a
href="/documentation/subprojects/apache-felix-dependency-manager.html">Apache
Felix Dependency Manager</a>
</div>
<h1>Dependency Manager - Service Dependency</h1>
- <h1 id="service-dependency">Service Dependency</h1>
-<p>A service dependency allows you to depend on a service, either by type or
by using an additional filter condition. You can even depend on an existing
service directly by providing a reference to it.</p>
-<h1 id="servicedependency">@ServiceDependency</h1>
+ <p>A service dependency allows you to depend on a service, either by
type or by using an additional filter condition. You can even depend on an
existing service directly by providing a reference to it.</p>
+<h2 id="servicedependency">@ServiceDependency</h2>
<p>Annotates a method or a field for injecting a Service Dependency on it.
When applied on a class field, optional unavailable dependencies are injected
with a NullObject.</p>
<p>Annotation attributes:</p>
<ul>
@@ -83,7 +82,8 @@ Notice that the changed/removed callback
<li><em>name</em>: The name used when dynamically configuring this dependency
from the init method. Specifying this attribute allows to dynamically configure
the dependency filter and required flag from the Service's init method. All
unnamed dependencies will be injected before the init() method; so from the
init() method, you can then pick up whatever information needed from already
injected (unnamed) dependencies, and configure dynamically your named
dependencies, which will then be calculated once the init() method returns.
Please refer to <a href="">Here</a> for more informations about named
dependencies.</li>
<li><em>propagate</em>: Returns true if the dependency service properties must
be published along with the service. Any additional service properties
specified directly are merged with these.</li>
</ul>
-<p>Usage Example: Here, the MyComponent component is injected with a
dependency over a "MyDependency" service.</p>
+<h2 id="usage-example">Usage Example:</h2>
+<p>Here, the MyComponent component is injected with a dependency over a
"MyDependency" service.</p>
<div class="codehilite"><pre><span class="nd">@Component</span>
<span class="kd">class</span> <span class="nc">MyComponent</span> <span
class="o">{</span>
<span class="nd">@ServiceDependency</span><span class="o">(</span><span
class="n">timeout</span><span class="o">=</span><span
class="mi">15000</span><span class="o">)</span>
@@ -138,7 +138,7 @@ Notice that the changed/removed callback
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665703 by marrs on Tue, 10 Mar 2015 21:21:26 +0000
+ Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project