Author: rich Date: Wed Aug 25 17:24:10 2004 New Revision: 37050 Added: incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/AbsolutePathType.java incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ExternalPathOrActionType.java incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/ExternalRedirectController.jpf incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/externalRedirect.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/fullyQualifiedRedirect.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/index.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/relativeRedirect.jsp Log: Missed these files in revision 37049. Ran patch, forgot to svn add.
BB: self (WinXP) Added: incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/AbsolutePathType.java ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/AbsolutePathType.java Wed Aug 25 17:24:10 2004 @@ -0,0 +1,46 @@ +/** + * B E A S Y S T E M S + * Copyright 2002-2004 BEA Systems, Inc. + * + * 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 org.apache.beehive.netui.compiler.grammar; + +import org.apache.beehive.netui.compiler.AnnotationMemberType; +import org.apache.beehive.netui.compiler.AnnotationGrammar; +import org.apache.beehive.netui.compiler.CompilerUtils; +import com.sun.mirror.declaration.AnnotationTypeElementDeclaration; +import com.sun.mirror.declaration.AnnotationValue; +import com.sun.mirror.declaration.AnnotationMirror; +import com.sun.mirror.declaration.MemberDeclaration; + +public class AbsolutePathType extends AnnotationMemberType { + + public AbsolutePathType( String requiredRuntimeVersion, AnnotationGrammar parentGrammar ) + { + super( requiredRuntimeVersion, parentGrammar); + } + + protected Object onCheck(AnnotationTypeElementDeclaration valueDecl, AnnotationValue member, AnnotationMirror parentAnnotation, MemberDeclaration classMember) + { + String path = CompilerUtils.getString(parentAnnotation, PATH_ATTR, false); + if ( ! path.startsWith("/") ) + { + addError(member, "error.absolute-path-required-for-external-redirect"); + } + + return null; + } +} Added: incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ExternalPathOrActionType.java ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ExternalPathOrActionType.java Wed Aug 25 17:24:10 2004 @@ -0,0 +1,47 @@ +/* + * B E A S Y S T E M S + * Copyright 2002-2004 BEA Systems, Inc. + * + * 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 org.apache.beehive.netui.compiler.grammar; + +import org.apache.beehive.netui.compiler.AnnotationGrammar; +import org.apache.beehive.netui.compiler.FlowControllerInfo; +import org.apache.beehive.netui.compiler.CompilerUtils; +import com.sun.mirror.declaration.AnnotationTypeElementDeclaration; +import com.sun.mirror.declaration.AnnotationValue; +import com.sun.mirror.declaration.AnnotationMirror; +import com.sun.mirror.declaration.MemberDeclaration; + +public class ExternalPathOrActionType extends WebappPathOrActionType +{ + public ExternalPathOrActionType( boolean pathMustBeRelative, String requiredRuntimeVersion, + AnnotationGrammar parentGrammar, FlowControllerInfo fcInfo ) + { + super( pathMustBeRelative, requiredRuntimeVersion, parentGrammar, fcInfo ); + } + + protected Object onCheck( AnnotationTypeElementDeclaration valueDecl, AnnotationValue value, + AnnotationMirror parentAnnotation, MemberDeclaration classMember ) + { + // if we have an external redirect just bail + if (CompilerUtils.getBoolean(parentAnnotation, EXTERNAL_REDIRECT_ATTR, false)) + { + return null; + } + return super.onCheck( valueDecl, value, parentAnnotation, classMember ); + } +} Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/ExternalRedirectController.jpf ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/ExternalRedirectController.jpf Wed Aug 25 17:24:10 2004 @@ -0,0 +1,94 @@ +package pageFlowCore.externalRedirect; + +import org.apache.beehive.netui.pageflow.PageFlowController; +import org.apache.beehive.netui.pageflow.Forward; +import org.apache.beehive.netui.pageflow.annotations.Jpf; + [EMAIL PROTECTED]( + simpleActions = { + @Jpf.SimpleAction(name = "simpleRelative", path = "relativeRedirect.jsp", redirect = true), + @Jpf.SimpleAction(name = "simpleFullyQualified", path = "/pageFlowCore/externalRedirect/fullyQualifiedRedirect.jsp", redirect = true), + @Jpf.SimpleAction(name = "simpleExternal", path = "/coreWeb/pageFlowCore/externalRedirect/externalRedirect.jsp", externalRedirect = true) + }) +public class ExternalRedirectController extends PageFlowController +{ + @Jpf.Action( + forwards={ + @Jpf.Forward(name="index", path="index.jsp") + } + ) + protected Forward begin() + { + return new Forward("index"); + } + + + + + @Jpf.Action( + forwards = { + @Jpf.Forward(name = "success", path = "relativeRedirect.jsp", redirect = true) + } + ) + protected Forward relativeRedirect() + { + Forward forward = new Forward("success"); + + return forward; + } + + + @Jpf.Action( + forwards = { + @Jpf.Forward(name = "success", path = "/pageFlowCore/externalRedirect/fullyQualifiedRedirect.jsp", redirect = true) + } + ) + protected Forward fullyQualifiedRedirect() + { + Forward forward = new Forward("success"); + + return forward; + } + + + @Jpf.Action( + forwards = { + @Jpf.Forward(name = "success", path = "/coreWeb/pageFlowCore/externalRedirect/externalRedirect.jsp", externalRedirect = true) + } + ) + protected Forward externalRedirect() + { + Forward forward = new Forward("success"); + + return forward; + } +} + [EMAIL PROTECTED](value = { + "<!-- This data is auto-generated. Hand-editing this section is not recommended. -->", + "<view-properties>", + "<pageflow-object id='action:begin.do'><property value='80' name='x'/><property value='40' name='y'/></pageflow-object>", + "<pageflow-object id='action:relativeRedirect.do'><property value='360' name='x'/><property value='100' name='y'/></pageflow-object>", + "<pageflow-object id='action:fullyQualifiedRedirect.do'><property value='360' name='x'/><property value='180' name='y'/></pageflow-object>", + "<pageflow-object id='action:externalRedirect.do'><property value='360' name='x'/><property value='320' name='y'/></pageflow-object>", + "<pageflow-object id='page:index.jsp'><property value='80' name='x'/><property value='200' name='y'/></pageflow-object>", + "<pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'><property value='80,80,80,80' name='elbowsX'/><property value='84,120,120,156' name='elbowsY'/><property value='South_1' name='fromPort'/><property value='North_1' name='toPort'/><property value='index' name='label'/></pageflow-object>", + "<pageflow-object id='page:relativeRedirect.jsp'><property value='540' name='x'/><property value='100' name='y'/></pageflow-object>", + "<pageflow-object id='forward:[EMAIL PROTECTED]:relativeRedirect.do@'><property value='396,450,450,504' name='elbowsX'/><property value='92,92,92,92' name='elbowsY'/><property value='East_1' name='fromPort'/><property value='West_1' name='toPort'/><property value='success' name='label'/></pageflow-object>", + "<pageflow-object id='page:/tests/externalRedirect/fullyQualifiedRedirect.jsp'><property value='540' name='x'/><property value='240' name='y'/></pageflow-object>", + "<pageflow-object id='forward:path#success#/tests/externalRedirect/[EMAIL PROTECTED]:fullyQualifiedRedirect.do@'><property value='396,450,450,504' name='elbowsX'/><property value='172,172,221,221' name='elbowsY'/><property value='East_1' name='fromPort'/><property value='West_0' name='toPort'/><property value='success' name='label'/></pageflow-object>", + "<pageflow-object id='page:/extRedirectWeb/tests/externalRedirect/externalRedirect.jsp'><property value='360' name='x'/><property value='440' name='y'/></pageflow-object>", + "<pageflow-object id='forward:path#success#/extRedirectWeb/tests/externalRedirect/[EMAIL PROTECTED]:externalRedirect.do@'><property value='360,360,360,360' name='elbowsX'/><property value='364,380,380,396' name='elbowsY'/><property value='South_1' name='fromPort'/><property value='North_1' name='toPort'/><property value='success' name='label'/></pageflow-object>", + "<pageflow-object id='page:externalRedirect.jsp'><property value='540' name='x'/><property value='300' name='y'/></pageflow-object>", + "<pageflow-object id='page:fullyQualifiedRedirect.jsp'><property value='540' name='x'/><property value='180' name='y'/></pageflow-object>", + "<pageflow-object id='action-call:@page:/tests/externalRedirect/[EMAIL PROTECTED]@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='232,232,21,21' name='elbowsY'/><property value='West_1' name='fromPort'/><property value='East_0' name='toPort'/></pageflow-object>", + "<pageflow-object id='action-call:@page:[EMAIL PROTECTED]@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='161,161,43,43' name='elbowsY'/><property value='West_0' name='fromPort'/><property value='East_2' name='toPort'/></pageflow-object>", + "<pageflow-object id='action-call:@page:[EMAIL PROTECTED]@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='281,281,43,43' name='elbowsY'/><property value='West_0' name='fromPort'/><property value='East_2' name='toPort'/></pageflow-object>", + "<pageflow-object id='action-call:@page:[EMAIL PROTECTED]@action:externalRedirect.do@'><property value='116,220,220,324' name='elbowsX'/><property value='203,203,312,312' name='elbowsY'/><property value='East_2' name='fromPort'/><property value='West_1' name='toPort'/></pageflow-object>", + "<pageflow-object id='action-call:@page:[EMAIL PROTECTED]@action:relativeRedirect.do@'><property value='116,220,220,324' name='elbowsX'/><property value='192,192,92,92' name='elbowsY'/><property value='East_1' name='fromPort'/><property value='West_1' name='toPort'/></pageflow-object>", + "<pageflow-object id='action-call:@page:[EMAIL PROTECTED]@action:begin.do@'><property value='504,310,310,116' name='elbowsX'/><property value='81,81,21,21' name='elbowsY'/><property value='West_0' name='fromPort'/><property value='East_0' name='toPort'/></pageflow-object>", + "<pageflow-object id='action-call:@page:[EMAIL PROTECTED]@action:fullyQualifiedRedirect.do@'><property value='116,220,220,324' name='elbowsX'/><property value='203,203,172,172' name='elbowsY'/><property value='East_2' name='fromPort'/><property value='West_1' name='toPort'/></pageflow-object>", + "</view-properties>" +}) +interface VIEW_PROPERTIES { } + Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/externalRedirect.jsp ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/externalRedirect.jsp Wed Aug 25 17:24:10 2004 @@ -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"%> +<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%> +<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%> + + +<netui:html> + <head> + <netui:base/> + </head> + <netui:body> + This is the External Redirect page.<br> + <netui:anchor action="begin">back</netui:anchor> + to start page. + </netui:body> +</netui:html> + + Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/fullyQualifiedRedirect.jsp ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/fullyQualifiedRedirect.jsp Wed Aug 25 17:24:10 2004 @@ -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"%> +<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%> +<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%> + + +<netui:html> + <head> + <netui:base/> + </head> + <netui:body> + This is the Fully Qualifed Redirect page.<br> + <netui:anchor action="begin">back</netui:anchor> + to start page. + </netui:body> +</netui:html> + + Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/index.jsp ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/index.jsp Wed Aug 25 17:24:10 2004 @@ -0,0 +1,41 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%> +<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%> +<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%> + + +<netui:html> + <head> + <netui:base/> + </head> + <netui:body> + + <p>Actions for redirect... + <ul> + <li> + <netui:anchor action="relativeRedirect">Relative Redirect Test</netui:anchor> + </li> + <li> + <netui:anchor action="fullyQualifiedRedirect">Fully Qualified Path Redirect Test</netui:anchor> + </li> + <li> + <netui:anchor action="externalRedirect">External Page Redirect Test</netui:anchor> + </li> + </ul> + <hr> + <p>Simple Actions for redirect... + <ul> + <li> + <netui:anchor action="simpleRelative">Simple Action Relative Redirect Test</netui:anchor> + </li> + <li> + <netui:anchor action="simpleFullyQualified">Simple Action Fully Qualified Path Redirect Test</netui:anchor> + </li> + <li> + <netui:anchor action="simpleExternal">Simple Action External Page Redirect Test</netui:anchor> + </li></ul> + </ul> + + </netui:body> +</netui:html> + Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/relativeRedirect.jsp ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/externalRedirect/relativeRedirect.jsp Wed Aug 25 17:24:10 2004 @@ -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"%> +<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%> +<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%> + + +<netui:html> + <head> + <netui:base/> + </head> + <netui:body> + This is the Relative Redirect page.<br> + <netui:anchor action="begin">back</netui:anchor> + to start page. + </netui:body> +</netui:html> + +
