Re: A few extval questions

2010-04-19 Thread Johan Borchers
Hello Werner and Rudy,

Thanks for the answers!

I did also some work to find a good solution for working with ExtVal.
For me it is working now. I did find out that problems do appear on my Windows 
XP machine.
On the Mac with Snow Leopard 10.6.3 things are working better. So let me 
explain what I did.

I'm working with Eclipse Galileo 3.5.2 JEE with JBoss VE plugin for RichFaces 
on both the Mac and Windows XP.
Both systems are running Java 1.6.0_17. Also on both systems I have Tomcat 
6.0.20.
For deployment only I use an Ubuntu 9.10 machine with Tomcat 6.0.20 and OpenJDK 
6.

For development I do start or debug Tomcat in Eclipse.
I do build the war file with Ant and deploy it to the webapps directory of 
Tomcat.
Tomcat redeploys (and unpacks) the webpapp after adding the war file to the 
webapps directory.

Now I only have the MySQL driver software in the lib directory of Tomcat.
The rest of the libraries I now do have in the WEB-INF/lib directory of the 
webapp.
The following is a list of my files in the WEB-INF/lib directory:

asm-3.2.jar
cglib-2.2.jar
commons-beanutils-1.8.0.jar
commons-collections-3.2.1.jar
commons-digester-1.8.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
extval-annotation-based-bypass-validation-1.2.3.jar
ibatis-2.3.4.726.jar
jsf-api-mojarra-1.2_14-b01.jar
jsf-facelets-1.1.15.B1.jar
jsf-impl-mojarra-1.2_14-b01.jar
jstl-1.2.jar
myfaces-extval-core-1.2.3.jar
myfaces-extval-generic-support-1.2.3.jar
myfaces-extval-property-validation-1.2.3.jar
richfaces-api-3.3.3.Final.jar
richfaces-impl-3.3.3.Final.jar
richfaces-ui-3.3.3.Final.jar

Now on Windows with Tomcat 6.0.20 redeploying the webapp hangs on Undeploying.
At least that's the last message on the console.

The same configuration on the Mac works perfectly fine. No problem with 
redeploying the webapp to a running Tomcat engine.
It just onloads the old webapp and reloads the new webapp.

I downloaded the Tomcat 6.0.26 32 bit version for Windows, configured it the 
same as 6.0.20 and redeploying works also fine on Windows.
But only if I start Tomcat from the command line via catalina.bat.
Starting Tomcat from Eclipse did still hang on redeploying also for Tomcat 
6.0.26.
Then I searched for the difference between starting Tomcat from the command 
line and starting Tomcat in Eclipse.
Eclipse is just using the Bootstrap.jar and passing parameters where the 
catalina.bat defines a lot more defaults.
I added the 2 vm parameters for configuring Tomcat JULI logging from the 
catalina.bat to the startup parameters where Eclipse starts Tomcat.
Because Tomcat was not logging anything when started from Eclipse.
And guess what, redeploying the webapp to Tomcat 6.0.26 running in Eclipse 
works also fine.

Redeploying on on the Mac looks more robust than on Windows. On the Mac it also 
works for Tomcat 6.0.20.
I still don't know the real reason why the webapp won't unload on Windows with 
Tomcat 6.0.20 but I have a workaround.

I'm able to go all the way with ExtVal because until now I did not add any JSF 
validation to the webapp.
With the bypass annotation I'm able to build behavior of our desktop 
applications in the webapp.
I also like the @Pattern annotation.  

Q3

I now have my translated messages in the file Messages_nl_NL.properties. Extval 
is showing the Dutch messages. But for the Pattern annotation it gives an 
English message like Invalid format. Where can I translate these messages and 
do they also use the label of the UI object?


Regards,

Johan



