Author: rajith
Date: Fri Jun 15 17:20:12 2012
New Revision: 1350700

URL: http://svn.apache.org/viewvc?rev=1350700&view=rev
Log:
QPID-4027 Continuing to fill in the blanks for the CPP implementation.
Changed the JNILayerException to extend the MessagingException.

Modified:
    
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnection.java
    
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnectionFactory.java
    
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppSession.java
    
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java
    
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/JNILayerException.java

Modified: 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnection.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnection.java?rev=1350700&r1=1350699&r2=1350700&view=diff
==============================================================================
--- 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnection.java
 (original)
+++ 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnection.java
 Fri Jun 15 17:20:12 2012
@@ -18,54 +18,58 @@
 package org.apache.qpid.messaging.cpp;
 
 import org.apache.qpid.messaging.Connection;
+import org.apache.qpid.messaging.MessagingException;
 import org.apache.qpid.messaging.Session;
 
+/**
+ *  This class relies on the ConnectionManagementDecorator for
+ *  management and synchronized access to it's resources.
+ *  This class is merely a delegate/wrapper for the,
+ *  underlying c++ connection object.
+ */
 public class CppConnection implements Connection
 {
     private org.apache.qpid.messaging.cpp.jni.Connection _cppConn;
-    
+
     public CppConnection(String url)
     {
         _cppConn = new org.apache.qpid.messaging.cpp.jni.Connection(url);
     }
 
     @Override
-    public void open()
+    public void open() throws MessagingException
     {
         _cppConn.open();
     }
 
     @Override
-    public boolean isOpen()
+    public boolean isOpen() throws MessagingException
     {
-        // TODO Auto-generated method stub
-        return false;
+        return _cppConn.isOpen();
     }
 
     @Override
-    public void close()
+    public void close() throws MessagingException
     {
         _cppConn.close();
+        _cppConn.delete(); //clean up the c++ object
     }
 
     @Override
-    public Session createSession(String name)
+    public Session createSession(String name) throws MessagingException
     {
-        return new CppSession(_cppConn.createSession());
+        return new CppSession(this,_cppConn.createSession());
     }
 
     @Override
-    public Session createTransactionalSession(String name)
+    public Session createTransactionalSession(String name) throws 
MessagingException
     {
-        // TODO Auto-generated method stub
-        return null;
+        return new CppSession(this,_cppConn.createTransactionalSession());
     }
 
     @Override
-    public String getAuthenticatedUsername()
+    public String getAuthenticatedUsername() throws MessagingException
     {
-        // TODO Auto-generated method stub
-        return null;
+        return _cppConn.getAuthenticatedUsername();
     }
-
 }

Modified: 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnectionFactory.java?rev=1350700&r1=1350699&r2=1350700&view=diff
==============================================================================
--- 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnectionFactory.java
 (original)
+++ 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppConnectionFactory.java
 Fri Jun 15 17:20:12 2012
@@ -19,30 +19,26 @@ package org.apache.qpid.messaging.cpp;
 
 import org.apache.qpid.messaging.Connection;
 import org.apache.qpid.messaging.ConnectionFactory;
+import org.apache.qpid.messaging.util.ConnectionManagementDecorator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class CppConnectionFactory extends ConnectionFactory
 {
     private static final Logger _logger = 
LoggerFactory.getLogger(CppConnectionFactory.class);
-    
+
     static 
     {
         System.loadLibrary("cqpid_java");
         _logger.info("native qpid library was loaded sucessfully");
     }
-    
+
     public CppConnectionFactory()
     {        
     }
 
-    public Connection create(String url)
-    {
-        return new CppConnection(url);
-    }
-
     public Connection createConnection(String url)
     {
-        return create(url);
+        return new ConnectionManagementDecorator(new CppConnection(url));
     }
 }

Modified: 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppSession.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppSession.java?rev=1350700&r1=1350699&r2=1350700&view=diff
==============================================================================
--- 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppSession.java
 (original)
+++ 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppSession.java
 Fri Jun 15 17:20:12 2012
@@ -20,104 +20,106 @@ package org.apache.qpid.messaging.cpp;
 import org.apache.qpid.messaging.Address;
 import org.apache.qpid.messaging.Connection;
 import org.apache.qpid.messaging.Message;
+import org.apache.qpid.messaging.MessagingException;
 import org.apache.qpid.messaging.Receiver;
 import org.apache.qpid.messaging.Sender;
 import org.apache.qpid.messaging.Session;
 
