You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by im...@apache.org on 2007/01/02 17:07:14 UTC
svn commit: r491825 - in /myfaces/tomahawk/trunk/sandbox:
core/src/main/java/org/apache/myfaces/custom/conversation/ examples/
examples/src/main/java/org/apache/myfaces/examples/conversation/
examples/src/main/webapp/ examples/src/main/webapp/WEB-INF/ ...
Author: imario
Date: Tue Jan 2 08:07:13 2007
New Revision: 491825
URL: http://svn.apache.org/viewvc?view=rev&rev=491825
Log:
conversation scope samples using spring
Added:
myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java (with props)
Removed:
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/pageConversation.jsp
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/pageConversationEndAction.jsp
Modified:
myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/Conversation.java
myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/SpringConversationScope.java
myfaces/tomahawk/trunk/sandbox/examples/pom.xml
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-config.xml
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-springConfig.xml
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/home.jsp
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardFinish.jsp
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage1.jsp
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage2.jsp
myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage3.jsp
Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/Conversation.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/Conversation.java?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/Conversation.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/Conversation.java Tue Jan 2 08:07:13 2007
@@ -65,6 +65,7 @@
{
throw new IllegalArgumentException("you cant put a property under conversation control. name: " + name);
}
+
if (beans.containsKey(name))
{
// already there
@@ -120,7 +121,7 @@
{
getPersistenceManager().rollback();
}
-
+
getPersistenceManager().purge();
}
}
Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/SpringConversationScope.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/SpringConversationScope.java?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/SpringConversationScope.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/conversation/SpringConversationScope.java Tue Jan 2 08:07:13 2007
@@ -51,6 +51,8 @@
*/
public Object get(String name, ObjectFactory objectFactory)
{
+ name = buildBeanName(name);
+
FacesContext facesContext = FacesContext.getCurrentInstance();
ConversationManager manager = ConversationManager.getInstance(facesContext);
@@ -87,6 +89,26 @@
// get the bean
return conversation.getBean(name);
+ }
+
+ /**
+ * strip off any spring namespace.
+ * TODO: Is this valid?
+ */
+ protected String buildBeanName(String name)
+ {
+ if (name == null)
+ {
+ return null;
+ }
+
+ int pos = name.lastIndexOf('.');
+ if (pos < 0)
+ {
+ return name;
+ }
+
+ return name.substring(pos+1);
}
/**
Modified: myfaces/tomahawk/trunk/sandbox/examples/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/pom.xml?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/pom.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/pom.xml Tue Jan 2 08:07:13 2007
@@ -214,6 +214,12 @@
<version>1.0.4</version>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.1</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
<build>
Added: myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java?view=auto&rev=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java (added)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java Tue Jan 2 08:07:13 2007
@@ -0,0 +1,30 @@
+package org.apache.myfaces.examples.conversation;
+
+import javax.faces.context.FacesContext;
+import javax.faces.application.FacesMessage;
+
+public class SpringWizardController
+{
+ private WizardData wizardData;
+
+ public WizardData getWizardData()
+ {
+ return wizardData;
+ }
+
+ public void setWizardData(WizardData wizardData)
+ {
+ this.wizardData = wizardData;
+ }
+
+ public String ensureConversationAction()
+ {
+ return "springWizardPage1";
+ }
+
+ public String save()
+ {
+ FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("data saved"));
+ return "success";
+ }
+}
Propchange: myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: myfaces/tomahawk/trunk/sandbox/examples/src/main/java/org/apache/myfaces/examples/conversation/SpringWizardController.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-config.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-config.xml?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-config.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-config.xml Tue Jan 2 08:07:13 2007
@@ -569,6 +569,32 @@
<to-view-id>/conversation/wizardFinish.jsp</to-view-id>
<redirect/>
</navigation-case>
+ <navigation-case>
+ <from-action>#{springWizardController.save}</from-action>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/springConversation/wizardPage1.jsp</to-view-id>
+ <redirect/>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>springWizardPage1</from-outcome>
+ <to-view-id>/springConversation/wizardPage1.jsp</to-view-id>
+ <redirect/>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>springWizardPage2</from-outcome>
+ <to-view-id>/springConversation/wizardPage2.jsp</to-view-id>
+ <redirect/>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>springWizardPage3</from-outcome>
+ <to-view-id>/springConversation/wizardPage3.jsp</to-view-id>
+ <redirect/>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>springWizardFinish</from-outcome>
+ <to-view-id>/springConversation/wizardFinish.jsp</to-view-id>
+ <redirect/>
+ </navigation-case>
</navigation-rule>
<!-- navigational rules for the wizard -->
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-springConfig.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-springConfig.xml?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-springConfig.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/examples-springConfig.xml Tue Jan 2 08:07:13 2007
@@ -2,9 +2,11 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<!-- register our custom spring scope -->
<bean class="org.springframework.beans.factory.config.CustomScopeConfigurer">
@@ -19,21 +21,17 @@
<!-- our beans -->
<bean
- name="springConvData"
- class="org.apache.myfaces.examples.conversation.ConvData"
- scope="conversation">
- </bean>
-
- <bean
name="springWizardData"
class="org.apache.myfaces.examples.conversation.WizardData"
scope="conversation">
+ <aop:scoped-proxy />
</bean>
<bean
name="springWizardController"
- class="org.apache.myfaces.examples.conversation.WizardController"
+ class="org.apache.myfaces.examples.conversation.SpringWizardController"
scope="request">
+ <property name="wizardData" ref="springWizardData" />
</bean>
</beans>
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/WEB-INF/web.xml Tue Jan 2 08:07:13 2007
@@ -4,6 +4,9 @@
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
+ <listener>
+ <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
+ </listener>
<description>debug web.xml</description>
<display-name>
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/home.jsp Tue Jan 2 08:07:13 2007
@@ -120,6 +120,7 @@
<h:outputText value="Conversation"/>
<h:panelGrid style="padding-left:25px">
<h:outputLink value="conversation/index.jsf" ><f:verbatim>Conversation Tag examples</f:verbatim></h:outputLink>
+ <h:outputLink value="springConversation/index.jsf" ><f:verbatim>A new Spring "conversation" scope</f:verbatim></h:outputLink>
</h:panelGrid>
<h:outputText value="Redirect Tracker"/>
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/home.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/home.jsp?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/home.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/home.jsp Tue Jan 2 08:07:13 2007
@@ -16,8 +16,6 @@
<h:outputText value="Conversation"/>
<h:panelGrid style="padding-left:25px">
- <h:outputLink value="pageConversation.jsf" ><f:verbatim>Single page conversation</f:verbatim></h:outputLink>
- <h:outputLink value="startConversation.jsf" ><f:verbatim>Start a conversation "on command"</f:verbatim></h:outputLink>
<h:outputLink value="wizardPage1.jsf" ><f:verbatim>Wizard</f:verbatim></h:outputLink>
</h:panelGrid>
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardFinish.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardFinish.jsp?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardFinish.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardFinish.jsp Tue Jan 2 08:07:13 2007
@@ -33,7 +33,7 @@
<body>
<f:view>
-<s:ensureConversation name="wizard" redirectTo="/conversation/wizardPage1.jsp" />
+<s:ensureConversation name="springWizardData" redirectTo="/conversation/wizardPage1.jsp" />
<t:htmlTag value="h1">Registration Wizard</t:htmlTag>
@@ -50,55 +50,55 @@
</f:facet>
<f:facet name="footer">
<h:panelGroup>
- <h:commandButton value="Save" action="#{wizardController.save}">
- <s:endConversation name="wizard" onOutcome="success"/>
+ <h:commandButton value="Save" action="#{springWizardController.save}" >
+ <s:endConversation name="springWizardData" onOutcome="success"/>
</h:commandButton>
- <h:commandButton value="End conversation and jump into the mid of a new one" action="wizardPage2">
- <s:endConversation name="wizard" />
+ <h:commandButton value="End conversation and jump into the mid of a new one" action="springWizardPage2">
+ <s:endConversation name="springWizardData" />
</h:commandButton>
</h:panelGroup>
</f:facet>
<h:outputText value="Edit data on" />
- <h:commandButton value="Page1" action="wizardPage1" />
+ <h:commandButton value="Page1" action="springWizardPage1" />
<h:outputText value="Salutation: " />
- <h:outputText value="#{wizardData.salutation}" />
+ <h:outputText value="#{springWizardData.salutation}" />
<h:outputText value="Title: " />
- <h:outputText value="#{wizardData.title}" />
+ <h:outputText value="#{springWizardData.title}" />
<h:outputText value="Name: " />
- <h:outputText value="#{wizardData.name}" />
+ <h:outputText value="#{springWizardData.name}" />
<h:outputText value="Surename: " />
- <h:outputText value="#{wizardData.surename}" />
+ <h:outputText value="#{springWizardData.surename}" />
<h:outputText value="Edit data on" />
- <h:commandButton value="Page2" action="wizardPage2" />
+ <h:commandButton value="Page2" action="springWizardPage2" />
<h:outputText value="Street: " />
- <h:outputText value="#{wizardData.street}" />
+ <h:outputText value="#{springWizardData.street}" />
<h:outputText value="City: " />
- <h:outputText value="#{wizardData.city}" />
+ <h:outputText value="#{springWizardData.city}" />
<h:outputText value="State: " />
- <h:outputText value="#{wizardData.state}" />
+ <h:outputText value="#{springWizardData.state}" />
<h:outputText value="Province: " />
- <h:outputText value="#{wizardData.province}" />
+ <h:outputText value="#{springWizardData.province}" />
<h:outputText value="Postal: " />
- <h:outputText value="#{wizardData.postal}" />
+ <h:outputText value="#{springWizardData.postal}" />
<h:outputText value="Edit data on" />
- <h:commandButton value="Page3" action="wizardPage3" />
+ <h:commandButton value="Page3" action="springWizardPage3" />
<h:outputText value="Info: " />
- <t:outputText value="#{wizardData.info}" escape="false" />
+ <t:outputText value="#{springWizardData.info}" escape="false" />
</h:panelGrid>
<h:messages showDetail="true"/>
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage1.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage1.jsp?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage1.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage1.jsp Tue Jan 2 08:07:13 2007
@@ -48,7 +48,7 @@
</f:facet>
<f:facet name="footer">
<h:panelGroup>
- <h:commandButton value="Next >>" action="wizardPage2" />
+ <h:commandButton value="Next >>" action="springWizardPage2" />
</h:panelGroup>
</f:facet>
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage2.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage2.jsp?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage2.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage2.jsp Tue Jan 2 08:07:13 2007
@@ -33,7 +33,7 @@
<body>
<f:view>
-<s:ensureConversation name="springConvData" action="wizardPage1" />
+<s:ensureConversation name="springWizardData" action="springWizardPage1" />
<t:htmlTag value="h1">Registration Wizard</t:htmlTag>
@@ -50,25 +50,25 @@
</f:facet>
<f:facet name="footer">
<h:panelGroup>
- <h:commandButton value="<< Prev" action="wizardPage1" immediate="true"/>
- <h:commandButton value="Next >>" action="wizardPage3" />
+ <h:commandButton value="<< Prev" action="springWizardPage1" immediate="true"/>
+ <h:commandButton value="Next >>" action="springWizardPage3" />
</h:panelGroup>
</f:facet>
<h:outputText value="Street: " />
- <h:inputText id="street" value="#{wizardData.street}" required="true"/>
+ <h:inputText id="street" value="#{springWizardData.street}" required="true"/>
<h:outputText value="City: " />
- <h:inputText id="city" value="#{wizardData.city}" required="true"/>
+ <h:inputText id="city" value="#{springWizardData.city}" required="true"/>
<h:outputText value="State: " />
- <h:inputText id="state" value="#{wizardData.state}" required="true"/>
+ <h:inputText id="state" value="#{springWizardData.state}" required="true"/>
<h:outputText value="Province: " />
- <h:inputText id="province" value="#{wizardData.province}" />
+ <h:inputText id="province" value="#{springWizardData.province}" />
<h:outputText value="Postal: " />
- <h:inputText id="postal" value="#{wizardData.postal}" required="true"/>
+ <h:inputText id="postal" value="#{springWizardData.postal}" required="true"/>
</h:panelGrid>
<h:messages showDetail="true"/>
</h:form>
Modified: myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage3.jsp
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage3.jsp?view=diff&rev=491825&r1=491824&r2=491825
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage3.jsp (original)
+++ myfaces/tomahawk/trunk/sandbox/examples/src/main/webapp/springConversation/wizardPage3.jsp Tue Jan 2 08:07:13 2007
@@ -33,7 +33,7 @@
<body>
<f:view>
-<s:ensureConversation name="springConvData" action="#{wizardController.ensureConversationAction}" />
+<s:ensureConversation name="springWizardData" action="#{springWizardController.ensureConversationAction}" />
<t:htmlTag value="h1">Registration Wizard</t:htmlTag>
@@ -50,15 +50,15 @@
</f:facet>
<f:facet name="footer">
<h:panelGroup>
- <h:commandButton value="<< Prev" action="wizardPage2" immediate="true"/>
- <h:commandButton value="Finish" action="wizardFinish" />
+ <h:commandButton value="<< Prev" action="springWizardPage2" immediate="true"/>
+ <h:commandButton value="Finish" action="springWizardFinish" />
</h:panelGroup>
</f:facet>
<h:outputText value="Info: " />
<t:inputHtml
id="info"
- value="#{wizardData.info}"
+ value="#{springWizardData.info}"
allowEditSource="false"
allowExternalLinks="false"/>