This is an automated email from the ASF dual-hosted git repository.
tv pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/turbine-core.git
The following commit(s) were added to refs/heads/trunk by this push:
new 44f0dfb4 Add some convenience methods to PipelineData
44f0dfb4 is described below
commit 44f0dfb492c486841fc47dbe700535f09a38d9d8
Author: Thomas Vandahl <[email protected]>
AuthorDate: Tue Jan 6 16:01:27 2026 +0100
Add some convenience methods to PipelineData
---
src/java/org/apache/turbine/modules/Screen.java | 6 ++--
.../turbine/modules/actions/AccessController.java | 2 +-
.../sessionvalidator/DefaultSessionValidator.java | 4 +--
.../TemplateSecureSessionValidator.java | 2 +-
.../sessionvalidator/TemplateSessionValidator.java | 4 +--
.../turbine/pipeline/DefaultPipelineData.java | 19 -----------
.../org/apache/turbine/pipeline/PipelineData.java | 38 ++++++++++++++++++++--
.../services/rundata/DefaultTurbineRunData.java | 12 +++----
.../services/rundata/TurbineRunDataService.java | 14 ++++----
src/java/org/apache/turbine/util/RunData.java | 4 +--
10 files changed, 58 insertions(+), 47 deletions(-)
diff --git a/src/java/org/apache/turbine/modules/Screen.java
b/src/java/org/apache/turbine/modules/Screen.java
index 1c0beaa9..56028eee 100644
--- a/src/java/org/apache/turbine/modules/Screen.java
+++ b/src/java/org/apache/turbine/modules/Screen.java
@@ -88,8 +88,7 @@ public interface Screen extends Assembler
*/
default String getLayout(PipelineData pipelineData)
{
- RunData data = pipelineData.getRunData();
- return data.getLayout();
+ return pipelineData.getRunData().getLayout();
}
/**
@@ -100,7 +99,6 @@ public interface Screen extends Assembler
*/
default void setLayout(PipelineData pipelineData, String layout)
{
- RunData data = pipelineData.getRunData();
- data.setLayout(layout);
+ pipelineData.getRunData().setLayout(layout);
}
}
diff --git a/src/java/org/apache/turbine/modules/actions/AccessController.java
b/src/java/org/apache/turbine/modules/actions/AccessController.java
index ee0bca16..7d853cde 100644
--- a/src/java/org/apache/turbine/modules/actions/AccessController.java
+++ b/src/java/org/apache/turbine/modules/actions/AccessController.java
@@ -114,6 +114,6 @@ public class AccessController implements Action
}
// Comply with Turbine 4.0 standards
- pipelineData.get(Turbine.class).put(TurbineAccessControlList.class,
data.getACL());
+ pipelineData.put(Turbine.class, TurbineAccessControlList.class,
data.getACL());
}
}
diff --git
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
index e74db2c2..6ba5d4e8 100644
---
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
+++
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
@@ -20,8 +20,8 @@ package org.apache.turbine.modules.actions.sessionvalidator;
*/
import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.turbine.Turbine;
import org.apache.turbine.TurbineConstants;
import org.apache.turbine.annotation.TurbineConfiguration;
@@ -124,6 +124,6 @@ public class DefaultSessionValidator
handleFormCounterToken(data,true);
// Comply with Turbine 4.0 standards
- pipelineData.get(Turbine.class).put(User.class, data.getUser());
+ pipelineData.put(Turbine.class, User.class, data.getUser());
}
}
diff --git
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
index f5ced84a..85e80bf3 100644
---
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
+++
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
@@ -144,6 +144,6 @@ public class TemplateSecureSessionValidator
}
// Comply with Turbine 4.0 standards
- pipelineData.get(Turbine.class).put(User.class, data.getUser());
+ pipelineData.put(Turbine.class, User.class, data.getUser());
}
}
diff --git
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
index c0f109f6..fc2d0513 100644
---
a/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
+++
b/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
@@ -20,8 +20,8 @@ package org.apache.turbine.modules.actions.sessionvalidator;
*/
import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.turbine.Turbine;
import org.apache.turbine.om.security.User;
import org.apache.turbine.pipeline.PipelineData;
@@ -96,6 +96,6 @@ public class TemplateSessionValidator
}
// Comply with Turbine 4.0 standards
- pipelineData.get(Turbine.class).put(User.class, data.getUser());
+ pipelineData.put(Turbine.class, User.class, data.getUser());
}
}
diff --git a/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
b/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
index 7695acc3..26b81ee9 100644
--- a/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
+++ b/src/java/org/apache/turbine/pipeline/DefaultPipelineData.java
@@ -79,25 +79,6 @@ public class DefaultPipelineData implements PipelineData
return map.get(key);
}
- /**
- * Get a value from the configured map of objects for the given keys
- *
- * @param key the key class
- * @param innerKey the key into the value map
- * @return the inner value or null if no such keys exist
- */
- @Override
- @SuppressWarnings("unchecked")
- public <T> T get(Class<?> key, Class<T> innerKey)
- {
- Map<Class<?>, ? super Object> innerMap = get(key);
- if (innerMap == null)
- {
- return null;
- }
- return (T) innerMap.get(innerKey);
- }
-
/**
* Put object back into RunDataService for recycling
*/
diff --git a/src/java/org/apache/turbine/pipeline/PipelineData.java
b/src/java/org/apache/turbine/pipeline/PipelineData.java
index 37e29b90..ab47d358 100644
--- a/src/java/org/apache/turbine/pipeline/PipelineData.java
+++ b/src/java/org/apache/turbine/pipeline/PipelineData.java
@@ -50,6 +50,24 @@ public interface PipelineData extends AutoCloseable
*/
void put(Class<?> name, Map<Class<?>, ? super Object> value);
+ /**
+ * Convenience method:
+ * Put a value into the pipeline data object
+ *
+ * @param name the key class
+ * @param innerKey the key into the value map
+ * @param value the value
+ */
+ default <T> void put(Class<?> name, Class<T> innerKey, T value)
+ {
+ Map<Class<?>, ? super Object> innerMap = get(name);
+ if (innerMap == null)
+ {
+ throw new TurbineRuntimeException("Inner map does not exist: " +
name);
+ }
+ innerMap.put(innerKey, value);
+ }
+
/**
* Get the configured map of objects for the given key
*
@@ -59,6 +77,7 @@ public interface PipelineData extends AutoCloseable
Map<Class<?>, ? super Object> get(Class<?> name);
/**
+ * Convenience method:
* Get a value from the configured map of objects for the given keys
*
* @param key the key class
@@ -68,14 +87,26 @@ public interface PipelineData extends AutoCloseable
*
* @return the inner value or null if no such keys exist
*/
- <T> T get(Class<?> key, Class<T> innerKey);
+ @SuppressWarnings("unchecked")
+ default <T> T get(Class<?> key, Class<T> innerKey)
+ {
+ Map<Class<?>, ? super Object> innerMap = get(key);
+ if (innerMap == null)
+ {
+ return null;
+ }
+ return (T) innerMap.get(innerKey);
+ }
/**
- * Get a value from the configured map of objects for the given keys
+ * Convenience method:
+ * Get a value from the configured map of objects for the given keys,
+ * compute it if it does not exist
*
* @param key the key class
* @param innerKey the key into the value map
- * @return the inner value or null if no such keys exist
+ * @param mappingFunction the mapping function to calculate the absent
value
+ * @return the inner value or null if no inner map exists
*/
@SuppressWarnings("unchecked")
default <T> T computeIfAbsent(Class<?> key, Class<T> innerKey, Function<?
super Class<?>, T> mappingFunction)
@@ -89,6 +120,7 @@ public interface PipelineData extends AutoCloseable
}
/**
+ * Convenience method:
* Get RunData from PipelineData
*
* @return RunData extracted from PipelineData
diff --git
a/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
b/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
index c7b58828..661b2459 100644
--- a/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
+++ b/src/java/org/apache/turbine/services/rundata/DefaultTurbineRunData.java
@@ -454,7 +454,7 @@ public class DefaultTurbineRunData
@Override
public void setMessage(String msg)
{
- get(Turbine.class).put(StringBuilder.class, new StringBuilder(msg));
+ put(Turbine.class, StringBuilder.class, new StringBuilder(msg));
}
/**
@@ -532,7 +532,7 @@ public class DefaultTurbineRunData
User user = getUserFromSession();
// TODO: Check if this side effect is reasonable
- get(Turbine.class).put(User.class, user);
+ put(Turbine.class, User.class, user);
return (user != null);
}
@@ -546,7 +546,7 @@ public class DefaultTurbineRunData
public void setUser(User user)
{
log.debug("user set: {}", user::getName);
- get(Turbine.class).put(User.class, user);
+ put(Turbine.class, User.class, user);
}
/**
@@ -640,7 +640,7 @@ public class DefaultTurbineRunData
@Override
public void setLocale(Locale locale)
{
- get(Turbine.class).put(Locale.class, locale);
+ put(Turbine.class, Locale.class, locale);
// propagate the locale to the parsers
ParameterParser parameters = getParameterParser();
@@ -681,7 +681,7 @@ public class DefaultTurbineRunData
public void setCharset(Charset charSet)
{
log.debug("setCharset({})", charSet);
- get(Turbine.class).put(Charset.class, charSet);
+ put(Turbine.class, Charset.class, charSet);
}
/**
@@ -825,7 +825,7 @@ public class DefaultTurbineRunData
public void populate()
{
User user = getUserFromSession();
- get(Turbine.class).put(User.class, user);
+ put(Turbine.class, User.class, user);
if (user != null)
{
diff --git
a/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
b/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
index 1aadb487..b4152bcc 100644
--- a/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
+++ b/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
@@ -244,11 +244,11 @@ public class TurbineRunDataService
data = (TurbineRunData) pool.getInstance(runDataClazz);
@SuppressWarnings("unchecked") // ok
ParameterParser pp =
parserService.getParser((Class<ParameterParser>)parameterParserClazz);
- data.get(Turbine.class).put(ParameterParser.class, pp);
+ data.put(Turbine.class, ParameterParser.class, pp);
@SuppressWarnings("unchecked") // ok
CookieParser cp =
parserService.getParser((Class<CookieParser>)cookieParserClazz);
- data.get(Turbine.class).put(CookieParser.class, cp);
+ data.put(Turbine.class, CookieParser.class, cp);
Locale locale = req.getLocale();
@@ -271,15 +271,15 @@ public class TurbineRunDataService
}
// Set the request and response.
- data.get(Turbine.class).put(HttpServletRequest.class, req);
- data.get(Turbine.class).put(HttpServletResponse.class, res);
+ data.put(Turbine.class, HttpServletRequest.class, req);
+ data.put(Turbine.class, HttpServletResponse.class, res);
// Set the servlet configuration.
- data.get(Turbine.class).put(ServletConfig.class, config);
- data.get(Turbine.class).put(ServletContext.class,
config.getServletContext());
+ data.put(Turbine.class, ServletConfig.class, config);
+ data.put(Turbine.class, ServletContext.class,
config.getServletContext());
// Set the ServerData.
- data.get(Turbine.class).put(ServerData.class, new ServerData(req));
+ data.put(Turbine.class, ServerData.class, new ServerData(req));
return data;
}
diff --git a/src/java/org/apache/turbine/util/RunData.java
b/src/java/org/apache/turbine/util/RunData.java
index 750d7bae..dde4d5f1 100644
--- a/src/java/org/apache/turbine/util/RunData.java
+++ b/src/java/org/apache/turbine/util/RunData.java
@@ -362,7 +362,7 @@ public interface RunData extends PipelineData
*/
default void setMessages(FormMessages msgs)
{
- get(Turbine.class).put(FormMessages.class, msgs);
+ put(Turbine.class, FormMessages.class, msgs);
}
/**
@@ -408,7 +408,7 @@ public interface RunData extends PipelineData
*/
default <T extends User> void setUser(T user)
{
- get(Turbine.class).put(User.class, user);
+ put(Turbine.class, User.class, user);
}
/**