From 724818cde281e8560798e207709ba9566218a3eb Mon Sep 17 00:00:00 2001 From: Tomaz Cerar Date: Mon, 1 Oct 2012 17:44:45 +0200 Subject: [PATCH] AS7-5112 - log if deprecated attributes are used --- .../jboss/as/controller/AttributeDefinition.java | 3 +++ .../org/jboss/as/controller/ControllerLogger.java | 15 +++++++++++---- .../as/controller/SimpleAttributeDefinition.java | 10 +++++++++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/controller/src/main/java/org/jboss/as/controller/AttributeDefinition.java b/controller/src/main/java/org/jboss/as/controller/AttributeDefinition.java index 2d2b702ebf30..6953fbd384e5 100644 --- a/controller/src/main/java/org/jboss/as/controller/AttributeDefinition.java +++ b/controller/src/main/java/org/jboss/as/controller/AttributeDefinition.java @@ -210,6 +210,9 @@ public ModelNode validateOperation(final ModelNode operationObject) throws Opera * @throws OperationFailedException if the value is not valid */ public final void validateAndSet(ModelNode operationObject, final ModelNode model) throws OperationFailedException { + if (isDeprecated()){ + ControllerLogger.DEPRECATED_LOGGER.attributeDeprecated(getName()); + } final ModelNode newValue = correctValue(operationObject.get(name), model.get(name)); if (!newValue.equals(operationObject.get(name))) { operationObject.get(name).set(newValue); diff --git a/controller/src/main/java/org/jboss/as/controller/ControllerLogger.java b/controller/src/main/java/org/jboss/as/controller/ControllerLogger.java index a1fdfdfc048e..cddba6b72c50 100644 --- a/controller/src/main/java/org/jboss/as/controller/ControllerLogger.java +++ b/controller/src/main/java/org/jboss/as/controller/ControllerLogger.java @@ -27,17 +27,15 @@ import java.io.Closeable; import java.net.InetAddress; -import java.net.NetworkInterface; import java.util.Set; - import javax.xml.stream.XMLStreamWriter; import org.jboss.dmr.ModelNode; import org.jboss.logging.BasicLogger; -import org.jboss.logging.annotations.Cause; -import org.jboss.logging.annotations.LogMessage; import org.jboss.logging.Logger; import org.jboss.logging.Logger.Level; +import org.jboss.logging.annotations.Cause; +import org.jboss.logging.annotations.LogMessage; import org.jboss.logging.annotations.Message; import org.jboss.logging.annotations.MessageLogger; @@ -76,6 +74,11 @@ public interface ControllerLogger extends BasicLogger { */ ControllerLogger SERVER_MANAGEMENT_LOGGER = Logger.getMessageLogger(ControllerLogger.class, "org.jboss.server.management"); + /** + * A logger for logging deprecated resources usage + */ + ControllerLogger DEPRECATED_LOGGER = Logger.getMessageLogger(ControllerLogger.class, ControllerLogger.class.getPackage().getName() + ".management-deprecated"); + /** * Logs a warning message indicating the address, represented by the {@code address} parameter, could not be * resolved, so cannot match it to any InetAddress. @@ -388,4 +391,8 @@ public interface ControllerLogger extends BasicLogger { @LogMessage(level = Level.WARN) @Message(id = 14626, value = "Operation was interrupted before stability could be reached") void interruptedWaitingStability(); + + @LogMessage(level = Level.INFO) + @Message(id = 14627, value = "Attribute %s is deprecated, and it might be removed in future version!") + void attributeDeprecated(String name); } diff --git a/controller/src/main/java/org/jboss/as/controller/SimpleAttributeDefinition.java b/controller/src/main/java/org/jboss/as/controller/SimpleAttributeDefinition.java index 8fc09f8ac283..ce4324121625 100644 --- a/controller/src/main/java/org/jboss/as/controller/SimpleAttributeDefinition.java +++ b/controller/src/main/java/org/jboss/as/controller/SimpleAttributeDefinition.java @@ -268,6 +268,9 @@ public void marshallAsAttribute(final ModelNode resourceModel, final XMLStreamWr * @throws javax.xml.stream.XMLStreamException if {@code writer} throws an exception */ public void marshallAsAttribute(final ModelNode resourceModel, final boolean marshallDefault, final XMLStreamWriter writer) throws XMLStreamException { + if (isDeprecated()) { + ControllerLogger.DEPRECATED_LOGGER.attributeDeprecated(getName()); + } attributeMarshaller.marshallAsAttribute(this,resourceModel,marshallDefault,writer); } @@ -277,11 +280,16 @@ public void marshallAsAttribute(final ModelNode resourceModel, final boolean mar * This implementation marshalls the attribute value as text content of the element. */ public void marshallAsElement(final ModelNode resourceModel, final boolean marshallDefault, final XMLStreamWriter writer) throws XMLStreamException { + if (isDeprecated()) { + ControllerLogger.DEPRECATED_LOGGER.attributeDeprecated(getName()); + } attributeMarshaller.marshallAsElement(this,resourceModel,marshallDefault,writer); } private ModelNode parse(final String value) throws OperationFailedException { - + if (isDeprecated()) { + ControllerLogger.DEPRECATED_LOGGER.attributeDeprecated(getName()); + } final String trimmed = value == null ? null : value.trim(); ModelNode node; if (trimmed != null ) {