You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Baptiste Meurant <ba...@gmail.com> on 2008/03/18 11:27:25 UTC

ApplicationState annotation problem since 5.0.11

Hello,

I am currently upgrading my Tapestry version from 5.0.6 to 5.0.11 and I have
a problem with @ApplicationState annotation.

Here are my files: 

Login.tml :

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
    <head>
        <title>Login</title>
    </head>
    <body>
	  <div id="login_box">
	     <t:form>
	         <t:errors />
		   <table>
		       <tr>
			     <td><label t:type="Label" for="login" class="login_label"/></td>
			     <td><input t:type="TextField" t:id="login" t:value="login"
t:label="login " 
				 					 class="login_input" /></td>
			 </tr>
			 <tr>
			     <td><label t:type="Label" for="password" class="login_label"/></td>
				 <td><input t:type="PasswordField" t:id="password" t:value="password"
t:label="password " 
				  					  class="login_input" /></td>
			    </tr>
			    <tr>
			        <td><input t:id="submitform" t:type="Submit" t:value="submit"
class="login_submit"/></td>
			    </tr>
			</table>				
		   </t:form>
		</div>
	</body>
</html>


Login.java :

package tutos.web.pages;

import org.apache.tapestry.annotations.ApplicationState;
import org.apache.tapestry.beaneditor.Validate;

public class Login {
    
    @ApplicationState
    private String login;

    private String password;

    public String getLogin() {
        return login;
    }

    @Validate("required")
    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    @Validate("required")
    public void setPassword(String password) {
        this.password = password;
    }

    String onSuccess() {
        //my business coder
        String ret = "Home";
        return ret;
    }
}


I get the error - no exception in stacktrace : 

