Updated Branches:
  refs/heads/trunk d2b08c051 -> 06bac93f2

CoAP code and javadoc cleanup


Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/06bac93f
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/06bac93f
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/06bac93f

Branch: refs/heads/trunk
Commit: 06bac93f213a12dc00c4d708cb7c59a14acafc31
Parents: d2b08c0
Author: jvermillard <[email protected]>
Authored: Sat May 11 19:23:52 2013 +0200
Committer: jvermillard <[email protected]>
Committed: Sat May 11 19:23:52 2013 +0200

----------------------------------------------------------------------
 .../java/org/apache/mina/coap/CoapMessage.java     |   32 +++++++++++++-
 .../main/java/org/apache/mina/coap/CoapOption.java |   17 +++++++-
 .../java/org/apache/mina/coap/CoapOptionType.java  |    3 +
 .../java/org/apache/mina/coap/MessageType.java     |    3 +
 .../org/apache/mina/coap/codec/CoapDecoder.java    |    4 +-
 .../org/apache/mina/coap/codec/CoapEncoder.java    |    2 +
 .../org/apache/mina/coap/codec/TestMessages.java   |   10 ++--
 .../apache/mina/examples/coap/CoapGetServer.java   |    4 +-
 8 files changed, 63 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/coap/src/main/java/org/apache/mina/coap/CoapMessage.java
----------------------------------------------------------------------
diff --git a/coap/src/main/java/org/apache/mina/coap/CoapMessage.java 
b/coap/src/main/java/org/apache/mina/coap/CoapMessage.java
index a26e12d..ff278fc 100644
--- a/coap/src/main/java/org/apache/mina/coap/CoapMessage.java
+++ b/coap/src/main/java/org/apache/mina/coap/CoapMessage.java
@@ -22,9 +22,15 @@ package org.apache.mina.coap;
 import java.util.Arrays;
 import java.util.Comparator;
 
