Opps I did'nt read Howars blog, I guess he did update the spring-tapestry bridge to correct this; read the blog http://howardlewisship.com/blog/
But this issue still remains, if you inject a HttpRequest you would still have the same problem. --- [EMAIL PROTECTED] wrote: > I am not too sure on how to integerating hibernate and hivemind (or if there > is a need to), maybe someone else can comment on this. > > What I did is create my own InjectObjectWorker class with the fix, and > packaged > it with my source code (it's a hack, I'm hoping future releases would solve > it). The classloader will pick up the one with the source code, not the one > in > the jar file (in effect it shadows the original). > > > --- Kevin Fightmaster <[EMAIL PROTECTED]> wrote: > > > Probably lack of knowledge on how I would go about doing that ;-). > > > > On a more 'meta' note: I like using hibernate and haven't done enough > > research on hivemind to know how easy it is to integrate the two. So I need > > Spring to act as my IoC and integration point with hibernate. I've tried > > hard to maintain tier code that wasnt tightly integrated with other tiers. > > The code in this page class doesn't require any context but hivemind. I'm > > always open to more elegant solutions I just dont have enough > > tapestry/hivemind knowledge yet to come up with it. If I could write a > > wrapper to the InjectObjectWorker object and have that setup in a config > > that may be a more elegant solution. > > > > Thanks for the dialog, > > Kevin > > > > > > On 3/28/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> > > wrote: > > > > > > Well if you are going that route why not just inject the spring context > > > and query it for your object directly? > > > > > > --- Kevin Fightmaster <[EMAIL PROTECTED]> wrote: > > > > > > > I'm glad other folks are having the same issues. And thanks for the > > > > feedback. > > > > I'm hesitant to modify Tapestry classes. Then I might have to worry > > > about > > > > unexpected impacts of changing the code and maintainability with > > > updates. > > > > The work around im using.. but don't like all that much is to use the > > > > @InjectObject method as just a template to get a handle to the right > > > class. > > > > Then creating a newInstance to work with on the page. > > > > > > > > @InjectObject("spring:Person") > > > > public abstract Person getPersonTemplate(); > > > > public abstract Person getPerson(); > > > > public abstract void setPerson(Person person); > > > > > > > > public void pageBeginRender(PageEvent arg0) { > > > > if (getPerson() == null) { > > > > try { > > > > > setPerson(getPersonTemplate().getClass().newInstance()); > > > > } catch (InstantiationException e) { > > > > ... > > > > } catch (IllegalAccessException e) { > > > > ... } > > > > } > > > > } > > > > .... > > > > public void detach() { > > > > if (log.isDebugEnabled()) > > > > log.debug("Page Detaching"); > > > > setPerson(null); > > > > super.detach(); > > > > } > > > > I wouldnt call it the most elegant code and I hate having to try/catch > > > now. > > > > Maybe a better alternative will come down the road. > > > > > > > > > > > > > > > > On 3/28/06, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> > > > > wrote: > > > > > > > > > > This is a broder issue than spring, this has to do with the way > > > > > InjectObjectWorker works. If there is any doubt just log the enhanced > > > > > class's source code and examine how the injected object is passed to > > > the > > > > > object (or just examine the injectObject method). > > > > > > > > > > The same problem occurs with any injected object. > > > > > > > > > > --- Jesse Kuhnert < [EMAIL PROTECTED]> wrote: > > > > > > > > > > > I would reccomend using Howard's spring stuff > > > > > > http://howardlewisship.com/tapestry-javaforge/tapestry-spring/ . > > > > > > > > > > > > On 3/28/06, [EMAIL PROTECTED] < > > > [EMAIL PROTECTED] > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > Kevin, > > > > > > > > > > > > > > I think this is a bug, I had the same problem. > > > > > > > > > > > > > > What is happening is that when the page is being enhanced > > > (subclass > > > > > > > created) > > > > > > > the reference to the injected object (a spring object in your > > > case) is > > > > > > > > > > > > passed > > > > > > > through the constructor. Now since the page is pooled, the next > > > time a > > > > > > > request > > > > > > > is made the requested is serviced with this cached page along > with > > > the > > > > > > > > > > > > original > > > > > > > (stale) injected object. > > > > > > > > > > > > > > I had to modify InjectObjectWorker class so that the reference is > > > not > > > > > > > passed > > > > > > > through the constructor but rather as a getter object that looks > > > up > > > > > > > spring's > > > > > > > application context every time. Take a look at this class's > inject > > > > > object > > > > > > > method. > > > > > > > > > > > > > > Regards, > > > > > > > Amir > > > > > > > > > > > > > > --- Kevin Fightmaster < [EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > Problem: > > > > > > > > When I submit a form which persists a new object to the > > > database > > > > > and > > > > > > > I > > > > > > > > return back to the form to create a new object but the old > > > object > > > > > values > > > > > > > are > > > > > > > > still there. I'm using @InjectObject in my code and I'm not > sure > > > how > > > > > to > > > > > > > tell > > > > > > > > the class to reset the value. > > > > > > > > > > > > > > > > Artifacts: > > > > > > > > [PAGE CLASS] > > > > > > > > public abstract class AddPerson extends > > > PersonPersistenceAbstract { > > > > > > > > ... > > > > > > > > @InjectObject("spring:Person") > > > > > > > > public abstract Person getPerson(); > > > > > > > > ... > > > > > > > > public void detach() { > > > > > > > > if (log.isDebugEnabled ()) > > > > > > > > log.debug("Page Detaching"); > > > > > > > > super.detach(); > > > > > > > > } > > > > > > > > } > > > > > > > > > > > > > > > > [PAGE SPECIFICATION] > > > > > > > > <!DOCTYPE page-specification PUBLIC > > > > > > > > "-//Apache Software Foundation//Tapestry Specification 4.0 > > > //EN" > > > > > > > > " http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> > > > > > > > > <page-specification class=" > > > > > > > > org.fightmaster.person.presentation.page.AddPerson"> > > > > > > > > <inject property="listPerson" type="page" > > > object="ListPerson"/> > > > > > > > > <component id="personForm" type="Form"> > > > > > > > > <binding name="listener" value="listener:onSubmit"/> > > > > > > > > </component> > > > > > > > > <component id="firstname" type="TextField"> > > > > > > > > <binding name="value" value="ognl:person.firstname"/> > > > > > > > > </component> > > > > > > > > <component id="middlename" type="TextField"> > > > > > > > > <binding name="value" value="ognl:person.middlename"/> > > > > > > > > </component> > > > > > > > > <component id="lastname" type="TextField"> > > > > > > > > <binding name="value" value="ognl:person.lastname"/> > > > > > > > > </component> > > > > > > > > </page-specification> > > > > > > > > > > > > > > > > [SPRING BEAN XML] > > > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > > > > > <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" > > > > > > > > " http://www.springframework.org/dtd/spring-beans.dtd"> > > > > > > > > <beans> > > > > > > > > <bean id="Person.Hibernate.Annotation.SessionFactory" class=" > > > > > > > > > > > > > > > > > > > > > > > > org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean > > > > > > > "> > > > > > > > > <property name="configurationClass" value=" > > > > > > > > org.hibernate.cfg.AnnotationConfiguration "/> > > > > > > > > <property name="configLocation" value="classpath: > > > > > hibernate.cfg.xml > > > > > > > "/> > > > > > > > > </bean> > > > > > > > > ... > > > > > > > > <bean id="Person" class=" > > > > > > > > org.fightmaster.person.business.hibernate.PersonImpl " > > > > > singleton="false"> > > > > > > > > ... > > > > > > > > </bean> > > > > > > > > ... > > > > > > > > </beans> > > > > > > > > > > > > > > > > Specs: > > > > > > > > Tapestry 4 > > > > > > > > Hibernate 3 > > > > > > > > Spring 1.1 > > > > > > > > Java 1.5 > > > > > > > > Tomcat 5.5 > > > > > > > > > > > > > > > > Summary: > > > > > > > > The setup works as far as persistence goes. My objects are > > > persisted > > > > > to > > > > > > > the > > > > > > > > database. My issue has to do with session and why I can't get > my > > > > > Person > > > > > > > > object to reset for the next request. Thanks for any guidance. > > > > > > > > > > > > > > > > > > > > > > > > Kevin > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > To unsubscribe, e-mail: > > > [EMAIL PROTECTED] > > > > > > > For additional commands, e-mail: > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Jesse Kuhnert > > > > > > Tacos/Tapestry, team member/developer > > > > > > > > > > > > Open source based consulting work centered around > > > > > > dojo/tapestry/tacos/hivemind. http://opennotion.com > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]