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=""" />
<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="("")" />
</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(a)redhat.com
<mailto:ozizka@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(a)redhat.com <mailto:bdavis@redhat.com> | c:
980.226.7865 <tel:980.226.7865> |
http://www.redhat.com
----- Original Message -----
From: "Marek Novotny" <mnovotny(a)redhat.com
<mailto:mnovotny@redhat.com>>
To: "Windup-dev List" <windup-dev(a)lists.jboss.org
<mailto:windup-dev@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(a)redhat.com
<mailto:rmarting@redhat.com>>
To: Marek Novotny <mnovotny(a)redhat.com
<mailto:mnovotny@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(a)redhat.com
<mailto:roman.martin@redhat.com>
//*Red Hat* Iberia
C/ José Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain
______________________________________________________________________