You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/04/16 19:27:34 UTC

svn commit: r394518 - in /incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms: JmsMarshaler.java JmsSenderComponent.java

Author: gnodet
Date: Sun Apr 16 10:27:33 2006
New Revision: 394518

URL: http://svn.apache.org/viewcvs?rev=394518&view=rev
Log:
SM-398: The JMSMarshaler class does not verify the JMS properties it creates comply with the JMS specification naming constraints

Modified:
    incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsMarshaler.java
    incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsSenderComponent.java

Modified: incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsMarshaler.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsMarshaler.java?rev=394518&r1=394517&r2=394518&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsMarshaler.java (original)
+++ incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsMarshaler.java Sun Apr 16 10:27:33 2006
@@ -36,6 +36,8 @@
  */
 public class JmsMarshaler {
     private SourceMarshaler sourceMarshaler;
+    
+    private boolean needJavaIdentifiers;
 
     public JmsMarshaler() {
         this(new SourceMarshaler());
@@ -118,6 +120,32 @@
      * By default this includes all suitable typed values
      */
     protected boolean shouldIncludeHeader(NormalizedMessage normalizedMessage, String name, Object value) {
-        return value instanceof String || value instanceof Number || value instanceof Date;
+        return (value instanceof String || value instanceof Number || value instanceof Date) &&
+               (!isNeedJavaIdentifiers() || isJavaIdentifier(name));
     }
+    
+    private static boolean isJavaIdentifier(String s) {
+        int n = s.length();
+        if (n==0) return false;
+        if (!Character.isJavaIdentifierStart(s.charAt(0)))
+            return false;
+        for (int i = 1; i < n; i++)
+            if (!Character.isJavaIdentifierPart(s.charAt(i)))
+                return false;
+        return true;
+      }
+
+    /**
+     * @return Returns the needJavaIdentifiers.
+     */
+    public boolean isNeedJavaIdentifiers() {
+        return needJavaIdentifiers;
+    }
+
+    /**
+     * @param needJavaIdentifiers The needJavaIdentifiers to set.
+     */
+    public void setNeedJavaIdentifiers(boolean needJavaIdentifiers) {
+        this.needJavaIdentifiers = needJavaIdentifiers;
+    }    
 }

Modified: incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsSenderComponent.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsSenderComponent.java?rev=394518&r1=394517&r2=394518&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsSenderComponent.java (original)
+++ incubator/servicemix/trunk/servicemix-components/src/main/java/org/apache/servicemix/components/jms/JmsSenderComponent.java Sun Apr 16 10:27:33 2006
@@ -60,6 +60,20 @@
         this.marshaler = marshaler;
     }
 
+    /**
+     * @return Returns the needJavaIdentifiers.
+     */
+    public boolean isNeedJavaIdentifiers() {
+        return this.marshaler.isNeedJavaIdentifiers();
+    }
+
+    /**
+     * @param needJavaIdentifiers The needJavaIdentifiers to set.
+     */
+    public void setNeedJavaIdentifiers(boolean needJavaIdentifiers) {
+        this.marshaler.setNeedJavaIdentifiers(needJavaIdentifiers);
+    }    
+    
     // Implementation methods
     //-------------------------------------------------------------------------
     protected void process(MessageExchange exchange, final NormalizedMessage inMessage) throws Exception {