This is an automated email from the ASF dual-hosted git repository.
djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/felix-antora-site.git
The following commit(s) were added to refs/heads/main by this push:
new 97cedc0 FELIX-5076 fix some broken links and anchors, convert
Markdown tables to AsciiDoc
new b4ae68d Merge pull request #3 from ahus1/FELIX-5076-fix-broken-links
97cedc0 is described below
commit 97cedc01eb6b593dbd1db701dd58e6207d7bc977
Author: Alexander Schwartz <[email protected]>
AuthorDate: Sun Jan 2 17:12:36 2022 +0100
FELIX-5076 fix some broken links and anchors, convert Markdown tables to
AsciiDoc
---
conversion-notes.adoc | 9 +-
modules/ROOT/pages/community/contributing.adoc | 2 +-
.../pages/faqs/apache-felix-scr-plugin-faq.adoc | 2 +-
.../reference/dm-annotations.adoc | 4 +-
...he-felix-framework-launching-and-embedding.adoc | 2 +
...apache-felix-framework-usage-documentation.adoc | 15 +--
.../apache-felix-gogo/rfc-147-overview.adoc | 20 ++--
.../pages/subprojects/apache-felix-inventory.adoc | 8 +-
.../apache-felix-maven-bundle-plugin-bnd.adoc | 6 +-
.../apache-felix-maven-scr-plugin-use.adoc | 31 ++---
.../scr-annotations.adoc | 126 ++++++++++++---------
.../scr-javadoc-tags.adoc | 12 +-
.../extending-the-apache-felix-web-console.adoc | 2 +-
13 files changed, 124 insertions(+), 115 deletions(-)
diff --git a/conversion-notes.adoc b/conversion-notes.adoc
index 6c81cd8..aa83a56 100644
--- a/conversion-notes.adoc
+++ b/conversion-notes.adoc
@@ -186,11 +186,8 @@ Since Asciidoc has some notion of grammar, you'll need to
fix the problems.
Title: ` :: replace with `= `
-Error `level 0 sections can only be used when doctype is book` :: More deeply
nest sections so body sections are at least `== `.
-This may be facilitated in jetbrains products with an on-page regex
search/replace from `
-(=+ )` to `
-
-=$1`.
+Error `level 0 sections can only be used when doctype is book` :: More deeply
nest sections so body sections are at least ``== ``.
+This may be facilitated in jetbrains products with an on-page regex
search/replace from ``(=+ )`` to `=$1`.
There are numerous classes of problems this does not cover.
The first step is probably to eliminate the command line errors/warnings.
@@ -236,7 +233,7 @@ echo '#!/bin/sh' >move-png.sh
find modules -name "*.png" -exec sh -c 'echo mkdir -p `dirname $0`\\ngit
mv $0 $0' {} \; |sed 's/\([gp]\) modules\/ROOT\/pages/\1
modules\/ROOT\/images/g' >>move-png.sh
chmod u+x move-png.sh
./move-png.sh
----
+----
You may need to move pngs with spaces in their filenames by hand.
diff --git a/modules/ROOT/pages/community/contributing.adoc
b/modules/ROOT/pages/community/contributing.adoc
index b9276ba..cdb149b 100644
--- a/modules/ROOT/pages/community/contributing.adoc
+++ b/modules/ROOT/pages/community/contributing.adoc
@@ -44,7 +44,7 @@ The steps for granting software are a little more complicated
since we need to e
For grants, you should:
. Verify that you have the authorization to donate the code.
-. Review our xref:development.adoc[developer documentation] as well as the
general https://www.apache.org/foundation/getinvolved.html[Apache
documentation] to determine whether you would really like be involved with us
and how we work.
+. Review our xref:development/coding-standards.adoc[developer documentation]
as well as the general
https://www.apache.org/foundation/getinvolved.html[Apache documentation] to
determine whether you would really like be involved with us and how we work.
. Assuming you're still interested, create a
https://issues.apache.org/jira/browse/Felix[JIRA] issue describing the code you
wish to donate.
. Attach an archive containing the code along with an MD5 signature of the
archive to the above issue.
You should remove any existing headers from the source files and add the
standard Apache header to each.
diff --git a/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc
b/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc
index d1cecdc..35b487e 100644
--- a/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc
+++ b/modules/ROOT/pages/faqs/apache-felix-scr-plugin-faq.adoc
@@ -3,7 +3,7 @@
This page provides answers to frequently asked questions using the Maven SCR
Plugin.
-See xref:subprojects/apache-felix-maven-scr-plugin.adoc[] for documentation on
that plugin.
+See
xref:subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc[]
for documentation on that plugin.
== Should I still use the Apache Felix SCR annotations over the official OSGi
annotations?
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
b/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
index b6db0d2..b949ab7 100644
---
a/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
+++
b/modules/ROOT/pages/subprojects/apache-felix-dependency-manager/reference/dm-annotations.adoc
@@ -335,7 +335,7 @@ The manager which is in charge of maintaining the state of
components is implem
So, during activation, the component goes through a number of states, where
each transition includes the invocation of the following lifecycle method
callbacks on the service implementation:
*
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Init.html[@Init]:
this callback is invoked after all required dependencies have been injected.
-In this method, you can yet add more dynamic dependencies using the DM API,
or you can possibly configure other dependencies filter and required flags (see
<<# Dynamic dependency configuration,Dynamic dependency configuration>>).
+In this method, you can yet add more dynamic dependencies using the DM API,
or you can possibly configure other dependencies filter and required flags (see
<<_dynamic_dependency_configuration,Dynamic dependency configuration>>).
*
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Start.html[@Start]:
this callback is invoked after all required dependencies added in the @Init
method have been injected.
*
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Registered.html[@Registered]:
this callback is invoked after the service component is registered (if the
component provides a service).
The callback can takes as argument a ServiceRegistration parameter.
@@ -354,7 +354,7 @@ When all required dependencies are available:
* inject all optional dependencies defined on class fields, possibly with a
_NullObject_ if the dependency is not available.
* call the component init method (annotated with _@Init_, see (see
http://felix.apache.org/apidocs/dependencymanager.annotations/r13/org/apache/felix/dm/annotation/api/Init.html[@Init
javadoc]).).
In the init method, you are yet allowed to add some additional dependencies
using the Dependency Manager API or DM Lambda).
-Alternatively, you can also configure some dependencies dynamically
(explained later, in <<#dynamic-dependency-configuration,Dynamic Dependency
Configuration>>.
+Alternatively, you can also configure some dependencies dynamically
(explained later, in <<_dynamic_dependency_configuration,Dynamic Dependency
Configuration>>.
2) Wait for extra required dependencies optionally configured from the init()
method.
When all extra required dependencies are available:
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
index 277823f..0275952 100644
---
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
+++
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.adoc
@@ -117,6 +117,7 @@ To know when the framework has finished its shutdown
sequence, use the `waitForS
A stopped framework will be in the `Bundle.RESOLVED` state.
It is possible to restart the framework, using the normal combination of
`init()`/`start()` methods as previously described.
+[[_launching]]
== Launching a Framework
Launching a framework is fairly simple and involves only four steps:
@@ -282,6 +283,7 @@ this is necessary because the framework never calls
`System.exit()` and some lib
The framework is not active until the `start()` method is called.
If no shell bundles are installed and started or if there is difficulty
locating the shell bundles specified in the auto-start property, then it will
appear as if the framework is hung, but it is actually running without any way
to interact with it since the shell bundles provide the only means of
interaction.
+[[_custom-launcher]]
=== Custom Framework Launcher
This section creates a bare-bones launcher to demonstrate the minimum
requirements for creating an interactive launcher for the Felix framework.
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
index dca5ed0..4c9af94 100644
---
a/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
+++
b/modules/ROOT/pages/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.adoc
@@ -1,16 +1,5 @@
= Apache Felix Framework Usage Documentation
-* <<downloading-the-framework,Downloading the Framework>>
-* <<starting-the-framework,Starting the Framework>>
-* <<framework-shell,Framework Shell>>
- ** <<installing-bundles,Installing Bundles>>
- ** <<web-proxy-issues-when-installing-bundles,Web Proxy Issues when
Installing Bundles>>
-* <<bundle-auto-deploy,Bundle Auto-Deploy>>
-* <<configuring-the-framework,Configuring the Framework>>
- ** <<system-property-substitution,System Property Substitution>>
-* <<configuring-bundles,Configuring Bundles>>
-* <<feedback,Feedback>>
-
== Downloading the Framework
Go to the link:{{ refs.downloads.path }}[downloads] page and download the
latest Felix framework distribution.
@@ -115,7 +104,7 @@ These properties are:
this string should be the user name and password separated by a colon (e.g.,
`rickhall:mypassword`).
These system properties can be set directly on the command line when starting
the JVM using the standard "[.code]``\-D<prop>=<value>``" syntax or you can put
them in the `lib/system.properties` file of your Felix installation;
-see the next section on <<configuring-the-framework,configuring Felix>> for
more information.
+see the next section on <<_configuring_the_framework,configuring Felix>> for
more information.
== Bundle Auto-Deploy
@@ -174,7 +163,7 @@ To learn about the configuration options for specific
bundles, refer to the docu
Bundle properties may also be defined in the `conf/config.properties` property
file.
Any property placed in this file will be accessible via
`BundleContext.getProperty()` at run time.
The property file uses the standard Java property file syntax (i.e.,
attribute-value pairs).
-For information on changing the default location of this file, refer to the
section on <<configuring-the-framework,configuring Felix>>.
+For information on changing the default location of this file, refer to the
section on <<_configuring_the_framework,configuring Felix>>.
== Feedback
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc
b/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc
index e8b8aef..0379af5 100644
--- a/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc
+++ b/modules/ROOT/pages/subprojects/apache-felix-gogo/rfc-147-overview.adoc
@@ -53,20 +53,20 @@ The `CommandSession` interface provides methods for
executing commands and getti
* basic commands
-[source,sh]ell
+[source,sh]
g! echo hello world
hello world
* session variables
-[source,sh]ell
+[source,sh]
g! msg = "hello world"
g! echo $msg
hello world
* execution quotes `()` - similar to bash backquotes
-[source,sh]ell
+[source,sh]
g! (bundle 1) location
file:/Users/derek/Downloads/felix-framework-3.0.0/bundle/org.apache.felix.bundlerepository-1.6.2.jar
@@ -74,7 +74,7 @@ The `CommandSession` interface provides methods for executing
commands and getti
* lists - `[]`
-[source,sh]ell
+[source,sh]
g! list = [1 2 a b]
1
2
@@ -83,7 +83,7 @@ The `CommandSession` interface provides methods for executing
commands and getti
* maps - `[]`
-[source,sh]ell
+[source,sh]
g! map = [Jan=1 Feb=2 Mar=3]
Jan 1
Feb 2
@@ -91,7 +91,7 @@ The `CommandSession` interface provides methods for executing
commands and getti
* pipes - `|`
-[source,sh]ell
+[source,sh]
g! bundles | grep gogo
2|Active | 1|org.apache.felix.gogo.command (0.6.0)
3|Active | 1|org.apache.felix.gogo.runtime (0.6.0)
@@ -99,7 +99,7 @@ The `CommandSession` interface provides methods for executing
commands and getti
* closures - `{}`
-[source,sh]ell
+[source,sh]
g! echo2 = { echo xxx $args yyy }
g! echo2 hello world
xxx hello world yyy
@@ -108,7 +108,7 @@ The `CommandSession` interface provides methods for
executing commands and getti
* exception handling - console shows summary, but full context available
-[source,sh]ell
+[source,sh]
g! start xxx
E: Cannot coerce start[xxx] to any of [(Bundle)]
g! $exception printstacktrace
@@ -122,7 +122,7 @@ The `CommandSession` interface provides methods for
executing commands and getti
* add all public methods on `java.lang.System` as commands:
-[source,sh]ell
+[source,sh]
g! addcommand system (loadClass java.lang.System)
g! system:getproperties
sun.io.unicode.encodingUnicodeLittle
@@ -158,7 +158,7 @@ The `ThreadIO` service transparently manages the singleton
`System.out` etc, so
then
-[source,sh]ell
+[source,sh]
g! each [Jan Feb Mar] { echo $it | grep . }
Jan
Feb
diff --git a/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc
b/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc
index 0392c4b..3e2964e 100644
--- a/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc
+++ b/modules/ROOT/pages/subprojects/apache-felix-inventory.adoc
@@ -25,7 +25,7 @@ In and of itself the Apache Felix Inventory Printer module is
independent of oth
To actually get access to the output of Inventory Printer services, though,
the Apache Felix Web Console must be installed.
-In the future <<gogo-shell,Integration with the Apache Felix Gogo Shell>> will
also be provided in which case the Apache Felix Gogo Shell must be installed.
+In the future <<_integration_with_the_apache_felix_gogo_shell,Integration with
the Apache Felix Gogo Shell>> will also be provided in which case the Apache
Felix Gogo Shell must be installed.
== Inventory Printer Services
@@ -49,7 +49,7 @@ It should be descriptive but short.
| `felix.inventory.printer.format`
| --
| The property defining the supported rendering formats.
-The value of this property is either a string or a string array containing
valid names of
xref:apidocs/inventory/1.0.0/org/apache/felix/inventory/Format.html[`Format`].
+The value of this property is either a string or a string array containing
valid names of
link:{attachmentsdir}/apidocs/inventory/1.0.0/org/apache/felix/inventory/Format.html[`Format`].
If this property is missing or contains invalid values, the printer is ignored.
| `felix.inventory.printer.webconsole`
@@ -63,7 +63,7 @@ The first three properties are required for the Inventory
Printer service to be
Otherwise the service is ignored by the framework printing a message to the
log.
To prevent bundle resolution failure if the `InventoryPrinter` API is not
available in the framework it is suggested to register the Inventory Printer
services as service factories and dynamically import the API.
-See the question
xref:tutorials-examples-and-presentations/apache-felix-osgi-faq.adoc#how-to-provide-optional-services[{{
ref.apache-felix-osgi-faq.title }}] in the Apache Felix OSGi FAQ for more
details.
+See the question
xref:tutorials-examples-and-presentations/apache-felix-osgi-faq.adoc#_how_to_provide_optional_services[How
to provide optional services?] in the Apache Felix OSGi FAQ for more details.
=== Example Inventory Printer Service
@@ -95,7 +95,7 @@ See the question
xref:tutorials-examples-and-presentations/apache-felix-osgi-faq
}
}
-See also the link:/apidocs/inventory/1.0.0/[API JavaDoc].
+See also the link:{attachmentsdir}/apidocs/inventory/1.0.0/[API JavaDoc].
== ZIP Attachment Provider
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc
b/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc
index 2362d7c..ca35702 100644
--- a/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc
+++ b/modules/ROOT/pages/subprojects/apache-felix-maven-bundle-plugin-bnd.adoc
@@ -22,7 +22,7 @@ TIP: http://bnd.bndtools.org/chapters/790-format.html[A
complete list of instruc
== Simple Example
Rather than going straight to a detailed list of plugin features, we will
first look at a simple example of how to use the plugin to give an immediate
flavor.
-A detailed "<<detailed-how-to,how to>>" will follow.
+A detailed "<<_detailed_how_to,how to>>" will follow.
Assume that we have a simple bundle project that has a pubic API package an
several implementation packages, such as:
@@ -53,14 +53,14 @@ If we also assume that we have a bundle activator in one of
the implementation p
The `<Export-Package>` and `<Private-Package>` instructions tell the plugin
about the contents of the resulting bundle JAR file.
The `<Export-Package>` instruction tells the plugin which of the available
packages to copy into the bundle _and_ export, while the `<Private-Package>`
instruction indicates which of the available packages to copy into the bundle
_but not_ export.
If the two sets overlap, as they do in the case, then the export takes
precedence.
-Since we did not specify any values for any other bundle manifest headers,
they will assume default values which are described <<default-behavior,below>>.
+Since we did not specify any values for any other bundle manifest headers,
they will assume default values which are described <<_default_behavior,below>>.
One specific behavior to highlight is that the plugin generates the
`Import-Package` bundle manifest header based on the contents of the bundle,
which means that you generally do not ever need to explicitly specify it
yourself.
That's it.
== Features
The BND library underlying the plugin defines instructions to direct its
behavior.
-For this Maven plugin, these instructions are issued in the plugin
configuration section of the POM file, as was illustrated
<<simple-example,above>>.
+For this Maven plugin, these instructions are issued in the plugin
configuration section of the POM file, as was illustrated
<<_simple_example,above>>.
BND recognizes three types of instructions:
. _Manifest headers_ - Any instruction that starts with a capital letter will
appear in the resulting bundle's manifest file;
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
index e0690f9..c337295 100644
---
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
+++
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.adoc
@@ -2,7 +2,7 @@
== Using the Apache Felix Maven SCR Plugin to generate Declarative Services
and Metatype Service descriptors during a Maven Build
-Support for automatic generation of the compenent and metadata descriptors is
embeded in the `org.apache.felix:maven-scr-plugin` plugin.
+Support for automatic generation of the component and metadata descriptors is
embedded in the `org.apache.felix:maven-scr-plugin` plugin.
To use this plugin, it has to be declared in the project descriptor as a
`<plugin>` element:
[source,xml]
<project>
@@ -69,32 +69,33 @@ If you want to process the standard annotations with the
`maven-scr-plugin` add
...
</project>
-These dependencies needs to be specified in order to have an easy way to
opt-out the processing of one set or use other tools to process them.
+These dependencies need to be specified in order to have an easy way to
opt-out the processing of one set or use other tools to process them.
It's possible to specify both dependencies and use both annotations within a
single project (however it's better to stay with one set).
The plugin may be configured with the following properties (Check the version
column to make sure you use at least this version for the mentioned feature):
-'''
-
-*`specVersion`* + _Default_: Automatically detected + _Since_: 1.4.0 +
The plugin will generate a descriptor for the Declarative Service version (e.g.
+[%header,cols="2a,2a,1a,3a"]
+|===
+| Property | Default | Since | Description
+| *`specVersion`* | Automatically detected | 1.4.0 | The plugin will
generate a descriptor for the Declarative Service version (e.g.
1.0, 1.1, or 1.2).
If no value is specified, the plugin will detect the version and only use 1.1
if features from this version are used.
---- *`generateAccessors`* + _Default_: `true` + _Since_: + If this
switch is turned on, the bind and unbind methods for unary references are
automatically generated by the plugin.
---- *`scanClasses`* + _Default_: `false` + _Since_: 1.9.0 + By default the
plugin scans the java source tree, if this is set to `true`, the generated
classes directory is scanned instead.
---- *`sourceIncludes`* + _Default_: `true` + _Since_: 1.7.4 + Comma
separated list of classes to include when processing the source.
---- *`sourceExcludes`* + _Default_: `true` + _Since_: + Comma separated
list of classes to exclude when processing the source.
---- *`strictMode`* + _Default_: `false` + _Since_: + The plugin
distinguishes between errors and warnings.
+| *`generateAccessors`* | `true` | | If this switch is turned on, the
bind and unbind methods for unary references are automatically generated by the
plugin.
+| *`scanClasses`* | `false` | 1.9.0 | By default the plugin scans the java
source tree, if this is set to `true`, the generated classes directory is
scanned instead.
+| *`sourceIncludes`* | `true` | 1.7.4 | Comma separated list of classes
to include when processing the source.
+| *`sourceExcludes`* | `true` | | Comma separated list of classes to
exclude when processing the source.
+| *`strictMode`* | `false` | | The plugin distinguishes between errors
and warnings.
In strict mode warnings are treated as errors and cause the plugin to fail.
---- *`properties`* + _Default_: None + _Since_: 1.2.0 + A map of
predefined properties.
+| *`properties`* | None | 1.2.0 | A map of predefined properties.
These properties are set to each component (if the component does not define
the property already).
This is a map where the property name is made up by the included element name
and the value is the value of the element.
---- *`outputDirectory`* + _Default_: `${project.build.outputDirectory}`
+ _Since_: 1.0.0 + The directory where all files are generated in.
---- *`supportedProjectTypes`* + _Default_: `jar, bundle` + _Since_: 1.8.0 +
Project types which this plugin supports.
----
+| *`outputDirectory`* | `${project.build.outputDirectory}` | 1.0.0 |
The directory where all files are generated in.
+| *`supportedProjectTypes`* | `jar, bundle` | 1.8.0 | Project types which
this plugin supports.
+|===
The metatype files are generated in the `OSGI-INF/metatype/` directory and the
Declarative Services descriptor files in the `OSGI-INF` directory.
The plugin will look for component annotations in all Java files found in the
source directories of the project unless the `scanClasses` property indicates
the class files are to be scanned instead.
-This is usefull if the annotations are actually defined in JVM-based languages
such as Groovy or Scala.
+This is useful if the annotations are actually defined in JVM-based languages
such as Groovy or Scala.
== Using the descriptor
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
index b06cc2c..613936f 100644
---
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
+++
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-annotations.adoc
@@ -12,11 +12,11 @@ If you want to use the annotations in your project, you
have to use a `maven-scr
The following annotations are supported:
-* <<component,@Component>>
-* <<activate-deactivate-and-modified,@Activate, @Deactivate, and @Modified>>
-* <<service,@Service>>
-* <<property,@Property>>
-* <<reference,@Reference>>
+* <<_component,@Component>>
+* <<_activate_deactivate_and_modified,@Activate, @Deactivate, and @Modified>>
+* <<_service,@Service>>
+* <<_property,@Property>>
+* <<_reference,@Reference>>
The annotations itself do _not_ support the new features from R6 or above.
It is suggested to use the official OSGi annotations for Declarative Services
instead.
@@ -32,31 +32,37 @@ The required `<implementation>` element is automatically
generated with the full
Supported attributes:
-'''
-
-*`ds`* + _Default_: `true` + _SCR Descriptor_: -- + _Metatype Descriptor_:
-- + Whether Declarative Services descriptor is generated or not.
+[%header,cols="2a,2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Metatype Descriptor | Description
+| *`ds`* | `true` | | | Whether Declarative Services descriptor is
generated or not.
If this parameter is not set or set to `true` the Declarative Services
descriptor is generated in the service descriptor file for this component.
Otherwise no Declarative Services descriptor is generated for this component.
---- *`specVersion`* + _Default_: `1.0` + _SCR Descriptor_: -- + _Metatype
Descriptor_: -- + Defines what Declarative Services specification the
component is written against.
+| *`specVersion`* | `1.0` | | | Defines what Declarative Services
specification the component is written against.
Though the Maven SCR Plugin is very good at detecting whether components are
written against the original or a newer specification, there are some cases,
where the plugin may fail.
For these cases, the `specVersion` attribute may be set to the correct version.
Currently supported values for this attribute are `1.0` and `1.1`.
Since version 1.4.1 of the Maven SCR Plugin and version 1.0.1 of the SCR
Annotations.
---- *`metatype`* + _Default_: `false` + _SCR Descriptor_: -- + _Metatype
Descriptor_: -- + Whether Metatype Service data is generated or not.
+| *`metatype`* | `false` | | | Whether Metatype Service data is
generated or not.
If this parameter is set to `true` Metatype Service data is generated in the
`metatype.xml` file for this component.
Otherwise no Metatype Service data is generated for this component.
---- *`componentAbstract`* + _Default_: see
<<abstract-service-descriptions,description>> + _SCR Descriptor_: -- +
_Metatype Descriptor_: -- + This marks an abstract service description which
is not added to the descriptor but intended for reuse through inheritance.
+| *`componentAbstract`* | see <<_abstract_service_descriptions,description>>
| | | This marks an abstract service description which is not added to the
descriptor but intended for reuse through inheritance.
This attribute defaults to `true` for abstract classes and `false` for
concrete classes.
---- *`inherit`* + _Default_: `true` + _SCR Descriptor_: -- + _Metatype
Descriptor_: -- + Whether any service, property and reference declarations
from base classes should be inherited by this class.
---- *`createPid`* + _Default_: `true` + _SCR Descriptor_: `service.pid` +
_Metatype Descriptor_: -- + Generate the `service.pid` property if non is
declared.
---- *`name`* + _Default_: Fully qualified name of the Java class + _SCR
Descriptor_: `component.name` + _Metatype Descriptor_: `OCD.id` + Defines the
Component name also used as the PID for the Configuration Admin Service ---
*`enabled`* + _Default_: `true` + _SCR Descriptor_: `component.enabled` +
_Metatype Descriptor_: -- + Whether the component is enabled when the bundle
starts --- *`factory`* + _Default_: -- + _SCR Descriptor_:
`component.factory` + _Metatype Descriptor_: [...]
+| *`inherit`* | `true` | | | Whether any service, property and
reference declarations from base classes should be inherited by this class.
+| *`createPid`* | `true` | `service.pid` | | Generate the `service.pid`
property if non is declared.
+| *`name`* | Fully qualified name of the Java class | `component.name` |
`OCD.id` | Defines the Component name also used as the PID for the
Configuration Admin Service
+| *`enabled`* | `true` | `component.enabled` | | Whether the component
is enabled when the bundle starts
+| *`factory`* | | `component.factory` | | Whether the component is a
factory component
+| *`immediate`* | | `component.immediate` | | Whether the component is
immediately activated
+| *`policy`* | `OPTIONAL` | `component.policy` | | The configuration
policy for this component: `OPTIONAL`, `IGNORE`, or `REQUIRE`.
This attribute is supported since version 1.4.0 of the plugin and requires a
Declarative Service implementation 1.1 or higher.
---- *`label`* + _Default_: `%<name>.name` + _SCR Descriptor_: -- +
_Metatype Descriptor_: `OCD.name` + This is generally used as a title for the
object described by the meta type.
+| *`label`* | `%<name>.name` | | `OCD.name` | This is generally used as
a title for the object described by the meta type.
This name may be localized by prepending a `%` sign to the name.
---- *`description`* + _Default_: `%<name>.name` + _SCR Descriptor_: -- +
_Metatype Descriptor_: `OCD.description` + This is generally used as a
description for the object described by the meta type.
+| *`description`* | `%<name>.name` | | `OCD.description` | This is
generally used as a description for the object described by the meta type.
This name may be localized by prepending a `%` sign to the name.
---- *`configurationFactory`* + _Default_: `false` + _SCR Descriptor_: -- +
_Metatype Descriptor_: `Designate.factoryPid` + Is this a configuration
factory?
+| *`configurationFactory`* | `false` | | `Designate.factoryPid` | Is
this a configuration factory?
(since 1.4.0)
+|===
=== Abstract Service Descriptions
@@ -73,7 +79,7 @@ The Declarative Service version 1.1 allows to specify the
name for the activate,
The `@Activate`, `@Deactivate`, and `@Modified` annotation can be used to mark
a method to be used for the specified purpose.
However, as the DS specifies a method search algorithm, there are rare cases
where the marked method is not used (if there is another method with the same
name, but a different signature this might happen).
-These annoations have no attribues.
+These annotations have no attributes.
== @Service
@@ -85,15 +91,18 @@ See section 112.4.6, Service Elements, in the OSGi Service
Platform Service Comp
Supported attributes:
-'''
-
-*`value`* + _Default_: All implemented interfaces + _SCR Descriptor_:
`provide.interface` + The name of the service interface provided by the
component.
+[%header,cols="2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Description
+| *`value`* | All implemented interfaces | `provide.interface` | The name
of the service interface provided by the component.
This can either be the fully qualified name or just the interface class name
if the interface is either in the same package or is imported.
-If this property is not set `provide` elements will be generated for all
interfaces generated by the class --- *`serviceFactory`* + _Default_: `false`
+ _SCR Descriptor_: `service.servicefactory` + Whether the component is
registered as a `ServiceFactory` or not
+If this property is not set `provide` elements will be generated for all
interfaces generated by the class
+| *`serviceFactory`* | `false` | `service.servicefactory` | Whether the
component is registered as a `ServiceFactory` or not
+|===
Omitting the `Service` annotation will just define (and activate if required)
the component but not register it as a service.
Multiple `Service` annotations may be declared each with its own `value`.
-These annotations need to be wrapped into a `Services` anotation.
+These annotations need to be wrapped into a `Services` annotation.
The component is registered as a `ServiceFactory` if at least on `Service`
annotations declares the `serviceFactory` attribute as `true`.
== @Property
@@ -109,43 +118,45 @@ See section 112.4.5, Properties and Property Elements, in
the OSGi Service Platf
Supported attributes:
-'''
-
-*`name`* + _Default_: The name of constant + _SCR Descriptor_:
`property.name` + _Metatype Descriptor_: `AD.id` + The name of the property.
+[%header,cols="2a,2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Metatype Descriptor | Description
+| *`name`* | The name of constant | `property.name` | `AD.id` | The
name of the property.
If this tag is defined on a field with an initialization expression, the value
of that expression is used as the name if the field is of type `String`.
---- *`value`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The string value of the property.
+| *`value`* | | `property.value` | `AD.default` | The string value of
the property.
This can either be a single value or an array.
---- *`longValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The long value of the property.
+| *`longValue`* | | `property.value` | `AD.default` | The long value of
the property.
This can either be a single value or an array.
---- *`doubleValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The double value of the property.
+| *`doubleValue`* | | `property.value` | `AD.default` | The double
value of the property.
This can either be a single value or an array.
---- *`floatValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The float value of the property.
+| *`floatValue`* | | `property.value` | `AD.default` | The float value
of the property.
This can either be a single value or an array.
---- *`intValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The int value of the property.
+| *`intValue`* | | `property.value` | `AD.default` | The int value of
the property.
This can either be a single value or an array.
---- *`byteValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The byte value of the property.
+| *`byteValue`* | | `property.value` | `AD.default` | The byte value of
the property.
This can either be a single value or an array.
---- *`charValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The char value of the property.
+| *`charValue`* | | `property.value` | `AD.default` | The char value of
the property.
This can either be a single value or an array.
---- *`boolValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The boolean value of the property.
+| *`boolValue`* | | `property.value` | `AD.default` | The boolean value
of the property.
This can either be a single value or an array.
---- *`shortValue`* + _Default_: -- + _SCR Descriptor_: `property.value` +
_Metatype Descriptor_: `AD.default` + The short value of the property.
+| *`shortValue`* | | `property.value` | `AD.default` | The short value
of the property.
This can either be a single value or an array.
---- *`label`* + _Default_: `%<name>.name` + _SCR Descriptor_: -- +
_Metatype Descriptor_: `AD.name` + The label to display in a form to configure
this property.
+| *`label`* | `%<name>.name` | | `AD.name` | The label to display in a
form to configure this property.
This name may be localized by prepending a `%` sign to the name.
---- *`description`* + _Default_: `%<name>.description` + _SCR Descriptor_:
-- + _Metatype Descriptor_: `AD.description` + A descriptive text to provide
the client in a form to configure this property.
+| *`description`* | `%<name>.description` | | `AD.description` | A
descriptive text to provide the client in a form to configure this property.
This name may be localized by prepending a `%` sign to the name.
---- *`propertyPrivate`* + _Default_: Depending on the name + _SCR
Descriptor_: -- + _Metatype Descriptor_: See description Boolean flag defining
whether a metatype descriptor entry should be generated for this property or
not.
+| *`propertyPrivate`* | Depending on the name | | | See description
Boolean flag defining whether a metatype descriptor entry should be generated
for this property or not.
By default a metatype descriptor entry, i.e.
an `AD` element, is generated except for the properties `service.pid`,
`service.description`, `service.id`, `service.ranking`, `service.vendor`,
`service.bundlelocation` and `service.factoryPid`.
If a property should not be available for display in a configuration user
interface, this parameter should be set to `true`.
---- *`cardinality`* + _Default_: Depends on property value(s) + _SCR
Descriptor_: -- + _Metatype Descriptor_: `AD.cardinality` + Defines the
cardinality of the property and its collection type.
-If the cardinality is negative, the property is expected to be stored in a
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper
class), if the cardinality is positive, the property is stored in an array
(primitve types are unboxed, that is `Boolean` type values are stored in
`boolean\[\]({{ refs..path }})`).
+| *`cardinality`* | Depends on property value(s) | | `AD.cardinality` |
Defines the cardinality of the property and its collection type.
+If the cardinality is negative, the property is expected to be stored in a
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper
class), if the cardinality is positive, the property is stored in an array
(primitve types are unboxed, that is `Boolean` type values are stored in
`boolean`).
The actual value defines the maximum number of elements in the vector or
array, where `Integer.MIN*INT` describes an unbounded Vector and
`Integer.MAX*INT` describes an unbounded array.
If the cardinality is zero, the property is a scalar value.
If the defined value of the property is set in the `value` attribute, the
cardinality defaults to `0` (zero for scalar value).
If the property is defined in one or more properties starting with `values`,
the cardinality defaults to `Integer.MAX_INT`, that is an unbounded array.
---- *`options`* + _Default_: -- + _SCR Descriptor_: -- + _Metatype
Descriptor_: <<the-options-attribute,See below>> + See below for a description
of the `options` attribute.
+| *`options`* | | | <<_the_options_attribute,See below>> | See below
for a description of the `options` attribute.
+|===
Generating `<properties>` elements referring to bundle entries is not
currently supported.
@@ -199,10 +210,10 @@ Generally the value of a property is scalar, that is a
property has a single val
Such scalar values are defined with the different `value` attributes of the
`Property` annotation.
In the case of a scalar property value, the `cardinality` parameter value is
assumed to be `0` (zero) unless of course set otherwise.
-There may be properties, which have a list of values, such as a list of
possible URL mappings for an URL Mapper.
+There may be properties, which have a list of values, such as a list of
possible URL mappings for a URL Mapper.
Such multiple values are defined just by comma separate as the value of the
annotation parameter.
-If the cardinality of the property is not explicilty set with the
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
+If the cardinality of the property is not explicitly set with the
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
unbound array, if multiple values are defined.
Otherwise the `cardinality` parameter may be set for example to a negative
value to store the values in a `java.util.Vector` instead.
@@ -218,22 +229,31 @@ See section 112.4.7, Reference Element, in the OSGi
Service Platform Service Com
Supported parameters:
-'''
-
-*`name`* + _Default_: Name of the field + _SCR Descriptor_: `reference.name`
+ The local name of the reference.
+[%header,cols="2a,2a,2a,3a"]
+|===
+| Property | Default | SCR Descriptor | Description
+| *`name`* | Name of the field | `reference.name` | The local name of the
reference.
If the `Reference` annotation is declared in the class comment, this parameter
is required.
-If the annotation is declared on a field, the default value for the `name`
parameter is the name of the field --- *`interfaceReference`* + _Default_:
Type of the field + _SCR Descriptor_: `reference.interface` + The name of the
service interface.
+If the annotation is declared on a field, the default value for the `name`
parameter is the name of the field
+| *`interfaceReference`* | Type of the field | `reference.interface` | The
name of the service interface.
This name is used by the Service Component Runtime to access the service on
behalf of the component.
If the `Reference` annotation is declared on a class level, this parameter is
required.
-If the annoation is declared on a field, the default value for the
`interfaceReference` parameter is the type of the field --- *`cardinality`* +
_Default_: `1..1` + _SCR Descriptor_: `reference.cardinality` + The
cardinality of the service reference.
-This must be one of value from the enumeration `ReferenceCardinality` ---
*`policy`* + _Default_: `static` + _SCR Descriptor_: `reference.policy` +
The dynamicity policy of the reference.
+If the annoation is declared on a field, the default value for the
`interfaceReference` parameter is the type of the field
+| *`cardinality`* | `1..1` | `reference.cardinality` | The cardinality of
the service reference.
+This must be one of value from the enumeration `ReferenceCardinality`
+| *`policy`* | `static` | `reference.policy` | The dynamicity policy of the
reference.
If `dynamic` the service will be made available to the component as it comes
and goes.
If `static` the component will be deactivated and re-activated if the service
comes and/or goes away.
-This must be one of `static` and `dynamic` --- *`target`* + _Default_: -- +
_SCR Descriptor_: `reference.target` + A service target filter to select
specific services to be made available.
+This must be one of `static` and `dynamic`
+| *`target`* | | `reference.target` | A service target filter to select
specific services to be made available.
In order to be able to overwrite the value of this value by a configuration
property, this parameter must be declared.
-If the parameter is not declared, the respective declaration attribute will
not be generated --- *`bind`* + _Default_: See description + _SCR
Descriptor_: `reference.bind` + The name of the method to be called when the
service is to be bound to the component.
+If the parameter is not declared, the respective declaration attribute will
not be generated
+| *`bind`* | See description | `reference.bind` | The name of the method to
be called when the service is to be bound to the component.
The default value is the name created by appending the reference `name` to the
string `bind`.
-The method must be declared `public` or `protected` and take single argument
which is declared with the service interface type --- *`unbind`* + _Default_:
See description + _SCR Descriptor_: `reference.unbind` + The name of the
method to be called when the service is to be unbound from the component.
+The method must be declared `public` or `protected` and take single argument
which is declared with the service interface type
+| *`unbind`* | See description | `reference.unbind` | The name of the
method to be called when the service is to be unbound from the component.
The default value is the name created by appending the reference `name` to the
string `unbind`.
-The method must be declared `public` or `protected` and take single argument
which is declared with the service interface type --- *`strategy`* +
_Default_: `event` + _SCR Descriptor_: `reference.strategy` + The strategy
used for this reference, one of `event` or `lookup`.
+The method must be declared `public` or `protected` and take single argument
which is declared with the service interface type
+| *`strategy`* | `event` | `reference.strategy` | The strategy used for
this reference, one of `event` or `lookup`.
If the reference is defined on a field with a strategy of `event` and there is
no bind or unbind method, the plugin will create the necessary methods.
+|===
\ No newline at end of file
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
index 7fed954..ff66af5 100644
---
a/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
+++
b/modules/ROOT/pages/subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.adoc
@@ -5,10 +5,10 @@ This page exists to define the support for JavaDoc tags upto
Maven SCR Plugin ve
The `scr` goal of the `maven-scr-plugin` looks for the following JavaDoc tags
when building component descriptors:
-* <<scrcomponent,scr.component>>
-* <<scrproperty,scr.property>>
-* <<scrservice,scr.service>>
-* <<scrreference,scr.reference>>
+* <<_scr_component,scr.component>>
+* <<_scr_property,scr.property>>
+* <<_scr_service,scr.service>>
+* <<_scr_reference,scr.reference>>
== scr.component
@@ -232,7 +232,7 @@ If a property should not be available for display in a
configuration user interf
| --
| `AD.cardinality`
| Defines the cardinality of the property and its collection type.
-If the cardinality is negative, the property is expected to be stored in a
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper
class), if the cardinality is positive, the property is stored in an array
(primitve types are unboxed, that is `Boolean` type values are stored in
`boolean\[\]({{ refs..path }})`).
+If the cardinality is negative, the property is expected to be stored in a
`java.util.Vector` (primitive types such as `boolean` are boxed in the Wrapper
class), if the cardinality is positive, the property is stored in an array
(primitve types are unboxed, that is `Boolean` type values are stored in
`boolean`).
The actual value defines the maximum number of elements in the vector or
array, where `Integer.MIN*INT` describes an unbounded Vector and
`Integer.MAX*INT` describes an unbounded array.
If the cardinality is zero, the property is a scalar value.
If the defined value of the property is set in the `value` attribute, the
cardinality defaults to `0` (zero for scalar value).
@@ -309,7 +309,7 @@ There may be properties, which have a list of values, such
as a list of possible
Such multiple values are defined in one more parameters whose name starts with
`values`.
Each parameter must of course have a unique name which is not in any except to
differentiate the parameters.
-If the cardinality of the property is not explicilty set with the
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
+If the cardinality of the property is not explicitly set with the
`cardinality` property, it defaults to `Integer.MAX_INT`, i.e.
unbound array, if multiple values with a series of `values` parameters are
defined.
Otherwise the `cardinality` parameter may be set for example to a negative
value to store the values in a `java.util.Vector` instead.
diff --git
a/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
b/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
index a9916b3..4e3a45c 100644
---
a/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
+++
b/modules/ROOT/pages/subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.adoc
@@ -7,4 +7,4 @@ The xref:subprojects/apache-felix-web-console.adoc[Apache Felix
Web Console] is
*
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/branding-the-web-console.adoc[Branding
the Web Console]
*
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-output-templating.adoc[Web
Console Output Templating]
*
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-logging.adoc[Web
Console Logging]
-*
xref:subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-security-provider.adoc[Web
Console Security Provider]
+*
xref:subprojects/apache-felix-web-console/web-console-security-provider.adoc[Web
Console Security Provider]