| { |
| // this is a comment |
| "id": "org.apache.sling:my.app:slingosgifeature:my-classifier:1.0", |
| |
| "title": "A title for the feature. (optional)", |
| "description": "A description for the feature. (optional)", |
| "vendor": "The feature vendor, for example 'Apache Software Foundation'. (optional)", |
| "license": "The license of this feature file, for example 'ASL-2'. (optional)", |
| |
| // A complete feature has no external dependencies |
| "complete": true, |
| |
| // A final feature cannot be used as a prototype for another feature |
| "final": false, |
| |
| // variables used in configuration and framework properties are substituted at launch time. |
| "variables": { |
| "cfgvar": "somedefault", |
| "org.abc.xyz": "1.2.3", |
| |
| // When converting to provisioning model, if you need a special name |
| "provisioning.model.name": ":boot" |
| }, |
| |
| // A prototype is another feature that is used as a prototype for this one |
| // Bundles, configurations and framework properties can be removed from the |
| //prototype. Bundles with the same artifact ID defined in the feature override |
| // bundles with this artifact ID in the Prototype |
| "prototype": |
| { |
| "id": "org.apache.sling:some-other-feature:1.2.3", |
| "removals": { |
| "configurations": [], |
| "bundles": [], |
| "framework-properties": [] |
| } |
| }, |
| |
| // Requirements over and above the requirements in the bundles referenced by |
| // feature. |
| "requirements": [ |
| { |
| "namespace": "osgi.contract", |
| "directives": { |
| "filter": "(&(osgi.contract=JavaServlet)(version=3.1))" |
| } |
| } |
| ], |
| |
| // Capabilities over and above the capabilities provided by the bundles referenced |
| // by the feature. |
| "capabilities": [ |
| { |
| "namespace": "osgi.implementation", |
| "attributes": { |
| "osgi.implementation": "osgi.http", |
| "version:Version": "1.1" |
| }, |
| "directives": { |
| "uses": "javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard" |
| } |
| }, |
| { |
| "namespace": "osgi.service", |
| "attributes": { |
| "objectClass:List<String>": "org.osgi.service.http.runtime.HttpServiceRuntime" |
| }, |
| "directives": { |
| "uses": "org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto" |
| } |
| } |
| ], |
| |
| // Framework properties to be provided to the running OSGi Framework |
| "framework-properties": { |
| "foo": 1, |
| "org.osgi.framework.storage": "${tempdir}", |
| "org.apache.felix.scr.directory": "launchpad/scr" |
| }, |
| |
| // The bundles that are part of the feature. Bundles are referenced using Maven |
| // coordinates and can have additional metadata associated with them. Bundles can |
| // specified as either a simple string (the Maven coordinates of the bundle) or |
| // as an object with 'id' and additional metadata. |
| "bundles": [ |
| { |
| "id": "org.apache.sling:security-server:2.2.0", |
| "hash": "4632463464363646436", |
| |
| // This is the relative start order inside the feature |
| "start-order": 5 |
| }, |
| { |
| "id": "org.apache.sling:application-bundle:2.0.0", |
| "start-order": 10 |
| }, |
| "org.apache.sling:foo-xyz:1.2.3" |
| ], |
| |
| // The configurations are specified following the format defined by the OSGi Configurator |
| // specification: https://osgi.org/specification/osgi.cmpn/7.0.0/service.configurator.html |
| // Variables declared in the variables section can be used for late binding of variables |
| // they can be specified with the Launcher, or the default from the variables section is used. |
| // Factory configurations can be specified using the named factory syntax, which separates |
| // The factory PID and the name with a tilde '~' |
| "configurations": { |
| "my.pid": { |
| "foo": 5, |
| "something-enabled": false, |
| "bar": "${cfgvar}", |
| |
| // The tempdir variable is not specified at the variables section. |
| // It needs to be provided at launch, otherwise the launch will stop. |
| "tempdir": "${tempdir}", |
| |
| |
| "number:Integer": 7 |
| }, |
| "my.factory.pid~name": { |
| "a.value":"yeah" |
| } |
| } |
| } |