You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/05/10 03:58:47 UTC

svn commit: r1336469 - /camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpConverters.java

Author: ningjiang
Date: Thu May 10 01:58:47 2012
New Revision: 1336469

URL: http://svn.apache.org/viewvc?rev=1336469&view=rev
Log:
CAMEL-5255 Add all SNMPv1 TRAP PDU information to message body for camel-snmp component

Modified:
    camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpConverters.java

Modified: camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpConverters.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpConverters.java?rev=1336469&r1=1336468&r2=1336469&view=diff
==============================================================================
--- camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpConverters.java (original)
+++ camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpConverters.java Thu May 10 01:58:47 2012
@@ -21,6 +21,7 @@ import java.util.StringTokenizer;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
 import org.snmp4j.PDU;
+import org.snmp4j.PDUv1;
 import org.snmp4j.smi.OID;
 import org.snmp4j.smi.VariableBinding;
 
@@ -67,6 +68,14 @@ public final class SnmpConverters {
         return list;
     }
 
+    private static void entryAppend(StringBuilder sb, String tag, String value) {
+        sb.append(ENTRY_TAG_OPEN);
+        sb.append("<" + tag + ">");
+        sb.append(value);
+        sb.append("</" + tag + ">");
+        sb.append(ENTRY_TAG_CLOSE);
+    }
+
     /**
      * Converts the given snmp pdu to a String body.
      *
@@ -79,7 +88,21 @@ public final class SnmpConverters {
         StringBuilder sb = new StringBuilder();
 
         // prepare the header
-        sb.append(SNMP_TAG_OPEN);
+        if (pdu.getType() == PDU.V1TRAP) {
+            sb.append("<" + SNMP_TAG + " messageType=\"v1\">");
+        } else {
+            sb.append(SNMP_TAG_OPEN);
+        }
+
+        // Extract SNMPv1 specific variables
+        if (pdu.getType() == PDU.V1TRAP) {
+            PDUv1 v1pdu = (PDUv1) pdu;
+            entryAppend(sb, "enterprise", v1pdu.getEnterprise().toString());
+            entryAppend(sb, "agent-addr", v1pdu.getAgentAddress().toString());
+            entryAppend(sb, "generic-trap", Integer.toString(v1pdu.getGenericTrap()));
+            entryAppend(sb, "specific-trap", Integer.toString(v1pdu.getSpecificTrap()));
+            entryAppend(sb, "time-stamp", Long.toString(v1pdu.getTimestamp()));
+        }
 
         // now loop all variables of the response
         for (Object o : pdu.getVariableBindings()) {