Render queue error in BeginRender[Login:login]: Failure reading parameter
'value' of component Login:login: Error invoking constructor
java.lang.String(byte[], int, int, int) (at null:-1) (for service
'ApplicationStateManager'): No service implements the interface [B.

When I delete @ApplicationState annotation, everything works.

I have made some tests on different Tapestry versions and it seems that
@ApplicationState is correctly working until 5.0.10. I get the exception on
5.0.11 and 5.0.12-SNAPSHOT.

Is it a bug or @ApplicationState implementation has changed since 5.0.11 ?
In this case can someone give me the correct configuration ?

Thanks, regards,

Baptiste Meurant
-- 
View this message in context: http://www.nabble.com/ApplicationState-annotation-problem-since-5.0.11-tp16118051p16118051.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: ApplicationState annotation problem since 5.0.11

Posted by Robert Zeigler <ro...@scazdl.org>.
As long as you really know what you're doing, there's no issue in  
using primitives.
At issue is that the ApplicationStateManager only understands class  
types, not names.
So, if you had something like:

@ApplicationState
String userName;

@ApplicationState
String someOtherString;

userName and someOtherString are going to wind up with the same value,  
on any page where they are.
Any string marked with @ApplicationState is the same as any other  
string marked with @ApplicationState.
Hence, it's /normally/ better to @ApplicationState a bean with string  
properties, rather than a string.

Robert

On Mar 18, 2008, at 3/188:06 AM , Baptiste Meurant wrote:

>
> Hi
>
> Thanks to everybody.
>
> I have contributed an ApplicationStateObject for String in AppModule  
> and it
> is working well now.
>
> code below :
>
>    public void contributeApplicationStateManager(
>            MappedConfiguration<Class, ApplicationStateContribution>
> configuration) {
>        ApplicationStateCreator<String> creator = new
> ApplicationStateCreator<String>() {
>            public String create() {
>                return new String();
>            }
>        };
>
>        configuration.add(String.class, new
> ApplicationStateContribution("session", creator));
>    }
>
> I have still few questions :
>
> you should not use String for ApplicationsStateObjects nor other
> primitive types at all -> Why ? I understand that a custom complete  
> bean is
> more usefull in many case but it could be sometime usefull to  
> persist in
> Application scope a Primitive type object. If we have only one  
> information
> to share in application scope in a single bean ... I don't see why it
> could'nt be possible ...
>
> Anyway, thanks for everything.
>
> Baptiste
>
>
> kristian.marinkovic wrote:
>>
>> AFAIK you should not use String for ApplicationsStateObjects nor  
>> other
>> primitive types at all .. only complex types with a no arg  
>> constructor.
>> if you must use a different constructor you have to contribute to the
>> ApplicationStateManager to tell the service how to create the  
>> instances
>> properly
>>
>> g,
>> kris
>>
>>
>>
>>
>> Baptiste Meurant <ba...@gmail.com>
>> 18.03.2008 12:18
>> Bitte antworten an
>> "Tapestry users" <us...@tapestry.apache.org>
>>
>>
>> An
>> users@tapestry.apache.org
>> Kopie
>>
>> Thema
>> Re: ApplicationState annotation problem since 5.0.11
>>
>>
>>
>>
>>
>>
>>
>>
>> Hi
>>
>> Thank you for your quick answer.
>>
>> If I understand well, I have to create a custom
>> ApplicationStateContribution
>> to handle ApplicationState on String class ? Do you have some tips or
>> instructions to do this ?
>>
>> I will try and tell you the result.
>>
>> I am just surprised that this configurations was working well before
>> 5.0.11
>> version ...
>>
>> Thanks,
>>
>> Regards,
>>
>>
>> Alec Leamas-2 wrote:
>>>
>>> Hi!
>>>
>>> What are you really trying to do here? For me, this looks like a  
>>> typo.
>>> Have you contributed an ApplicationStateObject? Then you need to  
>>> refer
>>> to this. I'm pretty sure Tapestry doen't have a String  
>>> ApplicationState
>>> object in place...
>>>
>>> I would expect something like
>>>
>>> @ApplicationState
>>> private MyClass myInstance;
>>>
>>> Where MyClass is contributed to ApplicationStateManager in
>> AppModule.java.
>>>
>>> Hope this helps..
>>>
>>> --alec
>>>
>>> Baptiste Meurant wrote:
>>>> Hello,
>>>>
>>>> I am currently upgrading my Tapestry version from 5.0.6 to 5.0.11  
>>>> and I
>>>> have
>>>> a problem with @ApplicationState annotation.
>>>>
>>>> Here are my files:
>>>>
>>>> Login.tml :
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <html xmlns:t="http://tapestry.apache.org/schema/ 
>>>> tapestry_5_0_0.xsd">
>>>>    <head>
>>>>        <title>Login</title>
>>>>    </head>
>>>>    <body>
>>>>                <div id="login_box">
>>>>                   <t:form>
>>>>                       <t:errors />
>>>>                                 <table>
>>>>                                     <tr>
>>>>                                                   <td><label
>> t:type="Label" for="login" class="login_label"/></td>
>>>>                                                   <td><input
>> t:type="TextField" t:id="login" t:value="login"
>>>> t:label="login "
>>>> class="login_input" /></td>
>>>>                                               </tr>
>>>>                                               <tr>
>>>>                                                   <td><label
>> t:type="Label" for="password"
>>>> class="login_label"/></td>
>>>> <td><input t:type="PasswordField" t:id="password"  
>>>> t:value="password"
>>>> t:label="password "
>>>> class="login_input" /></td>
>>>>                                                  </tr>
>>>>                                                  <tr>
>>>>                                                      <td><input
>> t:id="submitform" t:type="Submit" t:value="submit"
>>>> class="login_submit"/></td>
>>>>                                                  </tr>
>>>>                                              </table>
>>>>                                 </t:form>
>>>>                              </div>
>>>>              </body>
>>>> </html>
>>>>
>>>>
>>>> Login.java :
>>>>
>>>> package tutos.web.pages;
>>>>
>>>> import org.apache.tapestry.annotations.ApplicationState;
>>>> import org.apache.tapestry.beaneditor.Validate;
>>>>
>>>> public class Login {
>>>>
>>>>    @ApplicationState
>>>>    private String login;
>>>>
>>>>    private String password;
>>>>
>>>>    public String getLogin() {
>>>>        return login;
>>>>    }
>>>>
>>>>    @Validate("required")
>>>>    public void setLogin(String login) {
>>>>        this.login = login;
>>>>    }
>>>>
>>>>    public String getPassword() {
>>>>        return password;
>>>>    }
>>>>
>>>>    @Validate("required")
>>>>    public void setPassword(String password) {
>>>>        this.password = password;
>>>>    }
>>>>
>>>>    String onSuccess() {
>>>>        //my business coder
>>>>        String ret = "Home";
>>>>        return ret;
>>>>    }
>>>> }
>>>>
>>>>
>>>> I get the error - no exception in stacktrace :
>>>>
>>>> Render queue error in BeginRender[Login:login]: Failure reading
>> parameter
>>>> 'value' of component Login:login: Error invoking constructor
>>>> java.lang.String(byte[], int, int, int) (at null:-1) (for service
>>>> 'ApplicationStateManager'): No service implements the interface [B.
>>>>
>>>> When I delete @ApplicationState annotation, everything works.
>>>>
>>>> I have made some tests on different Tapestry versions and it  
>>>> seems that
>>>> @ApplicationState is correctly working until 5.0.10. I get the
>> exception
>>>> on
>>>> 5.0.11 and 5.0.12-SNAPSHOT.
>>>>
>>>> Is it a bug or @ApplicationState implementation has changed since
>> 5.0.11
>>>> ?
>>>> In this case can someone give me the correct configuration ?
>>>>
>>>> Thanks, regards,
>>>>
>>>> Baptiste Meurant
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/ApplicationState-annotation-problem-since-5.0.11-tp16118051p16118858.html
>>
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>
>>
>
> -- 
> View this message in context: http://www.nabble.com/ApplicationState-annotation-problem-since-5.0.11-tp16118051p16120801.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: ApplicationState annotation problem since 5.0.11

Posted by Baptiste Meurant <ba...@gmail.com>.
Hi

Thanks to everybody.

I have contributed an ApplicationStateObject for String in AppModule and it
is working well now.

code below : 

    public void contributeApplicationStateManager(
            MappedConfiguration<Class, ApplicationStateContribution>
configuration) {
        ApplicationStateCreator<String> creator = new
ApplicationStateCreator<String>() {
            public String create() {
                return new String();
            }
        };

        configuration.add(String.class, new
ApplicationStateContribution("session", creator));
    }

I have still few questions : 

you should not use String for ApplicationsStateObjects nor other 
primitive types at all -> Why ? I understand that a custom complete bean is
more usefull in many case but it could be sometime usefull to persist in
Application scope a Primitive type object. If we have only one information
to share in application scope in a single bean ... I don't see why it
could'nt be possible ...

Anyway, thanks for everything.

Baptiste


kristian.marinkovic wrote:
> 
> AFAIK you should not use String for ApplicationsStateObjects nor other 
> primitive types at all .. only complex types with a no arg constructor. 
> if you must use a different constructor you have to contribute to the
> ApplicationStateManager to tell the service how to create the instances
> properly
> 
> g,
> kris
> 
> 
> 
> 
> Baptiste Meurant <ba...@gmail.com> 
> 18.03.2008 12:18
> Bitte antworten an
> "Tapestry users" <us...@tapestry.apache.org>
> 
> 
> An
> users@tapestry.apache.org
> Kopie
> 
> Thema
> Re: ApplicationState annotation problem since 5.0.11
> 
> 
> 
> 
> 
> 
> 
> 
> Hi
> 
> Thank you for your quick answer. 
> 
> If I understand well, I have to create a custom 
> ApplicationStateContribution
> to handle ApplicationState on String class ? Do you have some tips or
> instructions to do this ?
> 
> I will try and tell you the result.
> 
> I am just surprised that this configurations was working well before 
> 5.0.11
> version ...
> 
> Thanks,
> 
> Regards, 
> 
> 
> Alec Leamas-2 wrote:
>> 
>> Hi!
>> 
>> What are you really trying to do here? For me, this looks like a typo.
>> Have you contributed an ApplicationStateObject? Then you need to refer 
>> to this. I'm pretty sure Tapestry doen't have a String ApplicationState 
>> object in place...
>> 
>> I would expect something like
>> 
>> @ApplicationState
>> private MyClass myInstance;
>> 
>> Where MyClass is contributed to ApplicationStateManager in 
> AppModule.java.
>> 
>> Hope this helps..
>> 
>> --alec
>> 
>> Baptiste Meurant wrote:
>>> Hello,
>>> 
>>> I am currently upgrading my Tapestry version from 5.0.6 to 5.0.11 and I
>>> have
>>> a problem with @ApplicationState annotation.
>>> 
>>> Here are my files: 
>>> 
>>> Login.tml :
>>> 
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>>>     <head>
>>>         <title>Login</title>
>>>     </head>
>>>     <body>
>>>                 <div id="login_box">
>>>                    <t:form>
>>>                        <t:errors />
>>>                                  <table>
>>>                                      <tr>
>>>                                                    <td><label 
> t:type="Label" for="login" class="login_label"/></td>
>>>                                                    <td><input 
> t:type="TextField" t:id="login" t:value="login"
>>> t:label="login " 
>>>  class="login_input" /></td>
>>>                                                </tr>
>>>                                                <tr>
>>>                                                    <td><label 
> t:type="Label" for="password"
>>> class="login_label"/></td>
>>> <td><input t:type="PasswordField" t:id="password" t:value="password"
>>> t:label="password " 
>>>  class="login_input" /></td>
>>>                                                   </tr>
>>>                                                   <tr>
>>>                                                       <td><input 
> t:id="submitform" t:type="Submit" t:value="submit"
>>> class="login_submit"/></td>
>>>                                                   </tr>
>>>                                               </table>   
>>>                                  </t:form>
>>>                               </div>
>>>               </body>
>>> </html>
>>> 
>>> 
>>> Login.java :
>>> 
>>> package tutos.web.pages;
>>> 
>>> import org.apache.tapestry.annotations.ApplicationState;
>>> import org.apache.tapestry.beaneditor.Validate;
>>> 
>>> public class Login {
>>> 
>>>     @ApplicationState
>>>     private String login;
>>> 
>>>     private String password;
>>> 
>>>     public String getLogin() {
>>>         return login;
>>>     }
>>> 
>>>     @Validate("required")
>>>     public void setLogin(String login) {
>>>         this.login = login;
>>>     }
>>> 
>>>     public String getPassword() {
>>>         return password;
>>>     }
>>> 
>>>     @Validate("required")
>>>     public void setPassword(String password) {
>>>         this.password = password;
>>>     }
>>> 
>>>     String onSuccess() {
>>>         //my business coder
>>>         String ret = "Home";
>>>         return ret;
>>>     }
>>> }
>>> 
>>> 
>>> I get the error - no exception in stacktrace : 
>>> 
>>> Render queue error in BeginRender[Login:login]: Failure reading 
> parameter
>>> 'value' of component Login:login: Error invoking constructor
>>> java.lang.String(byte[], int, int, int) (at null:-1) (for service
>>> 'ApplicationStateManager'): No service implements the interface [B.
>>> 
>>> When I delete @ApplicationState annotation, everything works.
>>> 
>>> I have made some tests on different Tapestry versions and it seems that
>>> @ApplicationState is correctly working until 5.0.10. I get the 
> exception
>>> on
>>> 5.0.11 and 5.0.12-SNAPSHOT.
>>> 
>>> Is it a bug or @ApplicationState implementation has changed since 
> 5.0.11
>>> ?
>>> In this case can someone give me the correct configuration ?
>>> 
>>> Thanks, regards,
>>> 
>>> Baptiste Meurant
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
>> 
> 
> -- 
> View this message in context: 
> http://www.nabble.com/ApplicationState-annotation-problem-since-5.0.11-tp16118051p16118858.html
> 
> Sent from the Tapestry - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/ApplicationState-annotation-problem-since-5.0.11-tp16118051p16120801.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: ApplicationState annotation problem since 5.0.11

Posted by Kristian Marinkovic <kr...@porsche.co.at>.
AFAIK you should not use String for ApplicationsStateObjects nor other 
primitive types at all .. only complex types with a no arg constructor. 
if you must use a different constructor you have to contribute to the
ApplicationStateManager to tell the service how to create the instances
properly

g,
kris




Baptiste Meurant <ba...@gmail.com> 
18.03.2008 12:18
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>


An
users@tapestry.apache.org
Kopie

Thema
Re: ApplicationState annotation problem since 5.0.11








Hi

Thank you for your quick answer. 

If I understand well, I have to create a custom 
ApplicationStateContribution
to handle ApplicationState on String class ? Do you have some tips or
instructions to do this ?

I will try and tell you the result.

I am just surprised that this configurations was working well before 
5.0.11
version ...

Thanks,

Regards, 


Alec Leamas-2 wrote:
> 
> Hi!
> 
> What are you really trying to do here? For me, this looks like a typo.
> Have you contributed an ApplicationStateObject? Then you need to refer 
> to this. I'm pretty sure Tapestry doen't have a String ApplicationState 
> object in place...
> 
> I would expect something like
> 
> @ApplicationState
> private MyClass myInstance;
> 
> Where MyClass is contributed to ApplicationStateManager in 
AppModule.java.
> 
> Hope this helps..
> 
> --alec
> 
> Baptiste Meurant wrote:
>> Hello,
>> 
>> I am currently upgrading my Tapestry version from 5.0.6 to 5.0.11 and I
>> have
>> a problem with @ApplicationState annotation.
>> 
>> Here are my files: 
>> 
>> Login.tml :
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>>     <head>
>>         <title>Login</title>
>>     </head>
>>     <body>
>>                 <div id="login_box">
>>                    <t:form>
>>                        <t:errors />
>>                                  <table>
>>                                      <tr>
>>                                                    <td><label 
t:type="Label" for="login" class="login_label"/></td>
>>                                                    <td><input 
t:type="TextField" t:id="login" t:value="login"
>> t:label="login " 
>>  class="login_input" /></td>
>>                                                </tr>
>>                                                <tr>
>>                                                    <td><label 
t:type="Label" for="password"
>> class="login_label"/></td>
>> <td><input t:type="PasswordField" t:id="password" t:value="password"
>> t:label="password " 
>>  class="login_input" /></td>
>>                                                   </tr>
>>                                                   <tr>
>>                                                       <td><input 
t:id="submitform" t:type="Submit" t:value="submit"
>> class="login_submit"/></td>
>>                                                   </tr>
>>                                               </table>   
>>                                  </t:form>
>>                               </div>
>>               </body>
>> </html>
>> 
>> 
>> Login.java :
>> 
>> package tutos.web.pages;
>> 
>> import org.apache.tapestry.annotations.ApplicationState;
>> import org.apache.tapestry.beaneditor.Validate;
>> 
>> public class Login {
>> 
>>     @ApplicationState
>>     private String login;
>> 
>>     private String password;
>> 
>>     public String getLogin() {
>>         return login;
>>     }
>> 
>>     @Validate("required")
>>     public void setLogin(String login) {
>>         this.login = login;
>>     }
>> 
>>     public String getPassword() {
>>         return password;
>>     }
>> 
>>     @Validate("required")
>>     public void setPassword(String password) {
>>         this.password = password;
>>     }
>> 
>>     String onSuccess() {
>>         //my business coder
>>         String ret = "Home";
>>         return ret;
>>     }
>> }
>> 
>> 
>> I get the error - no exception in stacktrace : 
>> 
>> Render queue error in BeginRender[Login:login]: Failure reading 
parameter
>> 'value' of component Login:login: Error invoking constructor
>> java.lang.String(byte[], int, int, int) (at null:-1) (for service
>> 'ApplicationStateManager'): No service implements the interface [B.
>> 
>> When I delete @ApplicationState annotation, everything works.
>> 
>> I have made some tests on different Tapestry versions and it seems that
>> @ApplicationState is correctly working until 5.0.10. I get the 
exception
>> on
>> 5.0.11 and 5.0.12-SNAPSHOT.
>> 
>> Is it a bug or @ApplicationState implementation has changed since 
5.0.11
>> ?
>> In this case can someone give me the correct configuration ?
>> 
>> Thanks, regards,
>> 
>> Baptiste Meurant
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/ApplicationState-annotation-problem-since-5.0.11-tp16118051p16118858.html

Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org



Re: ApplicationState annotation problem since 5.0.11

Posted by Baptiste Meurant <ba...@gmail.com>.
Hi

Thank you for your quick answer. 

If I understand well, I have to create a custom ApplicationStateContribution
to handle ApplicationState on String class ? Do you have some tips or
instructions to do this ?

I will try and tell you the result.

I am just surprised that this configurations was working well before 5.0.11
version ...

Thanks,

Regards, 


Alec Leamas-2 wrote:
> 
> Hi!
> 
> What are you really trying to do here? For me, this looks like a typo.
> Have you contributed an ApplicationStateObject? Then you need to refer 
> to this. I'm pretty sure Tapestry doen't have a String ApplicationState 
> object in place...
> 
> I would expect something like
> 
> @ApplicationState
> private MyClass myInstance;
> 
> Where MyClass is contributed to ApplicationStateManager in AppModule.java.
> 
> Hope this helps..
> 
> --alec
> 
> Baptiste Meurant wrote:
>> Hello,
>> 
>> I am currently upgrading my Tapestry version from 5.0.6 to 5.0.11 and I
>> have
>> a problem with @ApplicationState annotation.
>> 
>> Here are my files: 
>> 
>> Login.tml :
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>>     <head>
>>         <title>Login</title>
>>     </head>
>>     <body>
>> 	  <div id="login_box">
>> 	     <t:form>
>> 	         <t:errors />
>> 		   <table>
>> 		       <tr>
>> 			     <td><label t:type="Label" for="login" class="login_label"/></td>
>> 			     <td><input t:type="TextField" t:id="login" t:value="login"
>> t:label="login " 
>> 				 					 class="login_input" /></td>
>> 			 </tr>
>> 			 <tr>
>> 			     <td><label t:type="Label" for="password"
>> class="login_label"/></td>
>> 				 <td><input t:type="PasswordField" t:id="password" t:value="password"
>> t:label="password " 
>> 				  					  class="login_input" /></td>
>> 			    </tr>
>> 			    <tr>
>> 			        <td><input t:id="submitform" t:type="Submit" t:value="submit"
>> class="login_submit"/></td>
>> 			    </tr>
>> 			</table>				
>> 		   </t:form>
>> 		</div>
>> 	</body>
>> </html>
>> 
>> 
>> Login.java :
>> 
>> package tutos.web.pages;
>> 
>> import org.apache.tapestry.annotations.ApplicationState;
>> import org.apache.tapestry.beaneditor.Validate;
>> 
>> public class Login {
>>     
>>     @ApplicationState
>>     private String login;
>> 
>>     private String password;
>> 
>>     public String getLogin() {
>>         return login;
>>     }
>> 
>>     @Validate("required")
>>     public void setLogin(String login) {
>>         this.login = login;
>>     }
>> 
>>     public String getPassword() {
>>         return password;
>>     }
>> 
>>     @Validate("required")
>>     public void setPassword(String password) {
>>         this.password = password;
>>     }
>> 
>>     String onSuccess() {
>>         //my business coder
>>         String ret = "Home";
>>         return ret;
>>     }
>> }
>> 
>> 
>> I get the error - no exception in stacktrace : 
>> 
>> Render queue error in BeginRender[Login:login]: Failure reading parameter
>> 'value' of component Login:login: Error invoking constructor
>> java.lang.String(byte[], int, int, int) (at null:-1) (for service
>> 'ApplicationStateManager'): No service implements the interface [B.
>> 
>> When I delete @ApplicationState annotation, everything works.
>> 
>> I have made some tests on different Tapestry versions and it seems that
>> @ApplicationState is correctly working until 5.0.10. I get the exception
>> on
>> 5.0.11 and 5.0.12-SNAPSHOT.
>> 
>> Is it a bug or @ApplicationState implementation has changed since 5.0.11
>> ?
>> In this case can someone give me the correct configuration ?
>> 
>> Thanks, regards,
>> 
>> Baptiste Meurant
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/ApplicationState-annotation-problem-since-5.0.11-tp16118051p16118858.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: ApplicationState annotation problem since 5.0.11

Posted by Gabriel Landais <la...@codelutin.com>.
Alec Leamas a écrit :
> Hi!
>
> What are you really trying to do here? For me, this looks like a typo.
> Have you contributed an ApplicationStateObject? Then you need to refer 
> to this. I'm pretty sure Tapestry doen't have a String 
> ApplicationState object in place...
>
> I would expect something like
>
> @ApplicationState
> private MyClass myInstance;
>
> Where MyClass is contributed to ApplicationStateManager in 
> AppModule.java.
>
> Hope this helps..
>
> --alec
Yep, you have to contribute like that :

    public void 
contributeApplicationStateManager(MappedConfiguration<Class, 
ApplicationStateContribution> configuration)
    {   
      configuration.add(SimExplorerState.class, new 
ApplicationStateContribution("session"));
    }

I was using a String as AS before, and it works until 5.0.10 without 
contributing.

Notice that you can store only one instance per class, so when you'll 
need anything else that your login, you will have to use a bean.

-- 
Gabriel <la...@codelutin.com>
http://www.codelutin.com
tel : 02 40 50 29 28 / fax : 09 59 92 29 28


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: ApplicationState annotation problem since 5.0.11

Posted by Alec Leamas <le...@gmail.com>.
Hi!

What are you really trying to do here? For me, this looks like a typo.
Have you contributed an ApplicationStateObject? Then you need to refer 
to this. I'm pretty sure Tapestry doen't have a String ApplicationState 
object in place...

I would expect something like

@ApplicationState
private MyClass myInstance;

Where MyClass is contributed to ApplicationStateManager in AppModule.java.

Hope this helps..

--alec

Baptiste Meurant wrote:
> Hello,
> 
> I am currently upgrading my Tapestry version from 5.0.6 to 5.0.11 and I have
> a problem with @ApplicationState annotation.
> 
> Here are my files: 
> 
> Login.tml :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>     <head>
>         <title>Login</title>
>     </head>
>     <body>
> 	  <div id="login_box">
> 	     <t:form>
> 	         <t:errors />
> 		   <table>
> 		       <tr>
> 			     <td><label t:type="Label" for="login" class="login_label"/></td>
> 			     <td><input t:type="TextField" t:id="login" t:value="login"
> t:label="login " 
> 				 					 class="login_input" /></td>
> 			 </tr>
> 			 <tr>
> 			     <td><label t:type="Label" for="password" class="login_label"/></td>
> 				 <td><input t:type="PasswordField" t:id="password" t:value="password"
> t:label="password " 
> 				  					  class="login_input" /></td>
> 			    </tr>
> 			    <tr>
> 			        <td><input t:id="submitform" t:type="Submit" t:value="submit"
> class="login_submit"/></td>
> 			    </tr>
> 			</table>				
> 		   </t:form>
> 		</div>
> 	</body>
> </html>
> 
> 
> Login.java :
> 
> package tutos.web.pages;
> 
> import org.apache.tapestry.annotations.ApplicationState;
> import org.apache.tapestry.beaneditor.Validate;
> 
> public class Login {
>     
>     @ApplicationState
>     private String login;
> 
>     private String password;
> 
>     public String getLogin() {
>         return login;
>     }
> 
>     @Validate("required")
>     public void setLogin(String login) {
>         this.login = login;
>     }
> 
>     public String getPassword() {
>         return password;
>     }
> 
>     @Validate("required")
>     public void setPassword(String password) {
>         this.password = password;
>     }
> 
>     String onSuccess() {
>         //my business coder
>         String ret = "Home";
>         return ret;
>     }
> }
> 
> 
> I get the error - no exception in stacktrace : 
> 
> Render queue error in BeginRender[Login:login]: Failure reading parameter
> 'value' of component Login:login: Error invoking constructor
> java.lang.String(byte[], int, int, int) (at null:-1) (for service
> 'ApplicationStateManager'): No service implements the interface [B.
> 
> When I delete @ApplicationState annotation, everything works.
> 
> I have made some tests on different Tapestry versions and it seems that
> @ApplicationState is correctly working until 5.0.10. I get the exception on
> 5.0.11 and 5.0.12-SNAPSHOT.
> 
> Is it a bug or @ApplicationState implementation has changed since 5.0.11 ?
> In this case can someone give me the correct configuration ?
> 
> Thanks, regards,
> 
> Baptiste Meurant


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org