(struts) branch master updated (8566c1464 -> a0dc19c4b)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git


from 8566c1464 Merge pull request #1096 from 
apache/feature/WW-5476-deprecate
 add 7cdcd84b8 Merge pull request #1072 from 
apache/fix/WW-5468-modeldriven-2
 new a0dc19c4b Merge pull request #1104 from 
apache/WW-5468-modeldriven-strutsparameter-fix

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../showcase/modelDriven/ModelDrivenAction.java|   2 +-
 .../main/java/org/apache/struts2/ModelDriven.java  |   6 +
 .../parameter/ParametersInterceptor.java   |  45 ++-
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   3 +-
 .../xwork2/ModelDrivenAnnotationAction.java|   3 +-
 .../interceptor/ModelDrivenInterceptorTest.java|   2 +-
 .../xwork2/test/ModelDrivenAction2.java|   4 +-
 .../xwork2/test/ModelDrivenAnnotationAction2.java  |   4 +-
 .../xwork2/test/subtest/NullModelDrivenAction.java |   3 +-
 .../validator/VisitorValidatorModelAction.java |   5 +-
 .../parameter/StrutsParameterAnnotationTest.java   |  36 +-
 .../apache/struts2/result/StreamResultTest.java|   6 +-
 .../beanvalidation/actions/ModelDrivenAction.java  |   2 -
 .../actions/ValidateGroupAction.java   |   2 -
 .../apache/struts2/junit/StrutsRestTestCase.java   |   3 +-
 .../struts2/rest/RestActionInvocationTest.java | 400 ++---
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   3 +-
 17 files changed, 281 insertions(+), 248 deletions(-)



(struts) branch WW-5468-modeldriven-strutsparameter-fix deleted (was 7cdcd84b8)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5468-modeldriven-strutsparameter-fix
in repository https://gitbox.apache.org/repos/asf/struts.git


 was 7cdcd84b8 Merge pull request #1072 from 
apache/fix/WW-5468-modeldriven-2

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) branch feature/WW-3714-rename deleted (was 32bc4045b)

2024-11-01 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-3714-rename
in repository https://gitbox.apache.org/repos/asf/struts.git


 was 32bc4045b WW-3714 Moves all classes from com.opensymphony.xwork2 into 
org.apache.struts2

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) 01/01: Merge pull request #1104 from apache/WW-5468-modeldriven-strutsparameter-fix

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git

commit a0dc19c4bebfccf693f6a8d7a0f77d901cd537f1
Merge: 8566c1464 7cdcd84b8
Author: Kusal Kithul-Godage 
AuthorDate: Fri Nov 1 23:19:43 2024 +1100

Merge pull request #1104 from apache/WW-5468-modeldriven-strutsparameter-fix

 .../showcase/modelDriven/ModelDrivenAction.java|   2 +-
 .../main/java/org/apache/struts2/ModelDriven.java  |   6 +
 .../parameter/ParametersInterceptor.java   |  45 ++-
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   3 +-
 .../xwork2/ModelDrivenAnnotationAction.java|   3 +-
 .../interceptor/ModelDrivenInterceptorTest.java|   2 +-
 .../xwork2/test/ModelDrivenAction2.java|   4 +-
 .../xwork2/test/ModelDrivenAnnotationAction2.java  |   4 +-
 .../xwork2/test/subtest/NullModelDrivenAction.java |   3 +-
 .../validator/VisitorValidatorModelAction.java |   5 +-
 .../parameter/StrutsParameterAnnotationTest.java   |  36 +-
 .../apache/struts2/result/StreamResultTest.java|   6 +-
 .../beanvalidation/actions/ModelDrivenAction.java  |   2 -
 .../actions/ValidateGroupAction.java   |   2 -
 .../apache/struts2/junit/StrutsRestTestCase.java   |   3 +-
 .../struts2/rest/RestActionInvocationTest.java | 400 ++---
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   3 +-
 17 files changed, 281 insertions(+), 248 deletions(-)



(struts) branch WW-5476-defaultresultfactory updated (1562d8331 -> c17639092)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5476-defaultresultfactory
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 1562d8331 WW-5476 Fix ActionContext equals/hashCode contract
 discard 9543142fe WW-5476 Deprecate DefaultResultFactory
 add fe46ad9f4 WW-5478 Deprecate DefaultResultFactory
 add c17639092 WW-5478 Fix ActionContext equals/hashCode contract

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (1562d8331)
\
 N -- N -- N   refs/heads/WW-5476-defaultresultfactory (c17639092)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:



(struts) branch master updated (a0dc19c4b -> 1908cbab8)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git


from a0dc19c4b Merge pull request #1104 from 
apache/WW-5468-modeldriven-strutsparameter-fix
 add fe46ad9f4 WW-5478 Deprecate DefaultResultFactory
 add c17639092 WW-5478 Fix ActionContext equals/hashCode contract
 new 1908cbab8 Merge pull request #1105 from 
apache/WW-5476-defaultresultfactory

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/com/opensymphony/xwork2/config/entities/ResultConfig.java | 6 +++---
 .../com/opensymphony/xwork2/config/impl/DefaultConfiguration.java  | 4 ++--
 .../java/com/opensymphony/xwork2/factory/DefaultResultFactory.java | 4 
 core/src/main/java/org/apache/struts2/ActionContext.java   | 7 ++-
 .../xwork2/interceptor/ChainingInterceptorWithConfigTest.java  | 7 ---
 .../struts2/convention/PackageBasedActionConfigBuilderTest.java| 4 ++--
 6 files changed, 21 insertions(+), 11 deletions(-)