+/**
+ * A representation of CoAP message following the CoAP RFC.
+ * 
+ * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
+ */
 public class CoapMessage {
 
-    private final static byte[] EMPTY_BYTE_ARRAY = new byte[] {};
+    private static final byte[] EMPTY_BYTE_ARRAY = new byte[] {};
+
     private final int version;
     private final MessageType type;
     private final int code;
@@ -33,8 +39,19 @@ public class CoapMessage {
     private final byte[] payload;
     private final CoapOption[] options;
 
-    public CoapMessage(int version, MessageType type, int code, int id, byte[] 
token, byte[] payload,
-            CoapOption[] options) {
+    /**
+     * Create a CoAP message
+     * 
+     * @param version the version (you probably want 1 here)
+     * @param type the type of CoAP message
+     * @param code the message code : {@link CoapCode}
+     * @param id the identifier for this message
+     * @param token the message token (can be <code>null</code>)
+     * @param options list of options for this message (can be 
<code>null</code>)
+     * @param payload the payload of the message (can be <code>null</code>
+     */
+    public CoapMessage(int version, MessageType type, int code, int id, byte[] 
token, CoapOption[] options,
+            byte[] payload) {
         super();
         this.version = version;
         this.type = type;
@@ -83,6 +100,9 @@ public class CoapMessage {
         return type;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
@@ -93,6 +113,9 @@ public class CoapMessage {
         return builder.toString();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -107,6 +130,9 @@ public class CoapMessage {
         return result;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public boolean equals(Object obj) {
         if (this == obj)

http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/coap/src/main/java/org/apache/mina/coap/CoapOption.java
----------------------------------------------------------------------
diff --git a/coap/src/main/java/org/apache/mina/coap/CoapOption.java 
b/coap/src/main/java/org/apache/mina/coap/CoapOption.java
index 941ec8a..a2efa82 100644
--- a/coap/src/main/java/org/apache/mina/coap/CoapOption.java
+++ b/coap/src/main/java/org/apache/mina/coap/CoapOption.java
@@ -31,10 +31,16 @@ public class CoapOption {
     private final CoapOptionType type;
     private final byte[] data;
 
+    /**
+     * Create a CoAP option
+     * 
+     * @param type the type of the option
+     * @param data the content of the option
+     */
     public CoapOption(CoapOptionType type, byte[] data) {
         super();
         this.type = type;
-        this.data = data;
+        this.data = Arrays.copyOf(data, data.length);
     }
 
     public CoapOptionType getType() {
@@ -45,6 +51,9 @@ public class CoapOption {
         return data;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
@@ -52,6 +61,9 @@ public class CoapOption {
         return builder.toString();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -61,6 +73,9 @@ public class CoapOption {
         return result;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public boolean equals(Object obj) {
         if (this == obj)

http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/coap/src/main/java/org/apache/mina/coap/CoapOptionType.java
----------------------------------------------------------------------
diff --git a/coap/src/main/java/org/apache/mina/coap/CoapOptionType.java 
b/coap/src/main/java/org/apache/mina/coap/CoapOptionType.java
index b6626c8..993ae58 100644
--- a/coap/src/main/java/org/apache/mina/coap/CoapOptionType.java
+++ b/coap/src/main/java/org/apache/mina/coap/CoapOptionType.java
@@ -34,6 +34,9 @@ public enum CoapOptionType {
         this.code = code;
     }
 
+    /**
+     * @return the numeric code for this option type
+     */
     public int getCode() {
         return code;
     }

http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/coap/src/main/java/org/apache/mina/coap/MessageType.java
----------------------------------------------------------------------
diff --git a/coap/src/main/java/org/apache/mina/coap/MessageType.java 
b/coap/src/main/java/org/apache/mina/coap/MessageType.java
index 5fad5ef..e24d70e 100644
--- a/coap/src/main/java/org/apache/mina/coap/MessageType.java
+++ b/coap/src/main/java/org/apache/mina/coap/MessageType.java
@@ -39,6 +39,9 @@ public enum MessageType {
         this.code = code;
     }
 
+    /**
+     * @return the numeric code for this message type
+     */
     public int getCode() {
         return code;
     }

http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/coap/src/main/java/org/apache/mina/coap/codec/CoapDecoder.java
----------------------------------------------------------------------
diff --git a/coap/src/main/java/org/apache/mina/coap/codec/CoapDecoder.java 
b/coap/src/main/java/org/apache/mina/coap/codec/CoapDecoder.java
index 7be4c90..19b6f7e 100644
--- a/coap/src/main/java/org/apache/mina/coap/codec/CoapDecoder.java
+++ b/coap/src/main/java/org/apache/mina/coap/codec/CoapDecoder.java
@@ -36,6 +36,8 @@ import org.slf4j.LoggerFactory;
 /**
  * Decoder CoAP messages from the ByteBuffer of a received UDP Datagram.
  * 
+ * Decode {@link ByteBuffer} into {@link CoapMessage}.
+ * 
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public class CoapDecoder implements StatelessProtocolDecoder<ByteBuffer, 
CoapMessage> {
@@ -125,7 +127,7 @@ public class CoapDecoder implements 
StatelessProtocolDecoder<ByteBuffer, CoapMes
         if (input.hasRemaining()) {
             throw new ProtocolDecoderException("trailling " + 
input.remaining() + " bytes in the UDP datagram");
         }
-        return new CoapMessage(version, type, code, id, token, payload, 
options.toArray(EMPTY_OPTION));
+        return new CoapMessage(version, type, code, id, token, 
options.toArray(EMPTY_OPTION), payload);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/coap/src/main/java/org/apache/mina/coap/codec/CoapEncoder.java
----------------------------------------------------------------------
diff --git a/coap/src/main/java/org/apache/mina/coap/codec/CoapEncoder.java 
b/coap/src/main/java/org/apache/mina/coap/codec/CoapEncoder.java
index f24fb1b..3018a6f 100644
--- a/coap/src/main/java/org/apache/mina/coap/codec/CoapEncoder.java
+++ b/coap/src/main/java/org/apache/mina/coap/codec/CoapEncoder.java
@@ -31,6 +31,8 @@ import org.slf4j.LoggerFactory;
 /**
  * Encode a CoAP message following the RFC.
  * 
+ * Encode {@link CoapMessage} into {@link ByteBuffer}
+ * 
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public class CoapEncoder implements StatelessProtocolEncoder<CoapMessage, 
ByteBuffer> {

http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/coap/src/test/java/org/apache/mina/coap/codec/TestMessages.java
----------------------------------------------------------------------
diff --git a/coap/src/test/java/org/apache/mina/coap/codec/TestMessages.java 
b/coap/src/test/java/org/apache/mina/coap/codec/TestMessages.java
index 3cd676e..c3418eb 100644
--- a/coap/src/test/java/org/apache/mina/coap/codec/TestMessages.java
+++ b/coap/src/test/java/org/apache/mina/coap/codec/TestMessages.java
@@ -36,22 +36,22 @@ public interface TestMessages {
     public static final String NO_CONTENT_NO_OPTION_HEX = "600104D2";
 
     public static final CoapMessage SOME_CONTENT_NO_OPTION = new 
CoapMessage(1, MessageType.CONFIRMABLE, 1, 1234,
-            "token".getBytes(), "some rather large payload".getBytes(), null);
+            "token".getBytes(), null, "some rather large payload".getBytes());
 
     public static final String SOME_CONTENT_NO_OPTION_HEX = 
"450104D2746F6B656EFF736F6D6520726174686572206C61726765207061796C6F6164";
 
     public static final CoapMessage PAYLOAD_AND_ONE_OPTION = new 
CoapMessage(1, MessageType.NON_CONFIRMABLE, 1, 1234,
-            "toto".getBytes(), new byte[] {}, new CoapOption[] { new 
CoapOption(CoapOptionType.URI_PATH,
-                    "coap://blabla".getBytes()) });
+            "toto".getBytes(), new CoapOption[] { new 
CoapOption(CoapOptionType.URI_PATH,
+                    "coap://blabla".getBytes()) }, new byte[] {});
 
     public static final String PAYLOAD_AND_ONE_OPTION_HEX = 
"540104D2746F746FBD00636F61703A2F2F626C61626C61";
 
     public static final CoapMessage PAYLOAD_AND_MULTIPLE_OPTION = new 
CoapMessage(1, MessageType.NON_CONFIRMABLE, 1,
-            1234, "toto".getBytes(), new byte[] {}, new CoapOption[] { //
+            1234, "toto".getBytes(), new CoapOption[] { //
             new CoapOption(CoapOptionType.URI_PATH, 
"coap://blabla".getBytes()), //
                                     new 
CoapOption(CoapOptionType.LOCATION_QUERY, "somewhere".getBytes()), //
                                     new CoapOption(CoapOptionType.PROXY_URI, 
"http://proxyuri".getBytes()), //
-                                    new CoapOption(CoapOptionType.MAX_AGE, 
"bleh".getBytes()) });
+                                    new CoapOption(CoapOptionType.MAX_AGE, 
"bleh".getBytes()) }, new byte[] {});
 
     public static final String PAYLOAD_AND_MULTIPLE_OPTION_HEX = 
"540104D2746F746FBD00636F61703A2F2F626C61626C6134626C656869736F6D657768657265DD0202687474703A2F2F70726F7879757269";//
 
"540104D2746F746FBD00636F61703A2F2F626C61626C6134626C656869736F6D657768657265DD02687474703A2F2F70726F7879757269";
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/06bac93f/examples/src/main/java/org/apache/mina/examples/coap/CoapGetServer.java
----------------------------------------------------------------------
diff --git 
a/examples/src/main/java/org/apache/mina/examples/coap/CoapGetServer.java 
b/examples/src/main/java/org/apache/mina/examples/coap/CoapGetServer.java
index 31c7fde..4a87b99 100644
--- a/examples/src/main/java/org/apache/mina/examples/coap/CoapGetServer.java
+++ b/examples/src/main/java/org/apache/mina/examples/coap/CoapGetServer.java
@@ -90,8 +90,8 @@ public class CoapGetServer {
 
                     // let's confirm it
                     CoapMessage response = new CoapMessage(1, MessageType.ACK, 
CoapCode.CONTENT.getCode(), msg.getId(),
-                            msg.getToken(), "hello coap !".getBytes(), new 
CoapOption[] { new CoapOption(
-                                    CoapOptionType.CONTENT_FORMAT, new byte[] 
{ 0 }) });
+                            msg.getToken(), new CoapOption[] { new CoapOption(
+                                    CoapOptionType.CONTENT_FORMAT, new byte[] 
{ 0 }) }, "hello coap !".getBytes());
                     session.write(response);
                 }
             }

Reply via email to