felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r1665701 - /felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/
Date Tue, 10 Mar 2015 21:16:26 GMT
Author: marrs
Date: Tue Mar 10 21:16:26 2015
New Revision: 1665701

URL: http://svn.apache.org/r1665701
Updated titles and some formatting.


Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/annotations.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,14 +1,9 @@
-Title: Dependency Manager SpellChecker Sample
-Excerpt: Basic concepts using a full SpellChecker sample code.
+Title: Dependency Manager - Annotations
-This section presents a quick overview of the capabilities and usage of the 
-DependencyManager java 5 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 dependencymanager/samples.annotation

+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 `dependencymanager/samples.annotation` subproject.
-## Architecture
+# Architecture
 Instead of writing Activators which extends the DependencyActivatorBase class, service 
 components can now be annotated using the annotations provided by the 
@@ -27,7 +22,7 @@ DependencyManager programmatic API in or
 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.
-## Registering a Service
+# Registering a Service
 To register a service, your can annotate your class with a *@Component* annotation, and 
 an instance of your class will be registered under all directly implemented interfaces 
@@ -76,7 +71,7 @@ for invoking  the proper functions.
 So, coming back to the sample code, the SpellChecker class registers  itself into the OSGi
registry, using the *provides* attribute, which just refer to our SpellChecker class, and
the two  mandatory Gogo service properties are also specified using the *@Property* 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 *@Start* lifecycle callback, but we will see
this feature in a another section.
-## Depending on a Service
+# Depending on a Service
 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: 
@@ -157,7 +152,7 @@ DictionaryService services in our dictio
 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.
-## Creating a Service from ConfigAdmin
+# Creating a Service from ConfigAdmin
 The *@Component* annotation is not the only one for creating services. Another one is 
 the *@FactoryConfigurationAdapterService* annotation which allows to instantiate many 
@@ -270,7 +265,7 @@ Next, here is our DictionaryImpl that wi
-## Providing an Aspect
+# Providing an Aspect
 As we have seen in the previous section, there are many annotations  that can be used 
 to specify a service. Another one is the *@AspectService* annotation. This annotation 
@@ -344,7 +339,7 @@ used to configure the extra English word
 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.
-## How to run the sample code
+# How to run the sample code
 Just import the Dependency source distribution in bndtools and check the following samples:

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/background.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,6 +1,6 @@
-Title: Apache Felix Dependency Manager - Background
+Title: Dependency Manager - Background
-## Background
+# Background
 In an OSGi framework, services are deployed using bundles and these bundles feature two types
of dependencies: 
@@ -17,7 +17,7 @@ In real implementations, you are probabl
 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.
-## Design Goals
+# Design Goals
 The goals that drove the design of the dependency manager are:

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/design-patterns.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,22 +1,22 @@
-Title: Apache Felix Dependency Manager - Design Patterns
+Title: Dependency Manager - Design Patterns
-## OSGi Design Patterns
+# OSGi Design Patterns
 This section lists a couple of design patterns as they can be applied in an OSGi context.
-### Singleton Service
+## Singleton Service
 Provides a service as long as its dependencies are resolved.
-#### Motivation
+### Motivation
 In a dynamic framework, services can come and go. Components that publish a service are often
themselves dependent on other services to perform their task. In such cases, they have a dependency
on those services and it makes sense to only publish their own services when these dependencies
are available. Being able to declare such dependencies in code ensures consistent life cycle
-#### Structure
+### Structure
 <img src="./diagrams/singleton.png" alt="Singleton" style="width: 190px"/>
