Поведение Spring AntPathMatcher для сопоставления с путями Linux - PullRequest
1 голос
/ 22 февраля 2011

Я столкнулся с этим странным поведением из AntPathMatcher , которое я выделил в модульном тесте ниже:

@Test
    public void testAntPathMacherPotentiallyBrokenForNix() throws IOException {
        AntPathMatcher antPathMatcher = new AntPathMatcher();
        Resource resource = new ClassPathResource("properties/RESOURCE_TEST.properties"); // there's a RESOURCE_TEST.properties under a directory 'properties'
        String localPath = resource.getFile().getAbsolutePath();

        Assert.assertThat(antPathMatcher.match("*.properties", localPath), is(true));

        String nixPath = "/local/app/instances/properties/RESOURCE_TEST.properties";

        Assert.assertThat(antPathMatcher.match("*.properties", nixPath), is(true));
}

2-е утверждение не выполняется, но не должны ли оба утверждения выше быть верными?

Чего мне не хватает? (не то чтобы я действительно использовал AntPathMatcher, мне просто любопытно)

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Попробуйте это:

antPathMatcher.setPathSeparator(System.getProperty("file.separator")) ;

0 голосов
/ 22 февраля 2011

Я пытался воспроизвести это, но в Spring 3 обе версии терпят неудачу (я больше не затрагиваю 2.5: -)).

Причина: вы не можете начать путь с подстановочного знака, вам нужен рут для привязки.

Используйте этот шаблон: /**/*.properties, и по крайней мере в Spring 3 оба теста пройдут успешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...