You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2012/08/13 20:47:05 UTC
[4/9] git commit: Add support for deprecated parameters to
DeprecationWarning
Add support for deprecated parameters to DeprecationWarning
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/d5d75031
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/d5d75031
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/d5d75031
Branch: refs/heads/5.4-js-rewrite
Commit: d5d750317194c76b48270dcac05bae202f354927
Parents: 7384c03
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Mon Aug 13 10:51:08 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Mon Aug 13 10:51:08 2012 -0700
----------------------------------------------------------------------
.../compatibility/DeprecationWarningImpl.java | 59 ++++++++++++++-
.../services/compatibility/DeprecationWarning.java | 16 ++++
2 files changed, 74 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d5d75031/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
index 88a84fc..5312432 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
@@ -30,6 +30,39 @@ public class DeprecationWarningImpl implements DeprecationWarning
{
private final Logger logger;
+ static class ParameterDeprecationKey
+ {
+ final String completeId, parameterName;
+
+ ParameterDeprecationKey(String completeId, String parameterName)
+ {
+ this.completeId = completeId;
+ this.parameterName = parameterName;
+ }
+
+ @Override
+ public boolean equals(Object o)
+ {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ParameterDeprecationKey that = (ParameterDeprecationKey) o;
+
+ if (!completeId.equals(that.completeId)) return false;
+ if (!parameterName.equals(that.parameterName)) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int result = completeId.hashCode();
+ result = 31 * result + parameterName.hashCode();
+ return result;
+ }
+ }
+
static class ParameterValueDeprecationKey
{
final String completeId, parameterName;
@@ -76,6 +109,25 @@ public class DeprecationWarningImpl implements DeprecationWarning
}
@Override
+ public void componentParameter(ComponentResources resources, String parameterName, String message)
+ {
+ assert resources != null;
+ assert InternalUtils.isNonBlank(parameterName);
+ assert InternalUtils.isNonBlank(message);
+
+ ParameterDeprecationKey key = new ParameterDeprecationKey(resources.getCompleteId(), parameterName);
+
+ if (deprecations.containsKey(key))
+ {
+ return;
+ }
+
+ deprecations.put(key, true);
+
+ logMessage(resources, parameterName, message);
+ }
+
+ @Override
public void componentParameterValue(ComponentResources resources, String parameterName, Object parameterValue, String message)
{
assert resources != null;
@@ -91,8 +143,13 @@ public class DeprecationWarningImpl implements DeprecationWarning
deprecations.put(key, true);
+ logMessage(resources, parameterName, message);
+ }
+
+ private void logMessage(ComponentResources resources, String parameterName, String message)
+ {
logger.error(String.format("Component %s, parameter %s: %s\n(at %s)",
- key.completeId,
+ resources.getCompleteId(),
parameterName,
message,
resources.getLocation()));
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d5d75031/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
index 7ee616b..b93ee27 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
@@ -23,6 +23,22 @@ import org.apache.tapestry5.ComponentResources;
*/
public interface DeprecationWarning
{
+
+ /**
+ * Used to identify a component parameter that has been deprecated. Typically, such parameters are simply
+ * ignored, but the message should be specific about this.
+ *
+ * @param resources
+ * identifies the component, including its location
+ * @param parameterName
+ * name of the deprecated parameter
+ * @param message
+ * message to display; typically explains what action will be taken, such as simply ignoring the parameter entirely. This should clarify
+ * the issue to the developer, guiding them torwards resolving the deprecation, typically be eliminating
+ * the parameter entirely.
+ */
+ void componentParameter(ComponentResources resources, String parameterName, String message);
+
/**
* Used to identify a specific parameter value that is no longer supported. The first time this combination of
* component, parameter name, and parameter value are provided, an error is logged against this service's