-#### Code Example
+### Code Example
     public class Activator extends DependencyActivatorBase {
@@ -39,19 +39,19 @@ In a dynamic framework, services can com
-### Aspect Service
+## Aspect Service
 Provides an aspect on top of a specific type of service.
-#### Motivation
+### Motivation
 In aspect oriented programming, supporting functions are isolated from the main application's
business logic. This increases modularity at the source level by allowing the separation of
cross-cutting concerns. In OSGi we want to extend this modularity to the runtime, therefore
we implement aspects to work on certain services, where the aspect itself publishes that same
service but (usually) with a higher priority. This allows you to dynamically add and remove
-#### Structure
+### Structure
 <img src="./diagrams/aspect.png" alt="Aspect" style="width: 190px"/>
-#### Code Example
+### Code Example
     public class Activator extends DependencyActivatorBase {
@@ -78,19 +78,19 @@ In aspect oriented programming, supporti
-### Adapter Service
+## Adapter Service
 Provides an adapter for a specific type of service.
-#### Motivation
+### Motivation
 Like with aspects, sometimes you want to create adapters for certain services, which add
certain behavior that results in the publication of (in this case) a different service. Adapters
can dynamically be added and removed and allow you to keep your basic services implementations
clean and simple, adding extra features on top of them in a modular way. 
-#### Structure
+### Structure
 <img src="./diagrams/adapter.png" alt="Adapter" style="width: 190px"/>
-#### Code Example
+### Code Example
     public class Activator extends DependencyActivatorBase {
@@ -119,45 +119,45 @@ Like with aspects, sometimes you want to
-### Resource Adapter Service
+## Resource Adapter Service
 Provides an adapter for a specific type of resource.
-#### Motivation
+### Motivation
 Resource adapters are similar to normal adapters, but instead of requiring a service, they
require a resource and provide a service on top of it. 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 a content repository or database.
-#### Structure
+### Structure
 <img src="./diagrams/resourceadapter.png" alt="Singleton" style="width: 180px"/>
-### Temporal Dependency
+## Temporal Dependency
 Provides a proxy that hides the service dynamics of a dependency, even if it disappears for
a short time.
-#### Motivation
+### Motivation
 As a service consumer, you sometimes do not want to deal with the dynamics of services and
the fact that they tend to go away for short periods of time whilst their hosting bundle gets
updated. A temporal dependency provides you with a proxy that hides these dynamics and blocks
your calls if you try to invoke a method on a service that is currently "updating". The maximum
time to wait is configurable and you will get an exception if no new service becomes available
before that time.
-#### Structure
+### Structure
-### Null Object
+## Null Object
 Provides an implementation of an object that does nothing and can be used in the absence
of the real object.
-#### Motivation
+### Motivation
 When a component depends on a service, but the dependency is optional, it means that it will
use this service when available, but it can still operate if it's not. Constantly checking
in your code if a service is actually available tends to lead to code with a lot of "`if (service
!= null) service.invoke();`" constructions which do not help with code readability. Instead,
the dependency manager offers you a mechanism where it will inject null objects for services
that are currently not available so you can simply invoke methods on them that "do nothing".
-#### Structure
+### Structure
-### Whiteboard
+## Whiteboard
 Handles listeners by leveraging the OSGi service registry to publish and look them up.
-#### Motivation
+### Motivation
 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 ["Listeners considered harmful: the 'whiteboard' pattern"](http://www.osgi.org/wiki/uploads/Links/whiteboard.pdf)
-#### Structure
+### Structure

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/development.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,12 +1,12 @@
-Title: Apache Felix Dependency Manager - Development
+Title: Dependency Manager - Development
 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.
-## Prerequisites
+# Prerequisites
 If you are building a released `org.apache.felix.dependencymanager-r<n>-src.zip` artifact,
then you also have to extract the `org.apache.felix.dependencymanager-r<n>-deps.zip`
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.
-## Compilation Using gradle:
+# Compilation Using gradle:
 - Install Java 7.
@@ -26,7 +26,7 @@ If you are building a released `org.apac
 	$ ./gradlew check
-## Compilation Using Eclipse:
+# Compilation Using Eclipse:
 - Install either Eclipse Kepler SR2 or Eclipse Luna.
 - Use the dependency manager folder as the root of your workspace.

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/history.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,12 +1,12 @@
-Title: Apache Felix Dependency Manager - History
+Title: Dependency Manager - History
-## The early years
+# The early years
 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.
 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.
-## Life at Apache
+# Life at Apache
 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.

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/javadocs.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/javadocs.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/javadocs.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/javadocs.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,5 +1,4 @@
-Title: Apache Felix Dependency Manager - Javadocs
-Excerpt: Dependency Manager javadocs
+Title: Dependency Manager - JavaDocs
-The various Dependency Manager javadocs for the API, the Annotations, and the Runtime can
be found from the [main felix apidocs homepage](http://felix.apache.org/apidocs/).
+The various Dependency Manager JavaDocs for the API, the Annotations, and the Runtime can
be found from the [main felix apidocs homepage](http://felix.apache.org/apidocs/).

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.mdtext
Tue Mar 10 21:16:26 2015
@@ -65,6 +65,3 @@ For example:
-# Migrating from version 2

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-other-solutions.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-other-solutions.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-other-solutions.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/migrating-from-other-solutions.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,6 +1,6 @@
 Title: Apache Felix Dependency Manager - Migrating from other solutions
+Watch this space! :)
 # Declarative Services

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/performance-tuning.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,6 +1,6 @@
-Title: Apache Felix Dependency Manager - Performance Tuning
+Title: Dependency Manager - Performance Tuning
-### Filter Indices
+# Filter Indices
 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.
@@ -16,11 +16,11 @@ The implementation ships with three kind
 - *Aspect indices* work with Dependency Manager Aspect services, and will provide indexing
for the specific filters that they use.
 - *Adapter indices* work like Aspect indices, but for Adapter services.
-#### Performance
+## Performance
 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.
-#### Examples
+## Examples
 Sets an index on `objectClass`, speeding up lookups for any filter that contains an `objectClass`
in its filter (all regular services do).

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/resources.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/resources.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/resources.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/resources.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,4 +1,4 @@
-Title: Resource adapters
+Title: Dependency Manager - Resource adapters
 Resource adapters are a special type of adapters which can adapt a resource into an OSGi
service. These resources can be all kinds of resources, e.g. bundle resources, files, database
records, anything as long as it can be resolved though a URL.

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.mdtext?rev=1665701&r1=1665700&r2=1665701&view=diff
--- felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.mdtext
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-dependency-manager/guides/whatsnew.mdtext
Tue Mar 10 21:16:26 2015
@@ -1,6 +1,6 @@
-Title: Apache Felix Dependency Manager - What's new in version 4?
+Title: Dependency Manager - What's new in version 4?
-## New thread model
+# New thread model
 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.
@@ -25,7 +25,7 @@ Here, all components will be handled by
 You will find a full description of the new thread model in the [Reference](../reference/thread-model.html)
-## New features
+# New features
 In addition, some new features have been implemented in dependency manager:
@@ -54,7 +54,7 @@ Use "add-require-capability=true" option
 * The Annotations "Factory Sets" are deprecated (FELIX-4684): You can now use a DS-like ComponentFactory
API by a nice api which is exported by the runtime bundle.
 See this [example](https://svn.apache.org/repos/asf/felix/trunk/dependencymanager/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/device/annot/DeviceAndParameterFactory.java)
from the samples in the source distribution.
-## Sample codes
+# Sample code
 The source distribution includes many sample codes which can be run directly under Eclipse
and BndTools. The samples are available in the 
 org.apache.felix.dependencymanager.samples/ module.

View raw message