You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by cr...@apache.org on 2005/12/22 00:06:15 UTC
svn commit: r358414 - in /beehive/trunk/netui:
src/compiler-core/org/apache/beehive/netui/compiler/genmodel/
src/compiler-core/org/apache/beehive/netui/compiler/model/
src/pageflow/org/apache/beehive/netui/pageflow/
src/pageflow/org/apache/beehive/netu...
Author: crogers
Date: Wed Dec 21 15:05:50 2005
New Revision: 358414
URL: http://svn.apache.org/viewcvs?rev=358414&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-1030 - Class-level @Jpf.Forward annotations do not work with inheritLocalPaths=true.
tests: drt, bvt in netui (WinXP)
Added:
beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1030.xml (with props)
beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/
beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/
beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/Controller.java (with props)
beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/index.jsp (with props)
beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/derived/
beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/derived/Controller.java (with props)
Modified:
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ForwardModel.java
beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java
beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowActionForward.java
beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java
beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java?rev=358414&r1=358413&r2=358414&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenForwardModel.java Wed Dec 21 15:05:50 2005
@@ -128,7 +128,19 @@
contextRelative = false;
// If it's an absolute URL, then the path shouldn't have a slash inserted in front of it.
- if ( ! CompilerUtils.isAbsoluteURL( path ) ) path = '/' + path;
+ if ( ! CompilerUtils.isAbsoluteURL( path ) )
+ {
+ path = '/' + path;
+
+ // See if we should be using the path for the struts module that this forward is relative to
+ TypeDeclaration typeDeclaration = annotation.getContainingType();
+
+ if ( ! typeDeclaration.equals( jclass ) && ! path.endsWith( ACTION_EXTENSION_DOT )
+ && parent.getFlowControllerInfo().getMergedControllerAnnotation().isInheritLocalPaths() )
+ {
+ setRelativeTo( CompilerUtils.inferModulePathFromType( typeDeclaration ) );
+ }
+ }
}
setPath( path );
@@ -140,7 +152,7 @@
if ( commentSuffix != null )
{
setComment( "forward \"" + getName() + '"' + commentSuffix ); // @TODO I18N the comment
- }
+ }
}
static void addForwards( AnnotationInstance annotation, ForwardContainer container, ClassDeclaration jclass,
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ForwardModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ForwardModel.java?rev=358414&r1=358413&r2=358414&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ForwardModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ForwardModel.java Wed Dec 21 15:05:50 2005
@@ -45,6 +45,7 @@
private boolean _hasExplicitRedirectValue = false;
private List _actionOutputs = null;
private boolean _restoreQueryString = false;
+ private String _relativeTo;
protected ForwardModel( StrutsApp parent )
@@ -109,6 +110,7 @@
if ( _isNestedReturn ) addSetProperty( xw, element, "nestedReturn", "true" );
if ( _outputFormBeanType != null ) addSetProperty( xw, element, "returnFormType", _outputFormBeanType );
if ( _outputFormBeanMember != null ) addSetProperty( xw, element, "returnFormMember", _outputFormBeanMember );
+ if ( _relativeTo != null ) addSetProperty( xw, element, "relativeTo", _relativeTo );
}
public boolean isReturnToPage()
@@ -273,5 +275,14 @@
protected void addSetProperty( XmlModelWriter xw, Element element, String propertyName, String propertyValue )
{
setCustomProperty(xw, element, propertyName, propertyValue, JPF_ACTION_FWD_CLASSNAME);
+ }
+
+ /**
+ * Set the path for the struts module that this forward is relative to.
+ * @param relativeTo The struts module path that this forward is relative to.
+ */
+ public void setRelativeTo( String relativeTo )
+ {
+ _relativeTo = relativeTo;
}
}
Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java?rev=358414&r1=358413&r2=358414&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java Wed Dec 21 15:05:50 2005
@@ -111,6 +111,7 @@
private boolean _restoreQueryString = false;
private boolean _externalRedirect = false;
private boolean _outsidePageFlowDirectory = false;
+ private String _relativeTo;
/**
* An alternate ModuleConfig from which to resolve forwards if they are not resolved
@@ -497,7 +498,8 @@
_redirectSpecifiedOnAnnotation = fc.hasExplicitRedirectValue();
_restoreQueryString = fc.isRestoreQueryString();
_externalRedirect = fc.isExternalRedirect();
-
+ _relativeTo = fc.getRelativeTo();
+
Class returnFormClass = null;
if ( _outputFormBeanType != null )
@@ -1077,7 +1079,13 @@
*/
public void initializeRelativePath(ServletRequest request, String relativeTo)
{
- assert relativeTo != null;
+ if ( relativeTo == null )
+ {
+ relativeTo = _relativeTo;
+ }
+
+ if ( relativeTo == null ) return;
+
assert ! relativeTo.endsWith("/") : relativeTo;
String path = getPath();
Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowActionForward.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowActionForward.java?rev=358414&r1=358413&r2=358414&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowActionForward.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowActionForward.java Wed Dec 21 15:05:50 2005
@@ -37,6 +37,7 @@
private ArrayList _actionOutputs;
private boolean _restoreQueryString;
private boolean _externalRedirect = false;
+ private String _relativeTo;
public boolean isNestedReturn()
@@ -117,6 +118,16 @@
public void setExternalRedirect(boolean externalRedirect)
{
_externalRedirect = externalRedirect;
+ }
+
+ public String getRelativeTo()
+ {
+ return _relativeTo;
+ }
+
+ public void setRelativeTo( String relativeTo )
+ {
+ _relativeTo = relativeTo;
}
public static class ActionOutput implements Serializable
Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java?rev=358414&r1=358413&r2=358414&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java Wed Dec 21 15:05:50 2005
@@ -187,6 +187,10 @@
fwd = pageFlowFwd;
}
}
+ else if ( fwd instanceof Forward )
+ {
+ ( ( Forward ) fwd ).initializeRelativePath(request, null);
+ }
if ( _log.isDebugEnabled() )
{
Modified: beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?rev=358414&r1=358413&r2=358414&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original)
+++ beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Wed Dec 21 15:05:50 2005
@@ -4973,6 +4973,16 @@
</categories>
</test>
<test>
+ <name>J1030</name>
+ <description>Test Class-level @Jpf.Forward annotations with inheritLocalPaths=true in the derived class.</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>bvt.struts11</category>
+ <category>jiraBugs</category>
+ </categories>
+ </test>
+ <test>
<name>JpfScopedFormsTest49</name>
<description>JpfScopedFormsTest49</description>
<webapp>coreWeb</webapp>
Added: beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1030.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1030.xml?rev=358414&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1030.xml (added)
+++ beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1030.xml Wed Dec 21 15:05:50 2005
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<recorderSession xmlns="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+<sessionName>J1030</sessionName>
+<tester>crogers</tester>
+<startDate>21 Dec 2005, 02:46:17.923 PM MST</startDate>
+<description>Test Class-level @Jpf.Forward annotations with inheritLocalPaths=true in the derived class.</description>
+<tests>
+<test>
+<testNumber>1</testNumber>
+<request>
+<protocol>HTTP</protocol>
+<protocolVersion>1.1</protocolVersion>
+<host>localhost</host>
+<port>8080</port>
+<uri>/coreWeb/bugs/j1030/derived/Controller.jpf</uri>
+<method>GET</method>
+<parameters>
+</parameters>
+<cookies>
+<cookie>
+<name>JSESSIONID</name>
+<value>16885510347D9A1C7CA964A3040D40DC</value>
+</cookie>
+</cookies>
+<headers>
+<header>
+<name>accept</name>
+<value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</value>
+</header>
+<header>
+<name>accept-charset</name>
+<value>UTF-8,*</value>
+</header>
+<header>
+<name>accept-encoding</name>
+<value>gzip,deflate</value>
+</header>
+<header>
+<name>accept-language</name>
+<value>en-us,en;q=0.5</value>
+</header>
+<header>
+<name>connection</name>
+<value>keep-alive</value>
+</header>
+<header>
+<name>cookie</name>
+<value>JSESSIONID=16885510347D9A1C7CA964A3040D40DC</value>
+</header>
+<header>
+<name>host</name>
+<value>localhost:8080</value>
+</header>
+<header>
+<name>keep-alive</name>
+<value>300</value>
+</header>
+<header>
+<name>user-agent</name>
+<value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5</value>
+</header>
+</headers>
+</request>
+<response>
+<statusCode>200</statusCode>
+<reason></reason>
+<responseBody>
+<![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>inheritLocalPaths=true</title>
+ <base href="http://localhost:8080/coreWeb/bugs/j1030/base/index.jsp">
+ </head>
+ <body>
+ <h3>base!</h3>
+ <p>Derived Controller has annotation inheritLocalPaths=true</p>
+
+ <a href="/coreWeb/bugs/j1030/derived/begin.do">begin</a>
+ </body>
+
+</html>]]>
+</responseBody>
+</response>
+</test>
+</tests>
+<endDate>21 Dec 2005, 02:46:34.156 PM MST</endDate>
+<testCount>1</testCount>
+</recorderSession>
Propchange: beehive/trunk/netui/test/webapps/drt/testRecorder/tests/J1030.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/Controller.java?rev=358414&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/Controller.java Wed Dec 21 15:05:50 2005
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package bugs.j1030.base;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+ forwards={
+ @Jpf.Forward(name="index", path="index.jsp")
+ }
+)
+public abstract class Controller extends PageFlowController
+{
+}
Propchange: beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/Controller.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/index.jsp?rev=358414&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/index.jsp Wed Dec 21 15:05:50 2005
@@ -0,0 +1,18 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+
+<netui:html>
+ <head>
+ <title>inheritLocalPaths=true</title>
+ <netui:base/>
+ </head>
+ <netui:body>
+ <h3>base!</h3>
+ <p>Derived Controller has annotation inheritLocalPaths=true</p>
+
+ <netui:anchor action="begin">begin</netui:anchor>
+ </netui:body>
+</netui:html>
+
+
+
Propchange: beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/base/index.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/derived/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/derived/Controller.java?rev=358414&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/derived/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/derived/Controller.java Wed Dec 21 15:05:50 2005
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package bugs.j1030.derived;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+ inheritLocalPaths=true
+)
+public class Controller extends bugs.j1030.base.Controller
+{
+ @Jpf.Action()
+ public Forward begin()
+ {
+ return new Forward("index");
+ }
+}
Propchange: beehive/trunk/netui/test/webapps/drt/web/bugs/j1030/derived/Controller.java
------------------------------------------------------------------------------
svn:eol-style = native