[2/2] qpid-proton git commit: fNO-JIRA: [cpp] testme check program exists instead of using HAS_CPP11

2018-09-18 Thread aconway
fNO-JIRA: [cpp] testme check program exists instead of using HAS_CPP11

Using HAS_CPP11 won't work outside a build tree. Instead check for existence
of test executables to detect tests that are not built under c++03


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

Branch: refs/heads/master
Commit: 96972871c78ed9aabfca24e73e95b9e5f0f58c59
Parents: 32b9708
Author: Alan Conway 
Authored: Tue Sep 18 16:01:21 2018 -0400
Committer: Alan Conway 
Committed: Tue Sep 18 16:01:21 2018 -0400

--
 cpp/examples/testme | 29 -
 tests/py/test_subprocess.py |  7 +++
 2 files changed, 23 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/96972871/cpp/examples/testme
--
diff --git a/cpp/examples/testme b/cpp/examples/testme
index d4abc0a..5f30f23 100755
--- a/cpp/examples/testme
+++ b/cpp/examples/testme
@@ -21,7 +21,7 @@
 # Run the C++ examples and verify that they behave as expected.
 # Example executables must be in PATH
 
-import unittest, sys, shutil, os
+import unittest, sys, shutil, os, errno
 from test_subprocess import Popen, TestProcessError, check_output
 import test_subprocess
 from os.path import dirname
@@ -143,11 +143,13 @@ map{string(k1):int(42), symbol(k2):boolean(0)}
 self.assertTrue(len(out) > 0);
 self.assertEqual(["send"]*len(out), out)
 
-@unittest.skipUnless(os.getenv('HAS_CPP11'), "not a  C++11 build")
 def test_scheduled_send(self):
-out = check_output(["scheduled_send", "-a", 
Broker.addr+"scheduled_send", "-t", "0.1", "-i", "0.001"]).split()
-self.assertTrue(len(out) > 0);
-self.assertEqual(["send"]*len(out), out)
+try:
+out = check_output(["scheduled_send", "-a", 
Broker.addr+"scheduled_send", "-t", "0.1", "-i", "0.001"]).split()
+self.assertTrue(len(out) > 0);
+self.assertEqual(["send"]*len(out), out)
+except OSError as e:
+if e.errno != errno.ENOENT: raise
 
 def test_message_properties(self):
 expect="""using put/get: short=123 string=foo symbol=sym
@@ -161,15 +163,16 @@ expected conversion_error: "unexpected type, want: uint 
got: string"
 """
 self.assertMultiLineEqual(expect, check_output(["message_properties"]))
 
-@unittest.skipUnless(os.getenv('HAS_CPP11'), "not a  C++11 build")
 def test_multithreaded_client(self):
-got = check_output(["multithreaded_client", Broker.addr, "examples", 
"10"])
-self.maxDiff = None
-self.assertIn("10 messages sent and received", got);
-
-#@unittest.skipUnless(os.getenv('HAS_CPP11'), "not a  C++11 build")
-@unittest.skip("Test is unstable, will enable when fixed")
-def test_multithreaded_client_flow_control(self):
+try:
+got = check_output(["multithreaded_client", Broker.addr, 
"examples", "10"])
+self.maxDiff = None
+self.assertIn("10 messages sent and received", got);
+except OSError as e:
+if e.errno != errno.ENOENT: raise
+
+# Test is unstable, enable when fixed
+def skip_test_multithreaded_client_flow_control(self):
 got = check_output(["multithreaded_client_flow_control", Broker.addr, 
"examples", "10", "2"])
 self.maxDiff = None
 self.assertIn("20 messages sent and received", got);

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/96972871/tests/py/test_subprocess.py
--
diff --git a/tests/py/test_subprocess.py b/tests/py/test_subprocess.py
index 512123f..4905107 100644
--- a/tests/py/test_subprocess.py
+++ b/tests/py/test_subprocess.py
@@ -23,6 +23,13 @@ import subprocess, re, os, tempfile
 
 from subprocess import PIPE
 
+def in_path(name):
+"""Look for name in the PATH""" 
+for path in os.environ["PATH"].split(os.pathsep):
+f = os.path.join(path, name)
+if os.path.isfile(f) and os.access(f, os.X_OK):
+return f
+
 class TestProcessError(Exception):
 def __init__(self, proc, what, output=None):
 self.output = output


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



[1/2] qpid-proton git commit: PROTON-1935: [cpp] fix minor c++03 compatibility issues.

2018-09-18 Thread aconway
Repository: qpid-proton
Updated Branches:
  refs/heads/master 23a4b4f89 -> 96972871c


PROTON-1935: [cpp] fix minor c++03 compatibility issues.


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

Branch: refs/heads/master
Commit: 32b9708c6a1a59e5fce2c64930fdc16f02aa9cd4
Parents: 23a4b4f
Author: Alan Conway 
Authored: Tue Sep 18 15:48:48 2018 -0400
Committer: Alan Conway 
Committed: Tue Sep 18 15:59:18 2018 -0400

--
 cpp/src/connect_config.cpp | 2 +-
 cpp/src/value_test.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/32b9708c/cpp/src/connect_config.cpp
