cziegeler closed pull request #4: Additional requirements for the Sling Feature 
Model
URL: https://github.com/apache/sling-whiteboard/pull/4
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/featuremodel/readme.md b/featuremodel/readme.md
index 41d9cd5..4a88a86 100644
--- a/featuremodel/readme.md
+++ b/featuremodel/readme.md
@@ -11,22 +11,56 @@ The goals of this proposal are:
 
 # Requirements
 
-The feature model should at least meet the following requirements:
-
-* A feature model must have a unique identifier
-* A feature model must have a version
-* The feature model should be described through a text format which is easily 
consumable by both humans and machines
-* It must be possible to list the bundles belonging to the feature. The bundle 
definition is complete, meaning it also contains the version or exact artifact.
-* It must be possible to list the OSGi configurations for this features
-* It must be possible to associate an OSGi configuration with a bundle within 
a features
-* It must be possible to define framework properties
-* The feature model must be extensible to allow other (proprietary) Artifacts
-* A feature must be able to extend other features.
-* The feature model must describe how several features are aggregated to build 
a higher level feature
-* The feature model must describe how several features are aggregated to build 
an application
-* A feature must be able to specify additional requirements and capabilities 
that extend the requirements and capabilities from the contained artifacts.
-* A feature should be describable through a single file.
-* Multiple features must be described in multiple files-
+The feature model should meet the following requirements:
+
+* SFM010 - A feature model must have a unique identifier.
+* SFM020 - A feature model must have a version.
+* SFM030 - The feature model should be described through a text format which 
is easily consumable by both humans and machines, that can be edited with 
common editors and support text-based diff operations.
+* SFM040 - It must be possible to specify the bundles belonging to the 
feature, including version.
+* SFM050 - It must be possible to specify the bundles in a feature in terms of 
Maven coordinates.
+* SFM060 - It must be possible to specify the OSGi configurations for a 
feature.
+* SFM070 - Both normal OSGi configurations as well as factory configurations 
must be supported. The feature model must support all data types supported by 
the OSGi Configuration Admin specification.
+* SFM080 - It must be possible to associate an OSGi configuration with a 
bundle within a feature. If the bundle is not resolved at runtime then the 
associated configuration also does not get installed.
+* SFM090 - It must be possible to define framework properties.
+* SFM100 - A feature must be able to extend other features. 
+* SFM110 - A feature must be able to depend on other features. The feature 
model must be able to deal with circular dependencies.
+* SFM120 - The feature model must describe how several features are combined 
to build an application.
+* SFM130 - A feature must be describable through a single file.
+* SFM140 - Multiple features must be described in multiple files.
+* SFM150 - The feature model must be extensible to allow other (proprietary) 
artifacts and content.
+* SFM160 - The feature model must allow the specification of the order in 
which the bundles inside the feature are started. This should be relative to 
when the feature itself is started.
+* SFM170 - The feature model must support variable substitution for its values 
at runtime.
+* SFM180 - The feature model must support JCR Repository Initialization via 
the _repoinit_ language.
+* SFM190 - The feature model should allow the arbitrary text files to be 
written to the file system, to support configuration of components that use 
file-based configuration such as properties or XML files, such as web.xml.
+* SFM200 - The feature model must support features which consist of repository 
content packages.
+* SFM210 - The feature model may support more than one text-based definition 
language where the language used can be easily inferred, for example from the 
file extension.
+* SFM220 - The feature model must support runtime launching with one or more 
features.
+* SFM230 - The feature model must be able to compute the effective 
requirements of a feature by inspecting the feature's content and combining 
this with requirements specified on the feature itself.
+* SFM240 - The feature model must be able to compute the capabilities of a 
feature by inspecting the feature's content and directly specified capabilities.
+* SFM250 - A feature must be able to specify additional requirements and 
capabilities that extend the requirements and capabilities from the contained 
artifacts.
+* SFM260 - The feature model must be able to find all features that provide 
the capabilities required by a given feature, from a set of available features.
+* SFM270 - Given one or more root features, the feature model must be able to 
compute the start order of all resulting features so that dependencies of 
features are started first.
+* SFM280 - The feature model should support all functionality previously 
provided by the Sling provisioning model.
+* SFM290 - When two bundles with the same symbolic name are installed then the 
feature model must be capable of only using the one with the highest version 
number.
+* SFM300 - When two bundles with the same symbolic name are installed then the 
feature model must be capable of installing them side-by-side.
+* SFM310 - The feature model should provide support for long and multi-line 
values without creating files that become hard to handle.
+* SFM320 - The feature model must support comments.
+* SFM330 - It should be possible to dynamically install and uninstall features 
at runtime.
+
+## Tooling
+The following requirements relate to tooling around the Feature Model.
+
+* SFT010 - A maven tool must be provided that can create a Sling Launchpad 
from the feature model.
+* SFT020 - The feature model must allow minimal packaging of runtime artifacts 
for a feature based on one or more root features and including all their 
transitive dependencies, but no other artifacts.
+
+### Containers
+These requirements 
+
+* SFC010 - The feature model must support operation in a container environment 
such as Docker.
+* SFC020 - The feature model must support micro-services oriented target 
runtimes where a single micro service runs in its own container containing only 
the binaries required for that microservice.
+* SFC030 - It must be possible to add new features by placing additional files 
in a container's file system. 
+* SFC040 - It must be possible to alter existing features by placing 
additional files in the file system. For example to uninstall or update a 
bundle provided by an existing feature or to alter a configuration set by an 
existing feature.
+* SFC050 - The feature model must enable the creation of container (Docker) 
images for a specified set of features.
 
 # Prototype
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to