From d134872a32d2169dee64b294af24af7285bc93d8 Mon Sep 17 00:00:00 2001 From: Vinodkumar Nemagouda Date: Fri, 20 Feb 2015 16:44:02 -0500 Subject: [PATCH 1/7] GRAILS-11583 Remove additional parameters are added for grails web flow --- .../groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy index f7b8080d881..cc1df40cd96 100644 --- a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy +++ b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy @@ -360,7 +360,8 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr def params = urlAttrs.params && urlAttrs.params instanceof Map ? urlAttrs.params : [:] if (request.flowExecutionKey) { params.execution = request.flowExecutionKey - urlAttrs.params = params + //Commenting code for resolving Grails GRAILS-11583 + //urlAttrs.params = params if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) { urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName } From 805c406eea1b3d4152f3ffdc49f2985c4b2a1aa5 Mon Sep 17 00:00:00 2001 From: Vinodkumar Nemagouda Date: Mon, 23 Feb 2015 11:42:48 -0500 Subject: [PATCH 2/7] flow execution params are appended to url ( Grails-11583) Ideally we need to take out urlAttrs.params = params from createLink operation as webFlow plugin already takes care of adding execution param. --- .../web/taglib/ApplicationTagLib.groovy | 14 +++++++++--- .../web/taglib/ApplicationTagLibTests.groovy | 22 +++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy index cc1df40cd96..0e4c977302e 100644 --- a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy +++ b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy @@ -63,6 +63,7 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr boolean useJsessionId = false boolean hasResourceProcessor = false + boolean flowExecutionParamInd = true void afterPropertiesSet() { def config = grailsApplication.config @@ -70,6 +71,10 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr useJsessionId = config.grails.views.enable.jsessionid } + if (config.grails.views.enable.flowExecutionKey.param instanceof Boolean) { + flowExecutionParamInd = config.grails.views.enable.flowExecutionKey.param + } + hasResourceProcessor = applicationContext.containsBean('grailsResourceProcessor') if (applicationContext.containsBean('requestDataValueProcessor')) { @@ -359,9 +364,11 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr } def params = urlAttrs.params && urlAttrs.params instanceof Map ? urlAttrs.params : [:] if (request.flowExecutionKey) { - params.execution = request.flowExecutionKey - //Commenting code for resolving Grails GRAILS-11583 - //urlAttrs.params = params + params.execution = request.flowExecutionKey + //externalization of flow execution param + if(flowExecutionParamInd){ + urlAttrs.params = params + } if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) { urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName } @@ -372,6 +379,7 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr } String generatedLink = linkGenerator.link(urlAttrs, request.characterEncoding) + generatedLink = processedUrl(generatedLink, request) return useJsessionId ? response.encodeURL(generatedLink) : generatedLink diff --git a/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy b/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy index 50f16a80c48..623ce0b9e7b 100644 --- a/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy +++ b/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy @@ -289,6 +289,28 @@ class ApplicationTagLibTests extends AbstractGrailsTagTests { } } + void testGCreateLinkWithFlowExecutionParamConfigIndOff() { + unRegisterRequestDataValueProcessor() + request.flowExecutionKey = '12345' + def tagLibBean = appCtx.getBean(ApplicationTagLib.name) + ga.config.grails.views.enable.flowExecutionKey.param=false + tagLibBean.afterPropertiesSet() + def template = '' + + assertOutputEquals('/foo/bar', template) + } + + void testGCreateLinkWithFlowExecutionParamConfigIndOn() { + unRegisterRequestDataValueProcessor() + request.flowExecutionKey = '12345' + def tagLibBean = appCtx.getBean(ApplicationTagLib.name) + ga.config.grails.views.enable.flowExecutionKey.param=true + tagLibBean.afterPropertiesSet() + + def template = '' + assertOutputEquals('/foo/bar?execution=12345', template) + } + void testCreateLinkWithFlowExecutionKeyAndEvent() { unRegisterRequestDataValueProcessor() request.flowExecutionKey = '12345' From fc604e9ec372fcc7b4a46ba98ac1cd6e3a779afc Mon Sep 17 00:00:00 2001 From: Vinodkumar Nemagouda Date: Tue, 10 Mar 2015 14:14:52 -0400 Subject: [PATCH 3/7] Revert "flow execution params are appended to url ( Grails-11583)" This reverts commit 805c406eea1b3d4152f3ffdc49f2985c4b2a1aa5. --- .../web/taglib/ApplicationTagLib.groovy | 14 +++--------- .../web/taglib/ApplicationTagLibTests.groovy | 22 ------------------- 2 files changed, 3 insertions(+), 33 deletions(-) diff --git a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy index 0e4c977302e..cc1df40cd96 100644 --- a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy +++ b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy @@ -63,7 +63,6 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr boolean useJsessionId = false boolean hasResourceProcessor = false - boolean flowExecutionParamInd = true void afterPropertiesSet() { def config = grailsApplication.config @@ -71,10 +70,6 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr useJsessionId = config.grails.views.enable.jsessionid } - if (config.grails.views.enable.flowExecutionKey.param instanceof Boolean) { - flowExecutionParamInd = config.grails.views.enable.flowExecutionKey.param - } - hasResourceProcessor = applicationContext.containsBean('grailsResourceProcessor') if (applicationContext.containsBean('requestDataValueProcessor')) { @@ -364,11 +359,9 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr } def params = urlAttrs.params && urlAttrs.params instanceof Map ? urlAttrs.params : [:] if (request.flowExecutionKey) { - params.execution = request.flowExecutionKey - //externalization of flow execution param - if(flowExecutionParamInd){ - urlAttrs.params = params - } + params.execution = request.flowExecutionKey + //Commenting code for resolving Grails GRAILS-11583 + //urlAttrs.params = params if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) { urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName } @@ -379,7 +372,6 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr } String generatedLink = linkGenerator.link(urlAttrs, request.characterEncoding) - generatedLink = processedUrl(generatedLink, request) return useJsessionId ? response.encodeURL(generatedLink) : generatedLink diff --git a/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy b/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy index 623ce0b9e7b..50f16a80c48 100644 --- a/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy +++ b/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy @@ -289,28 +289,6 @@ class ApplicationTagLibTests extends AbstractGrailsTagTests { } } - void testGCreateLinkWithFlowExecutionParamConfigIndOff() { - unRegisterRequestDataValueProcessor() - request.flowExecutionKey = '12345' - def tagLibBean = appCtx.getBean(ApplicationTagLib.name) - ga.config.grails.views.enable.flowExecutionKey.param=false - tagLibBean.afterPropertiesSet() - def template = '' - - assertOutputEquals('/foo/bar', template) - } - - void testGCreateLinkWithFlowExecutionParamConfigIndOn() { - unRegisterRequestDataValueProcessor() - request.flowExecutionKey = '12345' - def tagLibBean = appCtx.getBean(ApplicationTagLib.name) - ga.config.grails.views.enable.flowExecutionKey.param=true - tagLibBean.afterPropertiesSet() - - def template = '' - assertOutputEquals('/foo/bar?execution=12345', template) - } - void testCreateLinkWithFlowExecutionKeyAndEvent() { unRegisterRequestDataValueProcessor() request.flowExecutionKey = '12345' From af9f1c8dffcaaa35a089b5c820f7ca4d21dedcb9 Mon Sep 17 00:00:00 2001 From: Vinodkumar Nemagouda Date: Tue, 10 Mar 2015 14:14:59 -0400 Subject: [PATCH 4/7] Revert "GRAILS-11583" This reverts commit d134872a32d2169dee64b294af24af7285bc93d8. --- .../groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy index cc1df40cd96..f7b8080d881 100644 --- a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy +++ b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy @@ -360,8 +360,7 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr def params = urlAttrs.params && urlAttrs.params instanceof Map ? urlAttrs.params : [:] if (request.flowExecutionKey) { params.execution = request.flowExecutionKey - //Commenting code for resolving Grails GRAILS-11583 - //urlAttrs.params = params + urlAttrs.params = params if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) { urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName } From 473556698831128efa31540b6e66cb2696daa526 Mon Sep 17 00:00:00 2001 From: Vinodkumar Nemagouda Date: Tue, 10 Mar 2015 14:24:25 -0400 Subject: [PATCH 5/7] Revert "Revert "GRAILS-11583"" This reverts commit af9f1c8dffcaaa35a089b5c820f7ca4d21dedcb9. --- .../groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy index f7b8080d881..cc1df40cd96 100644 --- a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy +++ b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy @@ -360,7 +360,8 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr def params = urlAttrs.params && urlAttrs.params instanceof Map ? urlAttrs.params : [:] if (request.flowExecutionKey) { params.execution = request.flowExecutionKey - urlAttrs.params = params + //Commenting code for resolving Grails GRAILS-11583 + //urlAttrs.params = params if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) { urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName } From 18005304a6790bf9f11fc6f472583b7ec0a464fe Mon Sep 17 00:00:00 2001 From: Vinodkumar Nemagouda Date: Tue, 10 Mar 2015 14:24:28 -0400 Subject: [PATCH 6/7] Revert "Revert "Revert "GRAILS-11583""" This reverts commit 473556698831128efa31540b6e66cb2696daa526. --- .../groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy index cc1df40cd96..f7b8080d881 100644 --- a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy +++ b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy @@ -360,8 +360,7 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr def params = urlAttrs.params && urlAttrs.params instanceof Map ? urlAttrs.params : [:] if (request.flowExecutionKey) { params.execution = request.flowExecutionKey - //Commenting code for resolving Grails GRAILS-11583 - //urlAttrs.params = params + urlAttrs.params = params if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) { urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName } From 5328b20493d3d07709923a2d105db7a98960156e Mon Sep 17 00:00:00 2001 From: Vinodkumar Nemagouda Date: Fri, 20 Mar 2015 16:31:52 -0400 Subject: [PATCH 7/7] GRAILS-11583 fixes Removed duplicate web-flow key mapping attribute from 2.4.x fields in order to provide options to users for having flexibility to avoid execution params --- .../plugins/web/taglib/ApplicationTagLib.groovy | 2 -- .../web/taglib/ApplicationTagLibTests.groovy | 15 +++++---------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy index f7b8080d881..67356f33169 100644 --- a/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy +++ b/grails-plugin-gsp/src/main/groovy/org/codehaus/groovy/grails/plugins/web/taglib/ApplicationTagLib.groovy @@ -359,8 +359,6 @@ class ApplicationTagLib implements ApplicationContextAware, InitializingBean, Gr } def params = urlAttrs.params && urlAttrs.params instanceof Map ? urlAttrs.params : [:] if (request.flowExecutionKey) { - params.execution = request.flowExecutionKey - urlAttrs.params = params if (attrs.controller == null && attrs.action == null && attrs.url == null && attrs.uri == null) { urlAttrs[LinkGenerator.ATTRIBUTE_ACTION] = GrailsWebRequest.lookup().actionName } diff --git a/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy b/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy index 50f16a80c48..30becd9f210 100644 --- a/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy +++ b/grails-test-suite-web/src/test/groovy/org/codehaus/groovy/grails/web/taglib/ApplicationTagLibTests.groovy @@ -291,32 +291,27 @@ class ApplicationTagLibTests extends AbstractGrailsTagTests { void testCreateLinkWithFlowExecutionKeyAndEvent() { unRegisterRequestDataValueProcessor() - request.flowExecutionKey = '12345' - + def template = '' - assertOutputEquals('/foo/bar?execution=12345&_eventId=boo', template) + assertOutputEquals('/foo/bar?_eventId=boo', template) } void testCreateLinkWithFlowExecutionKeyAndEventAndRequestDataValueProcessor() { - request.flowExecutionKey = '12345' def template = '' - assertOutputEquals('/foo/bar?execution=12345&_eventId=boo&requestDataValueProcessorParamName=paramValue', template) + assertOutputEquals('/foo/bar?_eventId=boo&requestDataValueProcessorParamName=paramValue', template) } void testLinkWithFlowExecutionKeyAndEvent() { unRegisterRequestDataValueProcessor() - request.flowExecutionKey = '12345' def template = 'link' - assertOutputEquals('link', template) + assertOutputEquals('link', template) } void testLinkWithFlowExecutionKeyAndEventAndRequestDataValueProcessor() { - request.flowExecutionKey = '12345' - def template = 'link' - assertOutputEquals('link', template) + assertOutputEquals('link', template) } void testSetTag() {