--
diff --git a/cpp/src/connect_config.cpp b/cpp/src/connect_config.cpp
index 0dc577a..3ec16fb 100644
--- a/cpp/src/connect_config.cpp
+++ b/cpp/src/connect_config.cpp
@@ -202,7 +202,7 @@ string parse_default(connection_options& opts) {
 std::ifstream f;
 try {
 f.exceptions(~std::ifstream::goodbit);
-f.open(name);
+f.open(name.c_str());
 } catch (const std::exception& e) {
 raise(msg() << "error opening '" << name << "': " << e.what());
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/32b9708c/cpp/src/value_test.cpp
--
diff --git a/cpp/src/value_test.cpp b/cpp/src/value_test.cpp
index 64a1d72..2d991c4 100644
--- a/cpp/src/value_test.cpp
+++ b/cpp/src/value_test.cpp
@@ -161,12 +161,12 @@ int main(int, char**) {
 many > restricted_pairs(si_pairs);
 RUN_TEST(failed, (map_test >(
   restricted_pairs, "{:a=0, :b=1, :c=2}")));
+RUN_TEST(failed, null_test());
 
 #if PN_CPP_HAS_CPP11
 RUN_TEST(failed, sequence_test >(
  ARRAY, many() + binary("xx") + binary("yy"), 
"@PN_BINARY[b\"xx\", b\"yy\"]"));
 RUN_TEST(failed, (map_test >(si_pairs, 
"")));
-RUN_TEST(failed, null_test());
 #endif
 return failed;
 } catch (const std::exception& e) {


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



qpid-proton git commit: PROTON-1935: minor correction to docs/connect_config.md

2018-09-18 Thread aconway
Repository: qpid-proton
Updated Branches:
  refs/heads/master b164d99c8 -> 23a4b4f89


PROTON-1935: minor correction to docs/connect_config.md


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

Branch: refs/heads/master
Commit: 23a4b4f8993fb3814e7be4b2c851034339febfc1
Parents: b164d99
Author: Alan Conway 
Authored: Tue Sep 18 14:51:55 2018 -0400
Committer: Alan Conway 
Committed: Tue Sep 18 14:51:55 2018 -0400

--
 docs/connect_config.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/23a4b4f8/docs/connect_config.md
--
diff --git a/docs/connect_config.md b/docs/connect_config.md
index f0419cc..63044be 100644
--- a/docs/connect_config.md
+++ b/docs/connect_config.md
@@ -29,7 +29,7 @@ values, all properties are optional.
 "enable": true, // [bool] Enable or disable SASL
 "mechanisms": null, // [list] List of allowed SASL mechanism names.
 // If null the library determines the default 
list.
-"allow_insecure": false // [boolean] Allow mechanisms that send 
clear-text passwords
+"allow_insecure": false // [boolean] Allow mechanisms that send 
unencrypted clear-text passwords
   },
 
   // Note: it is an error to have a "tls" object unless scheme="amqps"


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



qpid-broker-j git commit: QPID-8240 : Detect idle connections

2018-09-18 Thread rgodfrey
Repository: qpid-broker-j
Updated Branches:
  refs/heads/master c8c820330 -> 339a57f6f


QPID-8240 : Detect idle connections


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

Branch: refs/heads/master
Commit: 339a57f6faf0edad685e9d72be105ca76d8ac9bb
Parents: c8c8203
Author: Robert Godfrey 
Authored: Tue Sep 18 20:18:02 2018 +0200
Committer: Robert Godfrey 
Committed: Tue Sep 18 20:18:02 2018 +0200

--
 .../server/consumer/AbstractConsumerTarget.java |   2 +-
 .../server/model/AbstractConfiguredObject.java  |   6 +-
 .../apache/qpid/server/model/Connection.java|  20 ++-
 .../qpid/server/transport/AMQPConnection.java   |   4 +
 .../transport/AbstractAMQPConnection.java   |  98 +++---
 .../protocol/v0_10/AMQPConnection_0_10Impl.java |  34 ++---
 .../protocol/v0_8/AMQPConnection_0_8Impl.java   |  42 ++
 .../protocol/v1_0/AMQPConnection_1_0Impl.java   | 128 +++
 .../protocol/v1_0/FrameOutputHandler.java   |  33 -
 .../server/protocol/v1_0/framing/AMQFrame.java  |  10 --
 .../protocol/v1_0/framing/TransportFrame.java   |   1 +
 .../protocol/v1_0/ProtocolEngine_1_0_0Test.java |  10 +-
 12 files changed, 182 insertions(+), 206 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/339a57f6/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java
--
diff --git 
a/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java
 
b/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java
index c590eca..7b5429e 100644
--- 
a/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java
+++ 
b/broker-core/src/main/java/org/apache/qpid/server/consumer/AbstractConsumerTarget.java
@@ -208,7 +208,7 @@ public abstract class AbstractConsumerTarget
 public final void send(final MessageInstanceConsumer consumer, 
MessageInstance entry, boolean batch)
 {
 doSend(consumer, entry, batch);
-
+getSession().getAMQPConnection().updateLastMessageOutboundTime();
 if (consumer.acquires())
 {
 entry.makeAcquisitionStealable();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/339a57f6/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
--
diff --git 
a/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
 
b/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
index 3bc6c84..f7b77f1 100644
--- 
a/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
+++ 
b/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
@@ -3433,7 +3433,11 @@ public abstract class AbstractConfiguredObject> im
 {
 if(allStats || statistics.contains(stat.getName()))
 {
-map.put(stat.getName(), stat.getValue(this));
+Object value = stat.getValue(this);
+if(value != null)
+{
+map.put(stat.getName(), value);
+}
 }
 }
 return map;

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/339a57f6/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
--
diff --git 
a/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java 
b/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
index 14ee17a..62cefc1 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
@@ -120,7 +120,7 @@ public interface Connection> 
extends ConfiguredObject
   description = "Total size of all messages received by 
this connection.")
 long getBytesIn();
 
-// currently this reports outbound  message content size without header.
+// currently this reports outbound message content size without header.
 // See also QPID-7689: 
https://issues.apache.org/jira/browse/QPID-7689?focusedCommentId=16022923#comment-16022923
 @SuppressWarnings("unused")
 @ManagedStatistic(statisticType = StatisticType.CUMULATIVE, units = 
StatisticUnit.BYTES, label = "Outbound",
@@ -143,6 +143,24 @@ public interface Connection> 
extends ConfiguredObject
 Date getLastIoTime();
 
 @SuppressWarnings("unused")
+

qpid-dispatch git commit: DISPATCH-1123 - Added shell for link-endpoint implementation. Header now compiles.

2018-09-18 Thread tross
Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 46549fa9e -> 290292eee


DISPATCH-1123 - Added shell for link-endpoint implementation.  Header now 
compiles.


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

Branch: refs/heads/master
Commit: 290292eeec33da784ed6e8d45f18b8c8299d297c
Parents: 46549fa
Author: Ted Ross 
Authored: Tue Sep 18 13:24:01 2018 -0400
Committer: Ted Ross 
Committed: Tue Sep 18 13:24:01 2018 -0400

--
 src/CMakeLists.txt   |  1 +
 src/router_core/core_link_endpoint.c | 66 +++
 src/router_core/core_link_endpoint.h |  2 +-
 3 files changed, 68 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/290292ee/src/CMakeLists.txt
--
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index addd168..c533e9f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -84,6 +84,7 @@ set(qpid_dispatch_SOURCES
   router_core/agent_link.c
   router_core/agent_router.c
   router_core/connections.c
+  router_core/core_link_endpoint.c
   router_core/edge_control.c
   router_core/error.c
   router_core/exchange_bindings.c

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/290292ee/src/router_core/core_link_endpoint.c
--
diff --git a/src/router_core/core_link_endpoint.c 
b/src/router_core/core_link_endpoint.c
new file mode 100644
index 000..a2f95a0
--- /dev/null
+++ b/src/router_core/core_link_endpoint.c
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include "core_link_endpoint.h"
+
+
+void qdrc_endpoint_bind_mobile_address(qdr_core_t *core,
+   const char *address,
+   int phase,
+   qdrc_endpoint_descriptor_t *descriptor,
+   void   
*bind_context)
+{
+}
+
+
+qdrc_endpoint_t *qdrc_endpoint_create_link(qdr_core_t *core,
+   qd_direction_t  dir,
+   qdr_terminus_t *source,
+   qdr_terminus_t *target,
+   qdrc_endpoint_descriptor_t 
*descriptor,
+   void   
*link_context)
+{
+return 0;
+}
+
+
+qd_direction_t qdrc_endpoint_get_direction(const qdrc_endpoint_t *endpoint)
+{
+return QD_INCOMING;
+}
+
+
+void qdrc_endpoint_flow(qdrc_endpoint_t *endpoint, int credit_added)
+{
+}
+
+
+void qdrc_endpoint_send(qdrc_endpoint_t *endpoint, qdr_delivery_t *delivery)
+{
+}
+
+
+void qdrc_endpoint_update(qdrc_endpoint_t *endpoint, qdr_delivery_t *delivery)
+{
+}
+
+
+void qdrc_endpoint_detach(qdrc_endpoint_t *endpoint, qdr_error_t *error)
+{
+}

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/290292ee/src/router_core/core_link_endpoint.h
--
diff --git a/src/router_core/core_link_endpoint.h 
b/src/router_core/core_link_endpoint.h
index 114a95c..4f01f94 100644
--- a/src/router_core/core_link_endpoint.h
+++ b/src/router_core/core_link_endpoint.h
@@ -46,7 +46,7 @@ typedef void (*qdrc_update_t) (void   *link_context,
qdr_delivery_t *delivery);
 
 typedef void (*qdrc_transfer_t) (void   *link_context,
- qdr_delivery_t *delivery;
+ qdr_delivery_t *delivery,
  qd_message_t   *message);
 
 typedef void (*qdrc_detach_t) 

qpid-dispatch git commit: DISPATCH-1100: fix typo in schema documentation

2018-09-18 Thread kgiusti
Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 6a56c1efa -> 46549fa9e


DISPATCH-1100: fix typo in schema documentation


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

Branch: refs/heads/master
Commit: 46549fa9edbb110ac3b0515ebfc5b34034f0513e
Parents: 6a56c1e
Author: Kenneth Giusti 
Authored: Tue Sep 18 13:07:22 2018 -0400
Committer: Kenneth Giusti 
Committed: Tue Sep 18 13:07:22 2018 -0400

--
 python/qpid_dispatch/management/qdrouter.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/46549fa9/python/qpid_dispatch/management/qdrouter.json
--
diff --git a/python/qpid_dispatch/management/qdrouter.json 
b/python/qpid_dispatch/management/qdrouter.json
index 06324af..77ac6e8 100644
--- a/python/qpid_dispatch/management/qdrouter.json
+++ b/python/qpid_dispatch/management/qdrouter.json
@@ -1146,13 +1146,13 @@
 },
 "containerId": {
 "type": "string",
-"description": "ContainerID for the target container. Only 
one of containerId or connection should be specified for a linkRoute. 
Specifying both will result in the linkRoute not being created. For linkRoutes 
created with a lifetimePolicy of 'connection-close' the linkRoute configuration 
will be deleted when the last connection through which this container can be 
accessed is closed.",
+"description": "ContainerID for the target container. Only 
one of containerId or connection should be specified for a linkRoute. 
Specifying both will result in the linkRoute not being created. For linkRoutes 
created with 'deleteOnClose' true the linkRoute configuration will be deleted 
when the last connection through which this container can be accessed is 
closed.",
 "create": true,
 "required": false
 },
 "connection": {
 "type": "string",
-"description": "The name from a connector or listener. 
Only one of containerId or connection should be specified for a linkRoute. 
Specifying both will result in the linkRoute not being created. For linkRoutes 
created with a lifetimePolicy of 'connection-close' the linkRoute configuration 
will be deleted when the connection is closed.",
+"description": "The name from a connector or listener. 
Only one of containerId or connection should be specified for a linkRoute. 
Specifying both will result in the linkRoute not being created. For linkRoutes 
created with 'deleteOnClose' true the linkRoute configuration will be deleted 
when the connection is closed.",
 "create": true,
 "required": false
 },


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



qpid-dispatch git commit: DISPATCH-1123 - Added first draft of the API header for in-core link endpoints.

2018-09-18 Thread tross
Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 92f00baf6 -> 6a56c1efa


DISPATCH-1123 - Added first draft of the API header for in-core link endpoints.


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

Branch: refs/heads/master
Commit: 6a56c1efa2be71836b137e5d494b3a284de9b01a
Parents: 92f00ba
Author: Ted Ross 
Authored: Tue Sep 18 11:50:32 2018 -0400
Committer: Ted Ross 
Committed: Tue Sep 18 11:50:32 2018 -0400

--
 src/router_core/core_link_endpoint.h | 90 +++
 1 file changed, 90 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/6a56c1ef/src/router_core/core_link_endpoint.h
--
diff --git a/src/router_core/core_link_endpoint.h 
b/src/router_core/core_link_endpoint.h
new file mode 100644
index 000..114a95c
--- /dev/null
+++ b/src/router_core/core_link_endpoint.h
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef qd_router_core_endpoint_types
+#define qd_router_core_endpoint_types 1
+
+typedef struct qdrc_endpoint_t qdrc_endpoint_t;
+
+#endif
+
+
+
+#ifndef qd_router_core_endpoint
+#define qd_router_core_endpoint 1
+
+#include "router_core_private.h"
+
+typedef bool (*qdrc_first_attach_t) (void *bind_context,
+ qdrc_endpoint_t  *endpoint,
+ void**link_context,
+ qdr_error_t **error);
+
+typedef bool (*qdrc_second_attach_t) (void *link_context);
+
+typedef void (*qdrc_flow_t) (void *link_context,
+ int   available_credit,
+ int   available_window);
+
+typedef void (*qdrc_update_t) (void   *link_context,
+   qdr_delivery_t *delivery);
+
+typedef void (*qdrc_transfer_t) (void   *link_context,
+ qdr_delivery_t *delivery;
+ qd_message_t   *message);
+
+typedef void (*qdrc_detach_t) (void*link_context,
+   qdr_error_t *error);
+
+
+typedef struct qdrc_endpoint_descriptor_t {
+qdrc_first_attach_t   on_first_attach;
+qdrc_second_attach_t  on_second_attach;
+qdrc_flow_t   on_flow;
+qdrc_update_t on_update;
+qdrc_transfer_t   on_transfer;
+qdrc_detach_t on_detach;
+} qdrc_endpoint_descriptor_t;
+
+
+void qdrc_endpoint_bind_mobile_address(qdr_core_t *core,
+   const char *address,
+   int phase,
+   qdrc_endpoint_descriptor_t *descriptor,
+   void   
*bind_context);
+
+
+qdrc_endpoint_t *qdrc_endpoint_create_link(qdr_core_t *core,
+   qd_direction_t  dir,
+   qdr_terminus_t *source,
+   qdr_terminus_t *target,
+   qdrc_endpoint_descriptor_t 
*descriptor,
+   void   
*link_context);
+
+qd_direction_t qdrc_endpoint_get_direction(const qdrc_endpoint_t *endpoint);
+
+void qdrc_endpoint_flow(qdrc_endpoint_t *endpoint, int credit_added);
+
+void qdrc_endpoint_send(qdrc_endpoint_t *endpoint, qdr_delivery_t *delivery);
+
+void qdrc_endpoint_update(qdrc_endpoint_t *endpoint, qdr_delivery_t *delivery);
+
+void qdrc_endpoint_detach(qdrc_endpoint_t *endpoint, qdr_error_t *error);
+
+#endif


-
To 

qpid-proton git commit: PROTON-1935: [cpp] connection configuration and default connect()

2018-09-18 Thread aconway
Repository: qpid-proton
Updated Branches:
  refs/heads/master 348e9da89 -> b164d99c8


PROTON-1935: [cpp] connection configuration and default connect()

docs/connect-config.md: describes connection configuration JSON format.

container::connect() connects using the default configuration file

Additional API in proton::connect_config allows the user to parse configuration
and apply to a connection_options object for more flexible use.


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

Branch: refs/heads/master
Commit: b164d99c80129a2a24ae7203846579569c9cf3b5
Parents: 348e9da
Author: Alan Conway 
Authored: Tue Sep 18 09:31:47 2018 -0400
Committer: Alan Conway 
Committed: Tue Sep 18 11:03:25 2018 -0400

--
 INSTALL.md|   2 +
 c/include/proton/cproton.i|   1 +
 c/include/proton/version.h.in |   2 +
 cpp/CMakeLists.txt|  20 ++-
 cpp/docs/CMakeLists.txt   |   2 +-
 cpp/docs/user.doxygen.in  |   3 +-
 cpp/include/proton/connect_config.hpp |  49 +++
 cpp/include/proton/container.hpp  |   6 +
 cpp/src/connect_config.cpp| 219 +
 cpp/src/connect_config_dummy.cpp  |  31 
 cpp/src/connect_config_test.cpp   | 142 +++
 cpp/src/connection_options.cpp|   1 +
 cpp/src/container.cpp |   4 +
 cpp/src/proactor_container_impl.cpp   |   7 +
 cpp/src/proactor_container_impl.hpp   |   1 +
 cpp/src/test_bits.hpp |   8 ++
 docs/connect_config.md|  42 ++
 tools/cmake/Modules/FindJsonCpp.cmake |  70 +
 18 files changed, 607 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/b164d99c/INSTALL.md
--
diff --git a/INSTALL.md b/INSTALL.md
index 430d648..76e6af2 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -20,6 +20,7 @@ Linux dependencies
   - GCC 4.4+
   - Cyrus SASL 2.1+ (for SASL support)
   - OpenSSL 1.0+ (for SSL support)
+  - JsonCpp 1.8+ for C++ connection configuration file support
 
 Windows dependencies
 
@@ -46,6 +47,7 @@ language.
 $ yum install swig   # Required for 
all bindings
 $ yum install python-devel   # Python
 $ yum install ruby-devel rubygem-minitest# Ruby
+$ yum install jsoncpp-devel  # C++ optional 
config file
 
 # Dependencies needed to generate documentation
 $ yum install epydoc # Python

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/b164d99c/c/include/proton/cproton.i
--
diff --git a/c/include/proton/cproton.i b/c/include/proton/cproton.i
index 430deca..c642438 100644
--- a/c/include/proton/cproton.i
+++ b/c/include/proton/cproton.i
@@ -37,6 +37,7 @@ typedef unsigned long int uintptr_t;
 %include "proton/import_export.h"
 
 %ignore _PROTON_VERSION_H;
+%ignore PN_INSTALL_PREFIX;
 %include "proton/version.h"
 
 /* We cannot safely just wrap pn_bytes_t but each language binding must have a 
typemap for it - presumably to a string type */

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/b164d99c/c/include/proton/version.h.in
--
diff --git a/c/include/proton/version.h.in b/c/include/proton/version.h.in
index 133b0bb..13ee411 100644
--- a/c/include/proton/version.h.in
+++ b/c/include/proton/version.h.in
@@ -26,4 +26,6 @@
 #define PN_VERSION_MINOR @PN_VERSION_MINOR@
 #define PN_VERSION_POINT @PN_VERSION_POINT@
 
+#define PN_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
+
 #endif /* version.h */

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/b164d99c/cpp/CMakeLists.txt
--
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index d0b3cfb..35f5478 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -27,6 +27,16 @@ include(versions.cmake)
 
 set (BUILD_CPP_03 OFF CACHE BOOL "Compile the C++ binding as C++03 even when 
C++11 is available")
 
+# Check for JSON-CPP support for connection configuration
+find_package(JsonCpp)
+option(ENABLE_JSONCPP "Use jsoncpp parser for connection configuration" 
${JsonCpp_FOUND})
+if (ENABLE_JSONCPP)
+  set(CONNECT_CONFIG_SRC src/connect_config.cpp)
+  set(CONNECT_CONFIG_LIBS ${JsonCpp_LIBRARY})
+else()
+  set(CONNECT_CONFIG_SRC src/connect_config_dummy.cpp)
+endif()
+
 # This effectively 

[3/3] qpid-broker-j git commit: QPID-8241 : Remove use of javax.xml.bind.DatatypeConverter

2018-09-18 Thread rgodfrey
QPID-8241 : Remove use of javax.xml.bind.DatatypeConverter


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

Branch: refs/heads/master
Commit: c8c82033021fb8b0ebfea5bd6367832780a3a8c4
Parents: b770054
Author: Robert Godfrey 
Authored: Tue Sep 18 16:14:55 2018 +0200
Committer: Robert Godfrey 
Committed: Tue Sep 18 16:14:55 2018 +0200

--
 .../berkeleydb/BDBAMQP10V0UpgradeTest.java  |   4 +-
 .../server/model/AttributeValueConverter.java   |  45 +-
 .../AutoGeneratedSelfSignedKeyStoreImpl.java|   8 +-
 .../security/SiteSpecificTrustStoreImpl.java|   4 +-
 .../security/auth/database/HashedUser.java  |   5 +-
 .../AbstractScramAuthenticationManager.java |  12 +-
 .../manager/AuthenticationResultCacher.java |   4 +-
 .../auth/manager/MD5AuthenticationProvider.java |   5 +-
 .../OAuth2AuthenticationProviderImpl.java   |   5 +-
 ...oudFoundryOAuth2IdentityResolverService.java |   5 +-
 .../auth/sasl/scram/ScramSaslServer.java|   6 +-
 .../encryption/AESKeyFileEncrypter.java |   4 +-
 .../apache/qpid/server/util/DataUrlUtils.java   |   4 +-
 .../org/apache/qpid/server/util/StringUtil.java |  16 +-
 .../org/apache/qpid/server/util/Strings.java|   6 +-
 .../model/AttributeValueConverterTest.java  |   2 +-
 .../singleton/AbstractConfiguredObjectTest.java |   2 +-
 .../server/security/NonJavaKeyStoreTest.java|   6 +-
 ...e64MD5PasswordFilePrincipalDatabaseTest.java |   4 +-
 .../auth/manager/oauth2/OAuth2MockEndpoint.java |   4 +-
 .../sasl/crammd5/CramMd5NegotiatorTest.java |   7 +-
 .../auth/sasl/scram/ScramNegotiatorTest.java|   8 +-
 .../transport/TCPandSSLTransportTest.java   |   4 +-
 .../network/security/ssl/SSLUtilTest.java   | 754 +--
 .../servlet/ServletConnectionPrincipal.java |   4 +-
 .../ConfiguredObjectExpressionFactory.java  |  54 +-
 .../plugin/servlet/rest/SaslServlet.java|   6 +-
 .../plugin/GunzipOutputStreamTest.java  |   7 +-
 .../query/ConfiguredObjectQueryTest.java|  15 +-
 .../client/MessageVerifier.java |   7 +-
 .../apache/qpid/tests/protocol/SaslUtils.java   |  15 +-
 .../apache/qpid/tests/http/HttpTestHelper.java  |   4 +-
 .../tests/http/authentication/SaslTest.java |  17 +-
 .../jms_1_1/extensions/tls/TlsTest.java |   8 +-
 .../apache/qpid/tools/RestStressTestClient.java |   8 +-
 35 files changed, 580 insertions(+), 489 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/c8c82033/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBAMQP10V0UpgradeTest.java
--
diff --git 
a/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBAMQP10V0UpgradeTest.java
 
b/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBAMQP10V0UpgradeTest.java
index 2d8fd16..c8c5e9a 100644
--- 
a/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBAMQP10V0UpgradeTest.java
+++ 
b/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBAMQP10V0UpgradeTest.java
@@ -42,7 +42,6 @@ import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.Queue;
 import javax.jms.Session;
-import javax.xml.bind.DatatypeConverter;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -50,6 +49,7 @@ import org.junit.Test;
 
 import org.apache.qpid.server.model.Protocol;
 import org.apache.qpid.server.util.FileUtils;
+import org.apache.qpid.server.util.StringUtil;
 import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBVirtualHostNode;
 import org.apache.qpid.systests.JmsTestBase;
 import org.apache.qpid.tests.utils.ConfigItem;
@@ -117,7 +117,7 @@ public class BDBAMQP10V0UpgradeTest extends UpgradeTestBase
 {
 MessageDigest digest = MessageDigest.getInstance("SHA-256");
 byte[] hash = digest.digest(content);
-return DatatypeConverter.printHexBinary(hash);
+return StringUtil.toHex(hash);
 }
 
 @Override

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/c8c82033/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
--
diff --git 
a/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
 
b/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
index a335fd1..b0f50ab 100644
--- 
a/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
+++ 

[2/3] qpid-broker-j git commit: QPID-8241 : Remove use of javax.xml.bind.DatatypeConverter

2018-09-18 Thread rgodfrey
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/c8c82033/broker-core/src/test/java/org/apache/qpid/server/transport/network/security/ssl/SSLUtilTest.java
--
diff --git 
a/broker-core/src/test/java/org/apache/qpid/server/transport/network/security/ssl/SSLUtilTest.java
 
b/broker-core/src/test/java/org/apache/qpid/server/transport/network/security/ssl/SSLUtilTest.java
index 85833c0..7498b6a 100644
--- 
a/broker-core/src/test/java/org/apache/qpid/server/transport/network/security/ssl/SSLUtilTest.java
+++ 
b/broker-core/src/test/java/org/apache/qpid/server/transport/network/security/ssl/SSLUtilTest.java
@@ -36,6 +36,7 @@ import java.security.cert.Certificate;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 import java.util.Arrays;
+import java.util.Base64;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
@@ -45,7 +46,6 @@ import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLEngine;
 import javax.net.ssl.SSLEngineResult;
 import javax.net.ssl.TrustManagerFactory;
-import javax.xml.bind.DatatypeConverter;
 
 import org.junit.Test;
 
@@ -382,376 +382,376 @@ public class SSLUtilTest extends UnitTestBase
 return clientEngine;
 }
 
-private static byte[] TRUSTSTORE = 
DatatypeConverter.parseBase64Binary("/u3+7QINAgAPa2V5c3RvcmUyLWFsaWFzAAABVutBZIkABVguNTA5AAAGHzCCBhsw"
-   
+"ggQDoAMCAQICCQCrOvhXap7bYTANBgkqhkiG9w0BAQUFADBcMQswCQYDVQQGEwJVUzEQMA4GA1UE"
-   
+"CBMHcHJpdmF0ZTERMA8GA1UEBxMIcHJvdmluY2UxDTALBgNVBAoTBGNpdHkxGTAXBgNVBAMTEGFt"
-   
+"cXAuZXhhbXBsZS5jb20wHhcNMTYwOTAyMTQxNTE1WhcNMjYwNzEyMTQxNTE1WjBcMQswCQYDVQQG"
-   
+"EwJVUzEQMA4GA1UECBMHcHJpdmF0ZTERMA8GA1UEBxMIcHJvdmluY2UxDTALBgNVBAoTBGNpdHkx"
-   
+"GTAXBgNVBAMTEGFtcXAuZXhhbXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC"
-   
+"AQCwc7RdXSWaFrtNp7RQ1YEh0n2S8VjtBosY5FB6BoNe2B14LyIVQqA/bmbgZJAfn2RTKnEcxyHL"
-   
+"qM1PZThj2lyb9/mtvt2k4gRviP4/ZYbcrtByParZPERu7gmxe7eaJn7ghpqVY5zaJ96XQFSiSzNK"
-   
+"6jBNswx2zMhMnLEzegXFbLL125K8B/++1dJNK2gB3o/M9692mygrJSvGwuPmDYcWQnzsyLPTYx0/"
-   
+"Y+eNtnaBx+4NjsSLCvlp9G7pKqHiKb4agatLHNPyMubt600eV56xWeZ4ujvZgPuPmNhO0ogtZpFW"
-   
+"tF7NrPSCbEXEMVhSgh9mrR1dyR5amEFWCvs23kSDtQZl895Z5CXm2GRAc10HYu5NJym4UE1utsAP"
-   
+"nRhcJ7lOl/lnMfXG+rbn0fnBbh5zoXi32UcCkldNLbXn9fBSn17hRZ5TmXmGOpBxa7By8k+GRkGD"
-   
+"ntQrWHIJdalI73c5Jne4W9NOkWKvTw5wKOUB9HGispvbrOXH9/Qfx/techw9qlK6WL3v7h9VE5w0"
-   
+"+DXiDy4CGq19g9L+XAQq73AvROOTruiDFsPg5rqi4cZVEAhZbHAfe+s59ZOzGIgU5BXVtsmIyiK3"
-   
+"wqQxOlsi6NNpdpv6FM8pQaOnq3tQr67R2xFmRQX6VBD+8X5xrpHNXVUR5VUJC3bc8d98J6Khi3RK"
-   
+"uQIDAQABo4HfMIHcMB0GA1UdDgQWBBQdgOTsHaTNceb+faB5aBhus4mDyDCBjgYDVR0jBIGGMIGD"
-   
+"gBQdgOTsHaTNceb+faB5aBhus4mDyKFgpF4wXDELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB3ByaXZh"
-   
+"dGUxETAPBgNVBAcTCHByb3ZpbmNlMQ0wCwYDVQQKEwRjaXR5MRkwFwYDVQQDExBhbXFwLmV4YW1w"
-   
+"bGUuY29tggkAqzr4V2qe22EwDAYDVR0TBAUwAwEB/zAcBgNVHREEFTATghFhbXFwMS5leGFtcGxl"
-   
+"LmNvbTANBgkqhkiG9w0BAQUFAAOCAgEAMR8mKY7ml9KrhnSMbvTauvuXNXT5hp0NRpmQc6Wt/Vyw"
-   
+"V4BPVAPOz/KCmMj0tkz/LOSk5MbLxXfDDhQHA1zKPxYLM4DfObUhbJcsNo+HlC2EQ8vN4srqgNFv"
-   
+"rY8yvfIgTILDUv02381njrz+GOLClSbLB7hcXvrIILENb72BwMv4QTIvXxYaJRa++s89I1OWe4f6"
-   
+"CzseEIBQ2ezMsU4Qjgv6tfvgsn6K4tfpVLT4jeJkv7xZ6WAW6XKgEcDreVGm8E0/7B0E5IBFgfA3"
-  

[1/3] qpid-broker-j git commit: QPID-8241 : Remove use of javax.xml.bind.DatatypeConverter

2018-09-18 Thread rgodfrey
Repository: qpid-broker-j
Updated Branches:
  refs/heads/master b770054f4 -> c8c820330


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/c8c82033/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/ServletConnectionPrincipal.java
--
diff --git 
a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/ServletConnectionPrincipal.java
 
b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/ServletConnectionPrincipal.java
index 6d442a8..543e7df 100644
--- 
a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/ServletConnectionPrincipal.java
+++ 
b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/ServletConnectionPrincipal.java
@@ -26,10 +26,10 @@ import java.net.SocketAddress;
 import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
-import javax.xml.bind.DatatypeConverter;
 
 import org.apache.qpid.server.management.plugin.HttpManagementUtil;
 import org.apache.qpid.server.model.Port;
@@ -66,7 +66,7 @@ public class ServletConnectionPrincipal implements 
ManagementConnectionPrincipal
 throw new RuntimeException("Cannot create SHA-256 hash", e);
 }
 byte[] digest = md.digest();
-_sessionId = 
DatatypeConverter.printBase64Binary(digest).substring(0, 
HASH_TRUNCATION_LENGTH);
+_sessionId = 
Base64.getEncoder().encodeToString(digest).substring(0, HASH_TRUNCATION_LENGTH);
 }
 else
 {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/c8c82033/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectExpressionFactory.java
--
diff --git 
a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectExpressionFactory.java
 
b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectExpressionFactory.java
index 85e3a34..de8eb5a 100644
--- 
a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectExpressionFactory.java
+++ 
b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectExpressionFactory.java
@@ -20,6 +20,18 @@
  */
 package org.apache.qpid.server.management.plugin.servlet.query;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.chrono.IsoChronology;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeFormatterBuilder;
+import java.time.format.DateTimeParseException;
+import java.time.temporal.ChronoField;
+import java.time.temporal.TemporalAccessor;
 import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Collection;
@@ -31,7 +43,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
 
-import javax.xml.bind.DatatypeConverter;
 import javax.xml.datatype.DatatypeConfigurationException;
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.datatype.Duration;
@@ -48,6 +59,22 @@ public class ConfiguredObjectExpressionFactory
 private static final TimeZone UTC = TimeZone.getTimeZone("UTC");
 private static final DatatypeFactory DATATYPE_FACTORY;
 
+private static final DateTimeFormatter ISO_DATE_TIME_FORMAT =  new 
DateTimeFormatterBuilder()
+.parseCaseInsensitive()
+.append(DateTimeFormatter.ISO_LOCAL_DATE)
+.optionalStart()
+.appendLiteral('T')
+.append(DateTimeFormatter.ISO_LOCAL_TIME)
+.optionalStart()
+.appendOffsetId()
+.optionalStart()
+.appendLiteral('[')
+.parseCaseSensitive()
+.appendZoneRegionId()
+.appendLiteral(']')
+.toFormatter()
+.withChronology(IsoChronology.INSTANCE);
+
 static
 {
 try
@@ -122,13 +149,28 @@ public class ConfiguredObjectExpressionFactory
 }
 try
 {
-final Calendar calendar = 
DatatypeConverter.parseDateTime((String) dateTime);
-return calendar.getTime();
+
+return 
DateTimeFormatter.ISO_ZONED_DATE_TIME.parse((String)dateTime)
+.query(this::convertToDate);

qpid-proton git commit: NO-JIRA: [Python] Trivial pylint fixes

2018-09-18 Thread astitcher
Repository: qpid-proton
Updated Branches:
  refs/heads/master 57f5ec14a -> 348e9da89


NO-JIRA: [Python] Trivial pylint fixes


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

Branch: refs/heads/master
Commit: 348e9da8923f590c67a9fd01e91011987f238038
Parents: 57f5ec1
Author: Andrew Stitcher 
Authored: Thu Sep 13 17:23:26 2018 -0400
Committer: Andrew Stitcher 
Committed: Tue Sep 18 09:16:00 2018 -0400

--
 python/proton/_reactor.py  | 22 +++---
 python/proton/_reactor_impl.py |  2 +-
 2 files changed, 12 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/348e9da8/python/proton/_reactor.py
--
diff --git a/python/proton/_reactor.py b/python/proton/_reactor.py
index 1d09b18..63e89c8 100644
--- a/python/proton/_reactor.py
+++ b/python/proton/_reactor.py
@@ -51,10 +51,10 @@ from ._handlers import OutgoingMessageHandler
 from . import _compat
 from ._compat import queue
 
-log = logging.getLogger("proton")
+Logger = logging.getLogger("proton")
 
 
-def generate_uuid():
+def _generate_uuid():
 return uuid.uuid4()
 
 
@@ -428,7 +428,7 @@ class Transaction(object):
 elif event.delivery.remote_state == Delivery.REJECTED:
 self.handler.on_transaction_declare_failed(event)
 else:
-log.warning("Unexpected outcome for declare: %s" % 
event.delivery.remote_state)
+Logger.warning("Unexpected outcome for declare: %s" % 
event.delivery.remote_state)
 self.handler.on_transaction_declare_failed(event)
 elif event.delivery == self._discharge:
 if event.delivery.remote_state == Delivery.REJECTED:
@@ -614,7 +614,7 @@ class Connector(Handler):
 # if virtual-host not set, use host from address as default
 if self.virtual_host is None:
 connection.hostname = url.host
-log.debug("connecting to %r..." % url)
+Logger.debug("connecting to %r..." % url)
 
 transport = Transport()
 if self.sasl_enabled:
@@ -645,7 +645,7 @@ class Connector(Handler):
 self._connect(event.connection, event.reactor)
 
 def on_connection_remote_open(self, event):
-log.debug("connected to %s" % event.connection.hostname)
+Logger.debug("connected to %s" % event.connection.hostname)
 if self.reconnect:
 self.reconnect.reset()
 self.transport = None
@@ -660,15 +660,15 @@ class Connector(Handler):
 event.transport.unbind()
 delay = self.reconnect.next()
 if delay == 0:
-log.info("Disconnected, reconnecting...")
+Logger.info("Disconnected, reconnecting...")
 self._connect(self.connection, event.reactor)
 return
 else:
-log.info("Disconnected will try to reconnect after %s 
seconds" % delay)
+Logger.info("Disconnected will try to reconnect after %s 
seconds" % delay)
 event.reactor.schedule(delay, self)
 return
 else:
-log.debug("Disconnected")
+Logger.debug("Disconnected")
 # See connector.cpp: conn.free()/pn_connection_release() here?
 self.connection = None
 
@@ -744,7 +744,7 @@ class Container(Reactor):
 self.ssl = None
 self.global_handler = GlobalOverrides(kwargs.get('global_handler', 
self.global_handler))
 self.trigger = None
-self.container_id = str(generate_uuid())
+self.container_id = str(_generate_uuid())
 self.allow_insecure_mechs = True
 self.allowed_mechs = None
 self.sasl_enabled = True
@@ -802,7 +802,7 @@ class Container(Reactor):
 
 """
 conn = self.connection(handler)
-conn.container = self.container_id or str(generate_uuid())
+conn.container = self.container_id or str(_generate_uuid())
 conn.offered_capabilities = kwargs.get('offered_capabilities')
 conn.desired_capabilities = kwargs.get('desired_capabilities')
 conn.properties = kwargs.get('properties')
@@ -850,7 +850,7 @@ class Container(Reactor):
 elif remote:
 return "%s-%s" % (container, remote)
 else:
-return "%s-%s" % (container, str(generate_uuid()))
+return "%s-%s" % (container, str(_generate_uuid()))
 
 def _get_session(self, context):
 if isinstance(context, Url):


qpid-proton git commit: NO-JIRA: Remove unused deprecated reactor functionality

2018-09-18 Thread astitcher
Repository: qpid-proton
Updated Branches:
  refs/heads/master 0800c1995 -> 57f5ec14a


NO-JIRA: Remove unused deprecated reactor functionality


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

Branch: refs/heads/master
Commit: 57f5ec14aebe374d718cbb87c079a7b56cb6b705
Parents: 0800c19
Author: Andrew Stitcher 
Authored: Mon Sep 17 13:59:38 2018 -0400
Committer: Andrew Stitcher 
Committed: Mon Sep 17 13:59:38 2018 -0400

--
 c/include/proton/selectable.h | 27 ---
 c/src/reactor/selectable.c| 15 ---
 2 files changed, 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/57f5ec14/c/include/proton/selectable.h
--
diff --git a/c/include/proton/selectable.h b/c/include/proton/selectable.h
index 9bfb867..c6d1722 100644
--- a/c/include/proton/selectable.h
+++ b/c/include/proton/selectable.h
@@ -36,11 +36,6 @@ extern "C" {
  */
 
 /**
- * An iterator for selectables.
- */
-typedef pn_iterator_t pn_selectables_t;
-
-/**
  * A ::pn_socket_t provides an abstract handle to an IO stream.  The
  * pipe version is uni-directional.  The network socket version is
  * bi-directional.  Both are non-blocking.
@@ -88,28 +83,6 @@ typedef int pn_socket_t;
  */
 typedef struct pn_selectable_t pn_selectable_t;
 
-/**
- * Construct a new selectables iterator.
- *
- * @return a pointer to a new selectables iterator
- */
-PNX_EXTERN pn_selectables_t *pn_selectables(void);
-
-/**
- * Get the next selectable from an iterator.
- *
- * @param[in] selectables a selectable iterator
- * @return the next selectable from the iterator
- */
-PNX_EXTERN pn_selectable_t *pn_selectables_next(pn_selectables_t *selectables);
-
-/**
- * Free a selectables iterator.
- *
- * @param[in] selectables a selectables iterator (or NULL)
- */
-PNX_EXTERN void pn_selectables_free(pn_selectables_t *selectables);
-
 PNX_EXTERN pn_selectable_t *pn_selectable(void);
 
 PNX_EXTERN void pn_selectable_on_readable(pn_selectable_t *sel, void 
(*readable)(pn_selectable_t *));

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/57f5ec14/c/src/reactor/selectable.c
--
diff --git a/c/src/reactor/selectable.c b/c/src/reactor/selectable.c
index b42ad1f..473f113 100644
--- a/c/src/reactor/selectable.c
+++ b/c/src/reactor/selectable.c
@@ -28,21 +28,6 @@
 #include 
 #include 
 
-pn_selectables_t *pn_selectables(void)
-{
-  return pn_iterator();
-}
-
-pn_selectable_t *pn_selectables_next(pn_selectables_t *selectables)
-{
-  return (pn_selectable_t *) pn_iterator_next(selectables);
-}
-
-void pn_selectables_free(pn_selectables_t *selectables)
-{
-  pn_free(selectables);
-}
-
 struct pn_selectable_t {
   pn_socket_t fd;
   int index;


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



[2/2] qpid-dispatch git commit: DISPATCH 1096 - store priority in links

2018-09-18 Thread tross
DISPATCH 1096 - store priority in links


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

Branch: refs/heads/master
Commit: a9ace9708ec8c48ca1868eb5998befe81640bfb0
Parents: 94bef70
Author: Michael Goulish 
Authored: Thu Sep 13 10:33:02 2018 -0400
Committer: Ted Ross 
Committed: Tue Sep 18 08:46:43 2018 -0400

--
 src/router_core/connections.c | 18 ++
 src/router_core/forwarder.c   | 14 +++---
 src/router_core/router_core_private.h |  3 ++-
 src/router_core/transfer.c|  3 +--
 4 files changed, 16 insertions(+), 22 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/a9ace970/src/router_core/connections.c
--
diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index 2723c6c..32fbf48 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -817,9 +817,7 @@ static void qdr_link_cleanup_CT(qdr_core_t *core, 
qdr_connection_t *conn, qdr_li
 if (link->link_type == QD_LINK_CONTROL)
 core->control_links_by_mask_bit[conn->mask_bit] = 0;
 if (link->link_type == QD_LINK_ROUTER)
-for (int priority = 0; priority < QDR_N_PRIORITIES; ++ priority)
-if (link == 
core->data_links_by_mask_bit[conn->mask_bit].links[priority])
-
core->data_links_by_mask_bit[conn->mask_bit].links[priority] = 0;
+core->data_links_by_mask_bit[conn->mask_bit].links[link->priority] 
= 0;
 }
 
 //
@@ -852,9 +850,7 @@ static void qdr_link_cleanup_CT(qdr_core_t *core, 
qdr_connection_t *conn, qdr_li
 //
 qdr_del_link_ref(>links, link, QDR_LINK_LIST_CLASS_CONNECTION);
 sys_mutex_lock(conn->work_lock);
-for (int priority = 0; priority < QDR_N_PRIORITIES; ++ priority) {
-qdr_del_link_ref(conn->links_with_work + priority, link, 
QDR_LINK_LIST_CLASS_WORK);
-}
+qdr_del_link_ref(conn->links_with_work + link->priority, link, 
QDR_LINK_LIST_CLASS_WORK);
 sys_mutex_unlock(conn->work_lock);
 
 //
@@ -1438,11 +1434,14 @@ static void qdr_detach_link_control_CT(qdr_core_t 
*core, qdr_connection_t *conn,
 static void qdr_attach_link_data_CT(qdr_core_t *core, qdr_connection_t *conn, 
qdr_link_t *link)
 {
 if (conn->role == QDR_ROLE_INTER_ROUTER) {
+// As inter-router links are attached to this connection, they
+// are assigned priorities in the order in which they are attached.
 int next_slot = core->data_links_by_mask_bit[conn->mask_bit].count ++;
 if (next_slot >= QDR_N_PRIORITIES) {
 qd_log(core->log, QD_LOG_ERROR, "Attempt to attach too many 
inter-router links for priority sheaf.");
 return;
 }
+link->priority = next_slot;
 core->data_links_by_mask_bit[conn->mask_bit].links[next_slot] = link;
 }
 
@@ -1483,12 +1482,7 @@ static void qdr_attach_link_data_CT(qdr_core_t *core, 
qdr_connection_t *conn, qd
 static void qdr_detach_link_data_CT(qdr_core_t *core, qdr_connection_t *conn, 
qdr_link_t *link)
 {
 if (conn->role == QDR_ROLE_INTER_ROUTER)
-for (int priority = 0; priority < QDR_N_PRIORITIES; ++ priority) {
-if (link == 
core->data_links_by_mask_bit[conn->mask_bit].links[priority]) {
-core->data_links_by_mask_bit[conn->mask_bit].links[priority] = 
0;
-break;
-}
-}
+core->data_links_by_mask_bit[conn->mask_bit].links[link->priority] = 0;
 //
 // TODO - This needs to be refactored in terms of a non-inter-router link 
type
 //

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/a9ace970/src/router_core/forwarder.c
--
diff --git a/src/router_core/forwarder.c b/src/router_core/forwarder.c
index 4364c47..8ccb049 100644
--- a/src/router_core/forwarder.c
+++ b/src/router_core/forwarder.c
@@ -175,7 +175,7 @@ static void qdr_forward_drop_presettled_CT_LH(qdr_core_t 
*core, qdr_link_t *link
 }
 
 
-void qdr_forward_deliver_CT(qdr_core_t *core, qdr_link_t *out_link, 
qdr_delivery_t *out_dlv, int priority)
+void qdr_forward_deliver_CT(qdr_core_t *core, qdr_link_t *out_link, 
qdr_delivery_t *out_dlv)
 {
 sys_mutex_lock(out_link->conn->work_lock);
 
@@ -208,7 +208,7 @@ void qdr_forward_deliver_CT(qdr_core_t *core, qdr_link_t 
*out_link, qdr_delivery
 work->value = 1;
 DEQ_INSERT_TAIL(out_link->work_list, work);
 }
-qdr_add_link_ref(out_link->conn->links_with_work + priority, out_link, 

[1/2] qpid-dispatch git commit: DISPATCH-1096 - Added a new link-list-class for local (on-stack) lists. Tightened up some critical sections. This closes #375

2018-09-18 Thread tross
Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 94bef705d -> 92f00baf6


DISPATCH-1096 - Added a new link-list-class for local (on-stack) lists.  
Tightened up some critical sections.
This closes #375


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

Branch: refs/heads/master
Commit: 92f00baf66533d884cbeba186405cfee480f6992
Parents: a9ace97
Author: Ted Ross 
Authored: Tue Sep 18 08:42:48 2018 -0400
Committer: Ted Ross 
Committed: Tue Sep 18 08:46:43 2018 -0400

--
 src/router_core/connections.c | 23 ++-
 src/router_core/router_core.c |  8 
 src/router_core/router_core_private.h |  4 +++-
 3 files changed, 29 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/92f00baf/src/router_core/connections.c
--
diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index 32fbf48..cbece87 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -218,6 +218,16 @@ int qdr_connection_process(qdr_connection_t *conn)
 DEQ_MOVE(conn->work_list, work_list);
 for (int priority = 0; priority < QDR_N_PRIORITIES; ++ priority) {
 DEQ_MOVE(conn->links_with_work[priority], links_with_work[priority]);
+
+//
+// Move the references from CLASS_WORK to CLASS_LOCAL so concurrent 
action in the core
+// thread doesn't assume these links are referenced from the 
connection's list.
+//
+ref = DEQ_HEAD(links_with_work[priority]);
+while (ref) {
+move_link_ref(ref->link, QDR_LINK_LIST_CLASS_WORK, 
QDR_LINK_LIST_CLASS_LOCAL);
+ref = DEQ_NEXT(ref);
+}
 }
 sys_mutex_unlock(conn->work_lock);
 
@@ -249,23 +259,26 @@ int qdr_connection_process(qdr_connection_t *conn)
 qdr_link_work_t *link_work;
 free_link = false;
 
-sys_mutex_lock(conn->work_lock);
 ref = DEQ_HEAD(links_with_work[priority]);
 if (ref) {
 link = ref->link;
-qdr_del_link_ref(links_with_work + priority, ref->link, 
QDR_LINK_LIST_CLASS_WORK);
+qdr_del_link_ref(links_with_work + priority, ref->link, 
QDR_LINK_LIST_CLASS_LOCAL);
 
+//
+// The work lock must be used to protect accesses to the 
link's work_list and
+// link_work->processing.
+//
+sys_mutex_lock(conn->work_lock);
 link_work = DEQ_HEAD(link->work_list);
 if (link_work) {
 DEQ_REMOVE_HEAD(link->work_list);
 link_work->processing = true;
 }
+sys_mutex_unlock(conn->work_lock);
 } else
 link = 0;
-sys_mutex_unlock(conn->work_lock);
 
 if (link) {
-
 //
 // Handle disposition/settlement updates
 //
@@ -848,8 +861,8 @@ static void qdr_link_cleanup_CT(qdr_core_t *core, 
qdr_connection_t *conn, qdr_li
 //
 // Remove the reference to this link in the connection's reference lists
 //
-qdr_del_link_ref(>links, link, QDR_LINK_LIST_CLASS_CONNECTION);
 sys_mutex_lock(conn->work_lock);
+qdr_del_link_ref(>links, link, QDR_LINK_LIST_CLASS_CONNECTION);
 qdr_del_link_ref(conn->links_with_work + link->priority, link, 
QDR_LINK_LIST_CLASS_WORK);
 sys_mutex_unlock(conn->work_lock);
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/92f00baf/src/router_core/router_core.c
--
diff --git a/src/router_core/router_core.c b/src/router_core/router_core.c
index 580cb92..e41a633 100644
--- a/src/router_core/router_core.c
+++ b/src/router_core/router_core.c
@@ -451,6 +451,14 @@ void qdr_del_link_ref(qdr_link_ref_list_t *ref_list, 
qdr_link_t *link, int cls)
 }
 
 
+void move_link_ref(qdr_link_t *link, int from_cls, int to_cls)
+{
+assert(link->ref[to_cls] == 0);
+link->ref[to_cls] = link->ref[from_cls];
+link->ref[from_cls] = 0;
+}
+
+
 void qdr_add_connection_ref(qdr_connection_ref_list_t *ref_list, 
qdr_connection_t *conn)
 {
 qdr_connection_ref_t *ref = new_qdr_connection_ref_t();

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/92f00baf/src/router_core/router_core_private.h
--
diff --git a/src/router_core/router_core_private.h 
b/src/router_core/router_core_private.h
index 

qpid-dispatch git commit: DISPATCH-1122: Use correct format specifier

2018-09-18 Thread gsim
Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 75a69f345 -> 94bef705d


DISPATCH-1122: Use correct format specifier


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

Branch: refs/heads/master
Commit: 94bef705d11a3ece802094aa8b603192344967a2
Parents: 75a69f3
Author: Ulf Lilleengen 
Authored: Tue Sep 18 09:48:54 2018 +0200
Committer: Ulf Lilleengen 
Committed: Tue Sep 18 09:48:54 2018 +0200

--
 src/remote_sasl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/94bef705/src/remote_sasl.c
--
diff --git a/src/remote_sasl.c b/src/remote_sasl.c
index 636d227..34eb51d 100644
--- a/src/remote_sasl.c
+++ b/src/remote_sasl.c
@@ -286,7 +286,7 @@ static void remote_sasl_prepare(pn_transport_t *transport)
 switch (impl->outcome) {
 case PN_SASL_OK:
 set_policy_settings(impl->upstream, >permissions);
-qd_log(auth_service_log, QD_LOG_INFO, "authenticated as % ", 
impl->username);
+qd_log(auth_service_log, QD_LOG_INFO, "authenticated as %s", 
impl->username);
 pnx_sasl_succeed_authentication(transport, impl->username);
 break;
 default:


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