[windup-dev] Fwd: [WindUp] Regular expression to detect filesystem paths

Marek Novotny mnovotny at redhat.com
Thu Apr 21 03:54:22 EDT 2016


Cool, I read your yesterday email and suggested " instead of " and
now I see you made it yourself, great!

On 21.4.2016 09:40, Roman Martin Gil wrote:
> Thanks Ondrej, my latest rule version is working as I want.
> 
> Now I create a new rule to identify page import definitions empty (<%@
> page import="" %>, .... this line in WAS is working successfully 🤔 but
> in EAP not (compile error).
> 
> <rule id="jsp-empty-imports">
> <when>
> <filecontent filename="{*}.jsp" pattern="import={emptyString}" />
> </when>
> <perform>
> <hint message="Empty imports definition in a jsp" effort="1"
> severity="mandatory">
> <message>
>                         Empty import definitions in .jsp or .jspf files
> will fail in compilation time. It is needed to
>                         remove them.
>                     </message>
> </hint>
> </perform>
> <where param="emptyString">
> <matches pattern="(&quot;&quot;)" />
> </where>
> </rule>
> 
> 
> I think that rule is also important in other migrations so WindUp could
> introduce in its global rules. What do you think?
> 
> Regards
> 
> On Thu, Apr 21, 2016 at 4:58 AM, Ondrej Zizka <ozizka at redhat.com
> <mailto:ozizka at redhat.com>> wrote:
> 
>     For the cases like "Message: ", i'd suggest to use negative lookbehind:
> 
>     (?<!\w)[a-z]:[\\\\|/]
> 
>     Which basically says, make sure there's no word character prior to
>     the potential drive letter.
> 
>     Ondra
> 
> 
> 
>     On 20.4.2016 16:02, Marek Novotny wrote:
> 
>         forgot to include Romain in CC
> 
>         On 20.4.2016 16:01, Brad Davis wrote:
> 
>             +1 -- it is not only important for Windows to Linux, but
>             also for identifying file read / writes that need to be
>             mounted for cloud deployments to things like OpenShift.
> 
>             Brad Davis
>             Director of FSI Solutions, Red Hat Consulting
>             Email: bdavis at redhat.com <mailto:bdavis at redhat.com> | c:
>             980.226.7865 <tel:980.226.7865> | http://www.redhat.com
> 
>             ----- Original Message -----
>             From: "Marek Novotny" <mnovotny at redhat.com
>             <mailto:mnovotny at redhat.com>>
>             To: "Windup-dev List" <windup-dev at lists.jboss.org
>             <mailto:windup-dev at lists.jboss.org>>
>             Sent: Wednesday, April 20, 2016 9:49:31 AM
>             Subject: [windup-dev] Fwd: [WindUp] Regular expression to
>             detect filesystem     paths
> 
>             adding windup-dev ml as this could be interested to Windup
>             community.
> 
> 
>             Romain,
> 
>               I would go with simplified pattern for every unique
>             occurrence to more
>             more general one.
> 
>             So try to use <or></or> and condition patterns in it.
>             Something like the following:
> 
>               <rule id="filesystem-paths-properties">
>                     <when>
>                             <or>
>                                     <filecontent filename="{*}.{extensions}"
>                                             pattern="{filesystem}" />
>                                     <filecontent filename="{*}.{extensions}"
>                                             pattern="{netfilesystem}" />
>                                     <filecontent filename="{*}.{extensions}"
>             pattern="page import="{filesystem}" />
>                             </or>
>                     </when>
>                     <perform>
>                             <hint message="File system properties"
>             effort="1"
>                             severity="mandatory">
>                                     <message>
>                                     TODO
>                                     </message>
>                             </hint>
>                     </perform>
>                     <where param="extensions">
>                             <matches
>             pattern="(java|properties|jsp|jpsf|tag|xml|txt)" />
>                     </where>
>                     <where param="filesystem">
>                             <matches pattern="(\S:[\\|/])" />
>                     </where>
>                     <where param="netfilesystem">
>                             <matches pattern="(\\\\ntfileserver\)" />
>                     </where>
>                     <where param="netfilesystem">
>                             <matches pattern="" />
>                     </where>
>             </rule>
> 
>             -------- Forwarded Message --------
>             Subject:        [WindUp] Regular expression to detect
>             filesystem paths
>             Date:   Wed, 20 Apr 2016 15:29:03 +0200
>             From:   Roman Martin Gil <rmarting at redhat.com
>             <mailto:rmarting at redhat.com>>
>             To:     Marek Novotny <mnovotny at redhat.com
>             <mailto:mnovotny at redhat.com>>
> 
> 
> 
>             Hi,
> 
>             I am very obfuscated to create a rule to identify some
>             filesystem paths
>             patterns. I am trying to detect when the code (.java,
>             .properties) have
>             the following entries:
> 
>                * "c:\\"
>                * "e:\\"
>                * "c:/"
>                * "e:/"
>                * "\\\\ntfileserver\"
>                * "page import="""
> 
> 
>             My first approach is similar to:
> 
>                      <rule id="filesystem-paths-properties">
>                          <when>
>                              <filecontent filename="{*}.{extensions}"
>             pattern="{filesystem}" />
>                          </when>
>                          <perform>
>                              <hint message="File system properties"
>             effort="1"
>             severity="mandatory">
>                                  <message>
>                                      TODO
>                                  </message>
>                              </hint>
>                          </perform>
>                          <where param="extensions">
>                              <matches
>             pattern="(java|properties|jsp|jpsf|tag|xml|txt)" />
>                          </where>
>                          <where param="filesystem">
>                              <matches pattern="((c|e):|[\\])" />
>                          </where>
>                      </rule>
> 
>             However I am detecting cases as "Message: " as a pattern.
>             How could I
>             create a rule to identify these cases?
> 
>             Thank you very much in advance
> 
>             PD: What is the better mail list to send it?
> 
> 
> 
> 
> 
> 
> 
> -- 
> 
> Saludos/Best regards
> ______________________________________________________________________
> *Jose Roman Martin Gil * 
> /MW Senior Architect/ | +34 605 926 271 | roman.martin at redhat.com
> <mailto:roman.martin at redhat.com>
> 
> /**/*Red Hat* Iberia
> C/ José Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain
> ______________________________________________________________________
> 


-- 
Marek Novotny
--
Windup team member and Seam Project Lead

Red Hat Czech s.r.o.
Purkynova 99
612 45 Brno


More information about the windup-dev mailing list