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

Ondrej Zizka ozizka at redhat.com
Sun Apr 24 17:45:35 EDT 2016


Hi Roman,

1) Yes, the rule seems useful, thanks! You can create a PR, or shall I?

2) How about leaving out the <where>:

       <filecontent filename="{*}.jsp" pattern="import=&quot;&quot;" />

<where> is generally useful if you need to match a regex, or refer to 
the value somewhere else in the rule.

Ondra




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
> ______________________________________________________________________
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/windup-dev/attachments/20160424/8be68ebd/attachment-0001.html 


More information about the windup-dev mailing list