+/**
+ *  This class relies on the SessionManagementDecorator for
+ *  management and synchronized access to it's resources.
+ *  This class is merely a delegate/wrapper for the,
+ *  underlying c++ session object.
+ */
 public class CppSession implements Session
 {
-    org.apache.qpid.messaging.cpp.jni.Session _cppSession;
-    
-    public CppSession(org.apache.qpid.messaging.cpp.jni.Session cppSsn)
+    private org.apache.qpid.messaging.cpp.jni.Session _cppSession;
+    private CppConnection _conn;
+
+    public CppSession(CppConnection conn,
+            org.apache.qpid.messaging.cpp.jni.Session cppSsn)
     {
         _cppSession = cppSsn;
+        _conn = conn;
     }
-    
+
 
     @Override
     public boolean isClosed()
     {
-        return false;
+        return _cppSession.hasError();
     }
 
     @Override
-    public void close()
+    public void close() throws MessagingException
     {
         _cppSession.close();
+        _cppSession.delete(); // delete c++ object.
     }
 
     @Override
-    public void commit()
+    public void commit() throws MessagingException
     {
-        // TODO Auto-generated method stub
-
+        _cppSession.commit();
     }
 
     @Override
     public void rollback()
     {
-        // TODO Auto-generated method stub
-
+        _cppSession.rollback();
     }
 
     @Override
-    public void acknowledge(boolean sync)
+    public void acknowledge(boolean sync) throws MessagingException
     {
-        // TODO Auto-generated method stub
-
+        _cppSession.acknowledge(sync);
     }
 
     @Override
-    public <T> void acknowledge(Message message, boolean sync)
+    public void acknowledge(Message message, boolean sync) throws 
MessagingException
     {
-        // TODO Auto-generated method stub
-
+        
_cppSession.acknowledge((org.apache.qpid.messaging.cpp.jni.Message)message, 
sync);
     }
 
     @Override
-    public <T> void reject(Message message)
+    public void reject(Message message) throws MessagingException
     {
-        // TODO Auto-generated method stub
-
+        _cppSession.reject((org.apache.qpid.messaging.cpp.jni.Message)message);
     }
 
     @Override
-    public <T> void release(Message message)
+    public void release(Message message) throws MessagingException
     {
-        // TODO Auto-generated method stub
-
+        
_cppSession.release((org.apache.qpid.messaging.cpp.jni.Message)message);
     }
 
     @Override
-    public void sync(boolean block)
+    public void sync(boolean block) throws MessagingException
     {
-        // TODO Auto-generated method stub
-
+        _cppSession.sync(block);
     }
 
     @Override
-    public int getReceivable()
+    public int getReceivable() throws MessagingException
     {
-        // TODO Auto-generated method stub
-        return 0;
+        return _cppSession.getReceivable();
     }
 
     @Override
-    public int getUnsettledAcks()
+    public int getUnsettledAcks() throws MessagingException
     {
-        // TODO Auto-generated method stub
-        return 0;
+        return _cppSession.getUnsettledAcks();
     }
 
     @Override
-    public Receiver nextReceiver(long timeout)
+    public Receiver nextReceiver(long timeout) throws MessagingException
     {
-        // TODO Auto-generated method stub
-        return null;
+        // This is not correct ..need to revist
+        return new CppReceiver(_cppSession.nextReceiver(new 
org.apache.qpid.messaging.cpp.jni.Duration(timeout)));
     }
 
     @Override
-    public Sender createSender(Address address)
+    public Sender createSender(Address address) throws MessagingException
     {        
         return new CppSender(_cppSession
                 .createSender(new org.apache.qpid.messaging.cpp.jni.Address(
@@ -125,29 +127,43 @@ public class CppSession implements Sessi
     }
 
     @Override
-    public Sender createSender(String address)
+    public Sender createSender(String address) throws MessagingException
     {
         return new CppSender(_cppSession.createSender(address));
     }
 
     @Override
-    public Receiver createReceiver(Address address)
+    public Receiver createReceiver(Address address) throws MessagingException
     {
-        // TODO Auto-generated method stub
-        return null;
+        return new CppReceiver(_cppSession
+                .createReceiver(new org.apache.qpid.messaging.cpp.jni.Address(
+                        address.toString())));
     }
 
     @Override
-    public Receiver createReceiver(String address)
+    public Receiver createReceiver(String address) throws MessagingException
     {
         return new CppReceiver(_cppSession.createReceiver(address));
     }
 
     @Override
-    public Connection getConnection()
+    public Connection getConnection() throws MessagingException
+    {
+        return _conn;
+    }
+
+
+    @Override
+    public boolean hasError()
+    {
+        return _cppSession.hasError();
+    }
+
+
+    @Override
+    public void checkError() throws MessagingException
     {
-        // TODO Auto-generated method stub
-        return null;
+        _cppSession.checkError();
     }
 
 }

Modified: 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java?rev=1350700&r1=1350699&r2=1350700&view=diff
==============================================================================
--- 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java
 (original)
+++ 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/CppTest.java
 Fri Jun 15 17:20:12 2012
@@ -28,7 +28,7 @@ import org.apache.qpid.messaging.Sender;
 
 public class CppTest
 {
-    public static void main(String[] args)
+    public static void main(String[] args) throws Exception
     {
         Connection con = 
ConnectionFactory.get().createConnection("localhost:5672");
         con.open();

Modified: 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/JNILayerException.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/JNILayerException.java?rev=1350700&r1=1350699&r2=1350700&view=diff
==============================================================================
--- 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/JNILayerException.java
 (original)
+++ 
qpid/branches/address-refactor2/qpid/java/client-api/src/main/java/org/apache/qpid/messaging/cpp/JNILayerException.java
 Fri Jun 15 17:20:12 2012
@@ -17,9 +17,10 @@
  */
 package org.apache.qpid.messaging.cpp;
 
-public class JNILayerException extends RuntimeException
-{
+import org.apache.qpid.messaging.MessagingException;
 
+public class JNILayerException extends MessagingException
+{
     public JNILayerException(String message)
     {
         super(message);
@@ -29,5 +30,4 @@ public class JNILayerException extends R
     {
         super(message,t);
     }
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to