diff -b -B -r ./contributing.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/contributing.html 94c94 <
provider.file provider.file provider.root (2.x), provider.roots (1.x) provider.root (2.x), provider.roots (1.x) provider.fs.mode provider.fs.mode provider.initial.content.import.options provider.initial.content.import.options provider.filevault.filterxml.path provider.filevault.filterxml.path provider.checkinterval provider.checkinterval provider.cache.size provider.cache.size Instead of creating the jobs by calling JobManager.addJob("my/special/jobtopic", props); the JobBuilder can be used, which is retrieved via JobManager.createJob("my/special/jobtopic"). The last method being called on the JobBuilder must be add(...), which finally adds the job to the queue.
Instead of creating the jobs by calling JobManager.addJob("my/special/jobtopic", props); the JobBuilder can be used, which is retrieved via JobManager.createJob("my/special/jobtopic"). The last method being called on the JobBuilder must be add(...), which finally adds the job to the queue.
If the job consumer needs more features like providing progress information or adding more information of the processing,JobExecutor should be implemented.
A job executor is a service processing a job. It registers itself as an OSGi service together with a property defining which topics this consumer can process:
If the job consumer needs more features like providing progress information or adding more information of the processing,*JobExecutor* should be implemented.
A job executor is a service processing a job. It registers itself as an OSGi service together with a property defining which topics this consumer can process:
JobExecutionContext can be used by executor to update job execution progress, add job logs, build a JobExecutionResult and to check if job is still active by jobExecutionContext.isStopped(). The executor can return job result "succeeded" by calling JobExecutionContext.result(successMsg).succeeded(), job result "failed" by calling JobExecutionContext.result(errorMessage).failed() and job result "cancelled" by calling JobExecutionContext.result(message).cancelled(). The Job interface allows to query the topic, the result message, progress, logs, the payload and additional information about the current job.
<JobExecutionContext can be used by executor to update job execution progress, add job logs, build a JobExecutionResult and to check if job is still active by jobExecutionContext.isStopped(). The executor can return job result "succeeded" by calling JobExecutionContext.result(successMsg).succeeded(), job result "failed" by calling JobExecutionContext.result(errorMessage).failed() and job result "cancelled" by calling JobExecutionContext.result(message).cancelled(). The Job interface allows to query the topic, the result message, progress, logs, the payload and additional information about the current job.
>queue.name queue.name queue.type queue.type queue.topics queue.topics queue.maxparallel queue.maxparallel queue.retries queue.retries queue.retrydelay queue.retrydelay queue.priority queue.priority service.ranking service.ranking The Bundle Resource Provider provides access to files/directories included in an OSGi bundle through the Sling ResourceResolver.
If a bundle wants to provide resources, it must specify the Bundle manifest header Sling-Bundle-Resources containing a list of absolute paths. The paths are separated by comma. Without any additional information such a path is mapped 1:1 meaning that the specified path is used as the root resource path and the corresponding resource is at the same path in the bundle.
The Bundle Resource Provider provides access to files/directories included in an OSGi bundle through the Sling ResourceResolver.
If a bundle wants to provide resources, it must specify the Bundle manifest header Sling-Bundle-Resources containing a list of absolute paths. The paths are separated by comma. Without any additional information such a path is mapped 1:1 meaning that the specified path is used as the root resource path and the corresponding resource is at the same path in the bundle.
Caching services are available under multiple repositories at https://github.com/apache/?utf8=✓&q=sling-cache
--- >Caching services are available under multiple repositories at https://github.com/apache/?utf8=✓&q=sling-cache
96c96,97 < A portal cache provider API implementation is provided, that depends on the whiteboard portal modules found under [https://svn.apache.org/repos/asf/sling/whiteboard/portal](https://svn.apache.org/repos/asf/sling/whiteboard/portal)A portal cache provider API implementation is provided, that depends on the whiteboard portal modules found under https://svn.apache.org/repos/asf/sling/whiteboard/portal
filename ::= <pid> ( '-' <subname> )? ('.cfg'|'.config')
---
> filename ::= <pid> ( '-' <subname> )? ('.cfg'|'.config')
99c99
< If the form is <pid>('.cfg'|'.config'), the file contains the properties for a Managed Service. The <pid> is then the PID of the Managed Service. See the Configuration Admin service for details.
---
> If the form is <pid>('.cfg'|'.config'), the file contains the properties for a Managed Service. The <pid> is then the PID of the Managed Service. See the Configuration Admin service for details.
108c108
< Property Files (.cfg)
---
> Property Files (.cfg)
111,112c111,112
< header ::= <header> ( ':' | '=' ) <value> ( '\<nl> <value> ) *
< comment ::= '#' <any>
---
> header ::= <header> ( ':' | '=' ) <value> ( '\<nl> <value> ) *
> comment ::= '#' <any>
118,119c118,119
< In addition the XML format defined by java.util.Property is supported if the file starts with the character <.
< Configuration Files (.config)
---
> In addition the XML format defined by [java.util.Property](https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#loadFromXML(java.io.InputStream)) is supported if the file starts with the character <.
> Configuration Files (.config)
124,125c124,125
< comment ::= '#' <any>
< header ::= prop '=' value
---
> comment ::= '#' <any>
> header ::= prop '=' value
127,131c127,131
< symbolic-name ::= token { '.' token }
< token ::= { [ 0..9 ] | [ a..z ] | [ A..Z ] | '_' | '-' }
< value ::= [ type ] ( '[' values ']' | '(' values ')' | simple )
< values ::= simple { ',' simple }
< simple ::= '"' stringsimple '"'
---
> symbolic-name ::= token { '.' token }
> token ::= { [ 0..9 ] | [ a..z ] | [ A..Z ] | '_' | '-' }
> value ::= [ type ] ( '[' values ']' | '(' values ')' | simple )
> values ::= simple { ',' simple }
> simple ::= '"' stringsimple '"'
133c133
< stringsimple ::= <quoted string representation of the value where both '"' and '=' need to be escaped>
---
> stringsimple ::= <quoted string representation of the value where both '"' and '=' need to be escaped>
150c150
< Project Info
---
> Project Info
diff -b -B -r ./documentation/bundles/content-distribution.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/content-distribution.html
96c96
< Introduction
---
> Introduction
98c98
< Distribution usecases
---
> Distribution usecases
100c100
< Forward distribution
---
> Forward distribution
102c102
< Setup overview
---
> Setup overview
107c107,108
<
---
>
>
111c112,113
<
---
>
>
113c115
< Sample configuration
---
> Sample configuration
115,121c117,129
< on source instance: one forward agent
org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json
< name="publish"
< packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default"]
<
< on target instance: one local importer
org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default
< name="default"
<
---
>
> on source instance: one forward agent
> org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json
> name="publish"
> packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default"]
>
>
>
> on target instance: one local importer
> org.apache.sling.distribution.packaging.impl.importer.LocalDistributionPackageImporterFactory-default
> name="default"
>
>
123c131
< Trigger forward distribution
---
> Trigger forward distribution
126c134
< $ curl -v -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish -d 'action=ADD' -d 'path=/content/sample1'
---
> $ curl -v -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish -d 'action=ADD' -d 'path=/content/sample1'
128c136
< Reverse distribution
---
> Reverse distribution
130c138
< Setup overview
---
> Setup overview
135c143,144
<
---
>
>
140c149,150
<
---
>
>
142c152
< Sample configuration
---
> Sample configuration
144,149c154,164
< on target instance: one reverse agent
org.apache.sling.distribution.agent.impl.ReverseDistributionAgentFactory-reverse.json
< name="reverse"
< packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse"]
<
< on source instance: one queue agent and one exporter for that agent
org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
< name="reverse"
---
>
> on target instance: one reverse agent
> org.apache.sling.distribution.agent.impl.ReverseDistributionAgentFactory-reverse.json
> name="reverse"
> packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse"]
>
>
>
> on source instance: one queue agent and one exporter for that agent
> org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
> name="reverse"
152,154c167,170
< name="reverse"
< agent.target="(name=reverse)"
<
---
> name="reverse"
> agent.target="(name=reverse)"
>
>
156c172
< Trigger reverse distribution
---
> Trigger reverse distribution
159c175
< $ curl -v -u admin:admin http://localhost:8081/libs/sling/distribution/services/agents/publish -d 'action=PULL' -d 'path=/content/sample1'
---
> $ curl -v -u admin:admin http://localhost:8081/libs/sling/distribution/services/agents/publish -d 'action=PULL' -d 'path=/content/sample1'
161c177
< Sync distribution
---
> Sync distribution
163c179
< Setup overview:
---
> Setup overview:
168c184,185
<
---
>
>
174c191,192
<
---
>
>
176c194
< Sample configuration
---
> Sample configuration
178,184c196,207
< on coordinator instance: one sync agent
org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-sync.json
< name="sync"
< packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"]
< packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
<
< on each farm instance: one local exporter and one local importer
org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
< name="reverse"
---
>
> on coordinator instance: one sync agent
> org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-sync.json
> name="sync"
> packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"]
> packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
>
>
>
> on each farm instance: one local exporter and one local importer
> org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
> name="reverse"
187,188c210,211
< name="reverse"
< agent.target="(name=reverse)"
---
> name="reverse"
> agent.target="(name=reverse)"
191,193c214,217
< name="reverse"
< agent.target="(name=reverse)"
<
---
> name="reverse"
> agent.target="(name=reverse)"
>
>
195c219
< Multidatacenter sync distribution
---
> Multidatacenter sync distribution
197c221
< Setup overview
---
> Setup overview
204c228,229
<
---
>
>
210c235,236
<
---
>
>
212c238
< Sample configuration
---
> Sample configuration
214,218c240,246
< on coordinator instance: one intradcsync agent with two exporters for the other dcs, and one interdcsync agent that connects to remote exporters.
org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-intradcsync
< name="intradcsync"
< packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"]
< packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
< passiveQueues=["dc2queue", "dc3queue"]
---
>
> on coordinator instance: one intradcsync agent with two exporters for the other dcs, and one interdcsync agent that connects to remote exporters.
> org.apache.sling.distribution.agent.impl.SyncDistributionAgentFactory-intradcsync
> name="intradcsync"
> packageExporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/exporters/reverse", "http://localhost:4504/libs/sling/distribution/services/exporters/reverse"]
> packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
> passiveQueues=["dc2queue", "dc3queue"]
221,223c249,251
< name="dc2queue"
< agent.target="(name=intradcsync)"
< queue="dc2queue"
---
> name="dc2queue"
> agent.target="(name=intradcsync)"
> queue="dc2queue"
226,228c254,256
< name="dc3queue"
< agent.target="(name=intradcsync)"
< queue="dc3queue"
---
> name="dc3queue"
> agent.target="(name=intradcsync)"
> queue="dc3queue"
231,236c259,267
< name="interdcsync"
< packageExporter.endpoints=["http://localhost:5502/libs/sling/distribution/services/exporters/dc1queue", "http://localhost:6502/libs/sling/distribution/services/exporters/dc1queue"]
< packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
<
< on each farm instance: one local exporter and one local importer
org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
< name="reverse"
---
> name="interdcsync"
> packageExporter.endpoints=["http://localhost:5502/libs/sling/distribution/services/exporters/dc1queue", "http://localhost:6502/libs/sling/distribution/services/exporters/dc1queue"]
> packageImporter.endpoints=["http://localhost:4503/libs/sling/distribution/services/importers/default", "http://localhost:4504/libs/sling/distribution/services/importers/default"]
>
>
>
> on each farm instance: one local exporter and one local importer
> org.apache.sling.distribution.agent.impl.QueueDistributionAgentFactory-reverse.json
> name="reverse"
239,240c270,271
< name="reverse"
< agent.target="(name=reverse)"
---
> name="reverse"
> agent.target="(name=reverse)"
243,244c274,276
< name="default"
<
---
> name="default"
>
>
246,247c278,279
< Additional options
< How to configure binary-less distribution?
---
> Additional options
> How to configure binary-less distribution?
253c285
< How to configure priority queue?
---
> How to configure priority queue?
257c289
< How to configure retry strategy?
---
> How to configure retry strategy?
diff -b -B -r ./documentation/bundles/content-loading-jcr-contentloader.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/content-loading-jcr-contentloader.html
97c97
< Initial Content Loading
---
> Initial Content Loading
103,104c103,104
< Source Entry Paths in Bundle
< Target Repository Path
---
> Source Entry Paths in Bundle
> Target Repository Path
109,110c109,110
< SLING-INF/content/home
< /home
---
> SLING-INF/content/home
> /home
113,114c113,114
< SLING-INF/content/content/playground/en/home
< /content/playground/en/home
---
> SLING-INF/content/content/playground/en/home
> /content/playground/en/home
117,118c117,118
< SLING-INF/someothercontent/playground/en/home
< not installed at all, because not below the Sling-Initial-Content header entry
---
> SLING-INF/someothercontent/playground/en/home
> not installed at all, because not below the Sling-Initial-Content header entry
126,127c126,127
< Entry Type
< Installation method
---
> Entry Type
> Installation method
132,133c132,133
< Directory
< Created as a node of type sling:Folder unless a content definition file of the same name exists in the same directory as the directory to be installed. Example: A directory SLING-INF/content/dir is installed as node /dir of type nt:folder unless a SLING-INF/content/dir.xml or SLING-INF/content/dir.json file exists which defines the content for the /dir node.
---
> Directory
> Created as a node of type sling:Folder unless a content definition file of the same name exists in the same directory as the directory to be installed. Example: A directory SLING-INF/content/dir is installed as node /dir of type nt:folder unless a SLING-INF/content/dir.xml or SLING-INF/content/dir.json file exists which defines the content for the /dir node.
136,137c136,137
< File
< Unless the file is a content definition file (see below) an nt:file node is created for the file and an nt:resource node is created as its jcr:content child node to take the contents of the bundle file. The properties of the nt:resource node are set from file information as available. If a content definition file exists with the same name as the file plus .json or .xml these properties are set additionally on the imported file. See below for the content definition file specification.
---
> File
> Unless the file is a content definition file (see below) an nt:file node is created for the file and an nt:resource node is created as its jcr:content child node to take the contents of the bundle file. The properties of the nt:resource node are set from file information as available. If a content definition file exists with the same name as the file plus .json or .xml these properties are set additionally on the imported file. See below for the content definition file specification.
145,148c145,148
< Directive
< Definition
< Default value
< Description
---
> Directive
> Definition
> Default value
> Description
153,156c153,156
< overwrite
< overwrite:=(true|false)
< false
< The overwrite directive specifies if content nodes should be overwritten (at the target repository path, which is "/" by default) or just initially added. If this is true, existing nodes are deleted and a new node is created in the same place. This directive should be used together with the path directive to limit overwriting.
---
> overwrite
> overwrite:=(true|false)
> false
> The overwrite directive specifies if content nodes should be overwritten (at the target repository path, which is "/" by default) or just initially added. If this is true, existing nodes are deleted and a new node is created in the same place. This directive should be used together with the path directive to limit overwriting.
159,162c159,162
< overwriteProperties
< overwriteProperties:=(true|false)
< false
< The overwriteProperties directive specifying if content properties should be overwritten or just initially added (at the target repository path, which is "/" by default). This directive should be used together with the path directive to limit overwriting.
---
> overwriteProperties
> overwriteProperties:=(true|false)
> false
> The overwriteProperties directive specifying if content properties should be overwritten or just initially added (at the target repository path, which is "/" by default). This directive should be used together with the path directive to limit overwriting.
165,168c165,168
< uninstall
< uninstall:=(true|false)
< value from overwrite
< The uninstall directive specifies if content should be uninstalled when bundle is unregistered. This value defaults to the value of the overwrite directive.
---
> uninstall
> uninstall:=(true|false)
> value from overwrite
> The uninstall directive specifies if content should be uninstalled when bundle is unregistered. This value defaults to the value of the overwrite directive.
171,174c171,174
< path
< path:=/target/location
< /
< The path directive specifies the target node where initial content will be loaded. If the path does not exist yet in the repository, it is created by the content loader. The intermediate nodes are of type sling:Folder.
---
> path
> path:=*/target/location*
> /
> The path directive specifies the target node where initial content will be loaded. If the path does not exist yet in the repository, it is created by the content loader. The intermediate nodes are of type sling:Folder.
177,180c177,180
< checkin
< checkin:=(true|false)
< false
< The checkin directive specifies whether versionable nodes should be checked in.
---
> checkin
> checkin:=(true|false)
> false
> The checkin directive specifies whether versionable nodes should be checked in.
183,186c183,186
< ignoreImportProviders
< ignoreImportProviders:=list of extensions
< empty
< This directive can be used to not run one of the configured extractors (see below).
---
> ignoreImportProviders
> ignoreImportProviders:=list of extensions
> empty
> This directive can be used to not run one of the configured extractors (see below).
194,195c194,195
< Sling-Initial-Content header entry
< Behaviour
---
> Sling-Initial-Content header entry
> Behaviour
200,201c200,201
< SLING-INF/content/home;overwrite:=true;path:=/home
< Overwrites already existing content in /home and uninstalls the content when the bundle is unregistered.
---
> SLING-INF/content/home;overwrite:=true;path:=/home
> Overwrites already existing content in /home and uninstalls the content when the bundle is unregistered.
204,205c204,205
< SLING-INF/content/home;overwriteProperties:=true;path:=/home
< Overwrites properties of existing content in /home.
---
> SLING-INF/content/home;overwriteProperties:=true;path:=/home
> Overwrites properties of existing content in /home.
208,209c208,209
< SLING-INF/content/home;path:=/sites/sling_website
< This loads the content given in SLING-INF/content/home into /sites/sling_website.
---
> SLING-INF/content/home;path:=/sites/sling_website
> This loads the content given in SLING-INF/content/home into /sites/sling_website.
212,213c212,213
< SLING-INF/content/home;checkin:=true
< After content loading, versionable nodes are checked in.
---
> SLING-INF/content/home;checkin:=true
> After content loading, versionable nodes are checked in.
217c217
< Loading initial content from bundles
---
> Loading initial content from bundles
226c226
< Directories
---
> Directories
228c228
< Files
---
> Files
231c231
< XML Descriptor Files
---
> XML Descriptor Files
286,289c286,289
< Using a custom XML format
< By writing an XSLT stylesheet file, you can use whatever XML format you prefer. The XML file references an XSLT stylesheet by using the xml-stylesheet processing instruction:
< <?xml version="1.0" encoding="UTF-8"?>
< <?xml-stylesheet href="my-transform.xsl" type="text/xsl"?> <!-- The path to my-transform.xsl is relative to this file -->
---
> Using a custom XML format
> By writing an XSLT stylesheet file, you can use whatever XML format you prefer. The XML file references an XSLT stylesheet by using the xml-stylesheet processing instruction:
> <?xml version="1.0" encoding="UTF-8"?>
> <?xml-stylesheet href="my-transform.xsl" type="text/xsl"?> <!-- The path to my-transform.xsl is relative to this file -->
299,301c299,301
< <xsl:stylesheet version="1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
< xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
< xmlns:rep="internal" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
---
> <xsl:stylesheet version="1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
> xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
> xmlns:rep="internal" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
303c303
< <xsl:template match="your_custom_element">
---
> <xsl:template match="your_custom_element">
311c311
< JSON Descriptor Files
---
> JSON Descriptor Files
315c315
< "nodename" : {
---
> "nodename" : {
317,318c317,318
< // optional primary node type, default "nt:unstructured"
< "jcr:primaryType": "sling:ScriptedComponent",
---
> // optional primary node type, default "nt:unstructured"
> "jcr:primaryType": "sling:ScriptedComponent",
321c321
< "jcr:mixinTypes": [ ],
---
> "jcr:mixinTypes": [ ],
328c328
< "sling:contentClass": "com.day.sling.jcr.test.Test",
---
> "sling:contentClass": "com.day.sling.jcr.test.Test",
331c331
< "sampleMulti": [ "v1", "v2" ],
---
> "sampleMulti": [ "v1", "v2" ],
334,335c334,335
< "sampleStruct": 1,
< "sampleStructMulti": [ 1, 2, 3 ],
---
> "sampleStruct": 1,
> "sampleStructMulti": [ 1, 2, 3 ],
338c338
< "sampleDate": "2014-11-27T13:26:00.000+01:00",
---
> "sampleDate": "2014-11-27T13:26:00.000+01:00",
341c341
< "jcr:reference:sampleRef": "386b0f48-49c3-4c58-8735-ceee6bfc1933",
---
> "jcr:reference:sampleRef": "386b0f48-49c3-4c58-8735-ceee6bfc1933",
344c344
< "jcr:path:samplePath": "/content/data",
---
> "jcr:path:samplePath": "/content/data",
347c347
< "jcr:name:sampleName": "data",
---
> "jcr:name:sampleName": "data",
350c350
< "jcr:uri:sampleUri": "http://sling.apache.org/",
---
> "jcr:uri:sampleUri": "http://sling.apache.org/",
353,359c353,359
< "sling:scripts": {
< "jcr:primaryType": "sling:ScriptList",
< "sling:Script": {
< "jcr:primaryType": "sling:Script",
< "sling:name": "/test/content/jsp/start.jsp",
< "sling:type": "jsp",
< "sling:glob": "*"
---
> "sling:scripts": {
> "jcr:primaryType": "sling:ScriptList",
> "sling:Script": {
> "jcr:primaryType": "sling:Script",
> "sling:name": "/test/content/jsp/start.jsp",
> "sling:type": "jsp",
> "sling:glob": "*"
364,366c364,366
< Extractors
< By default, the sling-jcr-contentloader bundle tries to extract certain file types during content loading. These include json, xml, zip, and jar files. Therefore all available extractors are used for content processing. However if some files should be put into the repository unextracted, the ignoreImportProviders directive can be used with a comma separated list of extensions that should not be extracted, like ignoreImportProviders:="jar,zip". Please note that the value needs to be put into quotation marks if more than one value is used like in the example.
< File name escaping
---
> Extractors
> By default, the sling-jcr-contentloader bundle tries to extract certain file types during content loading. These include json, xml, zip, and jar files. Therefore all available extractors are used for content processing. However if some files should be put into the repository unextracted, the ignoreImportProviders directive can be used with a comma separated list of extensions that should not be extracted, like ignoreImportProviders:="jar,zip". Please note that the value needs to be put into quotation marks if more than one value is used like in the example.
> File name escaping
369,371c369,371
< Workspace Targetting
< By default, initial content will be loaded into the default workspace. To override this, add a Sling-Initial-Content-Workspace bundle manifest header to specify the workspace. Note that all content from a bundle will be loaded into the same workspace.
< Example: Load i18n JSON files
---
> Workspace Targetting
> By default, initial content will be loaded into the default workspace. To override this, add a Sling-Initial-Content-Workspace bundle manifest header to specify the workspace. Note that all content from a bundle will be loaded into the same workspace.
> Example: Load i18n JSON files
385c385
< <?xml version="1.0" encoding="UTF-8"?>
---
> <?xml version="1.0" encoding="UTF-8"?>
396c396
< Declared Node Type Registration
---
> Declared Node Type Registration
400c400
< Node types installed by this mechanism will never be removed again by the sling-jcr-base bundle.
---
> Node types installed by this mechanism will never be removed again by the sling-jcr-base bundle.
403c403
< Support for re-registration of node types is relatively limited. In Jackrabbit, for example, only "trivial" changes are allowed.
---
> Support for re-registration of node types is relatively limited. In Jackrabbit, for example, only "trivial" changes are allowed.
405c405
< Automated tests
---
> Automated tests
408c408
< ACLs and Principals
---
> ACLs and Principals
412,414c412,414
< "security:acl": [
< { "principal": "TestGroup1", "granted": ["jcr:read","jcr:write"] },
< { "principal": "TestUser1", "granted": ["jcr:read"], "denied": ["jcr:write"] }
---
> "security:acl": [
> { "principal": "TestGroup1", "granted": ["jcr:read","jcr:write"] },
> { "principal": "TestUser1", "granted": ["jcr:read"], "denied": ["jcr:write"] }
428,430c428,430
< "security:principals": [
< { "name": "TestUser1", "password": "mypassword", "extraProp1": "extraProp1Value" },
< { "name": "TestGroup1", "isgroup": "true", "members": ["TestUser1"], "extraProp1": "extraProp1Value" }
---
> "security:principals": [
> { "name": "TestUser1", "password": "mypassword", "extraProp1": "extraProp1Value" },
> { "name": "TestGroup1", "isgroup": "true", "members": ["TestUser1"], "extraProp1": "extraProp1Value" }
diff -b -B -r ./documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/context-aware-configuration/context-aware-configuration-default-implementation.html
98c98
< About
---
> About
101c101
< Repository paths
---
> Repository paths
104c104
< Context paths
---
> Context paths
106c106
< Configuration resource resolving
---
> Configuration resource resolving
108c108
< 
---
> 
126c126
< Configuration persistence
---
> Configuration persistence
132c132
< @prop1 = 'value1'
---
> @prop1 = 'value1'
144c144
< Resource inheritance
---
> Resource inheritance
155c155
< 
---
> 
157c157
< Property inheritance
---
> Property inheritance
diff -b -B -r ./documentation/bundles/context-aware-configuration/context-aware-configuration-override.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/context-aware-configuration/context-aware-configuration-override.html
98c98
< About
---
> About
102c102
< Override syntax
---
> Override syntax
119,121c119,121
< my-config/property1="value 1"
< my-config/sub1/property1="value 1"
< my-config/property1=["value 1","value 2"]
---
> my-config/property1="value 1"
> my-config/sub1/property1="value 1"
> my-config/property1=["value 1","value 2"]
123,125c123,125
< x.y.z.MyConfig={"prop1"="value1","prop2"=[1,2,3],"prop3"=true,"prop4"=1.23}
< [/content/region1]my-config/property1="value 1"
< [/content/region1]my-config/sub1={"prop1":"value 1"}
---
> x.y.z.MyConfig={"prop1"="value1","prop2"=[1,2,3],"prop3"=true,"prop4"=1.23}
> [/content/region1]my-config/property1="value 1"
> [/content/region1]my-config/sub1={"prop1":"value 1"}
128,129c128,129
< Built-in override providers
< Override via system properties
---
> Built-in override providers
> Override via system properties
134,135c134,135
< -D"sling.caconfig.override.my-config/property1=[\"value 1\",\"value 2\"]"
< -D"sling.caconfig.override.[/content/region1]x.y.z.MyConfig={\"prop1\"=\"value1\",\"prop2\"=[1,2,3],\"prop3\"=true,\"prop4\"=1.23}"
---
> -D"sling.caconfig.override.my-config/property1=[\"value 1\",\"value 2\"]"
> -D"sling.caconfig.override.[/content/region1]x.y.z.MyConfig={\"prop1\"=\"value1\",\"prop2\"=[1,2,3],\"prop3\"=true,\"prop4\"=1.23}"
138c138
< Override via OSGi configuration
---
> Override via OSGi configuration
diff -b -B -r ./documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/context-aware-configuration/context-aware-configuration-spi.html
98c98
< About
---
> About
101c101
< General principles
---
> General principles
109c109
< Context Path Strategy
---
> Context Path Strategy
112c112
< Configuration Resource Resolver Strategy
---
> Configuration Resource Resolver Strategy
114c114
< Configuration Inheritance Strategy
---
> Configuration Inheritance Strategy
116c116
< Configuration Persistence Strategy
---
> Configuration Persistence Strategy
119c119
< Configuration Metadata Provider
---
> Configuration Metadata Provider
121c121
< Configuration Override Provider
---
> Configuration Override Provider
diff -b -B -r ./documentation/bundles/context-aware-configuration/context-aware-configuration.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/context-aware-configuration/context-aware-configuration.html
96c96
< About
---
> About
99c99
< 
---
> 
102c102
< Java API
---
> Java API
110c110
< Context-Aware Resources
---
> Context-Aware Resources
117c117
< Resource contentResource = resourceResolver.getResource("/content/mysite/page1");
---
> Resource contentResource = resourceResolver.getResource("/content/mysite/page1");
119c119
< Resource configResource = configurationResourceResolver.getResource(contentResource, "my-bucket", "my-config");
---
> Resource configResource = configurationResourceResolver.getResource(contentResource, "my-bucket", "my-config");
122c122
< Collection<Resource> configResources = configurationResourceResolver.getResourceCollection(contentResource, "my-bucket", "my-config");
---
> Collection<Resource> configResources = configurationResourceResolver.getResourceCollection(contentResource, "my-bucket", "my-config");
125,126c125,126
< The configuration name (3rd parameter) defines which configuration you are interested in. The name can be a relative path as well (e.g. "sub1/my-config").
< Context-Aware Configurations
---
> The configuration name (3rd parameter) defines which configuration you are interested in. The name can be a relative path as well (e.g. "sub1/my-config").
> Context-Aware Configurations
129c129
< Resource contentResource = resourceResolver.getResource("/content/mysite/page1");
---
> Resource contentResource = resourceResolver.getResource("/content/mysite/page1");
138c138
< Contexts and configuration references
---
> Contexts and configuration references
141c141
< 
---
> 
143c143
< Describe configurations via annotation classes
---
> Describe configurations via annotation classes
146c146
< @Configuration(label="My Configuration", description="Describe me")
---
> @Configuration(label="My Configuration", description="Describe me")
149c149
< @Property(label="Parameter #1", description="Describe me")
---
> @Property(label="Parameter #1", description="Describe me")
152,153c152,153
< @Property(label="Parameter with Default value", description="Describe me")
< String paramWithDefault() default "defValue";
---
> @Property(label="Parameter with Default value", description="Describe me")
> String paramWithDefault() default "defValue";
155c155
< @Property(label="Integer parameter", description="Describe me")
---
> @Property(label="Integer parameter", description="Describe me")
159c159
< The @Configuration annotation is mandatory. All properties on the @Configuration annotation and the @Property annotations are optional - they provide additional metadata for tooling e.g. configuration editors.
---
> The @Configuration annotation is mandatory. All properties on the @Configuration annotation and the @Property annotations are optional - they provide additional metadata for tooling e.g. configuration editors.
165,166c165,166
< To automate this you can use the Context-Aware Configuration bnd plugin (see next chapter).
< Accessing configuration from HTL/Sightly templates
---
> To automate this you can use the Context-Aware Configuration bnd plugin (see next chapter).
> Accessing configuration from HTL/Sightly templates
171c171
< <dd>${caconfig['x.y.z.ConfigSample'].stringParam}</dd>
---
> <dd>${caconfig['x.y.z.ConfigSample'].stringParam}</dd>
175c175
< <ul data-sly-list.item="${caconfig['x.y.z.ConfigSampleList']}">
---
> <ul data-sly-list.item="${caconfig['x.y.z.ConfigSampleList']}">
180c180
< ${caconfig['x.y.z.ConfigSample']['nestedConfig/stringParam']}
---
> ${caconfig['x.y.z.ConfigSample']['nestedConfig/stringParam']}
182c182
< Context-Aware Configuration bnd plugin
---
> Context-Aware Configuration bnd plugin
204c204
< Unit Tests with Context-Aware Configuration
---
> Unit Tests with Context-Aware Configuration
229c229
< Customizing the configuration lookup
---
> Customizing the configuration lookup
233c233
< Web Console plugins
---
> Web Console plugins
240c240
< Management API
---
> Management API
244c244
< References
---
> References
diff -b -B -r ./documentation/bundles/datasource-providers.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/datasource-providers.html
97c97
< Pooled Connection DataSource Provider
---
> Pooled Connection DataSource Provider
105c105
< Driver Loading
---
> Driver Loading
111c111
< Configuration
---
> Configuration
118c118
< 
---
> 
120c120
< Convert Driver jars to Bundle
---
> Convert Driver jars to Bundle
140c140
< JNDI DataSource
---
> JNDI DataSource
148c148
< Usage
---
> Usage
156c156
< @Reference(target = "(&(objectclass=javax.sql.DataSource)(datasource.name=foo))")
---
> @Reference(target = "(&(objectclass=javax.sql.DataSource)(datasource.name=foo))")
160c160
< Installation
---
> Installation
diff -b -B -r ./documentation/bundles/discovery-api-and-impl.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/discovery-api-and-impl.html
98c98
< Discovery Entities
---
> Discovery Entities
100c100
< Instance, InstanceDescription
---
> Instance, InstanceDescription
108c108
< Cluster, ClusterView
---
> Cluster, ClusterView
116c116
< Topology, TopologyView
---
> Topology, TopologyView
123c123
< Cluster Leader and Instance Ordering
---
> Cluster Leader and Instance Ordering
125,126c125,126
< Additionally each cluster (ClusterView) orders its instances in a stable list: each newly joined instances is added at the end of the list and retains its order in the list as long as it doesn't leave the cluster. This can be used to distribute "singleton" work amongst the cluster to more than just the leader.
< Topology Changes
---
> Additionally each cluster (ClusterView) orders its instances in a stable list: each newly joined instances is added at the end of the list and retains its order in the list as long as it doesn't leave the cluster. This can be used to distribute "singleton" work amongst the cluster to more than just the leader.
> Topology Changes
146c146
< Properties
---
> Properties
158c158
< value = {"sample.value1", "sample.value2" })
---
> value = {"sample.value1", "sample.value2" })
162,165c162,165
< if ("sample.value1".equals(name)) {
< return "foo";
< } else if ("sample.value2".equals(name)) {
< return "bar";
---
> if ("sample.value1".equals(name)) {
> return "foo";
> } else if ("sample.value2".equals(name)) {
> return "bar";
172c172
< Deployment and configuration
---
> Deployment and configuration
174,175c174,175
< discovery.impl: Resource-based, OOTB Implementation
< The discovery.impl bundle is a resource-based, out of the box implementation of the discovery.api using standard Sling.
---
> discovery.impl: Resource-based, OOTB Implementation
> The discovery.impl bundle is a resource-based, out of the box implementation of the discovery.api using standard Sling.
178c178
< Location in Repository
---
> Location in Repository
182c182
< /var/discovery/impl/clusterInstances/<slingId>
---
> /var/discovery/impl/clusterInstances/<slingId>
195c195
< /var/discovery/impl/establishedView
---
> /var/discovery/impl/establishedView
202c202
< /var/discovery/impl/ongoingVotings
---
> /var/discovery/impl/ongoingVotings
205c205
< /var/discovery/impl/previousView
---
> /var/discovery/impl/previousView
207c207
< Heartbeats, Voting and Intra-Cluster Discovery
---
> Heartbeats, Voting and Intra-Cluster Discovery
214c214
< To avoid having each instance make it's own, perhaps differing conclusions as to which instance/heartbeat is dead or not, there is an explicit, unanimous voting mechanism that agrees upon a list of alive instances. This list of alive instances is called cluster view.
---
> To avoid having each instance make it's own, perhaps differing conclusions as to which instance/heartbeat is dead or not, there is an explicit, unanimous voting mechanism that agrees upon a list of alive instances. This list of alive instances is called cluster view.
222c222
< pseudo-network partitioning aka split-brain
---
> pseudo-network partitioning aka split-brain
226c226
< 
---
> 
235c235
< Topology Connectors for Cross-Cluster Discovery
---
> Topology Connectors for Cross-Cluster Discovery
240c240
< WebConsole
---
> WebConsole
242c242
< Configuration
---
> Configuration
245,254c245,264
< heartbeatInterval: the time in seconds between two heartbeats (both cluster-internal and for HTTP-connectors). Default value is 15 seconds.
< heartbeatTimeout: the time in seconds after which an instance is considered dead if no heartbeat was sent since. Default value is 20 seconds.
< topologyConnectorUrls: a list of connector URLs to which this instance should connect to. The list can contain multiple instances of the same cluster (for fallback configurations). If the list is empty, no connector will be created. The default relative URL is /libs/sling/topology/connector. Note that this URL is accessible without authentication - to avoid having to configure administrative username/passwords in all instances. Instead, a whitelist approach is used (see next item).
< topologyConnectorWhitelist: As mentioned above, the path /libs/sling/topology/connector does not require authentication. To assure that only trusted instances can connect to the topology, its hostname or IP address must be in a whitelist. By default this whitelist only contains localhost and 127.0.0.1.
< minEventDelay: To reduce the number of events sent during changes, there is a delay (in seconds) before the event is sent. If additional changes happen during this delay, the change will be combined in one event.
< leaderElectionRepositoryDescriptor: this is an advanced parameter. It denotes a repository descriptor that is evaluated and taken into account for leader Election: the corresponding value of the descriptor is sorted by first.
< hmacEnabled: If this is true, and sharedKey is set to a value on all Sling instances within the same topology, then messages are validates using a signature of the content of the message based on the shared key. The signature and the digest of the content appear as http headers. When hmac message validation is enabled, whitelisting is disabled. This use useful where the topology messages are transported through multiple reverse proxy layers or the topology is dynamic. The Hmac algorithm in use is HmacSHA256. The JVM is expected to have a provider implementing this algorithm (The Standard JDKs do).
< sharedKey: If hmacEnabled is true, this must be set to a secret value, shared amongst all Sling instances that are members of the same topology.
< enableEncryption: If hmacEnabled is true, and sharedKey is set, setting this to true will encrypt the body of the message using 128 Bit AES encryption. The encryption key is derived from the sharedKey using a 9 byte random salt, giving 2^^72 potential salt values.
< hmacSharedKeyTTL: The key used for the signatures is derived from the shared key. Each derived key has a lifetime before the next key is generated. This parameter sets the lifetime of each key in ms. The default is 4h. Messages sent using old keys will remain valid for 2x the TTL, after which time the message will be ignored.
---
>
> heartbeatInterval: the time in seconds between two heartbeats (both cluster-internal and for HTTP-connectors). Default value is 15 seconds.
>
> heartbeatTimeout: the time in seconds after which an instance is considered dead if no heartbeat was sent since. Default value is 20 seconds.
>
> topologyConnectorUrls: a list of connector URLs to which this instance should connect to. The list can contain multiple instances of the same cluster (for fallback configurations). If the list is empty, no connector will be created. The default relative URL is /libs/sling/topology/connector. Note that this URL is accessible without authentication - to avoid having to configure administrative username/passwords in all instances. Instead, a whitelist approach is used (see next item).
>
> topologyConnectorWhitelist: As mentioned above, the path /libs/sling/topology/connector does not require authentication. To assure that only trusted instances can connect to the topology, its hostname or IP address must be in a whitelist. By default this whitelist only contains localhost and 127.0.0.1.
>
> minEventDelay: To reduce the number of events sent during changes, there is a delay (in seconds) before the event is sent. If additional changes happen during this delay, the change will be combined in one event.
>
> leaderElectionRepositoryDescriptor: this is an advanced parameter. It denotes a repository descriptor that is evaluated and taken into account for leader Election: the corresponding value of the descriptor is sorted by first.
>
> hmacEnabled: If this is true, and sharedKey is set to a value on all Sling instances within the same topology, then messages are validates using a signature of the content of the message based on the shared key. The signature and the digest of the content appear as http headers. When hmac message validation is enabled, whitelisting is disabled. This use useful where the topology messages are transported through multiple reverse proxy layers or the topology is dynamic. The Hmac algorithm in use is HmacSHA256. The JVM is expected to have a provider implementing this algorithm (The Standard JDKs do).
>
> sharedKey: If hmacEnabled is true, this must be set to a secret value, shared amongst all Sling instances that are members of the same topology.
>
> enableEncryption: If hmacEnabled is true, and sharedKey is set, setting this to true will encrypt the body of the message using 128 Bit AES encryption. The encryption key is derived from the sharedKey using a 9 byte random salt, giving 2^^72 potential salt values.
>
> hmacSharedKeyTTL: The key used for the signatures is derived from the shared key. Each derived key has a lifetime before the next key is generated. This parameter sets the lifetime of each key in ms. The default is 4h. Messages sent using old keys will remain valid for 2x the TTL, after which time the message will be ignored.
256c266
< discovery.oak: Oak-based, OOTB-implementation
---
> discovery.oak: Oak-based, OOTB-implementation
259c269
< Jackrabbit Oak's discovery-lite
---
> Jackrabbit Oak's discovery-lite
261c271
< 'oak.discoverylite.clusterview'
---
> 'oak.discoverylite.clusterview'
272c282
< Accessing discovery-lite
---
> Accessing discovery-lite
274c284
< getRepository().getDescriptor("oak.discoverylite.clusterview")
---
> getRepository().getDescriptor("oak.discoverylite.clusterview")
278c288
< Sling's discovery.oak
---
> Sling's discovery.oak
283c293
< discovery.commons
---
> discovery.commons
285c295
< discovery.base
---
> discovery.base
diff -b -B -r ./documentation/bundles/distribution.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/distribution.html
94c94
< Overview
---
> Overview
101c101
< Bundles
---
> Bundles
111c111
< Design
---
> Design
123,124c123,124
< In order to properly handle large number of requests against the same agent each of them is provided with queues where the exported packages are sent, the agent takes then care to process such a queue in order to import each package.
< Distribution agents configuration
---
> In order to properly handle large number of requests against the same agent each of them is provided with queues where the exported packages are sent, the agent takes then care to process such a queue in order to import each package.
> Distribution agents configuration
141,143c141,143
< "jcr:primaryType": "sling:OsgiConfig",
< "provider.roots": [ "/libs/sling/distribution/settings/agents" ],
< "kind" : "agent"
---
> "jcr:primaryType": "sling:OsgiConfig",
> "provider.roots": [ "/libs/sling/distribution/settings/agents" ],
> "kind" : "agent"
149c149
< Distribution agents services
---
> Distribution agents services
153,155c153,155
< "jcr:primaryType": "sling:OsgiConfig",
< "provider.roots": [ "/libs/sling/distribution/services/agents" ],
< "kind" : "agent"
---
> "jcr:primaryType": "sling:OsgiConfig",
> "provider.roots": [ "/libs/sling/distribution/services/agents" ],
> "kind" : "agent"
161,162c161,162
< Distribution queues
< In Memory queue
---
> Distribution queues
> In Memory queue
164c164
< Sling Job Handling based queue
---
> Sling Job Handling based queue
172c172
< Distribution of packages among queues
---
> Distribution of packages among queues
179,180c179,180
< Usecases
< Forward distribution
---
> Usecases
> Forward distribution
187,188c187,188
< Create/update content
< $ curl -v -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish -d 'action=ADD' -d 'path=/content/sample1'
---
> Create/update content
> $ curl -v -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish -d 'action=ADD' -d 'path=/content/sample1'
190,191c190,191
< Delete content
< $ curl -v -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish -d 'action= DELETE' -d 'path=/content/sample1'
---
> Delete content
> $ curl -v -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish -d 'action= DELETE' -d 'path=/content/sample1'
193c193
< Reverse distribution
---
> Reverse distribution
196,198c196,198
< Create/update content
< $ curl -u admin:admin http://localhost:8081/libs/sling/distribution/services/agents/reverse -d 'action=ADD' -d 'path=/content/sample1'
< $ curl -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish-reverse -d 'action=PULL'
---
> Create/update content
> $ curl -u admin:admin http://localhost:8081/libs/sling/distribution/services/agents/reverse -d 'action=ADD' -d 'path=/content/sample1'
> $ curl -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/publish-reverse -d 'action=PULL'
200c200
< Sync distribution
---
> Sync distribution
203,205c203,205
< Create/update content
< $ curl -u admin:admin http://localhost:8081/libs/sling/distribution/services/agents/reverse-pubsync -d 'action=ADD' -d 'path=/content/sample1'
< $ curl -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/pubsync -d 'action=PULL'
---
> Create/update content
> $ curl -u admin:admin http://localhost:8081/libs/sling/distribution/services/agents/reverse-pubsync -d 'action=ADD' -d 'path=/content/sample1'
> $ curl -u admin:admin http://localhost:8080/libs/sling/distribution/services/agents/pubsync -d 'action=PULL'
207c207
< Installation
---
> Installation
212,213c212,213
< HTTP API
< API Requirements
---
> HTTP API
> API Requirements
226,227c226,227
< API endpoints
< Configuration API
---
> API endpoints
> Configuration API
234c234
< Command API
---
> Command API
240c240
< Monitoring API
---
> Monitoring API
245c245
< Java API
---
> Java API
249c249
< Extensions
---
> Extensions
251c251
< Apache Avro serializer
---
> Apache Avro serializer
253c253
< Kryo serializer
---
> Kryo serializer
255c255
< Ideas for future developments
---
> Ideas for future developments
diff -b -B -r ./documentation/bundles/dynamic-includes.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/dynamic-includes.html
95c95
< Sling Dynamic Include (org.apache.sling.dynamic-include)
---
> Sling Dynamic Include (org.apache.sling.dynamic-include)
diff -b -B -r ./documentation/bundles/file-installer-provider.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/file-installer-provider.html
95c95
< Setup
---
> Setup
123c123
< Bundles
---
> Bundles
126c126
< Configurations
---
> Configurations
128c128
< Custom Artifacts
---
> Custom Artifacts
130,131c130,131
< Runmode Support
< The file installer supports run modes for installing artifacts (added with SLING-4478). Within the scanned directory, a folder prefixed with "install." and followed by one or more run modes (separated by ".") will only be considered if all the respective run modes are active. For example artifacts below a folder named install.a1.dev are only taken into account if the run modes a1 and dev are both active.
---
> Runmode Support
> The file installer supports run modes for installing artifacts (added with SLING-4478). Within the scanned directory, a folder prefixed with "install." and followed by one or more run modes (separated by ".") will only be considered if all the respective run modes are active. For example artifacts below a folder named install.a1.dev are only taken into account if the run modes a1 and dev are both active.
133c133
< Project Info
---
> Project Info
diff -b -B -r ./documentation/bundles/hapi.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/hapi.html
94,95c94,95
< HApi - Hypermedia API tools
< The hypermedia API tools are a way to enable sling component developers to add metadata information to their HTML components and easily define an API using the html markup generated by the components.
---
> HApi - Hypermedia API tools
> The hypermedia API tools are a way to enable sling component developers to add metadata information to their HTML components and easily define an API using the html markup generated by the components.
98c98
< Installation
---
> Installation
103c103
< Hypermedia API with Microdata
---
> Hypermedia API with Microdata
106,109c106,109
< <div itemscope itemtype="http://schema.org/Movie">
< <h1 itemprop="name">Avatar</h1>
< <span itemprop="genre">Science fiction</span>
< <a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
---
> <div itemscope itemtype="http://schema.org/Movie">
> <h1 itemprop="name">Avatar</h1>
> <span itemprop="genre">Science fiction</span>
> <a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
111,112c111,112
< <div itemprop="director" itemscope itemtype="http://schema.org/Person">
< Director: <span itemprop="name">James Cameron</span> (born <span itemprop="birthDate">August16, 1954)</span>
---
> <div itemprop="director" itemscope itemtype="http://schema.org/Person">
> Director: <span itemprop="name">James Cameron</span> (born <span itemprop="birthDate">August16, 1954)</span>
116c116
< The attribute itemscope defines a scope for an object. The (optional) itemtype links to a description of the type of the object. Inside an element with an itemscope attribute, we have descendant elements with a property itemprop. This means the name property will point to the enclosed object, which is the simple text "Avatar". Similarly, the genre property is "Science Fiction".
---
> The attribute itemscope defines a scope for an object. The (optional) itemtype links to a description of the type of the object. Inside an element with an itemscope attribute, we have descendant elements with a property itemprop. This means the name property will point to the enclosed object, which is the simple text "Avatar". Similarly, the genre property is "Science Fiction".
118c118
< How HApi works, by example
---
> How HApi works, by example
120,121c120,121
< Consuming the API
< The app looks like this in the browser: 
---
> Consuming the API
> The app looks like this in the browser: 
123,125c123,125
< <div itemtype="/apps/sling/hapi_sample/types/album_card.html" itemscope="itemscope" class="card-asset">
< <a href="details.html" rel="self">
< <img itemprop="thumbnail" itemtype="/libs/sling/hapi/types/image.html" alt="" src="assets/preview-small-album.png" class="show-grid">
---
> <div itemtype="/apps/sling/hapi_sample/types/album_card.html" itemscope="itemscope" class="card-asset">
> <a href="details.html" rel="self">
> <img itemprop="thumbnail" itemtype="/libs/sling/hapi/types/image.html" alt="" src="assets/preview-small-album.png" class="show-grid">
128c128
< <h4 itemprop="title" itemtype="/libs/sling/hapi/types/text.html">PIC 001</h4>
---
> <h4 itemprop="title" itemtype="/libs/sling/hapi/types/text.html">PIC 001</h4>
130c130
< <p class="type">album</p>
---
> <p class="type">album</p>
132,135c132,135
< <p itemprop="cards" itemtype="/libs/sling/hapi/types/number.html" class="size">5</p>
< <meta itemprop="disabled" itemtype="/libs/sling/hapi/types/boolean.html" content="false">
< <div class="myinfo">
< <p class="mymodified">
---
> <p itemprop="cards" itemtype="/libs/sling/hapi/types/number.html" class="size">5</p>
> <meta itemprop="disabled" itemtype="/libs/sling/hapi/types/boolean.html" content="false">
> <div class="myinfo">
> <p class="mymodified">
137c137
< <span itemprop="modified" itemtype="/libs/sling/hapi/types/text.html" class="date">2 days ago</span>
---
> <span itemprop="modified" itemtype="/libs/sling/hapi/types/text.html" class="date">2 days ago</span>
147,148c147,148
< <div itemtype="/apps/sling/hapi_sample/types/album_card.html" itemscope="itemscope" class="card-asset">
< <a href="details.html" rel="self">
---
> <div itemtype="/apps/sling/hapi_sample/types/album_card.html" itemscope="itemscope" class="card-asset">
> <a href="details.html" rel="self">
153c153
< 
---
> 
155c155
< 
---
> 
157c157
<

---
>

159c159
< 
---
> 
162c162
< Defining the types
---
> Defining the types
166,173c166,173
< "fqdn": "org.apache.sling.hapi_sample.album_card",
< "description": "A demo card type for HApi",
< "name": "album_card",
< "sling:resourceType": "sling/hapi/components/type",
< "parameters": [ ],
< "extends": "/apps/sling/hapi_sample/types/demo_card",
< "jcr:primaryType": "nt:unstructured",
< "thumbnail":
---
> "fqdn": "org.apache.sling.hapi_sample.album_card",
> "description": "A demo card type for HApi",
> "name": "album_card",
> "sling:resourceType": "sling/hapi/components/type",
> "parameters": [ ],
> "extends": "/apps/sling/hapi_sample/types/demo_card",
> "jcr:primaryType": "nt:unstructured",
> "thumbnail":
177,180c177,180
< "description": "The thumbnail of the demo pic card",
< "type": "org.apache.sling.hapi.common.Image",
< "multiple": true,
< "jcr:primaryType": "nt:unstructured"
---
> "description": "The thumbnail of the demo pic card",
> "type": "org.apache.sling.hapi.common.Image",
> "multiple": true,
> "jcr:primaryType": "nt:unstructured"
183c183
< "disabled":
---
> "disabled":
186,189c186,189
< "description": "Whether this album is disabled or not",
< "type": "org.apache.sling.hapi.common.Boolean",
< "multiple": false,
< "jcr:primaryType": "nt:unstructured"
---
> "description": "Whether this album is disabled or not",
> "type": "org.apache.sling.hapi.common.Boolean",
> "multiple": false,
> "jcr:primaryType": "nt:unstructured"
192c192
< "modified":
---
> "modified":
195,198c195,198
< "description": "When was the pic last modified",
< "type": "org.apache.sling.hapi.common.Text",
< "multiple": false,
< "jcr:primaryType": "nt:unstructured"
---
> "description": "When was the pic last modified",
> "type": "org.apache.sling.hapi.common.Text",
> "multiple": false,
> "jcr:primaryType": "nt:unstructured"
201c201
< "cards":
---
> "cards":
204,207c204,207
< "description": "The number of pictures in this album",
< "type": "org.apache.sling.hapi.common.Number",
< "multiple": false,
< "jcr:primaryType": "nt:unstructured"
---
> "description": "The number of pictures in this album",
> "type": "org.apache.sling.hapi.common.Number",
> "multiple": false,
> "jcr:primaryType": "nt:unstructured"
210c210
< "users":
---
> "users":
213,216c213,216
< "description": "The numbers of users for this album",
< "type": "org.apache.sling.hapi.common.Number",
< "multiple": false,
< "jcr:primaryType": "nt:unstructured"
---
> "description": "The numbers of users for this album",
> "type": "org.apache.sling.hapi.common.Number",
> "multiple": false,
> "jcr:primaryType": "nt:unstructured"
221,222c221,222
< Using the sightly HApiUse class
< After defining the types needed for the component in question, you can immediately benefit from the HApi tools and add the microdata annotations. There is also validation for the properties and the itemtype for properties is added automatically by the tools.
---
> Using the sightly HApiUse class
> After defining the types needed for the component in question, you can immediately benefit from the HApi tools and add the microdata annotations. There is also validation for the properties and the itemtype for properties is added automatically by the tools.
224,227c224,227
< <div data-sly-use.card="${'org.apache.sling.hapi.sightly.HApiUse' @type='/apps/sling/hapi_sample/types/pic_card'}"
< data-sly-attribute="${card.itemtype}" class="card-asset">
< <a rel="self" href="details.html">
< <img data-sly-attribute="${card.itemprop.thumbnail}" class="show-grid" src="assets/preview-small.png" alt="">
---
> <div data-sly-use.card="${'org.apache.sling.hapi.sightly.HApiUse' @type='/apps/sling/hapi_sample/types/pic_card'}"
> data-sly-attribute="${card.itemtype}" class="card-asset">
> <a rel="self" href="details.html">
> <img data-sly-attribute="${card.itemprop.thumbnail}" class="show-grid" src="assets/preview-small.png" alt="">
230c230
< <h4 data-sly-attribute="${card.itemprop['title']}">PIC 001</h4>
---
> <h4 data-sly-attribute="${card.itemprop['title']}">PIC 001</h4>
232c232
< <p class="type">PSD</p>
---
> <p class="type">PSD</p>
234,237c234,237
< <p data-sly-attribute="${card.itemprop.resolution}"
< data-sly-use.resolution="${'org.apache.sling.hapi.sightly.HApiUse' @type=card.proptype.resolution}" class="resolution">
< <span data-sly-attribute="${resolution.itemprop.width}">1620</span> x <span
< data-sly-attribute="${resolution.itemprop.height}">670</span>
---
> <p data-sly-attribute="${card.itemprop.resolution}"
> data-sly-use.resolution="${'org.apache.sling.hapi.sightly.HApiUse' @type=card.proptype.resolution}" class="resolution">
> <span data-sly-attribute="${resolution.itemprop.width}">1620</span> x <span
> data-sly-attribute="${resolution.itemprop.height}">670</span>
240,243c240,243
< <p data-sly-attribute="${card.itemprop.size}" class="size">249KB</p>
< <meta data-sly-attribute="${card.itemprop.disabled}" content="false"/>
< <div class="myinfo">
< <p class="mymodified">
---
> <p data-sly-attribute="${card.itemprop.size}" class="size">249KB</p>
> <meta data-sly-attribute="${card.itemprop.disabled}" content="false"/>
> <div class="myinfo">
> <p class="mymodified">
245c245
< <span data-sly-attribute="${card.itemprop.modified}" class="date">2 days ago</span>
---
> <span data-sly-attribute="${card.itemprop.modified}" class="date">2 days ago</span>
254c254
< <img data-sly-attribute="${card.itemprop.inexistent_property}" class="show-grid" src="assets/preview-small.png" alt=""></span>
---
> <img data-sly-attribute="${card.itemprop.inexistent_property}" class="show-grid" src="assets/preview-small.png" alt=""></span>
diff -b -B -r ./documentation/bundles/internationalization-support-i18n.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/internationalization-support-i18n.html
102c102
< Default Implementation in the org.apache.sling.engine Bundle
---
> Default Implementation in the org.apache.sling.engine Bundle
111c111
< Extensible Implementation in the org.apache.sling.i18n Bundle
---
> Extensible Implementation in the org.apache.sling.i18n Bundle
114,115c114,117
< LocaleResolver -- The LocaleResolver interface defines a method which may be implemented by a service outside of the sling.i18n bundle. If no such service is registered the default behaviour is as described above for the sling.core bundle. The service described by this interface is used to implement the getLocale() and getLocales() method.
< ResourceBundleProvider -- The ResourceBundleProvider interface defines two methods to acquire a ResourceBundle for any Locale and an optional base name. This service interface is not intended to be implemented outside of the sling.i18n bundle: A JCR Repository based implementation is contained in the sling.i18n bundle. The ResourceBundleProvider service is not only used within the sling.i18n bundle to implement the SlingHttpServletRequest.getResourceBundle(Locale) and SlingHttpServletRequest.getResourceBundle(String, Locale) methods. The service may also be used by Sling applications to acquire ResourceBundle instances without having a request object by getting the service and calling its getResourceBundle(Locale) or getResourceBundle(String, Locale) method directly.
---
>
> LocaleResolver -- The LocaleResolver interface defines a method which may be implemented by a service outside of the sling.i18n bundle. If no such service is registered the default behaviour is as described above for the sling.core bundle. The service described by this interface is used to implement the getLocale() and getLocales() method.
>
> ResourceBundleProvider -- The ResourceBundleProvider interface defines two methods to acquire a ResourceBundle for any Locale and an optional base name. This service interface is not intended to be implemented outside of the sling.i18n bundle: A JCR Repository based implementation is contained in the sling.i18n bundle. The ResourceBundleProvider service is not only used within the sling.i18n bundle to implement the SlingHttpServletRequest.getResourceBundle(Locale) and SlingHttpServletRequest.getResourceBundle(String, Locale) methods. The service may also be used by Sling applications to acquire ResourceBundle instances without having a request object by getting the service and calling its getResourceBundle(Locale) or getResourceBundle(String, Locale) method directly.
117c119
< JCR Repository based ResourceBundleProvider
---
> JCR Repository based ResourceBundleProvider
121c123
< sling:MessageEntry based
---
> sling:MessageEntry based
128c130
< Sample Resources
---
> Sample Resources
134,135c136,137
< | | +-- sling:key = "msg001"
< | | +-- sling:message = "This is a message"
---
> | | +-- sling:key = "msg001"
> | | +-- sling:message = "This is a message"
137,138c139,140
< | +-- sling:key = "msg002"
< | +-- sling:message = "Another message"
---
> | +-- sling:key = "msg002"
> | +-- sling:message = "Another message"
142,143c144,145
< | +-- sling:key = "msg001"
< | +-- sling:message = "Das ist ein Text"
---
> | +-- sling:key = "msg001"
> | +-- sling:message = "Das ist ein Text"
145,146c147,148
< +-- sling:key = "msg002"
< +-- sling:message = "Ein anderer Text"
---
> +-- sling:key = "msg002"
> +-- sling:message = "Ein anderer Text"
152,153c154,155
< | +-- sling:key = "msgXXX"
< | +-- sling:message = "An Application Text"
---
> | +-- sling:key = "msgXXX"
> | +-- sling:message = "An Application Text"
157,158c159,160
< +-- sling:key = "msgXXX"
< +-- sling:message = "Ein Anwendungstext"
---
> +-- sling:key = "msgXXX"
> +-- sling:message = "Ein Anwendungstext"
161c163
< JSON-file based
---
> JSON-file based
163c165
< Sample Resources
---
> Sample Resources
175c177
< JCR Node Types supporting the JCR Repository based ResourceBundleProvider
---
> JCR Node Types supporting the JCR Repository based ResourceBundleProvider
190c192
< ResourceBundle with base names
---
> ResourceBundle with base names
196,197c198,199
< Value
< ResourceBundle selection
---
> Value
> ResourceBundle selection
202,203c204,205
< null
< Selects messages of mix:language nodes ignoring the existence or absence of sling:basename properties
---
> null
> Selects messages of mix:language nodes ignoring the existence or absence of sling:basename properties
206,207c208,209
< Empty String
< Selects messages of mix:language nodes which have sling:basename properties, ignoring the actual values
---
> Empty String
> Selects messages of mix:language nodes which have sling:basename properties, ignoring the actual values
210,211c212,213
< Any other Value
< Selects messages of mix:language nodes whose sling:basename properties has any value which matches the base name string
---
> Any other Value
> Selects messages of mix:language nodes whose sling:basename properties has any value which matches the base name string
216c218
< ResourceBundle hierarchies
---
> ResourceBundle hierarchies
diff -b -B -r ./documentation/bundles/jcr-installer-provider.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/jcr-installer-provider.html
95c95
< Configuration and Scanning
---
> Configuration and Scanning
97c97
< If such an install folder contains a binary artifact (e.g. a bundle or a config file as described in Configuration Installer Factory) this is provided to the OSGi installer.
---
> If such an install folder contains a binary artifact (e.g. a bundle or a config file as described in Configuration Installer Factory) this is provided to the OSGi installer.
100c100
< Runmode Support
---
> Runmode Support
103,104c103,104
< Write Back Support
< The JCR installer supports writing back of configurations which are changed by some other ways, e.g by using the Apache Felix web console. If this is a new configuration which was not originally stored in the repository, a new configuration is stored under /apps/sling/install. The highest search path is used together with a configurable folder (sling/install in this case). If a configuration is changed which already exists in the repository, then it depends where the original configuration is stored. If its under /libs a new configuration at the same path under /apps is created. Otherwise the configuration is directly modified. As JCR properties do not support all Java primitive types like Integer, the write back does not generate a node of type sling:OsgiConfig in the repository but a properties file as described in Configuration Installer Factory.
---
> Write Back Support
> The JCR installer supports writing back of configurations which are changed by some other ways, e.g by using the Apache Felix web console. If this is a new configuration which was not originally stored in the repository, a new configuration is stored under /apps/sling/install. The highest search path is used together with a configurable folder (*sling/install* in this case). If a configuration is changed which already exists in the repository, then it depends where the original configuration is stored. If its under /libs a new configuration at the same path under /apps is created. Otherwise the configuration is directly modified. As JCR properties do not support all Java primitive types like Integer, the write back does not generate a node of type sling:OsgiConfig in the repository but a properties file as described in Configuration Installer Factory.
106,108c106,108
< Start Level Support
< If the parent folder of a bundle has a name which is a number, this is used as the start level (when installing the bundle for the first time, compare with SLING-2011). So e.g. a bundle in the path /libs/sling/install/15/somebundle.jar is having the start level 15.
< Example
---
> Start Level Support
> If the parent folder of a bundle has a name which is a number, this is used as the start level (when installing the bundle for the first time, compare with SLING-2011). So e.g. a bundle in the path /libs/sling/install/15/somebundle.jar is having the start level 15.
> Example
110c110
< Installation
---
> Installation
112,113c112,113
< To watch the logs produced by these modules, you can filter sling/logs/error.log using egrep 'jcrinstall|osgi.installer'.
< Install and remove a bundle
---
> To watch the logs produced by these modules, you can filter sling/logs/error.log using egrep 'jcrinstall|osgi.installer'.
> Install and remove a bundle
130c130
< Install, modify and remove a configuration
---
> Install, modify and remove a configuration
134c134
< -F "jcr:primaryType=sling:OsgiConfig" \
---
> -F "jcr:primaryType=sling:OsgiConfig" \
143,145c143,145
< {"foo":"bar",
< "jcr:created":"Wed Aug 26 2009 17:06:40GMT+0200",
< "jcr:primaryType":"sling:OsgiConfig","works":"yes"}
---
> {"foo":"bar",
> "jcr:created":"Wed Aug 26 2009 17:06:40GMT+0200",
> "jcr:primaryType":"sling:OsgiConfig","works":"yes"}
176c176
< Automated Tests
---
> Automated Tests
183c183
< Project Info
---
> Project Info
diff -b -B -r ./documentation/bundles/log-tracers.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/log-tracers.html
98,102c98,102
< -d "./jcr:content/jcr:title=Summer Collection" \
< -d ":name=summer-collection" \
< -d "./jcr:primaryType=sling:Folder" \
< -d "./jcr:content/jcr:primaryType=nt:unstructured" \
< -d "tracers=oak-writes" \
---
> -d "./jcr:content/jcr:title=Summer Collection" \
> -d ":name=summer-collection" \
> -d "./jcr:primaryType=sling:Folder" \
> -d "./jcr:content/jcr:primaryType=nt:unstructured" \
> -d "tracers=oak-writes" \
105,106c105,106
< Configuration
< 
---
> Configuration
> 
109c109
< Tracer Sets
---
> Tracer Sets
118c118
< tracerConfig := loggerConfig ( ',' loggerConfig) *
---
> tracerConfig := loggerConfig ( ',' loggerConfig) *
120c120
< attributes := attributeName '=' attributeValue
---
> attributes := attributeName '=' attributeValue
125c125
< caller - Used to dump stacktrace of caller. It can have following value (since 1.0.0, SLING-5505)
---
> caller - Used to dump stacktrace of caller. It can have following value (_since 1.0.0_, SLING-5505)
129c129,130
<
---
>
>
132c133
< Performance Impact
---
> Performance Impact
135c136
< Where do logs go
---
> Where do logs go
137c138
< RequestProgressTracker
---
> RequestProgressTracker
140c141
< 
---
> 
143c144
< 132 (2015-05-11 17:39:55) LOG [JCR] Query SELECT * FROM [granite:InboxItem] AS s where status='ACTIVE' ORDER BY s.startTime DESC
---
> 132 (2015-05-11 17:39:55) LOG [JCR] Query SELECT * FROM [granite:InboxItem] AS s where status='ACTIVE' ORDER BY s.startTime DESC
149c150
< Server Logs
---
> Server Logs
151c152
< Usage
---
> Usage
157c158
< Request Parameters
---
> Request Parameters
161c162,164
< tracerConfig - Tracer config like org.apache.sling.auth;level=trace` curl -u admin:admin http://localhost:4802/projects.html?tracerConfig=org.apache.sling
---
> tracerConfig - Tracer config like org.apache.sling.auth;level=trace`
> curl -u admin:admin http://localhost:4802/projects.html?tracerConfig=org.apache.sling
>
165,169c168,172
< -d "./jcr:content/jcr:title=Summer Collection" \
< -d ":name=summer-collection" \
< -d "./jcr:primaryType=sling:Folder" \
< -d "./jcr:content/jcr:primaryType=nt:unstructured" \
< -d "tracers=oak-writes" \
---
> -d "./jcr:content/jcr:title=Summer Collection" \
> -d ":name=summer-collection" \
> -d "./jcr:primaryType=sling:Folder" \
> -d "./jcr:content/jcr:primaryType=nt:unstructured" \
> -d "tracers=oak-writes" \
172c175
< Above request would create a folder in Assets and for that we have enabled the oak-writes tracer. This would result in following output
---
> Above request would create a folder in Assets and for that we have enabled the oak-writes tracer. This would result in following output
182c185
< Request Headers
---
> Request Headers
189,192c192,195
< curl -D - -d "j_username=admin" \
< -d "j_password=admin" \
< -d "j_validate=true" \
< -H "Sling-Tracer-Config : org.apache.sling.auth;level=trace,org.apache.jackrabbit.oak.security;level=trace" \
---
> curl -D - -d "j_username=admin" \
> -d "j_password=admin" \
> -d "j_validate=true" \
> -H "Sling-Tracer-Config : org.apache.sling.auth;level=trace,org.apache.jackrabbit.oak.security;level=trace" \
203c206
< Tracer Recording
---
> Tracer Recording
208,214c211,219
< Client sends an HTTP request with header Sling-Tracer-Record set to true
curl -D - -u admin:admin \
< -H "Sling-Tracer-Record : true" \
< -d "./jcr:content/jcr:title=Summer Collection" \
< -d ":name=summer-collection" \
< -d "./jcr:primaryType=sling:Folder" \
< -d "./jcr:content/jcr:primaryType=nt:unstructured" \
< -d "tracers=oak-writes" \
---
>
> Client sends an HTTP request with header Sling-Tracer-Record set to true
> curl -D - -u admin:admin \
> -H "Sling-Tracer-Record : true" \
> -d "./jcr:content/jcr:title=Summer Collection" \
> -d ":name=summer-collection" \
> -d "./jcr:primaryType=sling:Folder" \
> -d "./jcr:content/jcr:primaryType=nt:unstructured" \
> -d "tracers=oak-writes" \
216,217c221,225
<
< Server includes a request id as part of Sling-Tracer-Request-Id response headers
HTTP/1.1 201 Created
---
>
>
>
> Server includes a request id as part of Sling-Tracer-Request-Id response headers
> HTTP/1.1 201 Created
225,227c233,238
<
< The logs in json format can then be fetched from server at /system/console/tracer like http://localhost:8080/system/console/tracer/9b5b01f6-f269-47c3-a889-2dc8d4d7938f.json.
curl -s -D - -H "Sling-Tracer-Record : true" -H "Sling-Tracers : oak-query" \
< -H "Sling-Tracer-Config : org.apache.jackrabbit.oak.query" \
---
>
>
>
> The logs in json format can then be fetched from server at /system/console/tracer like http://localhost:8080/system/console/tracer/9b5b01f6-f269-47c3-a889-2dc8d4d7938f.json.
> curl -s -D - -H "Sling-Tracer-Record : true" -H "Sling-Tracers : oak-query" \
> -H "Sling-Tracer-Config : org.apache.jackrabbit.oak.query" \
229,235c240,248
<
Below is a json output for GET request
{
< "method": "GET",
< "time": 15140,
< "timestamp": 1461574009024,
< "requestProgressLogs": [
< "0 TIMER_START{Request Processing}",
< "0 COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>",
---
>
> Below is a json output for GET request
> {
> "method": "GET",
> "time": 15140,
> "timestamp": 1461574009024,
> "requestProgressLogs": [
> "0 TIMER_START{Request Processing}",
> "0 COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>",
238,241c251,254
< "queries": [{
< "query": "/jcr:root/etc/workflow/instances//element(*,app:Workflow)[@status='RUNNING'] order by @startTime descending",
< "plan": "[app:Workflow] as [a] /* property status = RUNNING where ([a].[status] = 'RUNNING') and (isdescendantnode([a], [/etc/workflow/instances])) */",
< "caller": "com.example.WorkflowManager.getWorkflowInstances(WorkflowManager.java:902)"
---
> "queries": [{
> "query": "/jcr:root/etc/workflow/instances//element(*,app:Workflow)[@status='RUNNING'] order by @startTime descending",
> "plan": "[app:Workflow] as [a] /* property status = RUNNING where ([a].[status] = 'RUNNING') and (isdescendantnode([a], [/etc/workflow/instances])) */",
> "caller": "com.example.WorkflowManager.getWorkflowInstances(WorkflowManager.java:902)"
244,251c257,264
< "logs": [{
< "timestamp": 1461574022401,
< "level": "DEBUG",
< "logger": "org.apache.jackrabbit.oak.query.QueryEngineImpl",
< "message": "Parsing xpath statement: /jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descending",
< "params": [
< "xpath",
< "/jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descending"
---
> "logs": [{
> "timestamp": 1461574022401,
> "level": "DEBUG",
> "logger": "org.apache.jackrabbit.oak.query.QueryEngineImpl",
> "message": "Parsing xpath statement: /jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descending",
> "params": [
> "xpath",
> "/jcr:root/etc/workflow/instances//element(*,cq:Workflow)[@status='RUNNING'] order by @startTime descending"
257c270,271
<
---
>
>
269c283
< Installation
---
> Installation
diff -b -B -r ./documentation/bundles/managing-permissions-jackrabbit-accessmanager.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/managing-permissions-jackrabbit-accessmanager.html
96c96
< Privileges
---
> Privileges
100,101c100,101
< privilagename
< description
---
> privilagename
> description
106,107c106,107
< jcr:read
< the privilege to retrieve a node and get its properties and their values
---
> jcr:read
> the privilege to retrieve a node and get its properties and their values
110,111c110,111
< jcr:readAccessControl
< the privilege to get the access control policy of a node
---
> jcr:readAccessControl
> the privilege to get the access control policy of a node
114,115c114,115
< jcr:modifyProperties
< the privilege to create, modify and remove the properties of a node
---
> jcr:modifyProperties
> the privilege to create, modify and remove the properties of a node
118,119c118,119
< jcr:addChildNodes
< the privilege to create child nodes of a node
---
> jcr:addChildNodes
> the privilege to create child nodes of a node
122,123c122,123
< jcr:removeChildNodes
< the privilege to remove child nodes of a node
---
> jcr:removeChildNodes
> the privilege to remove child nodes of a node
126,127c126,127
< jcr:removeNode
< the privilege to remove a node
---
> jcr:removeNode
> the privilege to remove a node
130,131c130,131
< jcr:write
< an aggregate privilege that contains: jcr:modifyProperties jcr:addChildNodes jcr:removeNode jcr:removeChildNodes
---
> jcr:write
> an aggregate privilege that contains: jcr:modifyProperties jcr:addChildNodes jcr:removeNode jcr:removeChildNodes
134,135c134,135
< jcr:modifyAccessControl
< the privilege to modify the access control policies of a node
---
> jcr:modifyAccessControl
> the privilege to modify the access control policies of a node
138,139c138,139
< jcr:lockManagement
< the privilege to lock and unlock a node
---
> jcr:lockManagement
> the privilege to lock and unlock a node
142,143c142,143
< jcr:versionManagement
< the privilege to perform versioning operations on a node
---
> jcr:versionManagement
> the privilege to perform versioning operations on a node
146,147c146,147
< jcr:nodeTypeManagement
< the privilege to add and remove mixin node types and change the primary node type of a node
---
> jcr:nodeTypeManagement
> the privilege to add and remove mixin node types and change the primary node type of a node
150,151c150,151
< jcr:retentionManagement
< the privilege to perform retention management operations on a node
---
> jcr:retentionManagement
> the privilege to perform retention management operations on a node
154,155c154,155
< jcr:lifecycleManagement
< the privilege to perform lifecycle operations on a node
---
> jcr:lifecycleManagement
> the privilege to perform lifecycle operations on a node
158,159c158,159
< jcr:all
< an aggregate privilege that contains all predefined privileges
---
> jcr:all
> an aggregate privilege that contains all predefined privileges
163c163
< Add or modify permissions
---
> Add or modify permissions
171c171
< Delete permissions
---
> Delete permissions
176,178c176,178
< Get permissions
< Bound Permissions
< To get the permissions bound to a particular node in a json format for a node send a GET request to /<path-to-the-node>.acl.json.
---
> Get permissions
> Bound Permissions
> To get the permissions bound to a particular node in a json format for a node send a GET request to /<path-to-the-node>.acl.json.
182,183c182,183
< Effective Permissions
< To get the permissions which are effective for a particular node in a json format for a node send a GET request to /<path-to-the-node>.eacl.json.
---
> Effective Permissions
> To get the permissions which are effective for a particular node in a json format for a node send a GET request to /<path-to-the-node>.eacl.json.
188c188
< See section 16.3 of the JCR 2.0 specification for an explanation of the difference between bound and effective policies.
---
> See section 16.3 of the JCR 2.0 specification for an explanation of the difference between bound and effective policies.
diff -b -B -r ./documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html
98c98
< List users
---
> List users
103,105c103,105
< "admin": {
< "memberOf": [],
< "declaredMemberOf": []
---
> "admin": {
> "memberOf": [],
> "declaredMemberOf": []
107,109c107,109
< "anonymous": {
< "memberOf": [],
< "declaredMemberOf": []
---
> "anonymous": {
> "memberOf": [],
> "declaredMemberOf": []
113c113
< Get user
---
> Get user
118,119c118,119
< "memberOf": [],
< "declaredMemberOf": []
---
> "memberOf": [],
> "declaredMemberOf": []
123c123
< Create user
---
> Create user
129,130c129,130
< Required
< Description
---
> Required
> Description
136,137c136,137
< yes
< The name of the new user
---
> yes
> The name of the new user
141,142c141,142
< yes
< The password of the new user
---
> yes
> The password of the new user
146,147c146,147
< yes
< The password of the new user (must be equal to the value of pwd)
---
> yes
> The password of the new user (must be equal to the value of pwd)
151,152c151,152
< no
< Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
---
> no
> Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
161c161
< Description
---
> Description
167c167
< Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.
---
> Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.
171c171
< Failure, including user already exists. HTML (or JSON) explains failure.
---
> Failure, including user already exists. HTML (or JSON) explains failure.
179c179
< Update user
---
> Update user
185,186c185,186
< Required
< Description
---
> Required
> Description
192,193c192,193
< no
< (since version 2.1.1) If true disables the user to block further login attempts. If false enables a disabled user.
---
> no
> (since version 2.1.1) If true disables the user to block further login attempts. If false enables a disabled user.
197,198c197,198
< no
< Specifies the reason why a user has been disabled.
---
> no
> Specifies the reason why a user has been disabled.
202,203c202,203
< no
< Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
---
> no
> Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
207,208c207,208
< no
< Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
---
> no
> Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
217c217
< Description
---
> Description
223c223
< Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.
---
> Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.
227c227
< User was not found.
---
> User was not found.
231c231
< Any other failure. HTML (or JSON) explains failure.
---
> Any other failure. HTML (or JSON) explains failure.
239c239
< Change password
---
> Change password
245,246c245,246
< Required
< Description
---
> Required
> Description
252,253c252,253
< yes
< Old password.
---
> yes
> Old password.
257,258c257,258
< yes
< New password.
---
> yes
> New password.
262,263c262,263
< yes
< New password (must be equal to the value of newPwd).
---
> yes
> New password (must be equal to the value of newPwd).
272c272
< Description
---
> Description
278c278
< Success, no body.
---
> Success, no body.
282c282
< User was not found.
---
> User was not found.
286c286
< Any other failure. HTML (or JSON) explains failure.
---
> Any other failure. HTML (or JSON) explains failure.
294c294
< Delete user
---
> Delete user
300,301c300,301
< Required
< Description
---
> Required
> Description
307,308c307,308
< no
< An array of relative resource references to users to be deleted. If this parameter is present, the username from the URL is ignored and all listed users are removed.
---
> no
> An array of relative resource references to users to be deleted. If this parameter is present, the username from the URL is ignored and all listed users are removed.
317c317
< Description
---
> Description
323c323
< Success, no body.
---
> Success, no body.
327c327
< User(s) was/were not found.
---
> User(s) was/were not found.
331c331
< Any other failure. HTML (or JSON) explains failure.
---
> Any other failure. HTML (or JSON) explains failure.
338c338
< List groups
---
> List groups
343,347c343,347
< "UserAdmin": {
< "members": [],
< "declaredMembers": [],
< "memberOf": [],
< "declaredMemberOf": []
---
> "UserAdmin": {
> "members": [],
> "declaredMembers": [],
> "memberOf": [],
> "declaredMemberOf": []
349,353c349,353
< "GroupAdmin": {
< "members": [],
< "declaredMembers": [],
< "memberOf": [],
< "declaredMemberOf": []
---
> "GroupAdmin": {
> "members": [],
> "declaredMembers": [],
> "memberOf": [],
> "declaredMemberOf": []
355,359c355,359
< "administrators": {
< "members": [],
< "declaredMembers": [],
< "memberOf": [],
< "declaredMemberOf": []
---
> "administrators": {
> "members": [],
> "declaredMembers": [],
> "memberOf": [],
> "declaredMemberOf": []
363c363
< Get group
---
> Get group
368,371c368,371
< "members": [],
< "declaredMembers": [],
< "memberOf": [],
< "declaredMemberOf": []
---
> "members": [],
> "declaredMembers": [],
> "memberOf": [],
> "declaredMemberOf": []
375c375
< Create group
---
> Create group
381,382c381,382
< Required
< Description
---
> Required
> Description
388,389c388,389
< yes
< The name of the new group
---
> yes
> The name of the new group
393,394c393,394
< no
< Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
---
> no
> Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
403c403
< Description
---
> Description
409c409
< Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status
---
> Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status
413c413
< Failure including group already exists. HTML (or JSON) explains failure.
---
> Failure including group already exists. HTML (or JSON) explains failure.
421c421
< Update group
---
> Update group
427,428c427,428
< Required
< Description
---
> Required
> Description
434,435c434,435
< no
< user(s) (name or URI) to add to the group as a member. Can also be an array of users.
---
> no
> user(s) (name or URI) to add to the group as a member. Can also be an array of users.
439,440c439,440
< no
< user(s) (name or URI) to remove from the group. Can also be an array of users.
---
> no
> user(s) (name or URI) to remove from the group. Can also be an array of users.
444,445c444,445
< no
< Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
---
> no
> Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
449,450c449,450
< no
< Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
---
> no
> Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (SLING-6747).
459c459
< Description
---
> Description
465c465
< Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status.
---
> Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status.
469c469
< Group was not found.
---
> Group was not found.
473c473
< Any other failure. HTML (or JSON) explains failure.
---
> Any other failure. HTML (or JSON) explains failure.
478c478
< curl -Fanyproperty1@Delete -Fproperty2=value2 -F ":member=/system/userManager/user/myuser" \
---
> curl -Fanyproperty1@Delete -Fproperty2=value2 -F ":member=/system/userManager/user/myuser" \
481c481
< Delete group
---
> Delete group
487,488c487,488
< Required
< Description
---
> Required
> Description
494,495c494,495
< no
< An array of relative resource references to groups to be deleted. If this parameter is present, the name of the group from the URL is ignored and all listed groups are removed.
---
> no
> An array of relative resource references to groups to be deleted. If this parameter is present, the name of the group from the URL is ignored and all listed groups are removed.
504c504
< Description
---
> Description
510c510
< Success, sent with no body.
---
> Success, sent with no body.
514c514
< Group(s) was/were not found.
---
> Group(s) was/were not found.
518c518
< Any other failure. HTML (or JSON) explains failure.
---
> Any other failure. HTML (or JSON) explains failure.
525c525
< Automated Tests
---
> Automated Tests
527c527
< Permissions checking from scripts
---
> Permissions checking from scripts
535,536c535,536
< Method
< Description
---
> Method
> Description
541,542c541,542
< canAddUser(jcrSession)
< Checks if the current user may add new users
---
> canAddUser(jcrSession)
> Checks if the current user may add new users
545,546c545,546
< canAddGroup(jcrSession)
< Checks if the current user may add new groups
---
> canAddGroup(jcrSession)
> Checks if the current user may add new groups
549,550c549,550
< canUpdateProperties(jcrSession, principalId)
< Checks if the current user may update the properties of the specified principal
---
> canUpdateProperties(jcrSession, principalId)
> Checks if the current user may update the properties of the specified principal
553,554c553,554
< canRemove(jcrSession, principalId)
< Checks if the current user may remove the specified user or group
---
> canRemove(jcrSession, principalId)
> Checks if the current user may remove the specified user or group
557,558c557,558
< canUpdateGroupMembers(jcrSession, groupId)
< Checks if the current user may modify the membership of the specified group
---
> canUpdateGroupMembers(jcrSession, groupId)
> Checks if the current user may modify the membership of the specified group
575c575
< if (privilegesInfo.canUpdateProperties(currentSession, "someUserId")) {
---
> if (privilegesInfo.canUpdateProperties(currentSession, "someUserId")) {
579c579
< if (privilegesInfo.canRemove(currentSession, "someUserId")) {
---
> if (privilegesInfo.canRemove(currentSession, "someUserId")) {
583c583
< if (privilegesInfo.canUpdateGroupMembers(currentSession, "GroupName")) {
---
> if (privilegesInfo.canUpdateGroupMembers(currentSession, "GroupName")) {
diff -b -B -r ./documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html
98c98
< Multiple Ways to Modify Content
---
> Multiple Ways to Modify Content
101c101
< Quickstart: Creating Content
---
> Quickstart: Creating Content
103,105c103,105
< <form method="POST" action="http://host/some/new/content" enctype="multipart/form-data">
< <input type="text" name="title" value="" />
< <input type="text" name="text" value="" />
---
> <form method="POST" action="http://host/some/new/content" enctype="multipart/form-data">
> <input type="text" name="title" value="" />
> <input type="text" name="text" value="" />
110c110
< $ curl -Ftitle="some title text" -Ftext="some body text content" http://host/some/new/content
---
> $ curl -Ftitle="some title text" -Ftext="some body text content" http://host/some/new/content
113,114c113,114
< $ curl -F"jcr:primaryType=nt:unstructured" -Ftitle="some title text" \
< -Ftext="some body text content" http://host/some/new/content
---
> $ curl -F"jcr:primaryType=nt:unstructured" -Ftitle="some title text" \
> -Ftext="some body text content" http://host/some/new/content
117,118c117,118
< $ curl -F"sling:resourceType=sling:sample" -Ftitle="some title text" \
< -Ftext="some body text content" http://host/some/new/content
---
> $ curl -F"sling:resourceType=sling:sample" -Ftitle="some title text" \
> -Ftext="some body text content" http://host/some/new/content
120c120
< Preface: multipart/form-data POSTs
---
> Preface: multipart/form-data POSTs
122c122
< In this case, ensure you are submitting the POST request using multipart/form-data encoding. This preserves the order of parameter application according to the original HTML form. To this avail, ensure to always include the enctype="multipart/form-data" attribute with the <form> tag.
---
> In this case, ensure you are submitting the POST request using multipart/form-data encoding. This preserves the order of parameter application according to the original HTML form. To this avail, ensure to always include the enctype="multipart/form-data" attribute with the <form> tag.
124c124
< SlingPostServlet Operations
---
> SlingPostServlet Operations
139,140c139,140
< Automated tests: Note that the launchpad test services module contains a number of
< integration tests for the SlingPostServlet. Most of these tests are fairly readable, and can be used to find out more details about the servlet's behavior.
---
> Automated tests:
> Note that the launchpad test services module contains a number of integration tests for the SlingPostServlet. Most of these tests are fairly readable, and can be used to find out more details about the servlet's behavior.
143c143,145
< Trailing star in the :applyTo parameter: This applies to operations that use this parameter, since version 2.1.2 of the *org.apache.sling.servlets.post* bundle: If the last segment of the `:applyTo` value is '*' then the operation applies to all the children of the resolved parent resource. This can be used to act on all the children of a resource without having to specify the path of each individual child resource.
---
> Trailing star in the :applyTo parameter:
> This applies to operations that use this parameter, since version 2.1.2 of the *org.apache.sling.servlets.post* bundle: If the last segment of the `:applyTo` value is '*' then the operation applies to all the children of the resolved parent resource. This can be used to act on all the children
> of a resource without having to specify the path of each individual child resource.
145c147
< Content Creation or Modification
---
> Content Creation or Modification
158,159c160,161
< Resource Path
< Item path
---
> Resource Path
> Item path
164,165c166,167
< /content/new
< /content/new
---
> /content/new
> /content/new
168,169c170,171
< /content/new.html
< /content/new
---
> /content/new.html
> /content/new
172,173c174,175
< /content/new.print.a4.html
< /content/new
---
> /content/new.print.a4.html
> /content/new
176,177c178,179
< /content/
< /content/xxx where xxx is a generated name
---
> /content/
> /content/xxx where xxx is a generated name
180,181c182,183
< /content/*
< /content/xxx where xxx is a generated name
---
> /content/*
> /content/xxx where xxx is a generated name
184,185c186,187
< /content/*.html
< /content/xxx where xxx is a generated name
---
> /content/*.html
> /content/xxx where xxx is a generated name
188,189c190,191
< /content/*.print.a4.html
< /content/xxx where xxx is a generated name
---
> /content/*.print.a4.html
> /content/xxx where xxx is a generated name
193c195
< Setting Property Values
---
> Setting Property Values
196,199c198,201
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="text" name="title" />
< <input type="text" name="text" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="text" name="title" />
> <input type="text" name="text" />
> <input type="Submit" />
209c211
< Automatic property values: last modified and created by
---
> Automatic property values: last modified and created by
212,215c214,221
< created and jcr:created are set to the node creation time, as a Date value.
< lastModified, jcr:lastModified are set to the node modification time, as a Date value.
< createdBy and jcr:createdBy are set to the name of the user who created the node.
< lastModifiedBy, jcr:lastModifiedBy are set to the name of the user who modified the node.
---
>
> created and jcr:created are set to the node creation time, as a Date value.
>
> lastModified, jcr:lastModified are set to the node modification time, as a Date value.
>
> createdBy and jcr:createdBy are set to the name of the user who created the node.
>
> lastModifiedBy, jcr:lastModifiedBy are set to the name of the user who modified the node.
218,219c224,225
< File Uploads
< File uploads are typically done using the <input type="file""/> element of an HTML form and ensuring the correct form encoding. The SlingPostServlet handles uploaded files specially, in that the file data is not simply written into a property, but a node is actually created with three properties:
---
> File Uploads
> File uploads are typically done using the <input type="file""/> element of an HTML form and ensuring the correct form encoding. The SlingPostServlet handles uploaded files specially, in that the file data is not simply written into a property, but a node is actually created with three properties:
233,235c239,241
< <form method="POST" action="/content/page" enctype="multipart/form-data">
< <input type="file" name="image" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page" enctype="multipart/form-data">
> <input type="file" name="image" />
> <input type="Submit" />
239,242c245,248
< <form method="POST" action="/content/page" enctype="multipart/form-data">
< <input type="file" name="*" />
< <input type="hidden" name="*@TypeHint" value="nt:file" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page" enctype="multipart/form-data">
> <input type="file" name="*" />
> <input type="hidden" name="*@TypeHint" value="nt:file" />
> <input type="Submit" />
246c252
< Date properties
---
> Date properties
260c266
< Omitting Some Parameters
---
> Omitting Some Parameters
264,269c270,275
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="text" name="./title" />
< <input type="text" name="../first/text" />
< <input type="hidden" name="control0" /><!-- ignored -->
< <input type="hidden" name="control1" /><!-- ignored -->
< <input type="Submit" />
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="text" name="./title" />
> <input type="text" name="../first/text" />
> <input type="hidden" name="control0" /><!-- ignored -->
> <input type="hidden" name="control1" /><!-- ignored -->
> <input type="Submit" />
280c286
< Controlling Content Updates with @ Suffixes
---
> Controlling Content Updates with @ Suffixes
285c291
< @TypeHint
---
> @TypeHint
289,298c295,304
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="text" name="width" />
< <input type="hidden" name="width@TypeHint" value="Long" />
< <input type="checkbox" name="checked" />
< <input type="hidden" name="checked@TypeHint" value="Boolean" />
< <input type="text" name="hobbys"/>
< <input type="text" name="hobbys"/>
< <input type="text" name="hobbys"/>
< <input type="hidden" name="hobbys@TypeHint" value="String[]" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="text" name="width" />
> <input type="hidden" name="width@TypeHint" value="Long" />
> <input type="checkbox" name="checked" />
> <input type="hidden" name="checked@TypeHint" value="Boolean" />
> <input type="text" name="hobbys"/>
> <input type="text" name="hobbys"/>
> <input type="text" name="hobbys"/>
> <input type="hidden" name="hobbys@TypeHint" value="String[]" />
> <input type="Submit" />
305c311
< @DefaultValue
---
> @DefaultValue
308,311c314,317
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="text" name="text" />
< <input type="hidden" name="text@DefaultValue" value="--- Default Value ---" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="text" name="text" />
> <input type="hidden" name="text@DefaultValue" value="--- Default Value ---" />
> <input type="Submit" />
314c320
< @UseDefaultWhenMissing
---
> @UseDefaultWhenMissing
316,319c322,325
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input name="queryIgnoreNoise" class="input" type="checkbox" value="true"/>
< <input type="hidden" name="queryIgnoreNoise@DefaultValue" value="false"/>
< <input type="hidden" name="queryIgnoreNoise@UseDefaultWhenMissing" value="true"/>
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input name="queryIgnoreNoise" class="input" type="checkbox" value="true"/>
> <input type="hidden" name="queryIgnoreNoise@DefaultValue" value="false"/>
> <input type="hidden" name="queryIgnoreNoise@UseDefaultWhenMissing" value="true"/>
322c328
< @IgnoreBlanks
---
> @IgnoreBlanks
324,328c330,334
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="hidden" name="stringProperty@TypeHint" value="String[]"/>
< <input type="text" name="stringProperty" value="foo"/>
< <input type="text" name="stringProperty" value="bar"/>
< <input type="text" name="stringProperty" value=""/>
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="hidden" name="stringProperty@TypeHint" value="String[]"/>
> <input type="text" name="stringProperty" value="foo"/>
> <input type="text" name="stringProperty" value="bar"/>
> <input type="text" name="stringProperty" value=""/>
333,335c339,341
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="hidden" name="stringProperty@TypeHint" value="String"/>
< <input type="text" name="stringProperty" value=""/>
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="hidden" name="stringProperty@TypeHint" value="String"/>
> <input type="text" name="stringProperty" value=""/>
341c347
< <input type="hidden" name="stringProperty@IgnoreBlanks" value="true"/>
---
> <input type="hidden" name="stringProperty@IgnoreBlanks" value="true"/>
344c350
< @ValueFrom
---
> @ValueFrom
347,350c353,356
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="text" name="supplied_text" />
< <input type="hidden" name="./text@ValueFrom" value="supplied_text" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="text" name="supplied_text" />
> <input type="hidden" name="./text@ValueFrom" value="supplied_text" />
> <input type="Submit" />
356c362
< @Delete
---
> @Delete
360,365c366,371
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="checkbox" name="color" value="red" />
< <input type="checkbox" name="color" value="green" />
< <input type="checkbox" name="color" value="blue" />
< <input type="hidden" name="color@Delete" value="delete text" /><!-- actual value is ignored -->
< <input type="Submit" />
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="checkbox" name="color" value="red" />
> <input type="checkbox" name="color" value="green" />
> <input type="checkbox" name="color" value="blue" />
> <input type="hidden" name="color@Delete" value="delete text" /><!-- actual value is ignored -->
> <input type="Submit" />
370c376
< @MoveFrom
---
> @MoveFrom
375,379c381,385
< <form method="POST" action="/content/page/" enctype="multipart/form-data">
< <input type="hidden" name="image@MoveFrom" value="/tmp/upload/123" />
< <input type="text" name="title" />
< <input type="text" name="text" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page/" enctype="multipart/form-data">
> <input type="hidden" name="image@MoveFrom" value="/tmp/upload/123" />
> <input type="text" name="title" />
> <input type="text" name="text" />
> <input type="Submit" />
386c392
< @CopyFrom
---
> @CopyFrom
390,394c396,400
< <form method="POST" action="/content/page/" enctype="multipart/form-data">
< <input type="hidden" name="image@CopyFrom" value="/tmp/upload/123" />
< <input type="text" name="title" />
< <input type="text" name="text" />
< <input type="Submit" />
---
> <form method="POST" action="/content/page/" enctype="multipart/form-data">
> <input type="hidden" name="image@CopyFrom" value="/tmp/upload/123" />
> <input type="text" name="title" />
> <input type="text" name="text" />
> <input type="Submit" />
401c407
< @Patch
---
> @Patch
404,409c410,415
< <form method="POST" action="/content/page/first" enctype="multipart/form-data">
< <input type="hidden" name="tags@TypeHint" value="String[]" />
< <input type="hidden" name="tags@Patch" value="true" />
< <input type="text" name="tags" value="+cool"/>
< <input type="text" name="tags" value="-boring"/>
< <input type="Submit" />
---
> <form method="POST" action="/content/page/first" enctype="multipart/form-data">
> <input type="hidden" name="tags@TypeHint" value="String[]" />
> <input type="hidden" name="tags@Patch" value="true" />
> <input type="text" name="tags" value="+cool"/>
> <input type="text" name="tags" value="-boring"/>
> <input type="Submit" />
418c424
< Algorithm for Node Name Creation
---
> Algorithm for Node Name Creation
435c441
< Response Status
---
> Response Status
440,441c446,447
< Status
< Explanation
---
> Status
> Explanation
446,447c452,453
< 200/OK
< An existing node has been updated with content
---
> 200/OK
> An existing node has been updated with content
450,451c456,457
< 201/CREATED
< A new node has been created and filled with content
---
> 201/CREATED
> A new node has been created and filled with content
454,455c460,461
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request
459c465
< Content Removal
---
> Content Removal
461c467
< $ curl -F":operation=delete" http://host/content/sample
---
> $ curl -F":operation=delete" http://host/content/sample
463c469
< Response Status
---
> Response Status
468,469c474,475
< Status
< Explanation
---
> Status
> Explanation
474,475c480,481
< 200/OK
< The resource (and all its descendants) has been removed
---
> 200/OK
> The resource (and all its descendants) has been removed
478,479c484,485
< 404/NOT FOUND
< The request URL does not address an existing repository item
---
> 404/NOT FOUND
> The request URL does not address an existing repository item
482,483c488,489
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request
487c493
< Deleting Multiple Items
---
> Deleting Multiple Items
491,492c497,498
< $ curl -F":operation=delete" -F":applyTo=/content/page1" \
< -F":applyTo=/content/page2" http://host/content/sample
---
> $ curl -F":operation=delete" -F":applyTo=/content/page1" \
> -F":applyTo=/content/page2" http://host/content/sample
495c501
< $ curl -F":operation=delete" -F":applyTo=/content/*" http://host/content/sample
---
> $ curl -F":operation=delete" -F":applyTo=/content/*" http://host/content/sample
498c504
< Response Status
---
> Response Status
503,504c509,510
< Status
< Explanation
---
> Status
> Explanation
509,510c515,516
< 200/OK
< All requested and existing resources have been removed
---
> 200/OK
> All requested and existing resources have been removed
513,514c519,520
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request
518c524
< Copying Content
---
> Copying Content
524,525c530,531
< :dest Parameter
< Destination Absolute Path
---
> :dest Parameter
> Destination Absolute Path
530,531c536,537
< /content/newSample
< /content/newSample
---
> /content/newSample
> /content/newSample
534,535c540,541
< different/newSample
< /content/different/newSample
---
> different/newSample
> /content/different/newSample
538,539c544,545
< /content/different/
< /content/different/sample
---
> /content/different/
> /content/different/sample
542,543c548,549
< different/
< /content/different/sample
---
> different/
> /content/different/sample
548c554
< Response Status
---
> Response Status
553,554c559,560
< Status
< Explanation
---
> Status
> Explanation
559,560c565,566
< 200/OK
< The node has been copied to the new location replacing an existing item at the destination
---
> 200/OK
> The node has been copied to the new location replacing an existing item at the destination
563,564c569,570
< 201/CREATED
< The node has been copied to the new location creating a new item at the destination
---
> 201/CREATED
> The node has been copied to the new location creating a new item at the destination
567,568c573,574
< 404/NOT FOUND
< The request URL does not address an existing repository item
---
> 404/NOT FOUND
> The request URL does not address an existing repository item
571,572c577,578
< 412/PRECONDITION FAILED
< An item already exists at the destination and the :replace parameter is not set to true
---
> 412/PRECONDITION FAILED
> An item already exists at the destination and the :replace parameter is not set to true
575,576c581,582
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request
580c586
< Copying Multiple Items
---
> Copying Multiple Items
584,585c590,591
< $ curl -F":operation=copy" -F":applyTo=/content/page1" -F":applyTo=/content/page2" \
< -F":dest=/content/target/" http://host/content/sample
---
> $ curl -F":operation=copy" -F":applyTo=/content/page1" -F":applyTo=/content/page2" \
> -F":dest=/content/target/" http://host/content/sample
589c595
< $ curl -F":operation=copy" -F":applyTo=/content/*" -F":dest=/content/target/" \
---
> $ curl -F":operation=copy" -F":applyTo=/content/*" -F":dest=/content/target/" \
593c599
< Response Status
---
> Response Status
598,599c604,605
< Status
< Explanation
---
> Status
> Explanation
604,605c610,611
< 200/OK
< All requested and existing resources have been copied
---
> 200/OK
> All requested and existing resources have been copied
608,609c614,615
< 412/PRECONDITION FAILED
< The node indicated by the :dest parameter does not exist
---
> 412/PRECONDITION FAILED
> The node indicated by the :dest parameter does not exist
612,613c618,619
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request. This status is also set if the :dest parameter value does not have a trailing slash character.
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request. This status is also set if the :dest parameter value does not have a trailing slash character.
617c623
< Moving Content
---
> Moving Content
623,624c629,630
< :dest Parameter
< Destination Absolute Path
---
> :dest Parameter
> Destination Absolute Path
629,630c635,636
< /content/newSample
< /content/newSample
---
> /content/newSample
> /content/newSample
633,634c639,640
< different/newSample
< /content/different/newSample
---
> different/newSample
> /content/different/newSample
637,638c643,644
< /content/different/
< /content/different/sample
---
> /content/different/
> /content/different/sample
641,642c647,648
< different/
< /content/different/sample
---
> different/
> /content/different/sample
647c653
< Response Status
---
> Response Status
652,653c658,659
< Status
< Explanation
---
> Status
> Explanation
658,659c664,665
< 200/OK
< The node has been moved to the new location replacing an existing item at the destination
---
> 200/OK
> The node has been moved to the new location replacing an existing item at the destination
662,663c668,669
< 201/CREATED
< The node has been moved to the new location creating a new item at the destination
---
> 201/CREATED
> The node has been moved to the new location creating a new item at the destination
666,667c672,673
< 404/NOT FOUND
< The request URL does not address an existing repository item
---
> 404/NOT FOUND
> The request URL does not address an existing repository item
670,671c676,677
< 412/PRECONDITION FAILED
< An item already exists at the destination and the :replace parameter is not set to true
---
> 412/PRECONDITION FAILED
> An item already exists at the destination and the :replace parameter is not set to true
674,675c680,681
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request
679c685
< Moving Multiple Items
---
> Moving Multiple Items
683,684c689,690
< $ curl -F":operation=move" -F":applyTo=/content/page1" -F":applyTo=/content/page2" \
< -F":dest=/content/target/" http://host/content/sample
---
> $ curl -F":operation=move" -F":applyTo=/content/page1" -F":applyTo=/content/page2" \
> -F":dest=/content/target/" http://host/content/sample
688c694
< $ curl -F":operation=move" -F":applyTo=/content/*" -F":dest=/content/target/" \
---
> $ curl -F":operation=move" -F":applyTo=/content/*" -F":dest=/content/target/" \
692c698
< Response Status
---
> Response Status
697,698c703,704
< Status
< Explanation
---
> Status
> Explanation
703,704c709,710
< 200/OK
< All requested and existing resources have been moved
---
> 200/OK
> All requested and existing resources have been moved
707,708c713,714
< 412/PRECONDITION FAILED
< The node indicated by the :dest parameter does not exist
---
> 412/PRECONDITION FAILED
> The node indicated by the :dest parameter does not exist
711,712c717,718
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request. This status is also set if the :dest parameter value does not have a trailing slash character.
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request. This status is also set if the :dest parameter value does not have a trailing slash character.
716,717c722,723
< Importing Content Structures
< To import content structures just address the parent item to import into and set the :operation parameter to import.
---
> Importing Content Structures
> To import content structures just address the parent item to import into and set the :operation parameter to import.
723,726c729,732
< Parameter
< Required
< Default value
< Description
---
> Parameter
> Required
> Default value
> Description
731,732c737,738
< :contentType
< true
---
> :contentType
> true
734c740
< The :contentType value specifies the type of content being imported. Possible values are: xml, jcr.xml, json, jar, zip
---
> The :contentType value specifies the type of content being imported. Possible values are: xml, jcr.xml, json, jar, zip
737,738c743,744
< :content
< false
---
> :content
> false
740c746
< The :content value specifies content string to import. The format of the import content is the same as is used by the jcr.contentloader bundle. This parameter is required if the :contentFile parameter is not supplied.
---
> The :content value specifies content string to import. The format of the import content is the same as is used by the jcr.contentloader bundle. This parameter is required if the :contentFile parameter is not supplied.
743,744c749,750
< :contentFile
< false
---
> :contentFile
> false
746c752
< The :contentFile value specifies a file uploaded for import. The format of the import content is the same as is used by the jcr.contentloader bundle. This parameter is required if the :content parameter is not supplied.
---
> The :contentFile value specifies a file uploaded for import. The format of the import content is the same as is used by the jcr.contentloader bundle. This parameter is required if the :content parameter is not supplied.
749,752c755,758
< :checkin
< false
< false
< The :checkin value specifies whether versionable nodes should be checked in during the import.
---
> :checkin
> false
> false
> The :checkin value specifies whether versionable nodes should be checked in during the import.
755,758c761,764
< :autoCheckout
< false
< false
< The :autoCheckout value specifies whether versionable nodes should be checked out when necessary during the import.
---
> :autoCheckout
> false
> false
> The :autoCheckout value specifies whether versionable nodes should be checked out when necessary during the import.
761,764c767,770
< :replace
< false
< false
< The :replace value specifies whether the import should replace any existing nodes at the same path. Note: When true, the existing nodes will be deleted and a new node is created in the same place.
---
> :replace
> false
> false
> The :replace value specifies whether the import should replace any existing nodes at the same path. Note: When true, the existing nodes will be deleted and a new node is created in the same place.
767,770c773,776
< :replaceProperties
< false
< false
< The :replaceProperties value specifies whether the import should replace properties if they already exist.
---
> :replaceProperties
> false
> false
> The :replaceProperties value specifies whether the import should replace properties if they already exist.
775,776c781,782
< $ curl -F":operation=import" -F":contentType=json" -F":name=sample" \
< -F':content={ "jcr:primaryType": "nt:unstructured", "propOne" : "propOneValue", "childOne" : { "childPropOne" : true } }' \
---
> $ curl -F":operation=import" -F":contentType=json" -F":name=sample" \
> -F':content={ "jcr:primaryType": "nt:unstructured", "propOne" : "propOneValue", "childOne" : { "childPropOne" : true } }' \
780,781c786,787
< $ curl -F":operation=import" -F":contentType=json"
< -F':content={ "sample" : {"propOne" : "propOneValue", "childOne" : { "childPropOne" : true } } }' \
---
> $ curl -F":operation=import" -F":contentType=json"
> -F':content={ "sample" : {"propOne" : "propOneValue", "childOne" : { "childPropOne" : true } } }' \
785,788c791,794
< <form method="POST" action="/content" enctype="multipart/form-data">
< <input type="hidden" name=":operation" value="import" />
< <input type="hidden" name=":contentType" value="json" />
< <input type="hidden" name=":nameHint" value="sample" />
---
> <form method="POST" action="/content" enctype="multipart/form-data">
> <input type="hidden" name=":operation" value="import" />
> <input type="hidden" name=":contentType" value="json" />
> <input type="hidden" name=":nameHint" value="sample" />
790,791c796,797
< <input type="text" name=":content" value="{ "jcr:primaryType" : "nt:unstructured" , "propOne" : "propOneValue", "childOne" : { "childPropOne" : true } }" />
< <input type="Submit" />
---
> <input type="text" name=":content" value="{ "jcr:primaryType" : "nt:unstructured" , "propOne" : "propOneValue", "childOne" : { "childPropOne" : true } }" />
> <input type="Submit" />
795,798c801,804
< <form method="POST" action="/content" enctype="multipart/form-data">
< <input type="hidden" name=":operation" value="import" />
< <input type="hidden" name=":contentType" value="json" />
< <input type="hidden" name=":nameHint" value="sample" />
---
> <form method="POST" action="/content" enctype="multipart/form-data">
> <input type="hidden" name=":operation" value="import" />
> <input type="hidden" name=":contentType" value="json" />
> <input type="hidden" name=":nameHint" value="sample" />
800,801c806,807
< <input type="file" name=":contentFile" />
< <input type="Submit" />
---
> <input type="file" name=":contentFile" />
> <input type="Submit" />
804c810
< Response Status
---
> Response Status
809,810c815,816
< Status
< Explanation
---
> Status
> Explanation
815,816c821,822
< 200/OK
< All requested content has been imported
---
> 200/OK
> All requested content has been imported
819,820c825,826
< 404/NOT FOUND
< The target parent node does not exist
---
> 404/NOT FOUND
> The target parent node does not exist
823,824c829,830
< 412/PRECONDITION FAILED
< One or more of the required parameters does not exist
---
> 412/PRECONDITION FAILED
> One or more of the required parameters does not exist
827,828c833,834
< 500/INTERNAL SERVER ERROR
< Some exception, for example a RepositoryException, occurred while processing the request. This status is also set if the ContentImporter service is missing.
---
> 500/INTERNAL SERVER ERROR
> Some exception, for example a RepositoryException, occurred while processing the request. This status is also set if the ContentImporter service is missing.
832c838
< Null Operation
---
> Null Operation
835c841
< Response Status
---
> Response Status
840,841c846,847
< Status
< Explanation
---
> Status
> Explanation
846,847c852,853
< 200/OK
< Default status set if :nopstatus parameter is not set or does not have a valid value
---
> 200/OK
> Default status set if :nopstatus parameter is not set or does not have a valid value
850,851c856,857
< {:nopstatus}
< The status as requested by the :nopstatus parameter
---
> {:nopstatus}
> The status as requested by the :nopstatus parameter
855c861
< Special Parameters
---
> Special Parameters
857c863
< :order
---
> :order
863,864c869,870
< Value
< Description
---
> Value
> Description
869,870c875,876
< first
< Place the target node as the first amongst its siblings
---
> first
> Place the target node as the first amongst its siblings
873,874c879,880
< last
< Place the target node as the last amongst its siblings
---
> last
> Place the target node as the last amongst its siblings
877,878c883,884
< before *xyz*
< Place the target node immediately before the sibling whose name is xyz
---
> before *xyz*
> Place the target node immediately before the sibling whose name is xyz
881,882c887,888
< after *xyz*
< Place the target node immediately after the sibling whose name is xyz
---
> after *xyz*
> Place the target node immediately after the sibling whose name is xyz
885,886c891,892
< numeric
< Place the target node at the indicated numeric place amongst its siblings where 0 is equivalent to first and 1 means the second place
---
> numeric
> Place the target node at the indicated numeric place amongst its siblings where 0 is equivalent to first and 1 means the second place
891c897
< $ curl -F":order=before other" http://host/content/sample/page5
---
> $ curl -F":order=before other" http://host/content/sample/page5
894c900
< :redirect
---
> :redirect
896c902
< :status
---
> :status
899c905
< Response format
---
> Response format
904,905c910,911
< Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
< Accept: application/json,/;q=0.9
---
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,**/**;q=0.8
> Accept: application/json,**/**;q=0.9
909c915
< Versionable Node Support
---
> Versionable Node Support
917c923
< 
---
> 
925,926c931,932
< Extending the SlingPostServlet
< Additional POST operations
---
> Extending the SlingPostServlet
> Additional POST operations
931c937
< SlingPostProcessor
---
> SlingPostProcessor
diff -b -B -r ./documentation/bundles/metrics.html /Users/bert/Desktop/sling-site-0.1-SNAPSHOT/documentation/bundles/metrics.html
94,95c94,95
< Sling Metrics bundle provides integration with Dropwizard Metrics library which provides a toolkit to capture runtime performance statistics in your application.
< Features
---
> Sling Metrics bundle provides integration with