summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2012-06-07 17:35:31 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2012-06-07 17:35:31 +0000
commit47584d3e42d04b85a133b834411d405b196ab41d (patch)
treec644a381db72a62403eeacee8c6068fc1c70db61
parent7613e7c400e33482eefe7ea430a92eee5d4ffebf (diff)
downloadqpid-python-47584d3e42d04b85a133b834411d405b196ab41d.tar.gz
QPID-4027 Fixed a bunch errors in converting java types to variant.
The message header stuff are still a bit flaky and needs to polished. git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/address-refactor2@1347733 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/bindings/swig_java_cpp_helper.i17
-rw-r--r--qpid/cpp/bindings/swig_java_typemaps.i4
-rw-r--r--qpid/java/client-api/src/main/java/org/apache/qpid/messaging/Message.java2
-rw-r--r--qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java17
-rw-r--r--qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/TextMessage.java7
-rw-r--r--qpid/java/lib/qpid_cpp_jni.jarbin25216 -> 25863 bytes
6 files changed, 28 insertions, 19 deletions
diff --git a/qpid/cpp/bindings/swig_java_cpp_helper.i b/qpid/cpp/bindings/swig_java_cpp_helper.i
index 7a5fadd843..2e65149609 100644
--- a/qpid/cpp/bindings/swig_java_cpp_helper.i
+++ b/qpid/cpp/bindings/swig_java_cpp_helper.i
@@ -282,39 +282,36 @@ static qpid::types::Variant convertJavaObjectToVariant(JNIEnv* env, jobject obj)
}
else if (env->IsInstanceOf(obj,JAVA_SHORT_CLASS))
{
- uint64_t v = env->CallShortMethod(obj,JAVA_SHORT_VALUE_METHOD);
+ uint16_t v = env->CallShortMethod(obj,JAVA_SHORT_VALUE_METHOD);
result = qpid::types::Variant(v);
}
else if (env->IsInstanceOf(obj,JAVA_BYTE_CLASS))
{
- uint64_t v = env->CallByteMethod(obj,JAVA_BYTE_VALUE_METHOD);
+ uint8_t v = env->CallByteMethod(obj,JAVA_BYTE_VALUE_METHOD);
result = qpid::types::Variant(v);
}
else if (env->IsInstanceOf(obj,JAVA_BOOLEAN_CLASS))
{
- uint64_t v = env->CallBooleanMethod(obj,JAVA_BOOLEAN_VALUE_METHOD);
+ bool v = env->CallBooleanMethod(obj,JAVA_BOOLEAN_VALUE_METHOD);
result = qpid::types::Variant(v);
}
else if (env->IsInstanceOf(obj,JAVA_DOUBLE_CLASS))
{
- uint64_t v = env->CallDoubleMethod(obj,JAVA_DOUBLE_VALUE_METHOD);
+ double v = env->CallDoubleMethod(obj,JAVA_DOUBLE_VALUE_METHOD);
result = qpid::types::Variant(v);
}
else if (env->IsInstanceOf(obj,JAVA_FLOAT_CLASS))
{
- uint64_t v = env->CallFloatMethod(obj,JAVA_FLOAT_VALUE_METHOD);
+ float v = env->CallFloatMethod(obj,JAVA_FLOAT_VALUE_METHOD);
result = qpid::types::Variant(v);
}
else
{
env->ThrowNew(JAVA_ILLEGAL_ARGUMENT_EXP,"Only primitive types and strings are allowed");
- return 0;
}
- if (checkAndThrowJNILaylerException(env,"Exception occured when converting Java object to Variant"))
- {
- return 0;
- }
+ checkAndThrowJNILaylerException(env,"Exception occured when converting Java object to Variant");
+
return result;
}
%}
diff --git a/qpid/cpp/bindings/swig_java_typemaps.i b/qpid/cpp/bindings/swig_java_typemaps.i
index f6282c5aaa..430b9d18c9 100644
--- a/qpid/cpp/bindings/swig_java_typemaps.i
+++ b/qpid/cpp/bindings/swig_java_typemaps.i
@@ -109,7 +109,7 @@
}
%typemap(out) qpid::types::Variant::Map& {
- if ($1->size() == 0)
+ if ($1->empty())
{
jresult = 0;
}
@@ -126,7 +126,7 @@
/* -- qpid::types::Variant& -- */
%typemap(in) (const qpid::types::Variant&) {
qpid::types::Variant v = convertJavaObjectToVariant(jenv,$input);
- if (v)
+ if (!v.isVoid())
{
$1 = new qpid::types::Variant(v);
}
diff --git a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/Message.java b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/Message.java
index 6d08a43fbb..0f3eb6d6f6 100644
--- a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/Message.java
+++ b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/Message.java
@@ -72,5 +72,5 @@ public interface Message
public Map<String, Object> getProperties();
- public void setProperties(Map<String, Object> properties);
+ public void setProperty(String key, Object value);
}
diff --git a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java
index c4caf11975..5214a66caf 100644
--- a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java
+++ b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java
@@ -17,6 +17,8 @@
*/
package org.apache.qpid.messaging.cpp;
+import java.util.Map;
+
import org.apache.qpid.messaging.Connection;
import org.apache.qpid.messaging.ConnectionFactory;
import org.apache.qpid.messaging.Message;
@@ -32,7 +34,7 @@ public class CppTest
con.open();
Session ssn = con.createSession("hello");
System.out.println("Got a session object " + ssn);
-
+
Sender sender = ssn.createSender("amq.topic/test");
System.out.println("Got a Sender object " + sender);
@@ -40,10 +42,21 @@ public class CppTest
System.out.println("Got a Receiver object " + receiver);
Message msg = new TextMessage("Hello World");
+ msg.setProperty("color", "blue");
+ msg.setProperty("price", 5);
+ msg.setProperty("boolean", true);
sender.send(msg, false);
TextMessage m = (TextMessage) receiver.fetch(0);
+
System.out.println("Received message " + m + " with content type : " + m.getContentType() + " and content : " + m.getContent());
-
+
+ Map<String,Object> props = m.getProperties();
+ if (props != null)
+ {
+ //System.out.println("Color : " + m.getProperties().get("color"));
+ System.out.println("Price : " + props.get("price"));
+ }
+
ssn.close();
con.close();
}
diff --git a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/TextMessage.java b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/TextMessage.java
index 1a6644b77c..0ee90e3339 100644
--- a/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/TextMessage.java
+++ b/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/TextMessage.java
@@ -192,14 +192,13 @@ public class TextMessage implements org.apache.qpid.messaging.Message
@Override
public Map<String, Object> getProperties()
{
- // TODO Auto-generated method stub
- return null;
+ return _cppMessage.getProperties();
}
@Override
- public void setProperties(Map<String, Object> properties)
+ public void setProperty(String key, Object value)
{
- // TODO Auto-generated method stub
+ _cppMessage.setProperty(key, value);
}
protected org.apache.qpid.messaging.cpp.jni.Message getCppMessage()
diff --git a/qpid/java/lib/qpid_cpp_jni.jar b/qpid/java/lib/qpid_cpp_jni.jar
index f607fd0460..c37f753cfc 100644
--- a/qpid/java/lib/qpid_cpp_jni.jar
+++ b/qpid/java/lib/qpid_cpp_jni.jar
Binary files differ