You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by vo...@apache.org on 2022/04/13 16:00:27 UTC
[myfaces] branch 2.3.x updated: MYFACES-4432 - Resolve request object (Ports MYFACES-4394)
This is an automated email from the ASF dual-hosted git repository.
volosied pushed a commit to branch 2.3.x
in repository https://gitbox.apache.org/repos/asf/myfaces.git
The following commit(s) were added to refs/heads/2.3.x by this push:
new c354bc668 MYFACES-4432 - Resolve request object (Ports MYFACES-4394)
new 2572d54fd Merge pull request #243 from volosied/MYFACES-4432-2.3
c354bc668 is described below
commit c354bc668b394be5029f6293ec998114f50467cf
Author: Volodymyr Siedlecki <vo...@gmail.com>
AuthorDate: Fri Apr 1 11:00:30 2022 -0400
MYFACES-4432 - Resolve request object (Ports MYFACES-4394)
---
.../apache/myfaces/cdi/JsfArtifactProducer.java | 34 ++++++++++++++++------
.../implicitobject/ImplicitObjectResolver.java | 7 +++++
2 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducer.java b/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducer.java
index c014dbd01..7d7cd6791 100644
--- a/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducer.java
+++ b/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducer.java
@@ -171,15 +171,6 @@ public class JsfArtifactProducer
{
return FacesContext.getCurrentInstance().getViewRoot();
}
-
- @Produces
- @Named("session")
- @FacesScoped
- public Object getSession()
- {
- return FacesContext.getCurrentInstance().getExternalContext().getSession(false);
- }
-
/*
The spec actually forces us the use producers for "cc" and "component but it leads to a bad performance.
@@ -226,4 +217,29 @@ public class JsfArtifactProducer
return FacesContext.getCurrentInstance().getViewRoot().getViewMap();
}
+
+ /*
+ The spec actually forces us the use producers for "session" and "request" but this conflicts with CDI spec actually,
+ because CDI is responsible for producing HttpServletRequest and HttpSession
+ We will still use ELResolvers for this - see ImplicitObjectResolver#makeResolverForFacesCDI().
+
+ See MYFACES-4432 / MYFACES-4394
+
+ /*
+ @Produces
+ @Named("session")
+ @FacesScoped
+ public Object getSession()
+ {
+ return FacesContext.getCurrentInstance().getExternalContext().getSession(false);
+ }
+ @Produces
+ @Named("request")
+ @FacesScoped
+ public Object getRequest()
+ {
+ return FacesContext.getCurrentInstance().getExternalContext().getRequest();
+ }
+ */
+
}
diff --git a/impl/src/main/java/org/apache/myfaces/el/unified/resolver/implicitobject/ImplicitObjectResolver.java b/impl/src/main/java/org/apache/myfaces/el/unified/resolver/implicitobject/ImplicitObjectResolver.java
index 8822fba57..5dd7e4795 100644
--- a/impl/src/main/java/org/apache/myfaces/el/unified/resolver/implicitobject/ImplicitObjectResolver.java
+++ b/impl/src/main/java/org/apache/myfaces/el/unified/resolver/implicitobject/ImplicitObjectResolver.java
@@ -113,6 +113,13 @@ public class ImplicitObjectResolver extends ELResolver
io = new CompositeComponentImplicitObject();
forFacesCDIList.put(io.getName(), io);
+
+ // see MYFACES-4432 / MYFACES-4394
+ io = new RequestImplicitObject();
+ forFacesCDIList.put(io.getName(), io);
+
+ io = new SessionImplicitObject();
+ forFacesCDIList.put(io.getName(), io);
return new ImplicitObjectResolver(forFacesCDIList);
}