(struts) 01/01: Merge pull request #1105 from apache/WW-5476-defaultresultfactory

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 1908cbab8fd200f35eae66f716582c92849aa9ff
Merge: a0dc19c4b c17639092
Author: Kusal Kithul-Godage 
AuthorDate: Sat Nov 2 14:05:37 2024 +1100

Merge pull request #1105 from apache/WW-5476-defaultresultfactory

WW-5478 Deprecate DefaultResultFactory

 .../java/com/opensymphony/xwork2/config/entities/ResultConfig.java | 6 +++---
 .../com/opensymphony/xwork2/config/impl/DefaultConfiguration.java  | 4 ++--
 .../java/com/opensymphony/xwork2/factory/DefaultResultFactory.java | 4 
 core/src/main/java/org/apache/struts2/ActionContext.java   | 7 ++-
 .../xwork2/interceptor/ChainingInterceptorWithConfigTest.java  | 7 ---
 .../struts2/convention/PackageBasedActionConfigBuilderTest.java| 4 ++--
 6 files changed, 21 insertions(+), 11 deletions(-)



(struts) branch WW-5476-defaultresultfactory deleted (was c17639092)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5476-defaultresultfactory
in repository https://gitbox.apache.org/repos/asf/struts.git


 was c17639092 WW-5478 Fix ActionContext equals/hashCode contract

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) 01/01: Merge remote-tracking branch 'origin/master' into 7.0.x/merge-master-2024-11-02

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch 7.0.x/merge-master-2024-11-02
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 3bd473b2d398fbd7614275b02c31eb01b53a2ac1
Merge: 99434d99b 1908cbab8
Author: Kusal Kithul-Godage 
AuthorDate: Sat Nov 2 14:11:48 2024 +1100

Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02

 core/src/main/java/org/apache/struts2/ActionContext.java   |  5 +
 core/src/main/java/org/apache/struts2/ModelDriven.java |  3 +++
 .../org/apache/struts2/config/entities/ResultConfig.java   |  6 +++---
 .../apache/struts2/config/impl/DefaultConfiguration.java   |  4 ++--
 .../org/apache/struts2/factory/DefaultResultFactory.java   |  3 +++
 .../interceptor/parameter/ParametersInterceptor.java   |  1 +
 .../interceptor/ChainingInterceptorWithConfigTest.java |  7 ---
 .../convention/PackageBasedActionConfigBuilderTest.java|  4 ++--
 .../org/apache/struts2/rest/RestActionInvocationTest.java  | 14 ++
 9 files changed, 29 insertions(+), 18 deletions(-)

diff --cc core/src/main/java/org/apache/struts2/ActionContext.java
index 56163eacc,335c24e95..2f023bc51
--- a/core/src/main/java/org/apache/struts2/ActionContext.java
+++ b/core/src/main/java/org/apache/struts2/ActionContext.java
@@@ -543,9 -543,15 +543,14 @@@ public class ActionContext implements S
  
  @Override
  public final boolean equals(Object obj) {
 -if (!(obj instanceof ActionContext)) {
 +if (!(obj instanceof ActionContext other)) {
  return false;
  }
 -ActionContext other = (ActionContext) obj;
  return Objects.equals(getContextMap(), other.getContextMap());
  }
+ 
+ @Override
+ public final int hashCode() {
+ return Objects.hash(getContextMap());
+ }
  }
