This is an automated email from the ASF dual-hosted git repository.
martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva-components.git
The following commit(s) were added to refs/heads/master by this push:
new 040bf27 Updating site documentation
040bf27 is described below
commit 040bf275d203b96f50e4311e0487e159872f0f3a
Author: Martin Stockhammer <[email protected]>
AuthorDate: Sat Nov 23 12:13:57 2019 +0100
Updating site documentation
---
README.adoc | 2 +-
deploySite.sh | 2 +-
expression-evaluator/pom.xml | 1 +
expression-evaluator/src/site/asciidoc/index.adoc | 25 ++++
graph/src/main/site/asciidoc/index.adoc | 25 ++++
.../src => graph/src/main}/site/site.xml | 18 ++-
pom.xml | 63 +++++++--
spring-apacheds/src/site/asciidoc/index.adoc.vm | 28 ++++
spring-cache/src/site/asciidoc/index.adoc.vm | 58 ++++++++
spring-cache/src/site/site.xml | 2 +-
spring-cache/src/site/xdoc/index.xml.vm | 71 ----------
spring-registry/src/site/apt/index.apt | 155 --------------------
spring-registry/src/site/asciidoc/index.adoc | 156 +++++++++++++++++++++
spring-registry/src/site/site.xml | 2 +-
src/site/asciidoc/index.adoc | 14 ++
src/site/resources/css/site.css | 36 +++++
src/site/site.xml | 24 +++-
17 files changed, 431 insertions(+), 251 deletions(-)
diff --git a/README.adoc b/README.adoc
index 2b4e6d1..7538349 100644
--- a/README.adoc
+++ b/README.adoc
@@ -54,7 +54,7 @@ For all the commands you have to change to this site
directory:
The result can be checked in
- site/target/staging/components/
+ target/staging/components/
with your browser.
diff --git a/deploySite.sh b/deploySite.sh
index 7faf9ce..894a2f1 100755
--- a/deploySite.sh
+++ b/deploySite.sh
@@ -28,7 +28,7 @@ THIS_DIR=$(dirname $0)
THIS_DIR=$(readlink -f ${THIS_DIR})
CONTENT_DIR=".site-content"
-SUB_DIR="redback/components"
+SUB_DIR="components"
if [ -d "${CONTENT_DIR}/.git" ]; then
git -C "${CONTENT_DIR}" fetch origin
diff --git a/expression-evaluator/pom.xml b/expression-evaluator/pom.xml
index 96fabe2..963c0b8 100644
--- a/expression-evaluator/pom.xml
+++ b/expression-evaluator/pom.xml
@@ -31,6 +31,7 @@
<version>3.0-SNAPSHOT</version>
<artifactId>archiva-components-expression-evaluator</artifactId>
<name>Archiva Components :: Expression Evaluator</name>
+ <description>Small module that provides interface and implementation for
variable expansion in texts</description>
<properties>
<site.staging.base>${project.parent.basedir}</site.staging.base>
diff --git a/expression-evaluator/src/site/asciidoc/index.adoc
b/expression-evaluator/src/site/asciidoc/index.adoc
new file mode 100644
index 0000000..caa7a9c
--- /dev/null
+++ b/expression-evaluator/src/site/asciidoc/index.adoc
@@ -0,0 +1,25 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+NOTE: For help with the syntax of this file, see:
+http://maven.apache.org/guides/mini/guide-apt-format.html
+////
+
+Expression Evaluator
+====================
+
+Small module, that provides a interface and classes for expanding expressions
in text.
diff --git a/graph/src/main/site/asciidoc/index.adoc
b/graph/src/main/site/asciidoc/index.adoc
new file mode 100644
index 0000000..1736ef3
--- /dev/null
+++ b/graph/src/main/site/asciidoc/index.adoc
@@ -0,0 +1,25 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+NOTE: For help with the syntax of this file, see:
+http://maven.apache.org/guides/mini/guide-apt-format.html
+////
+
+Graph
+=====
+
+Simple graph implementation and utility graph for graph traversal.
diff --git a/spring-cache/spring-cache-providers/src/site/site.xml
b/graph/src/main/site/site.xml
similarity index 68%
rename from spring-cache/spring-cache-providers/src/site/site.xml
rename to graph/src/main/site/site.xml
index 7dcb278..48e00ff 100644
--- a/spring-cache/spring-cache-providers/src/site/site.xml
+++ b/graph/src/main/site/site.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
@@ -8,7 +8,7 @@
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
- ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
@@ -17,12 +17,18 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project name="Spring Cache Component">
- <publishDate format="dd MMM yyyy" position="none"/>
- <version position="left"/>
+<project name="Graph">
+
+ <publishDate format="yyyy-MM-dd" position="none"/>
+
<body>
- <menu ref="parent"/>
<menu ref="modules"/>
+ <menu ref="reports"/>
+ <menu ref="ASF"/>
+ <breadcrumbs>
+ <item name="Archiva Components" href="../index.html"/>
+ <item name="Graph" href="index.html"/>
+ </breadcrumbs>
</body>
</project>
diff --git a/pom.xml b/pom.xml
index 340b6d3..b79dbc2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,23 @@
<packaging>pom</packaging>
<name>Archiva Components :: Parent</name>
+ <scm>
+
<connection>scm:git:https://gitbox.apache.org/repos/asf/archiva-components.git</connection>
+
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/archiva-components.git</developerConnection>
+ <url>https://github.com/apache/archiva-components</url>
+ <tag>HEAD</tag>
+ </scm>
+
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>${siteRepositoryUrl}</url>
+ </site>
+ </distributionManagement>
+
+
<properties>
+ <site.staging.base>${project.basedir}</site.staging.base>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<webUrl>https://archiva.apache.org/components</webUrl>
<scmPubCheckoutDirectory>${basedir}/.site-content</scmPubCheckoutDirectory>
@@ -54,19 +70,6 @@
<module>spring-taskqueue</module>
</modules>
- <scm>
-
<connection>scm:git:https://github.com/apache/archiva-components.git</connection>
-
<developerConnection>scm:git:https://github.com/apache/archiva-components.git</developerConnection>
- <url>https://github.com/apache/archiva-components</url>
- </scm>
-
- <distributionManagement>
- <site>
- <id>apache.website</id>
- <url>${siteRepositoryUrl}</url>
- </site>
- </distributionManagement>
-
<repositories>
<repository>
<id>archiva-repository.releases</id>
@@ -276,6 +279,13 @@
<configuration>
<skipDeploy>true</skipDeploy>
</configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctor-maven-plugin</artifactId>
+ <version>1.6.0</version>
+ </dependency>
+ </dependencies>
</plugin>
</plugins>
@@ -344,9 +354,21 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
+ <version>3.8.2</version>
<configuration>
<skipDeploy>true</skipDeploy>
-
<stagingDirectory>${site.staging.base}/target/staging/archiva-components/</stagingDirectory>
+
<stagingDirectory>${site.staging.base}/target/staging/components/</stagingDirectory>
+ <asciidoc>
+ <!-- optional site-wide AsciiDoc attributes -->
+ <attributes>
+ <!--
+ <icons>font</icons>
+ -->
+ <source-highlighter>coderay</source-highlighter>
+ <coderay-css>style</coderay-css>
+ <toclevels>2</toclevels>
+ </attributes>
+ </asciidoc>
</configuration>
<executions>
<execution>
@@ -387,6 +409,19 @@
<profile>
<id>release</id>
<build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <inherited>true</inherited>
+ <configuration>
+ <skipDeploy>true</skipDeploy>
+
<stagingDirectory>${site.staging.base}/target/staging/components/</stagingDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/spring-apacheds/src/site/asciidoc/index.adoc.vm
b/spring-apacheds/src/site/asciidoc/index.adoc.vm
new file mode 100644
index 0000000..4e6c075
--- /dev/null
+++ b/spring-apacheds/src/site/asciidoc/index.adoc.vm
@@ -0,0 +1,28 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+NOTE: For help with the syntax of this file, see:
+http://maven.apache.org/guides/mini/guide-apt-format.html
+////
+
+Spring ApacheDS
+===============
+
+
+This module provides a spring service that runs a apacheds instance for unit
testing of LDAP code.
+
+The module is based on Apache DS $context.get("apacheds.version")
diff --git a/spring-cache/src/site/asciidoc/index.adoc.vm
b/spring-cache/src/site/asciidoc/index.adoc.vm
new file mode 100644
index 0000000..e9b351c
--- /dev/null
+++ b/spring-cache/src/site/asciidoc/index.adoc.vm
@@ -0,0 +1,58 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+NOTE: For help with the syntax of this file, see:
+http://maven.apache.org/guides/mini/guide-apt-format.html
+////
+
+= Spring Cache
+Olivier Lamy, [email protected];Martin Stockhammer, [email protected]
+
+== Overview
+Purpose of this module is to provide a cache api with differents providers.
Currently the following
+cache providers are contained in the module:
+
+* simple hashmap
+* ehcache
+
+== Use Case
+Typical use case for this API could be the following : you have an functionnal
API which create objects by
+using a requirement on a DAO plexus components. Before asking the DAO layer
(webServices, Jdbc access ...),
+you want to ask if the data exists in a cache if yes the cached value is
return if not the DAO layer is used
+and the result put in the cache for future use.
+
+== Test Case Sample
+Look at the test case `AbstractTestWineService` in the module
spring-cache-test. A service called `WineService`
+explains this. The default implementation has two requirements :
+
+* WineDao (DAO layer)
+* CacheBuilder
+
+CacheBuilder can build a cache for the bean you ask (in the sample it's Wine)
+ cacheBuilder.getCache( Wine.class )
+This will use the following algorithm to provide the Cache implementation :
+
+* search the Spring Cache with roleHint `Wine.class.getName()`
+* if not found : lookup the Spring component Cache with name `cache#default`
+* if not found : return `NoCacheCache` implementation in order to prevent NPE
+
+
+== Submodules
+
+#foreach( $module in $project.modules )
+* $module
+#end
diff --git a/spring-cache/src/site/site.xml b/spring-cache/src/site/site.xml
index adf5f99..244a2e7 100644
--- a/spring-cache/src/site/site.xml
+++ b/spring-cache/src/site/site.xml
@@ -27,7 +27,7 @@
<menu ref="reports"/>
<menu ref="ASF"/>
<breadcrumbs>
- <item name="Redback Components" href="../index.html"/>
+ <item name="Archiva Components" href="../index.html"/>
<item name="Spring Cache" href="index.html"/>
</breadcrumbs>
</body>
diff --git a/spring-cache/src/site/xdoc/index.xml.vm
b/spring-cache/src/site/xdoc/index.xml.vm
deleted file mode 100644
index 384767e..0000000
--- a/spring-cache/src/site/xdoc/index.xml.vm
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-<document>
- <properties>
- <title>Spring Cache</title>
- <author email="[email protected]">Olivier Lamy</author>
- </properties>
- <body>
- <section name="Spring Cache">
- <p>General Purpose is to provide a cache api with differents providers :
- <ul>
- <li>simple hashmap</li>
- <li>ehcache</li>
- </ul>
- </p>
- <subsection name="Use Case">
- <p>Typical use case for this API could be the following : you have an
functionnal API which create objects by
- using a requirement on a DAO plexus components. Before asking the
DAO layer (webServices, Jdbc access ...),
- you want to ask if the data exists in a cache if yes the cached
value is return if not the DAO layer is used
- and the result put in the cache for future use.
- </p>
- </subsection>
- <subsection name="Test Case Sample">
- <p>Look at he test case AbstractTestWineService in the module
plexus-cache-test. A service called WineService
- explains this. The default implementation has two requirements :
- <ul>
- <li>WineDao (DAO layer)</li>
- <li>CacheBuilder</li>
- </ul>
- </p>
- <p>CacheBuilder can build a cache for the bean you ask (in the sample
it's Wine)
- <source>
- cacheBuilder.getCache( Wine.class )
- </source>
- This will use the following algorithm to provide the Cache
implementation :
- <ul>
- <li>search the Spring Cache with roleHint Wine.class.getName()</li>
- <li>if not found : lookup the Spring component Cache with name
cache#default</li>
- <li>if not found : return NoCacheCache implementation in order to
prevent NPE</li>
- </ul>
- </p>
- </subsection>
- </section>
- <section name="Submodules">
- <ul>
- #foreach( $module in $project.modules )
- <li>
- <a href="$module/index.html">$module</a>
- </li>
- #end
- </ul>
- </section>
- </body>
-</document>
diff --git a/spring-registry/src/site/apt/index.apt
b/spring-registry/src/site/apt/index.apt
deleted file mode 100644
index c77349d..0000000
--- a/spring-registry/src/site/apt/index.apt
+++ /dev/null
@@ -1,155 +0,0 @@
- -----
- Plexus Registry Component
- -----
- Brett Porter
- -----
- 7 February 2007
- -----
-
-~~ Licensed to the Apache Software Foundation (ASF) under one
-~~ or more contributor license agreements. See the NOTICE file
-~~ distributed with this work for additional information
-~~ regarding copyright ownership. The ASF licenses this file
-~~ to you under the Apache License, Version 2.0 (the
-~~ "License"); you may not use this file except in compliance
-~~ with the License. You may obtain a copy of the License at
-~~
-~~ http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~ Unless required by applicable law or agreed to in writing,
-~~ software distributed under the License is distributed on an
-~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~ KIND, either express or implied. See the License for the
-~~ specific language governing permissions and limitations
-~~ under the License.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/guides/mini/guide-apt-format.html
-
-Plexus Registry
-
- The Plexus registry is a single source of external configuration for
Plexus components and applications.
- It can be used by components to source configuration, knowing that it can
be used from within applications
- without the information being hard coded into the component.
-
- To facilitate a variety of providers,
{{{http://jakarta.apache.org/commons/configuration/} Commons Configuration}}
- is used to implement the backing storage.
-
- This relies on a pull-based (or lookup) mechanism - the applications
request specific pieces of configuration at
- the time they need them, and it is retrieved from the registry.
-
- The registry is configurable so that configuration can be placed in any
location desired, and is shared container
- wide. A registry using the same file as other running VMs should operate
correctly.
-
- <Note:> Inside the application server, this means that the scope is
application wide as each application has it's
- own container. It may be feasible to provide a single registry for the
whole server, but this has not yet been
- tested. This would only be necessary if the server was to dictate
configuration locations that the registry was
- not already configured to use. Of course, such additional locations could
be added to the application registry
- instances programmatically as well.
-
-* Example Configuration
-
------
-<component>
- <role>org.codehaus.components.registry.Registry</role>
-
<implementation>org.codehaus.plexus.registry.CommonsConfigurationRegistry</implementation>
- <role-hint>commons-configuration</role-hint>
- <configuration>
- <properties>
- <system/>
- <jndi prefix="java:comp/env" config-optional="true"/>
- <xml fileName="${user.home}/.m2/archiva.xml" config-optional="true"
config-name="org.apache.maven.archiva"
- config-at="org.apache.maven.archiva" config-forceCreate="true"/>
- <properties fileName="${user.home}/.m2/security.properties"
config-optional="true"
- config-at="org.codehaus.plexus.security"/>
- </properties>
- </configuration>
-</component>
------
-
- The configuration inside the outer <<<\<properties\>>>> element is
equivalent to the
-
{{{http://jakarta.apache.org/commons/configuration/howto_configurationbuilder.html#Using_DefaultConfigurationBuilder}
builder syntax}}
- for Commons Configuration. This maps to similar concepts in the registry.
-
- In this example, the precedence is to first look in the system properties,
then JNDI, then the given XML file, and
- finally the given properties file.
-
- Registries can have 'sections', which are declared as partitioned areas of
the registry. This is done using the
- <<<config-name>>> attribute in Commons Configuration. While the sections
behave normally as a part of the global
- registry, they can easily be retrieved independently. This is particularly
useful for write-back operations so the
- file the section is stored in can be saved when the registry is modified.
-
- Each configuration source can be configured with a given mount-point in the
registry using the <<<config-at>>>
- attribute. This will cause all of the properties to be stored with the given
prefix.
-
-* Using the Registry
-
- The registry can be used as a simple directory, for example:
-
------
-int value = registry.getInt( "test.property" );
-String text = registry.getString( "text.data" );
-boolean enabled = registry.getBoolean( "system.enabled", true );
------
-
- The first parameter is always a key. The registry is hierachical, so in the
key, a <<<.>>> (period) represents a
- nested configuration, and can be traversed to any level.
-
- The second parameter specifies a default value. If it is not given, then
<<<null>>> is returned for strings if the
- key is not found in the registry, and an exception is thrown for integers
and booleans under the same circumstances.
-
-** Subsets and Sections
-
- There are two ways to work with a portion of the registry at a time: subsets
and sections.
-
- Sections were encountered earlier - and while they return a subset it may
span a number of different base prefixes,
- depending on whether <<<config-at>>> was specified on the section or not.
Even so, if it is a subset of the
- hierachy, some elements of the hierachy at the same level might not be
returned because they come from a different
- section.
-
- On the other hand, subsets are reductions of the registry to keys descending
from a given prefix.
-
- Once a subset (or section) is obtained, it behaves the same as the registry
as a whole, however it will have fewer
- values, and looking up values will not have the prefix as a part of the key.
-
- For example:
-
------
-String value = registry.getString( "org.codehaus.plexus.registry.value" );
-Registry subset = registry.getSubset( "org.codehaus.plexus.registry" );
-value = subset.getString( "value" ); // this will equal the earlier value
retrieved
------
-
-** Lists and Maps
-
- It is also possible to retrieve subsets of the registry as collections.
-
- * <<<getProperties(key)>>>: Maps and properties are straightforward - the
subset is converted into key/value pairs
- and returned as a map.
-
- * <<<getSubsetList(key)>>>: For lists of complex types that will still
contain more than one key/value pair,
- this method can be used to retrieve them as a
list of subset registries.
-
- * <<<getList(key)>>>: For lists of simple types, this method can be
used to get a list of value objects.
-
-** Using Models
-
- To simplify the translation of configuration into reusable beans and to
produce a self-documenting system, Modello
- can be used to generate registry I/O classes. The appropriate goals in the
plugin are <<<registry-reader>>> and
- <<<registry-writer>>>.
-
-** Saving Changes
-
- Saving changes to a registry is quite simple:
-
------
-registry.save();
------
-
- Note that the registry must be a file-based section (saving the entire
registry will not succeed). It will be saved
- to the same location that it was loaded from.
-
-** Adding Change Listeners
-
- ~~TODO
-
diff --git a/spring-registry/src/site/asciidoc/index.adoc
b/spring-registry/src/site/asciidoc/index.adoc
new file mode 100644
index 0000000..d5a98eb
--- /dev/null
+++ b/spring-registry/src/site/asciidoc/index.adoc
@@ -0,0 +1,156 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+NOTE: For help with the syntax of this file, see:
+http://maven.apache.org/guides/mini/guide-apt-format.html
+////
+
+= Spring Registry Component
+Brett Porter
+7 February 2007
+
+
+== Spring Registry
+
+The Spring registry is a single source of external configuration for Spring
components and applications.
+It can be used by components to source configuration, knowing that it can be
used from within applications
+without the information being hard coded into the component.
+
+To facilitate a variety of providers,
http://jakarta.apache.org/commons/configuration/[Commons Configuration]
+is used to implement the backing storage.
+
+This relies on a pull-based (or lookup) mechanism - the applications request
specific pieces of configuration at
+the time they need them, and it is retrieved from the registry.
+
+The registry is configurable so that configuration can be placed in any
location desired, and is shared container
+wide. A registry using the same file as other running VMs should operate
correctly.
+
+[NOTE]
+====
+Inside the application server, this means that the scope is application wide
as each application has it's
+own container. It may be feasible to provide a single registry for the whole
server, but this has not yet been
+tested. This would only be necessary if the server was to dictate
configuration locations that the registry was
+not already configured to use. Of course, such additional locations could be
added to the application registry
+instances programmatically as well.
+====
+
+=== Example Configuration
+
+-----
+<component>
+ <role>org.apache.archiva.components.registry.Registry</role>
+
<implementation>org.apache.archiva.components.registry.CommonsConfigurationRegistry</implementation>
+ <role-hint>commons-configuration</role-hint>
+ <configuration>
+ <properties>
+ <system/>
+ <jndi prefix="java:comp/env" config-optional="true"/>
+ <xml fileName="${user.home}/.m2/archiva.xml" config-optional="true"
config-name="org.apache.maven.archiva"
+ config-at="org.apache.maven.archiva" config-forceCreate="true"/>
+ <properties fileName="${user.home}/.m2/security.properties"
config-optional="true"
+ config-at="org.codehaus.plexus.security"/>
+ </properties>
+ </configuration>
+</component>
+-----
+
+The configuration inside the outer `properties` element is equivalent to the
+http://jakarta.apache.org/commons/configuration/howto_configurationbuilder.html#Using_DefaultConfigurationBuilder[builder
syntax]
+for Commons Configuration. This maps to similar concepts in the registry.
+
+In this example, the precedence is to first look in the system properties,
then JNDI, then the given XML file, and
+finally the given properties file.
+
+Registries can have 'sections', which are declared as partitioned areas of the
registry. This is done using the
+`config-name` attribute in Commons Configuration. While the sections behave
normally as a part of the global
+registry, they can easily be retrieved independently. This is particularly
useful for write-back operations so the
+file the section is stored in can be saved when the registry is modified.
+
+Each configuration source can be configured with a given mount-point in the
registry using the `config-at`
+attribute. This will cause all of the properties to be stored with the given
prefix.
+
+=== Using the Registry
+
+The registry can be used as a simple directory, for example:
+
+-----
+int value = registry.getInt( "test.property" );
+String text = registry.getString( "text.data" );
+boolean enabled = registry.getBoolean( "system.enabled", true );
+-----
+
+The first parameter is always a key. The registry is hierachical, so in the
key, a `.` (period) represents a
+nested configuration, and can be traversed to any level.
+
+The second parameter specifies a default value. If it is not given, then
`null` is returned for strings if the
+key is not found in the registry, and an exception is thrown for integers and
booleans under the same circumstances.
+
+=== Subsets and Sections
+
+There are two ways to work with a portion of the registry at a time: subsets
and sections.
+
+Sections were encountered earlier - and while they return a subset it may span
a number of different base prefixes,
+depending on whether `config-at` was specified on the section or not. Even so,
if it is a subset of the
+hierachy, some elements of the hierachy at the same level might not be
returned because they come from a different
+section.
+
+On the other hand, subsets are reductions of the registry to keys descending
from a given prefix.
+
+Once a subset (or section) is obtained, it behaves the same as the registry as
a whole, however it will have fewer
+values, and looking up values will not have the prefix as a part of the key.
+
+For example:
+
+-----
+String value = registry.getString( "org.codehaus.plexus.registry.value" );
+Registry subset = registry.getSubset( "org.codehaus.plexus.registry" );
+value = subset.getString( "value" ); // this will equal the earlier value
retrieved
+-----
+
+=== Lists and Maps
+
+It is also possible to retrieve subsets of the registry as collections.
+
+* `getProperties(key)`: Maps and properties are straightforward - the subset
is converted into key/value pairs
+ and returned as a map.
+
+ * `getSubsetList(key)`: For lists of complex types that will still contain
more than one key/value pair,
+ this method can be used to retrieve them as a
list of subset registries.
+
+ * `getList(key)`: For lists of simple types, this method can be used
to get a list of value objects.
+
+=== Using Models
+
+To simplify the translation of configuration into reusable beans and to
produce a self-documenting system, Modello
+can be used to generate registry I/O classes. The appropriate goals in the
plugin are `registry-reader` and
+`registry-writer`.
+
+=== Saving Changes
+
+Saving changes to a registry is quite simple:
+
+-----
+registry.save();
+-----
+
+Note that the registry must be a file-based section (saving the entire
registry will not succeed). It will be saved
+to the same location that it was loaded from.
+
+=== Adding Change Listeners
+
+~~TODO
+
diff --git a/spring-registry/src/site/site.xml
b/spring-registry/src/site/site.xml
index fbec8b6..60278d6 100644
--- a/spring-registry/src/site/site.xml
+++ b/spring-registry/src/site/site.xml
@@ -27,7 +27,7 @@
<menu ref="reports"/>
<menu ref="ASF"/>
<breadcrumbs>
- <item name="Redback Components" href="../index.html"/>
+ <item name="Archiva Components" href="../index.html"/>
<item name="Spring Registry" href="index.html"/>
</breadcrumbs>
</body>
diff --git a/src/site/asciidoc/index.adoc b/src/site/asciidoc/index.adoc
new file mode 100644
index 0000000..7650bf9
--- /dev/null
+++ b/src/site/asciidoc/index.adoc
@@ -0,0 +1,14 @@
+Archiva Components
+==================
+
+Archiva Components bundles different independent component modules, that are
used by Archiva and Redback, and are free
+to use by other projects.
+
+Currently the component project contains the following components:
+
+-
link:archiva-components-expression-evaluator/index.html[expression-evaluatior]
+- link:archiva-components-graph/index.html[graph]
+- link:archiva-components-spring-apacheds/index.html[spring-apacheds]
+- link:archiva-components-spring-cache/index.html[spring-cache]
+- link:archiva-components-spring-registry/index.html[spring-registry]
+- link:archiva-components-spring-taskqueue[spring-taskqueue]
diff --git a/src/site/resources/css/site.css b/src/site/resources/css/site.css
new file mode 100644
index 0000000..9a4c913
--- /dev/null
+++ b/src/site/resources/css/site.css
@@ -0,0 +1,36 @@
+@import
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";
+
+.admonitionblock
td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto
Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
+.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type
p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type
p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open
Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table
td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid
#dddddf;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content
.olist>ol>li:last-child>:last-child,.exampleblock>.content
.ulist>ul>li:last-child>:last-child,.exampleblock>.content
.qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content
.olist>ol>li:last-child>:last-child,.sidebarblock>.content
.ulist>ul>li:last-child>:last-child,.sidebarblock>.content
.qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock
pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
+
+span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px
1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px
2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:50%;border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open
Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]::after{content:attr(data-value)}
+
+
diff --git a/src/site/site.xml b/src/site/site.xml
index 533437e..525a202 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -20,6 +20,8 @@
<project name="Archiva Components">
+
+
<bannerLeft>
<name>Apache Archiva</name>
<src>http://archiva.apache.org/images/archiva.png</src>
@@ -40,12 +42,26 @@
<googleSearch>
<sitesearch>http://archiva.apache.org/components</sitesearch>
</googleSearch>
- </fluidoSkin>
+ <ohloh>
+ <projectId>6670</projectId>
+ <widget>thin-badge</widget>
+ </ohloh>
+ <gitHub>
+ <projectId>apache/archiva-components</projectId>
+ <ribbonOrientation>right</ribbonOrientation>
+ <ribbonColor>black</ribbonColor>
+ </gitHub>
+ </fluidoSkin>
</custom>
<publishDate format="yyyy-MM-dd" position="none"/>
<body>
+ <head>
+ <![CDATA[<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/fontawesome.min.css">]]>
+ <![CDATA[<link rel="stylesheet" href="../css/site.css">]]>
+ </head>
+
<links>
<item name="Archiva" href="../index.html"/>
</links>
@@ -57,4 +73,10 @@
<item name="Archiva" href="../index.html"/>
</breadcrumbs>
</body>
+
+ <skin>
+ <groupId>org.apache.maven.skins</groupId>
+ <artifactId>maven-fluido-skin</artifactId>
+ <version>1.7</version>
+ </skin>
</project>