On Apr 19, 2010, at 4:45 PM, Werner Punz wrote:

 Ok I did some initial testing, Ext-Val + MyFaces Ext-Scripting works
 but the dynamic reloading only works for constraints,
 Validation group reloading does not work yet, due to caching
 on Ext-Vals side as it seems.
 I will work with Gerhard on this issue to resolve
 it in the near future, but if you can live with what is there
 either use JSF2s bean validation support or do the occasional restart if you 
 need to alter the Validation group settings.
 
 Werner
 
 
 Am 16.04.10 13:38, schrieb Werner Punz:
 Am 16.04.10 13:16, schrieb Gerhard Petracek:
 hi johan,
 
 some additions:
 as mentioned by rudy: the required-attribute is quite special in
 combination with component initialization. i'll add some information
 about
 it in our new wiki. concerning your concrete issues: it would be nice
 if you
 can provide a link to a small demo app which illustrates the issue (to
 ensure that we are talking about the same details).
 
 Where to place the Extval libraries?
 
 you could customize it via a custom message resolver.
 as alternative you could use myfaces-core + ext-scripting - so you don't
 have to restart tomcat...
 
 Well I have not tested the combo yet, I wanted to do it this week but
 havenĀ“t found enough time, but feel free to try ext-scripting in that
 combination, but I cannot gurantee that it works, not before next week
 before the final testing round before 1.0, as long as you stay on the
 JSF side it can help you to save 

A few extval questions

2010-04-16 Thread Johan Borchers
Hello,

I'm using Tomcat 6.0.20, Mojarra 1.2_14, RichFaces 3.3.3 and Extval 1.2.3 on 
Mac en Windows with Java 1.6.0_17
The Extval libs are:
extval-annotation-based-bypass-validation-1.2.3.jar
myfaces-extval-core-1.2.3.jar
myfaces-extval-generic-support-1.2.3.jar
myfaces-extval-property-validation-1.2.3.jar

Extval is helping me al lot with bypass-validation because of fields in a form 
that perform looking up values.
E.g. a manufacturer code field is required in the big picture. But the field is 
also performing an AJAX lookup of the manufacturer as you leave the field. At 
that moment it is legal to leave the field blank because you are just tabbing 
through your fields. So marking the lookup method with @BypassValidation(all = 
true) works perfect.

Question 1 :
Is it possible to use also the normal validation mechanism of JSF in 
combination with Extval?

E.g I have 3 fields on a form with 2 fields having Extval @required validation 
and one field has the traditional validation property required=true in the 
XHTML page.
Sending the form with 3 blank fields gives me 2 faces messages back. Only the 
messages due to Extval validation.
So for me it looks like Extval is disabling the JSF validation defined in the 
XHTML page.

A little bit more strange is the behavior of the one field without Extval 
validation if I'm adding a validation to the field like f:validateLength 
minimum=2 maximum=10/
If I send the form with one character in the field and the 2 other fields are 
left blank I receive 3 faces messages (that's nice).
And then after retrieving the records from the database showing up in a list 
clicking on the list fills normally all three fields in the form, but with the 
f:validateLength the field is left blank.
Removing the f:validateLength from the field gives be back the normal behavior 
showing the data from the database.


Question 2 :
Where to place the Extval libraries?

For developing I'm using 1 Tomcat installation per project. I do add all the 
libraries to the lib directory of Tomcat. Placing also the Extval libraries to 
this directory has a little problem.
If i'm setting my locale to nl_NL and have a Messages_nl_NL.properties in my 
root package Mojarra will find it and Extval not. I do get the missing resource 
exception.
Even using the special parameter in web.xml giving a hint to Extval finding the 
message bundle does not help.
But I thought that has something to to with the classloader. I decided to place 
just the Extval libraries in the WEB-INF/lib directory. After that Extval is 
finding my locale specific message bundle perfectly even without the hint in 
web.xml.
I know it is better to place all third party libs in WEB-INF/lib as of class 
loading but during development redeploying the web app a lot of times gives 
problems with e.g. reloading Mojarra. 


So that's a lot of text for few questions!

I want to use Extval because of the flexible validation options. I hope someone 
can answer my questions so I will better understand how to use Extval?

T.I.A.

Johan Borchers