[
https://issues.apache.org/jira/browse/SLING-6350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bertrand Delacretaz updated SLING-6350:
---------------------------------------
Attachment: testing-with-ant.patch
I have attached {{testing-with-ant.patch}} which uses path matching code from
Ant which has very similar semantics to what we do here, IIUC.
I spent just a few minutes on this but get only 3 failing tests, below.
[~radu.cotescu] I think you initially implemented this, WDYT about switching to
the well tested Ant code instead of our own? We'd need to embed just the right
classes from Ant in this API bundle to avoid requiring a new Ant bundle but
that's IMO way better than reinventing this.
Failing tests with this patch:
bq.
PathTest.testMatchesWithGlobPattern:155->assertMatch:44->assertMatchOrNot:34
Expected match between /apps/myproject and
glob:/apps/myproject/components/**/*.html but got match=false
bq. PathTest.testPatternMatchingB:126->assertNoMatch:48->assertMatchOrNot:34
Expected no match between glob:/apps/*.html and /apps/a/a.html but got
match=true
bq. PathTest.testPatternRootMatching:147->assertMatch:44->assertMatchOrNot:34
Expected match between / and glob:/apps/myproject/components/**/*.html but got
match=false
> MountByFS does not work if the Provider Root mounts below /libs or /apps and
> has more than 2 slashes
> ----------------------------------------------------------------------------------------------------
>
> Key: SLING-6350
> URL: https://issues.apache.org/jira/browse/SLING-6350
> Project: Sling
> Issue Type: Bug
> Components: Extensions
> Affects Versions: API 2.15.0
> Reporter: Sandro Boehme
> Fix For: API 2.16.2
>
> Attachments: sling-api-patch.txt, testing-with-ant.patch
>
>
> If I mount a file system path to e.g. '/libs/sling/resource-editor' jsp
> changes are not picked up by the jsp compiler.
> FileMonitor.sendEvents(... ObservationReporter) gets an ObservationReporter
> as a parameter that doesn't return ObserverConfigurations in
> getObserverConfigurations() thus no changes are reported to the jsp compiler.
> The reason is, that they are not added in it's constructor
> (BasicObservationReporter:99) because 'providerPath.matches(p.getPath())'
> returns false. If I manually change that in the debugger to true the mount
> works well. In this example the providerPath is '/libs/sling/resource-editor'
> and p.getPath() is 'glob:/libs/**/*.jsp'. (See patch for PathTest.java)
> org.apache.sling.api.resource.path.Path.matches() in line 128 and following
> counts three slashes for '/libs/sling/resource-editor' and uses the substring
> of the glob expression until a fourth (3+1) slash or the end of the string.
> This leads to a glob expression of 'glob:/libs/**/*.jsp' instead of
> 'glob:/libs/**' and returns false.
> I don't have an overview of all use cases but judging from the PathTest the
> amount of slashes counted should not exceed the amount of slashes in the glob
> expression minus one if the glob expression uses an extension. I will add a
> patch for org.apache.sling.api.resource.path.Path as well so you can choose
> not to apply it if it's not correct.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)