[2/3] qpid-proton git commit: PROTON-1452: Test for closed transport without side effects

2017-03-29 Thread aconway
PROTON-1452: Test for closed transport without side effects

"closed" tests based on pn_transport_pending/available have side effects: may
generate events or modify read/write buffer pointers, which makes using those
tests very sensitive to ordering.

New pn_transport_(head|tail)_closed have no side effects.


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/893cb001
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/893cb001
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/893cb001

Branch: refs/heads/master
Commit: 893cb00161d29e2e29c7e7304177f3d92418f405
Parents: 7a68a2c
Author: Alan Conway 
Authored: Wed Mar 29 16:42:31 2017 -0400
Committer: Alan Conway 
Committed: Wed Mar 29 17:58:56 2017 -0400

--
 proton-c/include/proton/transport.h   | 19 +++
 proton-c/src/core/connection_driver.c |  4 ++--
 proton-c/src/core/transport.c | 12 ++--
 3 files changed, 19 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/893cb001/proton-c/include/proton/transport.h
--
diff --git a/proton-c/include/proton/transport.h 
b/proton-c/include/proton/transport.h
index 09fbb03..89b6fad 100644
--- a/proton-c/include/proton/transport.h
+++ b/proton-c/include/proton/transport.h
@@ -610,14 +610,17 @@ PN_EXTERN int pn_transport_close_head(pn_transport_t 
*transport);
 PN_EXTERN bool pn_transport_quiesced(pn_transport_t *transport);
 
 /**
- * Check if a transport is closed.
- *
- * A transport is defined to be closed when both the tail and the head
- * are closed. In other words, when both ::pn_transport_capacity() < 0
- * and ::pn_transport_pending() < 0.
- *
- * @param[in] transport a transport object
- * @return true if the transport is closed, false otherwise
+ * True if pn_transport_close_head() has been called.
+ */
+PN_EXTERN bool pn_transport_head_closed(pn_transport_t *transport);
+
+/**
+ * True if pn_transport_close_tail() has been called.
+ */
+PN_EXTERN bool pn_transport_tail_closed(pn_transport_t *transport);
+
+/**
+ * Equivalent to pn_transport_head_closed(transport) && 
pn_transport_tail_closed(transport)
  */
 PN_EXTERN bool pn_transport_closed(pn_transport_t *transport);
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/893cb001/proton-c/src/core/connection_driver.c
--
diff --git a/proton-c/src/core/connection_driver.c 
b/proton-c/src/core/connection_driver.c
index f5fddae..40af749 100644
--- a/proton-c/src/core/connection_driver.c
+++ b/proton-c/src/core/connection_driver.c
@@ -90,7 +90,7 @@ void pn_connection_driver_read_done(pn_connection_driver_t 
*d, size_t n) {
 }
 
 bool pn_connection_driver_read_closed(pn_connection_driver_t *d) {
-  return pn_transport_capacity(d->transport) < 0;
+  return pn_transport_tail_closed(d->transport);
 }
 
 void pn_connection_driver_read_close(pn_connection_driver_t *d) {
@@ -111,7 +111,7 @@ void pn_connection_driver_write_done(pn_connection_driver_t 
*d, size_t n) {
 }
 
 bool pn_connection_driver_write_closed(pn_connection_driver_t *d) {
-  return pn_transport_pending(d->transport) < 0;
+  return pn_transport_head_closed(d->transport);
 }
 
 void pn_connection_driver_write_close(pn_connection_driver_t *d) {

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/893cb001/proton-c/src/core/transport.c
--
diff --git a/proton-c/src/core/transport.c b/proton-c/src/core/transport.c
index 444145a..5065663 100644
--- a/proton-c/src/core/transport.c
+++ b/proton-c/src/core/transport.c
@@ -3009,12 +3009,12 @@ bool pn_transport_quiesced(pn_transport_t *transport)
   return true;
 }
 
-bool pn_transport_closed(pn_transport_t *transport)
-{
-  assert(transport);
-  ssize_t capacity = pn_transport_capacity(transport);
-  ssize_t pending = pn_transport_pending(transport);
-  return capacity < 0 && pending < 0;
+bool pn_transport_head_closed(pn_transport_t *transport) { return 
transport->head_closed; }
+
+bool pn_transport_tail_closed(pn_transport_t *transport) { return 
transport->tail_closed; }
+
+bool pn_transport_closed(pn_transport_t *transport) {
+  return transport->head_closed && transport->tail_closed;
 }
 
 pn_connection_t *pn_transport_connection(pn_transport_t *transport)


-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org



[3/3] qpid-proton git commit: PROTON-1452: Add pn_proactor_disconnect

2017-03-29 Thread aconway
PROTON-1452: Add pn_proactor_disconnect

/**
 * Disconnect all connections and listeners currently active in the proactor.
 *
 * PN_LISTENER_CLOSE, PN_TRANSPORT_CLOSED and other events are generated as 
usual.
 * If no new listeners or connections are created, then a PN_PROACTOR_INACTIVE 
event
 * will be generated when all connections and listeners are disconnected.
 *
 * Note the proactor remains active, connections and listeners created after a 
call to
 * pn_proactor_disconnect() are not affected by it.
 *
 * @param condition if not NULL the condition data is copied to the transports 
and listeners.
 */
PNP_EXTERN void pn_proactor_disconnect(pn_proactor_t *proactor, pn_condition_t 
*condition);


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/edebc4ec
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/edebc4ec
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/edebc4ec

Branch: refs/heads/master
Commit: edebc4ecf693514fe3becd64bbeb1c8361b31e62
Parents: 893cb00
Author: Alan Conway 
Authored: Wed Mar 29 17:58:00 2017 -0400
Committer: Alan Conway 
Committed: Wed Mar 29 18:15:58 2017 -0400

--
 proton-c/include/proton/proactor.h |  14 
 proton-c/src/proactor/libuv.c  |  87 
 proton-c/src/tests/proactor.c  | 137 +---
 3 files changed, 195 insertions(+), 43 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/edebc4ec/proton-c/include/proton/proactor.h
--
diff --git a/proton-c/include/proton/proactor.h 
b/proton-c/include/proton/proactor.h
index b77feff..d13c6d6 100644
--- a/proton-c/include/proton/proactor.h
+++ b/proton-c/include/proton/proactor.h
@@ -60,6 +60,20 @@ typedef struct pn_proactor_addr_t pn_proactor_addr_t;
 PNP_EXTERN pn_proactor_t *pn_proactor(void);
 
 /**
+ * Disconnect all connections and listeners currently active in the proactor.
+ *
+ * PN_LISTENER_CLOSE, PN_TRANSPORT_CLOSED and other events are generated as 
usual.
+ * If no new listeners or connections are created, then a PN_PROACTOR_INACTIVE 
event
+ * will be generated when all connections and listeners are disconnected.
+ *
+ * Note the proactor remains active, connections and listeners created after a 
call to
+ * pn_proactor_disconnect() are not affected by it.
+ *
+ * @param condition if not NULL the condition data is copied to the transports 
and listeners.
+ */
+PNP_EXTERN void pn_proactor_disconnect(pn_proactor_t *proactor, pn_condition_t 
*condition);
+
+/**
  * Free the proactor. Abort any open network connections and clean up all
  * associated resources.
  */

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/edebc4ec/proton-c/src/proactor/libuv.c
--
diff --git a/proton-c/src/proactor/libuv.c b/proton-c/src/proactor/libuv.c
index 266db98..2f5e369 100644
--- a/proton-c/src/proactor/libuv.c
+++ b/proton-c/src/proactor/libuv.c
@@ -240,6 +240,8 @@ struct pn_proactor_t {
   timeout_state_t timeout_state;
   pn_millis_t timeout;
   size_t count;   /* connection/listener count for INACTIVE events 
*/
+  pn_condition_t *disconnect_cond; /* disconnect condition */
+  bool disconnect;/* disconnect requested */
   bool inactive;
   bool has_leader;
   bool batch_working; /* batch is being processed in a worker thread */
@@ -906,6 +908,34 @@ void pconnection_detach(pconnection_t *pc) {
   }
 }
 
+static void on_proactor_disconnect(uv_handle_t* h, void* v) {
+  if (h->type == UV_TCP) {
+switch (*(struct_type*)h->data) {
+ case T_CONNECTION: {
+   pconnection_t *pc = (pconnection_t*)h->data;
+   pn_condition_t *cond = pc->work.proactor->disconnect_cond;
+   if (cond) {
+ pn_condition_copy(pn_transport_condition(pc->driver.transport), cond);
+   }
+   pn_connection_driver_close(&pc->driver);
+   work_notify(&pc->work);
+   break;
+ }
+ case T_LSOCKET: {
+   pn_listener_t *l = ((lsocket_t*)h->data)->parent;
+   pn_condition_t *cond = l->work.proactor->disconnect_cond;
+   if (cond) {
+ pn_condition_copy(pn_listener_condition(l), cond);
+   }
+   pn_listener_close(l);
+   break;
+ }
+ default:
+  break;
+}
+  }
+}
+
 /* Process the leader_q and the UV loop, in the leader thread */
 static pn_event_batch_t *leader_lead_lh(pn_proactor_t *p, uv_run_mode mode) {
   /* Set timeout timer if there was a request, let it count down while we 
process work */
@@ -914,6 +944,13 @@ static pn_event_batch_t *leader_lead_lh(pn_proactor_t *p, 
uv_run_mode mode) {
 uv_timer_stop(&p->timer);
 uv_timer_start(&p->timer, on_timeout, p->timeout, 0);
   }
+  /* If disc

[1/3] qpid-proton git commit: PROTON-1437: c proactor address info

2017-03-29 Thread aconway
Repository: qpid-proton
Updated Branches:
  refs/heads/master 2d9c08699 -> edebc4ecf


PROTON-1437: c proactor address info

Provides actual address information for both ends of a proactor-managed
connection using pn_proactor_addr_* functions.

- pn_proactor_addr_* functions are clearly identified as part of proactor lib
- portable print local/remote address as string with no platform-specific 
headers
- POSIX/windows can test pn_proactor_addr_is_sockaddr() to use native sockaddr 
API

This can be extended safely to non-sockaddr platforms by making
pn_proactor_addr_is_sockaddr() return false and adding pn_proactor_addr_is_foo()
to indicate the underlying address type


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/7a68a2c8
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/7a68a2c8
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/7a68a2c8

Branch: refs/heads/master
Commit: 7a68a2c836e242ebe27ed365654a0518d75ecd3a
Parents: 2d9c086
Author: Alan Conway 
Authored: Wed Mar 29 10:54:35 2017 -0400
Committer: Alan Conway 
Committed: Wed Mar 29 13:14:51 2017 -0400

--
 proton-c/include/proton/proactor.h | 34 ++
 proton-c/src/proactor/libuv.c  | 41 -
 proton-c/src/tests/proactor.c  | 64 ++---
 proton-c/src/tests/test_tools.h|  5 +--
 4 files changed, 137 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7a68a2c8/proton-c/include/proton/proactor.h
--
diff --git a/proton-c/include/proton/proactor.h 
b/proton-c/include/proton/proactor.h
index 974b432..b77feff 100644
--- a/proton-c/include/proton/proactor.h
+++ b/proton-c/include/proton/proactor.h
@@ -50,6 +50,11 @@ extern "C" {
  */
 
 /**
+ * Stores a network address in native format.
+ */
+typedef struct pn_proactor_addr_t pn_proactor_addr_t;
+
+/**
  * Create a proactor. Must be freed with pn_proactor_free()
  */
 PNP_EXTERN pn_proactor_t *pn_proactor(void);
@@ -199,6 +204,35 @@ PNP_EXTERN pn_proactor_t 
*pn_connection_proactor(pn_connection_t *connection);
 PNP_EXTERN pn_proactor_t *pn_event_proactor(pn_event_t *event);
 
 /**
+ * Format an address as a string in buf, with trailing NUL.
+ *
+ * @return the length of the addresss string.
+ * If the return value is >= len then the address was truncated to len-1 bytes.
+ * A return value of 0 means the address was invalid or NULL.
+ */
+PNP_EXTERN size_t pn_proactor_addr_str(char *buf, size_t len, 
pn_proactor_addr_t* addr);
+
+/**
+ * Get the local address of a transport.
+ *
+ * @return NULL if the transport is not connected or the address is not 
available. 
+ */
+PNP_EXTERN pn_proactor_addr_t *pn_proactor_addr_local(pn_transport_t* c);
+
+/**
+ * Get the remote address of a transport.
+ *
+ * @return NULL if the transport is not connected or the address is not 
available. 
+ */
+PNP_EXTERN pn_proactor_addr_t *pn_proactor_addr_remote(pn_transport_t* c);
+
+/**
+ * If the underlying implementation uses `struct sockaddr` (for example POSIX 
or Windows
+ * sockets) return a pointer, otherwise return NULL.
+ */
+PNP_EXTERN struct sockaddr *pn_proactor_addr_sockaddr(pn_proactor_addr_t 
*addr);
+
+/**
  * @}
  */
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7a68a2c8/proton-c/src/proactor/libuv.c
--
diff --git a/proton-c/src/proactor/libuv.c b/proton-c/src/proactor/libuv.c
index aa10f83..266db98 100644
--- a/proton-c/src/proactor/libuv.c
+++ b/proton-c/src/proactor/libuv.c
@@ -170,6 +170,7 @@ typedef struct pconnection_t {
 
   lsocket_t *lsocket; /* Incoming connection only */
 
+  struct sockaddr_storage local, remote; /* Actual addresses */
   uv_timer_t timer;
   uv_write_t write;
   size_t writing;   /* size of pending write request, 0 if none 
pending */
@@ -499,11 +500,20 @@ static void on_connect_fail(uv_handle_t *handle) {
   }
 }
 
+static void pconnection_addresses(pconnection_t *pc) {
+  int len;
+  len = sizeof(pc->local);
+  uv_tcp_getsockname(&pc->tcp, (struct sockaddr*)&pc->local, &len);
+  len = sizeof(pc->remote);
+  uv_tcp_getpeername(&pc->tcp, (struct sockaddr*)&pc->remote, &len);
+}
+
 /* Outgoing connection */
 static void on_connect(uv_connect_t *connect, int err) {
   pconnection_t *pc = (pconnection_t*)connect->data;
   if (!err) {
 pc->connected = 1;
+pconnection_addresses(pc);
 work_notify(&pc->work);
 uv_freeaddrinfo(pc->addr.getaddrinfo.addrinfo); /* Done with address info 
*/
 pc->addr.getaddrinfo.addrinfo = NULL;
@@ -658,8 +668,9 @@ static bool leader_process_listener(pn_listener_t *l) {
   /* Process accepted connections */
   for (pconnection_t *pc

qpid-proton-j git commit: PROTON-1447 : Allow CaCertDb file to have multiple certificates

2017-03-29 Thread rgodfrey
Repository: qpid-proton-j
Updated Branches:
  refs/heads/master b845e479f -> ad6096746


PROTON-1447 : Allow CaCertDb file to have multiple certificates


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/commit/ad609674
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/tree/ad609674
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/diff/ad609674

Branch: refs/heads/master
Commit: ad60967463fe697800d24eaf0286dbf9e7d38473
Parents: b845e47
Author: rgodfrey 
Authored: Wed Mar 29 17:49:49 2017 +0200
Committer: rgodfrey 
Committed: Wed Mar 29 17:49:49 2017 +0200

--
 .../engine/impl/ssl/SslEngineFacadeFactory.java | 37 ++--
 1 file changed, 35 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/ad609674/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
--
diff --git 
a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
 
b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
index 4efc055..e82e1bb 100644
--- 
a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
+++ 
b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
@@ -45,6 +45,7 @@ import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -350,8 +351,11 @@ public class SslEngineFacadeFactory
 {
 _logger.log(Level.FINE, "_sslParams.getTrustedCaDb() : " + 
sslDomain.getTrustedCaDb());
 }
-Certificate trustedCaCert = 
readCertificate(sslDomain.getTrustedCaDb());
-keystore.setCertificateEntry(caCertAlias, trustedCaCert);
+int i = 1;
+for(Certificate trustedCaCert : 
readCertificates(sslDomain.getTrustedCaDb()))
+{
+keystore.setCertificateEntry(caCertAlias + (i++), 
trustedCaCert);
+}
 }
 
 if (sslDomain.getCertificateFile() != null
@@ -468,6 +472,35 @@ public class SslEngineFacadeFactory
 }
 }
 
+Collection readCertificates(String pemFile)
+{
+InputStream is = null;
+
+try
+{
+CertificateFactory cFactory = 
CertificateFactory.getInstance("X.509");
+is = new FileInputStream(pemFile);
+return cFactory.generateCertificates(is);
+}
+catch (CertificateException ce)
+{
+String msg = "Failed to load certificates [" + pemFile + "]";
+_logger.log(Level.SEVERE, msg, ce);
+throw new TransportException(msg, ce);
+}
+catch (FileNotFoundException e)
+{
+String msg = "Certificates file not found [" + pemFile + "]";
+_logger.log(Level.SEVERE, msg);
+throw new TransportException(msg, e);
+}
+finally
+{
+closeSafely(is);
+}
+}
+
+
 PrivateKey readPrivateKey(String pemFile, String password)
 {
 if (bouncyCastleSetupException != null)


-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org



svn commit: r18952 - in /dev/qpid/dispatch/0.8.0-rc1: ./ qpid-dispatch-0.8.0.tar.gz qpid-dispatch-0.8.0.tar.gz.asc qpid-dispatch-0.8.0.tar.gz.md5 qpid-dispatch-0.8.0.tar.gz.sha512

2017-03-29 Thread tross
Author: tross
Date: Wed Mar 29 11:14:56 2017
New Revision: 18952

Log:
Qpid Dispatch Router 0.8.0 RC1 artifacts

Added:
dev/qpid/dispatch/0.8.0-rc1/
dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz   (with props)
dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.asc   (with props)
dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.md5
dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.sha512

Added: dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz
==
Binary file - no diff available.

Propchange: dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz
--
svn:mime-type = application/x-gzip

Added: dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.asc
==
Binary file - no diff available.

Propchange: dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.asc
--
svn:mime-type = application/pgp-signature

Added: dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.md5
==
--- dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.md5 (added)
+++ dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.md5 Wed Mar 29 
11:14:56 2017
@@ -0,0 +1 @@
+473005cbd87586bc38c21fa10240a7af  qpid-dispatch-0.8.0.tar.gz

Added: dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.sha512
==
--- dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.sha512 (added)
+++ dev/qpid/dispatch/0.8.0-rc1/qpid-dispatch-0.8.0.tar.gz.sha512 Wed Mar 29 
11:14:56 2017
@@ -0,0 +1 @@
+43391f197e628ec194967c31de89735adebaa180c9bbae6791404bc69696c3042f80189031cec7d341067dbfbc16166bb3e9a74fdbf9518ee23e08bb0553
  qpid-dispatch-0.8.0.tar.gz



-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org



svn commit: r1789336 - in /qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src: main/java/org/apache/qpid/server/protocol/v0_10/ main/java/org/apache/qpid/server/protocol/v0_10/transport/ test/java/

2017-03-29 Thread orudyy
Author: orudyy
Date: Wed Mar 29 11:13:54 2017
New Revision: 1789336

URL: http://svn.apache.org/viewvc?rev=1789336&view=rev
Log:
QPID-7723: Optimize evaluation of metadata storable size for AMQP 0-10

Added:

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/EncoderUtils.java
Modified:

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/AbstractEncoder.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/Acquired.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/DeliveryProperties.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/Encoder.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/ExchangeBoundResult.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/ExchangeQueryResult.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/FragmentProperties.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/GetTimeoutResult.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/MessageProperties.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/MessageResumeResult.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/Method.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/QueueQueryResult.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/RecoverResult.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/ReplyTo.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/SessionCommandFragment.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/SessionHeader.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/Struct.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/XaResult.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/transport/Xid.java

qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/transport/BBEncoderTest.java

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java?rev=1789336&r1=1789335&r2=1789336&view=diff
==
--- 
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageMetaData_0_10.java
 Wed Mar 29 11:13:54 2017
@@ -27,6 +27,7 @@ import java.util.List;
 import org.apache.qpid.server.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.plugin.MessageMetaDataType;
+import org.apache.qpid.server.protocol.v0_10.transport.EncoderUtils;
 import org.apache.qpid.server.store.StorableMessageMetaData;
 import org.apache.qpid.server.protocol.v0_10.transport.DeliveryProperties;
 import org.apache.qpid.server.protocol.v0_10.transport.Header;
@@ -83,17 +84,32 @@ public class MessageMetaData_0_10 implem
 return TYPE;
 }
 
-public synchronized int getStorableSize()
+
+public int getStorableSize()
 {
-QpidByteBuffer buf = _encoded;
+int len = 0;
+
+len += 8; // arrival time
+len += 4; // body size
+len += 4; // headers length
 
-if(buf == null)
+if(_header.getDeliveryProperties() != null)
+{
+len += 
EncoderUtils.getStruct32Length(_header.getDeliveryProperties());
+}
+if(_header.getMessagePrope

[qpid-dispatch] Git Push Summary

2017-03-29 Thread tross
Repository: qpid-dispatch
Updated Tags:  refs/tags/0.8.0-rc1 [created] 96c5de777

-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org



qpid-proton-j git commit: PROTON-1451 : Only register BouncyCastle provider if not already present

2017-03-29 Thread rgodfrey
Repository: qpid-proton-j
Updated Branches:
  refs/heads/master b49969c1f -> b845e479f


PROTON-1451 : Only register BouncyCastle provider if not already present


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/commit/b845e479
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/tree/b845e479
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/diff/b845e479

Branch: refs/heads/master
Commit: b845e479f946cac019fe92327a8bc3ca16263050
Parents: b49969c
Author: rgodfrey 
Authored: Wed Mar 29 12:18:31 2017 +0200
Committer: rgodfrey 
Committed: Wed Mar 29 12:18:31 2017 +0200

--
 .../engine/impl/ssl/SslEngineFacadeFactory.java | 22 
 .../impl/ssl/SslEngineFacadeFactoryTest.java| 16 ++
 2 files changed, 34 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/b845e479/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
--
diff --git 
a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
 
b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
index 64eb2ca..4efc055 100644
--- 
a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
+++ 
b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactory.java
@@ -130,10 +130,7 @@ public class SslEngineFacadeFactory
 PrivateKeyInfoClassResult = 
Class.forName("org.bouncycastle.asn1.pkcs.PrivateKeyInfo");
 getPrivateKeyMethodResult = 
jcaPEMKeyConverterClass.getMethod("getPrivateKey", PrivateKeyInfoClassResult);
 
-// Try loading BC as a provider
-Class klass = 
Class.forName("org.bouncycastle.jce.provider.BouncyCastleProvider");
-Provider provider = (Provider) 
klass.getConstructor().newInstance();
-Security.addProvider(provider);
+registerBouncyCastleProvider();
 }
 catch (Exception e)
 {
@@ -155,6 +152,23 @@ public class SslEngineFacadeFactory
 }
 }
 
+static void registerBouncyCastleProvider()
+throws ClassNotFoundException, InstantiationException, 
IllegalAccessException,
+   InvocationTargetException, NoSuchMethodException
+{
+// Try loading BC as a provider
+Class klass = 
Class.forName("org.bouncycastle.jce.provider.BouncyCastleProvider");
+
+Provider bouncyCastleProvider = (Provider) 
klass.getConstructor().newInstance();
+synchronized (Security.class)
+{
+if(Security.getProvider(bouncyCastleProvider.getName()) == null)
+{
+Security.addProvider(bouncyCastleProvider);
+}
+}
+}
+
 SslEngineFacadeFactory()
 {
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/b845e479/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactoryTest.java
--
diff --git 
a/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactoryTest.java
 
b/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactoryTest.java
index 84ba8cb..e43988e 100644
--- 
a/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactoryTest.java
+++ 
b/proton-j/src/test/java/org/apache/qpid/proton/engine/impl/ssl/SslEngineFacadeFactoryTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.qpid.proton.engine.impl.ssl;
 
+import static junit.framework.TestCase.fail;
 import static org.junit.Assert.assertNotNull;
 
 import java.net.URL;
@@ -29,6 +30,21 @@ public class SslEngineFacadeFactoryTest {
 private static final String PASSWORD = "unittest";
 
 @Test
+public void testDuplicateRegistrationOfSecurityProvider() {
+// ensure the provider is already registered
+SslEngineFacadeFactory factory = new SslEngineFacadeFactory();
+
+try
+{
+SslEngineFacadeFactory.registerBouncyCastleProvider();
+}
+catch (Exception e)
+{
+fail("Exception thrown when re-registering BouncyCastle provider " 
+ e.getMessage());
+}
+}
+
+@Test
 public void testCertifcateLoad() {
 String ipFile = resolveFilename("cert.pem.txt");
 SslEngineFacadeFactory factory = new SslEngineFacadeFactory();


-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org



svn commit: r18950 - /dev/qpid/proton/testing.tar.gz.sha

2017-03-29 Thread robbie
Author: robbie
Date: Wed Mar 29 09:56:28 2017
New Revision: 18950

Log:
remove test file

Removed:
dev/qpid/proton/testing.tar.gz.sha


-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org



svn commit: r18949 - /dev/qpid/proton/testing.tar.gz.sha

2017-03-29 Thread robbie
Author: robbie
Date: Wed Mar 29 09:52:00 2017
New Revision: 18949

Log:
add test checksum file

Added:
dev/qpid/proton/testing.tar.gz.sha

Added: dev/qpid/proton/testing.tar.gz.sha
==
--- dev/qpid/proton/testing.tar.gz.sha (added)
+++ dev/qpid/proton/testing.tar.gz.sha Wed Mar 29 09:52:00 2017
@@ -0,0 +1 @@
+ce082fdc2793fc9d3db1b558bd897d364543bd50cba60e66aff839f8f16d82c245381d836ef3ee5b6ee17ba2b2ffe1899b86ed9d1f8cf8db569f726b6d162463
  testing.tar.gz



-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org