diff --cc 
core/src/main/java/org/apache/struts2/config/entities/ResultConfig.java
index 5e2a1daae,0..40d20838e
mode 100644,00..100644
--- a/core/src/main/java/org/apache/struts2/config/entities/ResultConfig.java
+++ b/core/src/main/java/org/apache/struts2/config/entities/ResultConfig.java
@@@ -1,163 -1,0 +1,163 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements.  See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership.  The ASF licenses this file
 + * to you 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.
 + */
 +package org.apache.struts2.config.entities;
 +
 +import org.apache.struts2.util.location.Located;
 +import org.apache.struts2.util.location.Location;
 +
 +import java.io.Serializable;
 +import java.util.Collections;
 +import java.util.LinkedHashMap;
 +import java.util.Map;
 +import java.util.Objects;
 +
 +
 +/**
 + * Configuration for Result.
 + *
 + * 
 + * In the xml configuration file this is defined as the result 
tag.
 + * 
 + *
 + * @author Mike
 + */
 +public class ResultConfig extends Located implements Serializable {
 +
- protected Map params;
++protected Map params;
 +protected String className;
 +protected String name;
 +
 +protected ResultConfig(String name, String className) {
 +this.name = name;
 +this.className = className;
 +params = new LinkedHashMap<>();
 +}
 +
 +protected ResultConfig(ResultConfig orig) {
 +this.params = orig.params;
 +this.name = orig.name;
 +this.className = orig.className;
 +this.location = orig.location;
 +}
 +
 +public String getClassName() {
 +return className;
 +}
 +
 +public String getName() {
 +return name;
 +}
 +
- public Map getParams() {
++public Map getParams() {
 +return params;
 +}
 +
 +@Override
 +public boolean equals(Object o) {
 +if (this == o) {
 +return true;
 +}
 +
 +if (!(o instanceof ResultConfig resultConfig)) {
 +return false;
 +}
 +
 +if (!Objects.equals(className, resultConfig.className)) {
 +return false;
 +}
 +
 +if (!Objects.equals(name, resultConfig.name)) {
 +return false;
 +}
 +
 +if (!Objects.equals(params, resultConfig.params)) {
 +return false;
 +}
 +
 +return true;
 +}
 +
 +@Override
 +public int hashCode() {
 +int result;
 +  

(struts) branch 7.0.x/merge-master-2024-11-02 created (now 3bd473b2d)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch 7.0.x/merge-master-2024-11-02
in repository https://gitbox.apache.org/repos/asf/struts.git


  at 3bd473b2d Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02

This branch includes the following new commits:

 new 3bd473b2d Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: WW-5478 Delete deprecated DefaultResultFactory

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch 7.0.x/WW-5478-delete-result
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 792497f0c1df9899797ba7fb518b2bc82e117dd0
Author: Kusal Kithul-Godage 
AuthorDate: Sat Nov 2 14:13:26 2024 +1100

WW-5478 Delete deprecated DefaultResultFactory
---
 .../struts2/factory/DefaultResultFactory.java  | 81 --
 1 file changed, 81 deletions(-)

diff --git 
a/core/src/main/java/org/apache/struts2/factory/DefaultResultFactory.java 
b/core/src/main/java/org/apache/struts2/factory/DefaultResultFactory.java
deleted file mode 100644
index 54efb6972..0
--- a/core/src/main/java/org/apache/struts2/factory/DefaultResultFactory.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.factory;
-
-import org.apache.struts2.ObjectFactory;
-import org.apache.struts2.Result;
-import org.apache.struts2.config.ConfigurationException;
-import org.apache.struts2.config.entities.ResultConfig;
-import org.apache.struts2.inject.Inject;
-import org.apache.struts2.util.reflection.ReflectionException;
-import org.apache.struts2.util.reflection.ReflectionExceptionHandler;
-import org.apache.struts2.util.reflection.ReflectionProvider;
-
-import java.util.Map;
-
-/**
- * Default implementation
- *
- * @deprecated since 6.7.0, use {@link StrutsResultFactory} instead.
- */
-@Deprecated
-public class DefaultResultFactory implements ResultFactory {
-
-private ObjectFactory objectFactory;
-private ReflectionProvider reflectionProvider;
-
-@Inject
-public void setObjectFactory(ObjectFactory objectFactory) {
-this.objectFactory = objectFactory;
-}
-
-@Inject
-public void setReflectionProvider(ReflectionProvider reflectionProvider) {
-this.reflectionProvider = reflectionProvider;
-}
-
-public Result buildResult(ResultConfig resultConfig, Map 
extraContext) throws Exception {
-String resultClassName = resultConfig.getClassName();
-if (resultClassName == null) {
-return null;
-}
-
-Object o = objectFactory.buildBean(resultClassName, extraContext);
-
-if (!(o instanceof Result result)) {
-throw new ConfigurationException("Class [" + resultClassName + "] 
does not implement Result", resultConfig);
-}
-
-Map params = resultConfig.getParams();
-if (params != null) {
-for (Map.Entry paramEntry : params.entrySet()) {
-try {
-reflectionProvider.setProperty(paramEntry.getKey(), 
paramEntry.getValue(), result, extraContext, true);
-} catch (ReflectionException ex) {
-if (result instanceof ReflectionExceptionHandler 
reflectionExceptionHandler) {
-reflectionExceptionHandler.handle(ex);
-}
-}
-}
-}
-
-return result;
-}
-
-}



(struts) branch 7.0.x/WW-5478-delete-result created (now 792497f0c)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch 7.0.x/WW-5478-delete-result
in repository https://gitbox.apache.org/repos/asf/struts.git


  at 792497f0c WW-5478 Delete deprecated DefaultResultFactory

This branch includes the following new commits:

 new 792497f0c WW-5478 Delete deprecated DefaultResultFactory

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) branch 7.0.x/WW-5478-delete-result updated (792497f0c -> 0d0560370)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch 7.0.x/WW-5478-delete-result
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 792497f0c WW-5478 Delete deprecated DefaultResultFactory
 discard 3bd473b2d Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02
 add a43f8a523 Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02
 add ecad4a576 Replace com.opensymphony.xwork2 mentions
 add 0d0560370 WW-5478 Delete deprecated DefaultResultFactory

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (792497f0c)
\
 N -- N -- N   refs/heads/7.0.x/WW-5478-delete-result (0d0560370)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../interceptor/ActionFileUploadInterceptor.java   |  2 +-
 .../parameter/ParametersInterceptor.java   | 33 +++---
 2 files changed, 17 insertions(+), 18 deletions(-)



(struts) branch 7.0.x/merge-master-2024-11-02 updated (3bd473b2d -> a43f8a523)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch 7.0.x/merge-master-2024-11-02
in repository https://gitbox.apache.org/repos/asf/struts.git


omit 3bd473b2d Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02
 add a43f8a523 Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (3bd473b2d)
\
 N -- N -- N   refs/heads/7.0.x/merge-master-2024-11-02 (a43f8a523)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../parameter/ParametersInterceptor.java   | 31 +++---
 1 file changed, 15 insertions(+), 16 deletions(-)



(struts) branch 7.0.x/merge-master-2024-11-02 updated (a43f8a523 -> ecad4a576)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch 7.0.x/merge-master-2024-11-02
in repository https://gitbox.apache.org/repos/asf/struts.git


from a43f8a523 Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-11-02
 add ecad4a576 Replace com.opensymphony.xwork2 mentions

No new revisions were added by this update.

Summary of changes:
 .../org/apache/struts2/interceptor/ActionFileUploadInterceptor.java | 2 +-
 .../org/apache/struts2/interceptor/parameter/ParametersInterceptor.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)



(struts) 01/01: WW-5480 Warn against potential templating bug

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch WW-5480-templating-warning
in repository https://gitbox.apache.org/repos/asf/struts.git

commit fca7631fe87016a24fa709a6f4e06662bdb4cfa9
Author: Kusal Kithul-Godage 
AuthorDate: Sat Nov 2 14:41:30 2024 +1100

WW-5480 Warn against potential templating bug
---
 .../java/org/apache/struts2/components/UIBean.java |  9 -
 .../org/apache/struts2/components/UIBeanTest.java  | 47 +-
 2 files changed, 46 insertions(+), 10 deletions(-)

diff --git a/core/src/main/java/org/apache/struts2/components/UIBean.java 
b/core/src/main/java/org/apache/struts2/components/UIBean.java
index 4d6897a4b..1506e6970 100644
--- a/core/src/main/java/org/apache/struts2/components/UIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/UIBean.java
@@ -655,7 +655,7 @@ public abstract class UIBean extends Component {
 if (this.key != null) {
 
 if(this.name == null) {
-this.name = key;
+setName(key);
 }
 
 if(this.label == null) {
@@ -1137,6 +1137,13 @@ public abstract class UIBean extends Component {
 
 @StrutsTagAttribute(description="The name to set for element")
 public void setName(String name) {
+if (name != null && name.startsWith("$")) {
+LOG.error("The name attribute should not usually be a templating 
variable." +
+  " This can cause a critical vulnerability if the 
resolved value is derived from user input." +
+  " If you are certain that you require this behaviour, 
please use OGNL expression syntax ( %{expr} ) instead.",
+new IllegalStateException());
+return;
+}
 this.name = name;
 }
 
diff --git a/core/src/test/java/org/apache/struts2/components/UIBeanTest.java 
b/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
index 7893e2232..07ecd5b34 100644
--- a/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
+++ b/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
@@ -38,6 +38,21 @@ import static 
com.opensymphony.xwork2.security.DefaultNotExcludedAcceptedPattern
 
 public class UIBeanTest extends StrutsInternalTestCase {
 
+private UIBean bean;
+
+public void setUp() throws Exception {
+super.setUp();
+ValueStack stack = ActionContext.getContext().getValueStack();
+MockHttpServletRequest req = new MockHttpServletRequest();
+MockHttpServletResponse res = new MockHttpServletResponse();
+bean = new UIBean(stack, req, res) {
+@Override
+protected String getDefaultTemplate() {
+return null;
+}
+};
+}
+
 public void testPopulateComponentHtmlId1() {
 ValueStack stack = ActionContext.getContext().getValueStack();
 MockHttpServletRequest req = new MockHttpServletRequest();
@@ -102,15 +117,6 @@ public class UIBeanTest extends StrutsInternalTestCase {
 }
 
 public void testEscape() {
-ValueStack stack = ActionContext.getContext().getValueStack();
-MockHttpServletRequest req = new MockHttpServletRequest();
-MockHttpServletResponse res = new MockHttpServletResponse();
-UIBean bean = new UIBean(stack, req, res) {
-protected String getDefaultTemplate() {
-return null;
-}
-};
-
 assertEquals(bean.escape("hello[world"), "hello_world");
 assertEquals(bean.escape("hello.world"), "hello_world");
 assertEquals(bean.escape("hello]world"), "hello_world");
@@ -424,4 +430,27 @@ public class UIBeanTest extends StrutsInternalTestCase {
 assertEquals("/content", field.uiStaticContentPath);
 }
 
+/**
+ * The {@code name} attribute of a {@link UIBean} is evaluated to 
determine the {@value UIBean#ATTR_NAME_VALUE}
+ * parameter value. Thus, it is imperative that the {@code name} attribute 
is not derived from user input as it will
+ * otherwise result in a critical SSTI vulnerability.
+ * 
+ * When using FreeMarker, if the {@code name} attribute is a templating 
variable that corresponds to a getter which
+ * returns user-controlled input, it will usually resolve to {@code null} 
when loading the corresponding Action,
+ * which results in a rendering error, giving developers strong feedback 
that the attribute is not set correctly.
+ * 
+ * In the case of Velocity, templating variables which resolve to {@code 
null} do not cause rendering errors, making
+ * this potentially critical mistake sometimes undetectable. By logging a 
prominent warning, Velocity developers are
+ * also given a clear indication that the {@code name} attribute is not 
set correctly.
+ * 
+ * If the name attribute should definitely correspond to a variable (it is 
NOT derived from user input), the warning
+  

(struts) branch WW-5480-templating-warning created (now fca7631fe)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5480-templating-warning
in repository https://gitbox.apache.org/repos/asf/struts.git


  at fca7631fe WW-5480 Warn against potential templating bug

This branch includes the following new commits:

 new fca7631fe WW-5480 Warn against potential templating bug

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) branch WW-5480-templating-warning updated (fca7631fe -> ced44650e)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5480-templating-warning
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard fca7631fe WW-5480 Warn against potential templating bug
 new ced44650e WW-5480 Warn against potential templating bug

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (fca7631fe)
\
 N -- N -- N   refs/heads/WW-5480-templating-warning (ced44650e)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 core/src/test/java/org/apache/struts2/components/UIBeanTest.java | 1 +
 1 file changed, 1 insertion(+)



(struts) 01/01: WW-5480 Warn against potential templating bug

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch WW-5480-templating-warning
in repository https://gitbox.apache.org/repos/asf/struts.git

commit ced44650ec3e12f265eca72499700e8ad7a3905f
Author: Kusal Kithul-Godage 
AuthorDate: Sat Nov 2 14:41:30 2024 +1100

WW-5480 Warn against potential templating bug
---
 .../java/org/apache/struts2/components/UIBean.java |  9 +++-
 .../org/apache/struts2/components/UIBeanTest.java  | 48 ++
 2 files changed, 47 insertions(+), 10 deletions(-)

diff --git a/core/src/main/java/org/apache/struts2/components/UIBean.java 
b/core/src/main/java/org/apache/struts2/components/UIBean.java
index 4d6897a4b..1506e6970 100644
--- a/core/src/main/java/org/apache/struts2/components/UIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/UIBean.java
@@ -655,7 +655,7 @@ public abstract class UIBean extends Component {
 if (this.key != null) {
 
 if(this.name == null) {
-this.name = key;
+setName(key);
 }
 
 if(this.label == null) {
@@ -1137,6 +1137,13 @@ public abstract class UIBean extends Component {
 
 @StrutsTagAttribute(description="The name to set for element")
 public void setName(String name) {
+if (name != null && name.startsWith("$")) {
+LOG.error("The name attribute should not usually be a templating 
variable." +
+  " This can cause a critical vulnerability if the 
resolved value is derived from user input." +
+  " If you are certain that you require this behaviour, 
please use OGNL expression syntax ( %{expr} ) instead.",
+new IllegalStateException());
+return;
+}
 this.name = name;
 }
 
diff --git a/core/src/test/java/org/apache/struts2/components/UIBeanTest.java 
b/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
index 7893e2232..ff3dc50f1 100644
--- a/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
+++ b/core/src/test/java/org/apache/struts2/components/UIBeanTest.java
@@ -38,6 +38,22 @@ import static 
com.opensymphony.xwork2.security.DefaultNotExcludedAcceptedPattern
 
 public class UIBeanTest extends StrutsInternalTestCase {
 
+private UIBean bean;
+
+@Override
+public void setUp() throws Exception {
+super.setUp();
+ValueStack stack = ActionContext.getContext().getValueStack();
+MockHttpServletRequest req = new MockHttpServletRequest();
+MockHttpServletResponse res = new MockHttpServletResponse();
+bean = new UIBean(stack, req, res) {
+@Override
+protected String getDefaultTemplate() {
+return null;
+}
+};
+}
+
 public void testPopulateComponentHtmlId1() {
 ValueStack stack = ActionContext.getContext().getValueStack();
 MockHttpServletRequest req = new MockHttpServletRequest();
@@ -102,15 +118,6 @@ public class UIBeanTest extends StrutsInternalTestCase {
 }
 
 public void testEscape() {
-ValueStack stack = ActionContext.getContext().getValueStack();
-MockHttpServletRequest req = new MockHttpServletRequest();
-MockHttpServletResponse res = new MockHttpServletResponse();
-UIBean bean = new UIBean(stack, req, res) {
-protected String getDefaultTemplate() {
-return null;
-}
-};
-
 assertEquals(bean.escape("hello[world"), "hello_world");
 assertEquals(bean.escape("hello.world"), "hello_world");
 assertEquals(bean.escape("hello]world"), "hello_world");
@@ -424,4 +431,27 @@ public class UIBeanTest extends StrutsInternalTestCase {
 assertEquals("/content", field.uiStaticContentPath);
 }
 
+/**
+ * The {@code name} attribute of a {@link UIBean} is evaluated to 
determine the {@value UIBean#ATTR_NAME_VALUE}
+ * parameter value. Thus, it is imperative that the {@code name} attribute 
is not derived from user input as it will
+ * otherwise result in a critical SSTI vulnerability.
+ * 
+ * When using FreeMarker, if the {@code name} attribute is a templating 
variable that corresponds to a getter which
+ * returns user-controlled input, it will usually resolve to {@code null} 
when loading the corresponding Action,
+ * which results in a rendering error, giving developers strong feedback 
that the attribute is not set correctly.
+ * 
+ * In the case of Velocity, templating variables which resolve to {@code 
null} do not cause rendering errors, making
+ * this potentially critical mistake sometimes undetectable. By logging a 
prominent warning, Velocity developers are
+ * also given a clear indication that the {@code name} attribute is not 
set correctly.
+ * 
+ * If the name attribute should definitely correspond to a variable (it is 
NOT derived from user input), t

(struts) branch feature/WW-3714-rename updated (cdcf1396b -> 32bc4045b)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch feature/WW-3714-rename
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard cdcf1396b WW-3714 Moves all classes from com.opensymphony.xwork2 into 
org.apache.struts2
 add 49ddf6130 WW-5471 Marks Sitemesh plugin as deprecated
 add 9f2770b2c Merge pull request #1075 from 
apache/feature/WW-5471-deprecate-sitemesh
 add 7deb48129 WW-3714 Deprecate and migrate Action, Interceptor, Result
 add 8da6a7992 WW-3714 Deprecate and migrate ActionContext
 add ae9dc42da WW-3714 Deprecate and migrate ConditionalInterceptor
 add 60095a693 WW-3714 Deprecate and migrate ActionInvocation
 add 272c2e7bb WW-3714 Deprecate and migrate PreResultListener
 add e3fbe8835 WW-3714 Update new ActionContext with new ActionInvocation
 add 36a890ba6 WW-3714 Add factory support for new Interceptor, Result 
interfaces
 add b622e5d72 WW-3714 Ensure ReflectionExceptionHandler, WithLazyParams, 
ParamNameAwareResult marker interfaces respected
 add 91154f0ec Merge branch 'kusal-depr-apis-3.5' into 
7.0.x/merge-master-2024-11-01
 add bbca2717f WW-3714 Deprecate and migrate ActionEventListener
 add 14bd4b80c WW-3714 Deprecate and migrate ActionProxy
 add 8ba8ee5fe WW-3714 Deprecate and migrate ValueStack
 add 111bc2565 WW-3714 Deprecate and migrate assorted marker interfaces
 add dfd07190b WW-3714 Update new ActionContext with new ValueStack
 add 7ce8f484e WW-3714 Shortcut adapters
 add ebedd7391 WW-3714 Marker interface migration follow-up
 add 2757c2357 WW-3714 Fix replacement ValidationAware marker not recognised
 add 56004a10a Merge branch 'kusal-depr-apis-5' into 
7.0.x/merge-master-2024-11-01
 add a623842bc WW-3714 Deprecate and migrate ActionSupport
 add 9e23fbe66 WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor
 add f95f9a7cd WW-3714 Add alternative constructors in InterceptorMapping
 add deb6c09bc WW-3714 Replace deprecated APIs in new ActionSupport
 add 45a1f5efc WW-3714 Deprecate and migrate assorted Interceptors
 add 243244997 WW-3714 Update StrutsResultSupport to allow overriding new 
signature
 add a34bffdf3 Merge branch 'kusal-depr-apis-7' into 
7.0.x/merge-master-2024-11-01
 add 09eb28602 Initial Commit: - Fix for boundary condition bug in 
JakartaMultipartRequest that results in a NPE when 
struts.multipart.maxStringLength is not explicitly set, and normal fields are 
processed along with a file upload. - Additional unit tests for file upload 
interceptors to confirm functionality with-or-without max parameters being set 
when a file upload is processed alone as well as with normal fields.
 add b359da551 Merge pull request #1068 from 
JCgH4164838Gh792C124B5/localS2_66_JakartaMulipartRequestFix1
 add efa447af2 Merge pull request #1079 from apache/kusal-depr-apis
 add d1695f7a4 Bump github/codeql-action from 3.26.12 to 3.26.13
 add a28f22605 Merge pull request #1090 from 
apache/dependabot/github_actions/github/codeql-action-3.26.13
 add 28c8f1503 Bump maven-surefire-plugin.version from 3.5.0 to 3.5.1
 add 117e84f24 Merge pull request #1092 from 
apache/dependabot/maven/maven-surefire-plugin.version-3.5.1
 add cf6cbf381 Bump org.apache.maven.plugins:maven-failsafe-plugin from 
3.3.1 to 3.5.1
 add 9b87e88bb Merge pull request #1095 from 
apache/dependabot/maven/org.apache.maven.plugins-maven-failsafe-plugin-3.5.1
 add b18fbda1f Bump org.apache.maven.doxia:doxia-core from 1.12.0 to 2.0.0
 add 144010c3b Merge pull request #1093 from 
apache/dependabot/maven/org.apache.maven.doxia-doxia-core-2.0.0
 add b488c80aa Merge pull request #1081 from apache/kusal-depr-apis-3
 add 323267fa8 Merge pull request #1087 from apache/kusal-depr-apis-3.5
 add 266cd1333 Merge pull request #1082 from apache/kusal-depr-apis-4
 add 5b81ec085 Merge pull request #1083 from apache/kusal-depr-apis-5
 add 67ee1b2d6 Merge pull request #1084 from apache/kusal-depr-apis-6
 add 89bcbecc7 Merge pull request #1085 from apache/kusal-depr-apis-7
 add 48ee44bbc Bump org.apache.commons:commons-lang3 from 3.15.0 to 3.17.0
 add d9d580ae3 Merge pull request #1094 from 
apache/dependabot/maven/org.apache.commons-commons-lang3-3.17.0
 add 3f7492309 Bump github/codeql-action from 3.26.13 to 3.27.0
 add b15dc458c Merge pull request #1102 from 
apache/dependabot/github_actions/github/codeql-action-3.27.0
 add 5b2f63fa7 Bump asm.version from 9.7 to 9.7.1
 add c75ddbbf3 Merge pull request #1098 from 
apache/dependabot/maven/asm.version-9.7.1
 add 67e047799 WW-5476 Deprecates tag's parameters as replaced with 
attributes
 add 8566c1464 Merge pull request #1096 from 
apache/feature/WW-5476-deprecate
 add f55c404d2 Merge branch 'master' into 7.0.x/merge-master-2024-11-01
 add eab6d9ef8 Fix merge errors
 add 08d54d2b6 Merg

(struts) branch WW-5468-modeldriven-strutsparameter-fix created (now 7cdcd84b8)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5468-modeldriven-strutsparameter-fix
in repository https://gitbox.apache.org/repos/asf/struts.git


  at 7cdcd84b8 Merge pull request #1072 from 
apache/fix/WW-5468-modeldriven-2

This branch includes the following new commits:

 new 7cdcd84b8 Merge pull request #1072 from 
apache/fix/WW-5468-modeldriven-2

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: Merge pull request #1072 from apache/fix/WW-5468-modeldriven-2

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch WW-5468-modeldriven-strutsparameter-fix
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 7cdcd84b838eaea5a3f10af5ea64e6856dc3c27d
Author: Kusal Kithul-Godage 
AuthorDate: Mon Oct 14 18:59:11 2024 +1100

Merge pull request #1072 from apache/fix/WW-5468-modeldriven-2

WW-5468 Exempt ModelDriven Actions from @StrutsParameter requirement
---
 .../showcase/modelDriven/ModelDrivenAction.java|   2 +-
 .../main/java/org/apache/struts2/ModelDriven.java  |   6 +
 .../parameter/ParametersInterceptor.java   |  45 ++-
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   3 +-
 .../xwork2/ModelDrivenAnnotationAction.java|   3 +-
 .../interceptor/ModelDrivenInterceptorTest.java|   2 +-
 .../xwork2/test/ModelDrivenAction2.java|   4 +-
 .../xwork2/test/ModelDrivenAnnotationAction2.java  |   4 +-
 .../xwork2/test/subtest/NullModelDrivenAction.java |   3 +-
 .../validator/VisitorValidatorModelAction.java |   5 +-
 .../parameter/StrutsParameterAnnotationTest.java   |  36 +-
 .../apache/struts2/result/StreamResultTest.java|   6 +-
 .../beanvalidation/actions/ModelDrivenAction.java  |   2 -
 .../actions/ValidateGroupAction.java   |   2 -
 .../apache/struts2/junit/StrutsRestTestCase.java   |   3 +-
 .../struts2/rest/RestActionInvocationTest.java | 400 ++---
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   3 +-
 17 files changed, 281 insertions(+), 248 deletions(-)

diff --git 
a/apps/showcase/src/main/java/org/apache/struts2/showcase/modelDriven/ModelDrivenAction.java
 
b/apps/showcase/src/main/java/org/apache/struts2/showcase/modelDriven/ModelDrivenAction.java
index 60692b0e6..0fae6c481 100644
--- 
a/apps/showcase/src/main/java/org/apache/struts2/showcase/modelDriven/ModelDrivenAction.java
+++ 
b/apps/showcase/src/main/java/org/apache/struts2/showcase/modelDriven/ModelDrivenAction.java
@@ -42,7 +42,7 @@ public class ModelDrivenAction extends ActionSupport 
implements ModelDriven {
}
 
@Override
-   public Object getModel() {
+   public Gangster getModel() {
return new Gangster();
}
 }
diff --git a/core/src/main/java/org/apache/struts2/ModelDriven.java 
b/core/src/main/java/org/apache/struts2/ModelDriven.java
index 0704109f1..993a6f5eb 100644
--- a/core/src/main/java/org/apache/struts2/ModelDriven.java
+++ b/core/src/main/java/org/apache/struts2/ModelDriven.java
@@ -18,6 +18,8 @@
  */
 package org.apache.struts2;
 
+import org.apache.struts2.interceptor.parameter.StrutsParameter;
+
 /**
  * ModelDriven Actions provide a model object to be pushed onto the ValueStack
  * in addition to the Action itself, allowing a FormBean type approach like 
Struts.
@@ -28,9 +30,13 @@ public interface ModelDriven {
 
 /**
  * Gets the model to be pushed onto the ValueStack instead of the Action 
itself.
+ * 
+ * Please be aware that all setters and getters of every depth on the 
object returned by this method are available
+ * for user parameter injection!
  *
  * @return the model
  */
+@StrutsParameter(depth = Integer.MAX_VALUE)
 T getModel();
 
 }
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/parameter/ParametersInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/parameter/ParametersInterceptor.java
index 239bc6d6c..9f6ff8f53 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/parameter/ParametersInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/parameter/ParametersInterceptor.java
@@ -35,6 +35,7 @@ import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.ClassUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.struts2.ModelDriven;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.action.NoParameters;
 import org.apache.struts2.action.ParameterNameAware;
@@ -348,7 +349,15 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 }
 
 long paramDepth = name.codePoints().mapToObj(c -> (char) 
c).filter(NESTING_CHARS::contains).count();
+
+if (action instanceof ModelDriven && 
!ActionContext.getContext().getValueStack().peek().equals(action)) {
+LOG.debug("Model driven Action detected, exempting from 
@StrutsParameter annotation requirement and OGNL allowlisting model type");
+// (Exempted by annotation on 
com.opensymphony.xwork2.ModelDriven#getModel)
+return hasValidAnnotatedMember("model", action, paramDepth + 1);
+}
+
 if (requireAnnotationsTransitionMode && paramDepth == 0) {
+LOG.debug("Annotation transition mode enabled, exempting 
non-nested parameter [{}] from @StrutsParameter annotation requirement", name);
 return true;
 }
 
@@ -365,6 +374,

(struts) branch WW-5476-defaultresultfactory created (now c73e6d199)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5476-defaultresultfactory
in repository https://gitbox.apache.org/repos/asf/struts.git


  at c73e6d199 WW-5476 Deprecate DefaultResultFactory

This branch includes the following new commits:

 new c73e6d199 WW-5476 Deprecate DefaultResultFactory

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: WW-5476 Deprecate DefaultResultFactory

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch WW-5476-defaultresultfactory
in repository https://gitbox.apache.org/repos/asf/struts.git

commit c73e6d199f891431de2af8ecbb2de802272f1a3d
Author: Kusal Kithul-Godage 
AuthorDate: Fri Nov 1 19:48:46 2024 +1100

WW-5476 Deprecate DefaultResultFactory
---
 .../java/com/opensymphony/xwork2/config/entities/ResultConfig.java | 6 +++---
 .../com/opensymphony/xwork2/config/impl/DefaultConfiguration.java  | 4 ++--
 .../java/com/opensymphony/xwork2/factory/DefaultResultFactory.java | 4 
 core/src/main/java/org/apache/struts2/ActionContext.java   | 2 +-
 .../xwork2/interceptor/ChainingInterceptorWithConfigTest.java  | 7 ---
 .../struts2/convention/PackageBasedActionConfigBuilderTest.java| 4 ++--
 6 files changed, 16 insertions(+), 11 deletions(-)

diff --git 
a/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java 
b/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java
index 50602636b..9cb78c0fd 100644
--- 
a/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java
+++ 
b/core/src/main/java/com/opensymphony/xwork2/config/entities/ResultConfig.java
@@ -38,7 +38,7 @@ import java.util.Map;
  */
 public class ResultConfig extends Located implements Serializable {
 
-protected Map params;
+protected Map params;
 protected String className;
 protected String name;
 
@@ -63,7 +63,7 @@ public class ResultConfig extends Located implements 
Serializable {
 return name;
 }
 
-public Map getParams() {
+public Map getParams() {
 return params;
 }
 
@@ -140,7 +140,7 @@ public class ResultConfig extends Located implements 
Serializable {
 return this;
 }
 
-public Builder addParams(Map params) {
+public Builder addParams(Map params) {
 target.params.putAll(params);
 return this;
 }
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
 
b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
index 7c725e15b..d1560f53f 100644
--- 
a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
+++ 
b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
@@ -66,7 +66,6 @@ import com.opensymphony.xwork2.factory.ActionFactory;
 import com.opensymphony.xwork2.factory.ConverterFactory;
 import com.opensymphony.xwork2.factory.DefaultActionFactory;
 import com.opensymphony.xwork2.factory.DefaultInterceptorFactory;
-import com.opensymphony.xwork2.factory.DefaultResultFactory;
 import com.opensymphony.xwork2.factory.DefaultUnknownHandlerFactory;
 import com.opensymphony.xwork2.factory.DefaultValidatorFactory;
 import com.opensymphony.xwork2.factory.InterceptorFactory;
@@ -109,6 +108,7 @@ import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.conversion.StrutsConversionPropertiesProcessor;
 import org.apache.struts2.conversion.StrutsTypeConverterCreator;
 import org.apache.struts2.conversion.StrutsTypeConverterHolder;
+import org.apache.struts2.factory.StrutsResultFactory;
 import org.apache.struts2.ognl.OgnlGuard;
 import org.apache.struts2.ognl.ProviderAllowlist;
 import org.apache.struts2.ognl.StrutsOgnlGuard;
@@ -363,7 +363,7 @@ public class DefaultConfiguration implements Configuration {
 // TODO: SpringObjectFactoryTest fails when these are SINGLETON
 .factory(ObjectFactory.class, Scope.PROTOTYPE)
 .factory(ActionFactory.class, DefaultActionFactory.class, 
Scope.PROTOTYPE)
-.factory(ResultFactory.class, DefaultResultFactory.class, 
Scope.PROTOTYPE)
+.factory(ResultFactory.class, StrutsResultFactory.class, 
Scope.PROTOTYPE)
 .factory(InterceptorFactory.class, 
DefaultInterceptorFactory.class, Scope.PROTOTYPE)
 .factory(ValidatorFactory.class, 
DefaultValidatorFactory.class, Scope.PROTOTYPE)
 .factory(ConverterFactory.class, StrutsConverterFactory.class, 
Scope.PROTOTYPE)
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/factory/DefaultResultFactory.java 
b/core/src/main/java/com/opensymphony/xwork2/factory/DefaultResultFactory.java
index 42527494e..b4e312bfd 100644
--- 
a/core/src/main/java/com/opensymphony/xwork2/factory/DefaultResultFactory.java
+++ 
b/core/src/main/java/com/opensymphony/xwork2/factory/DefaultResultFactory.java
@@ -26,12 +26,16 @@ import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.reflection.ReflectionException;
 import com.opensymphony.xwork2.util.reflection.ReflectionExceptionHandler;
 import com.opensymphony.xwork2.util.reflection.ReflectionProvider;
+import org.apache.struts2.factory.StrutsResultFactory;
 
 import java.util.Map;
 
 /**
  * Default implementation
+ *
+ * @deprecated since 6.7.0, use {@link StrutsResult

(struts) branch WW-5476-defaultresultfactory updated (c73e6d199 -> 1562d8331)

2024-11-01 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch WW-5476-defaultresultfactory
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard c73e6d199 WW-5476 Deprecate DefaultResultFactory
 add 9543142fe WW-5476 Deprecate DefaultResultFactory
 add 1562d8331 WW-5476 Fix ActionContext equals/hashCode contract

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (c73e6d199)
\
 N -- N -- N   refs/heads/WW-5476-defaultresultfactory (1562d8331)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 core/src/main/java/org/apache/struts2/ActionContext.java | 5 +
 1 file changed, 5 insertions(+)