[ 
https://issues.apache.org/jira/browse/SLING-4154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14216189#comment-14216189
 ] 

Marius Petria commented on SLING-4154:
--------------------------------------

I compiled a list of requirements for the configuration framework.

1. We need a framework that can create trees of components starting from a set 
of properties. The components in a tree should be owned by the root component. 
For example creating an agent will create also the associated package exporter 
and importer and the queue provider … all subcomponents relevant for that 
agent. Also, deleting an agent should delete all associated sub-components.
                - Agent
                        - PackageExporter
                                - PackageSerializer
                        - QueueProvider
                        - PackageImporter
                                - TransportHandler
                                - AuthenticationProvider
2. One file configuration for root component. For example it should possible to 
define an agent and all its subcomponents in a file like in [1].
3. A client application (AEM) should be able to hook new implementations in 
this framework . For example the client application should be able to implement 
a custom exporter and define an agent to be built with that implementation.
4. A client application (AEM) should be able to define application wide 
defaults for components. For example an application should be able to use for 
all agents a specific serializer, or a specific authorization strategy.


[1] 
https://github.com/apache/sling/blob/37d51791611f20aa7c4e927fd3eaefc499ff8215/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/jcrsettings/agents/jpublish.json


> Discuss distribution components creation and configuration 
> -----------------------------------------------------------
>
>                 Key: SLING-4154
>                 URL: https://issues.apache.org/jira/browse/SLING-4154
>             Project: Sling
>          Issue Type: Task
>          Components: Distribution
>            Reporter: Marius Petria
>             Fix For: Content Distribution 0.2.0
>
>
> Distribution has one main component (agent) and several secondary components 
> (triggers, exporters and importers).
> These can be created as java objects using a DistributionComponentFactory. 
> The core framework provides a DefaultDistributionComponentFactory that will 
> create the components implemented in the core but a client can define its own 
> components and factory and the default component factory will use those to 
> create a component it does not know of.
> The core framework also provides two ways of registering such a java object 
> as an OSGI service:
> 1. using osgi configs, the osgi properties are parsed and passed to the 
> factory, a component is created and registered 
> (GenericDistributionComponentFactory)
> 2. resource configs, the properties of a resource are parsed and passed to 
> the factory, a component is created and registered 
> (ResourceBasedDistributionComponentFactory)
> Components registered as OSGI services are available as resources via 
> OsgiServicePropertiesResourceProvider.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to