[ https://issues.apache.org/jira/browse/MENFORCER-390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17923368#comment-17923368 ]
ASF GitHub Bot commented on MENFORCER-390: ------------------------------------------ roadSurfer commented on code in PR #297: URL: https://github.com/apache/maven-enforcer/pull/297#discussion_r1939710040 ########## enforcer-rules/src/site/apt/requireFilesDontExist.apt.vm: ########## @@ -26,7 +26,10 @@ Require Files Don't Exist This rule checks that the specified list of files do not exist. Review Comment: Done > "requireFilesExist" no longer handles non-canonical paths > --------------------------------------------------------- > > Key: MENFORCER-390 > URL: https://issues.apache.org/jira/browse/MENFORCER-390 > Project: Maven Enforcer Plugin > Issue Type: Bug > Components: requireFilesExist, Standard Rules > Affects Versions: 3.0.0 > Reporter: Gene Smith > Priority: Major > > With the commit to resolve MENFORCER-364, the rule "requireFileExists" checks > that the canonical path of a file is the same as the absolute path. > But not all absolute paths are canonical. > * absolute paths can involve symbolic links > * and they are allowed to have parts which are relative > ** {{/../}} > ** {{/./}} > And when it fails to handle a path, it can report that a file does not exist, > even though the local system will resolve the path. > A blunt solution might be three separate rules: > * requireFileExists > ** the provided path must resolve to a file (which may be a directory or > link) > * requireCanonicalFileExists > ** the provided path must exist as a canonical file > * requireCasesenstiveFileExists > ** the provided path must file a file > ** the file name must have the same case (upper//lower) as the > ** the parts of the path from the file up must have the same case until they > go through a symbolic link > I have used the "nio" package to handle some of stuff before. I will add a > comment with some java code I would start with. Since the outcome here is > very dependent on the use case you pick, the java will be "meta code" with > ??? where you have to know the use case to know the outcome. > but basically, with "nio" you can march up a path checking for symbolic links > and such. > -- This message was sent by Atlassian Jira (v8.20.10#820010)