[java-opensaml COMMIT] in /trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging: decoder/AbstractMessage...

noreply at shibboleth.net noreply at shibboleth.net
Fri Mar 16 13:25:17 GMT 2012


Author: lajoie
Date: Fri Mar 16 13:25:17 2012
New Revision: 2954

URL: http://svn.shibboleth.net/view/java-opensaml?rev=2954&view=rev
Log:
Leverage some of the component new helpers within java-support

Modified:
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/AbstractMessageDecoder.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/AbstractMessageEncoder.java
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/AbstractHttpServletResponseMessageEncoder.java

Modified: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/AbstractMessageDecoder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/AbstractMessageDecoder.java?rev=2954&r1=2953&r2=2954&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/AbstractMessageDecoder.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/AbstractMessageDecoder.java Fri Mar 16 13:25:17 2012
@@ -17,7 +17,8 @@
 
 package org.opensaml.messaging.decoder;
 
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
+import net.shibboleth.utilities.java.support.component.AbstractDestructableInitializableComponent;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.component.UnmodifiableComponent;
 
 import org.opensaml.messaging.context.MessageContext;
@@ -27,7 +28,7 @@
  * 
  * @param <MessageType> the message type of the message context on which to operate
  */
-public abstract class AbstractMessageDecoder<MessageType> extends AbstractInitializableComponent implements
+public abstract class AbstractMessageDecoder<MessageType> extends AbstractDestructableInitializableComponent implements
         MessageDecoder<MessageType>, UnmodifiableComponent {
 
     /** Message context. */
@@ -38,11 +39,6 @@
         return messageContext;
     }
 
-    /** {@inheritDoc} */
-    public void destroy() {
-        // Default implementation is a no-op
-    }
-
     /**
      * Set the message context.
      * 
@@ -51,4 +47,27 @@
     protected void setMessageContext(MessageContext<MessageType> context) {
         messageContext = context;
     }
+
+    /** {@inheritDoc} */
+    public void decode() throws MessageDecodingException {
+        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+
+        doDecode();
+    }
+    
+    /** {@inheritDoc} */
+    protected void doDestroy() {
+        messageContext = null;
+        
+        super.doDestroy();
+    }
+
+    /**
+     * Performs the decoding logic. By the time this is called, this decoder has already been initialized and checked to
+     * ensure that it has not been destroyed.
+     * 
+     * @throws MessageDecodingException thrown if there is a problem decoding the message
+     */
+    protected abstract void doDecode() throws MessageDecodingException;
 }

Modified: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java?rev=2954&r1=2953&r2=2954&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java (original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/decoder/servlet/AbstractHttpServletRequestMessageDecoder.java Fri Mar 16 13:25:17 2012
@@ -20,7 +20,7 @@
 import javax.servlet.http.HttpServletRequest;
 
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.UnmodifiableComponentException;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
 
 import org.opensaml.messaging.decoder.AbstractMessageDecoder;
 
@@ -42,10 +42,17 @@
 
     /** {@inheritDoc} */
     public synchronized void setHttpServletRequest(HttpServletRequest servletRequest) {
-        if (isInitialized()) {
-            throw new UnmodifiableComponentException("Servlet request can not be changed once decoder is initialized");
-        }
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+
         request = servletRequest;
+    }
+    
+    /** {@inheritDoc} */
+    protected void doDestroy() {
+        request = null;
+        
+        super.doDestroy();
     }

[... 114 lines stripped ...]


More information about the commits mailing list