[jira] Created: (QPID-2616) Qpid C++ broker: disconnect client when handshake incomplete

2010-05-19 Thread Armin Noll (JIRA)
Qpid C++ broker: disconnect client when handshake incomplete


 Key: QPID-2616
 URL: https://issues.apache.org/jira/browse/QPID-2616
 Project: Qpid
  Issue Type: New Feature
  Components: C++ Broker
 Environment: Red Hat Enterprise MRG 1.2
Reporter: Armin Noll


The broker should disconnect clients if the connection handshake doesn't 
complete after a configurable time (both for SSL and for non-SSL connections).

We are looking for an implementation of this feature and will provide it as 
soon as we are done.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2616) Qpid C++ broker: disconnect client when handshake incomplete

2010-05-19 Thread Armin Noll (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Armin Noll updated QPID-2616:
-

Description: 
The broker should disconnect clients if the connection handshake doesn't 
complete after a configurable time (both for SSL and for non-SSL connections).

This feature has already been mentioned by G. Sim in the JIRA QPID-2518.

We are looking for an implementation of this feature and will provide it as 
soon as we are done.

  was:
The broker should disconnect clients if the connection handshake doesn't 
complete after a configurable time (both for SSL and for non-SSL connections).

We are looking for an implementation of this feature and will provide it as 
soon as we are done.


 Qpid C++ broker: disconnect client when handshake incomplete
 

 Key: QPID-2616
 URL: https://issues.apache.org/jira/browse/QPID-2616
 Project: Qpid
  Issue Type: New Feature
  Components: C++ Broker
 Environment: Red Hat Enterprise MRG 1.2
Reporter: Armin Noll

 The broker should disconnect clients if the connection handshake doesn't 
 complete after a configurable time (both for SSL and for non-SSL connections).
 This feature has already been mentioned by G. Sim in the JIRA QPID-2518.
 We are looking for an implementation of this feature and will provide it as 
 soon as we are done.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Created: (QPID-2617) make sasl-based tests config files relocatable

2010-05-19 Thread michael j. goulish (JIRA)
make sasl-based tests config files relocatable
--

 Key: QPID-2617
 URL: https://issues.apache.org/jira/browse/QPID-2617
 Project: Qpid
  Issue Type: Improvement
  Components: C++ Broker
Reporter: michael j. goulish
Assignee: michael j. goulish


Currently, sasl-based testing is hampered by the fact that the sasl library 
code is only reading its configuration information from the standard installed 
location /etc/sasl2 .  This means that sasl installation must be done manually 
on a machine prior to running sasl-based tests, which makes them not fully 
automatable.

 1.  Find a way of telling the library to look elsewhere
 2.  expose that mechanism through a broker option 
 3.  check a suitable config file into our source tree, at cpp/src/tests
 4.  reference the locally-created sasldb from the new config file
 5.  the new sasl tests should be runnable by any users -- not just root.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Minor changes, need review

2010-05-19 Thread Andrew Kennedy
Hi.

While working away on new ACL code, I have found and fixed a few
little one-line and other minor issues, raised as the following JIRAs:
QPID-2607, QPID-2608, QPID-2609, QPID-2610 and QPID-2611. Could
someone please take a look at the patches I have attached to them, and
maybe even commit if they look OK?

Cheers,
Andrew.
-- 
-- andrew d kennedy ? edinburgh : +44 7941 197 134

-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Persistence Message Store Plug-in for C++

2010-05-19 Thread Satpathy, Rahul
Hi QPID Dev Team

We have a requirement of creating a persistence message store
plug-in in C++ like that of Berkley DB.  We have our own message queues
implementation which we want to use as a plug-in to QPID . The
documentation available online does not talk much about how to develop
third party message store plug-ins.  Do you have some documentation /
standards which the third party message store plug-in should implement /
adhere to ? It would be really useful if those documents can be shared .

Thanks  Regards

Rahul Satpathy
Software Developer
CA Technologies
Mbl: +91-9963027925
@ http://the-rebel-speaks.blogspot.com/




[jira] Updated: (QPID-2581) Create a ConfigurationManager to allow plugins to provide configuration handling classes

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2581:
-

Attachment: (was: 
0003-QPID-2581-Update-configuration-manager-to-allow-mul.patch)

 Create a ConfigurationManager to allow plugins to provide configuration 
 handling classes
 

 Key: QPID-2581
 URL: https://issues.apache.org/jira/browse/QPID-2581
 Project: Qpid
  Issue Type: New Feature
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 
 0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch


 To allow plugins to handle configuration add a ConfigurationManager that will 
 load ConfigurationPlugins during the configuration process before the broker 
 starts up. 
 This will allow the configuration values to be processed and determined to be 
 valid input before we actually attempt to continue broker startup.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2585) Upgrade Felix to 2.0.5

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2585:
-

Attachment: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch

qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/Activator.java
qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginFactory.java
qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/MockPluginManager.java

 Upgrade Felix to 2.0.5
 --

 Key: QPID-2585
 URL: https://issues.apache.org/jira/browse/QPID-2585
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch


 Felix 1.0 has a number of issues that prevent us using as our OSGi manager, 
 upgrading to the latest 2.0.5 will address these issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2569) Implement the SimpleXML as an OSGI plugin

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2569:
-

Attachment: 0007-QPID-2569-Implement-the-SimpleXML-as-an-OSGi-plugin.patch

qpid/java/broker-plugins/simple-xml/MANIFEST.MF
qpid/java/broker-plugins/simple-xml/build.xml
qpid/java/broker-plugins/simple-xml/src/main/java/org/apache/qpid/server/security/access/config/PrincipalPermissions.java
qpid/java/broker-plugins/simple-xml/src/main/java/org/apache/qpid/server/security/access/plugins/SimpleXML.java
qpid/java/broker-plugins/simple-xml/src/main/java/org/apache/qpid/server/security/access/plugins/SimpleXMLActivator.java
qpid/java/broker-plugins/simple-xml/src/main/java/org/apache/qpid/server/security/access/plugins/SimpleXMLConfiguration.java
qpid/java/broker-plugins/simple-xml/src/test/java/org/apache/qpid/server/security/access/PrincipalPermissionsTest.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/plugins/SimpleXML.java
qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/SimpleACLTest.java


 Implement the SimpleXML as an OSGI plugin
 -

 Key: QPID-2569
 URL: https://issues.apache.org/jira/browse/QPID-2569
 Project: Qpid
  Issue Type: Improvement
Affects Versions: 0.7
Reporter: Sorin Suciu
Priority: Minor
 Fix For: 0.7

 Attachments: 
 0007-QPID-2569-Implement-the-SimpleXML-as-an-OSGi-plugin.patch, 
 simple-xml.tgz, simplexml.tgz


 The SimpleXML is in the main code but intended to be an OSGI plugin. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: Persistence Message Store Plug-in for C++

2010-05-19 Thread Gordon Sim

On 05/19/2010 12:51 PM, Steve Huston wrote:

Hi Rahul,


We have a requirement of creating a persistence message
store plug-in in C++ like that of Berkley DB.  We have our
own message queues implementation which we want to use as a
plug-in to QPID . The documentation available online does not
talk much about how to develop third party message store
plug-ins.  Do you have some documentation / standards which
the third party message store plug-in should implement /
adhere to ? It would be really useful if those documents can
be shared .


The plug-in should adhere to the interface in
qpid/cpp/src/qpid/store/StorageProvider.h. The sources in that directory
are set up to offer a variety of storage providers that can be selected
at run time. You can check the ms_sql directory under there for the
current Windows SQL-based implementation.

There is some documentation for how this works, but the web site is not
too functional at this point. Try to make progress with the code and its
comments. If you have any questions, feel free to ask back here.


One thing to be aware of is that the APIs/ABIs for broker plugins are in 
no way stable at this point and are likely to undergo some changes.


However having more input on that would be good and your involvement 
would be very much welcomed.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: (was: 
0005-QPID-2606-Identify-where-ACL-permission-should-be-a.patch)

 Clarify/identify where ACL permission should be applied in the broker 
 --

 Key: QPID-2606
 URL: https://issues.apache.org/jira/browse/QPID-2606
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2542) Implement ACL checking as OSGi plugin

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2542:
-

Attachment: (was: access-control.tgz)

 Implement ACL checking as OSGi plugin
 -

 Key: QPID-2542
 URL: https://issues.apache.org/jira/browse/QPID-2542
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0011-QPID-2542-Implement-ACL-checking-as-OSGi-plugin.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch

qpid/java/broker/etc/config.xml
qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java
qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
qpid/java/broker/src/main/java/org/apache/qpid/server/binding/BindingFactory.java
qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchangeMBean.java
qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeFactory.java
qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DefaultExchangeRegistry.java
qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/Exchange.java
qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/ExchangeFactory.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicConsumeMethodHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicGetMethodHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicPublishMethodHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ChannelOpenHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionOpenMethodHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionSecureOkMethodHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ConnectionStartOkMethodHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeclareHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/ExchangeDeleteHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueBindHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeleteHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueuePurgeHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueUnbindHandler.java
qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/Plugin.java
qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java
qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/AbstractPlugin.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/AbstractProxyPlugin.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/Result.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityPlugin.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginActivator.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityPluginFactory.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ACLManager.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ACLPlugin.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ACLPluginFactory.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/AccessResult.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/AccessRights.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Accessable.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/AuthorizationManager.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectType.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Operation.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Permission.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/PrincipalPermissions.java
qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/VirtualHostAccess.java

[jira] Updated: (QPID-1447) Broker does not handle with slow consumers effectively

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-1447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-1447:
-

Attachment: 0012-QPID-1447-Updated-to-use-newer-configuration-plugin.patch

qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java
qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java
qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java
qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java
qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicy.java
qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPlugin.java
qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPluginFactory.java


 Broker does not handle with slow consumers effectively
 --

 Key: QPID-1447
 URL: https://issues.apache.org/jira/browse/QPID-1447
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Affects Versions: M3
 Environment: Any
Reporter: Robert Greig
Assignee: Martin Ritchie
Priority: Critical
 Attachments: 
 0012-QPID-1447-Updated-to-use-newer-configuration-plugin.patch


 Please see this qpid-user thread for further context: 
 http://markmail.org/message/vgtssb2ivyttnbsf
 The qpid java broker does not deal effectively with slow consumers. This is a 
 combination of two issues: a MINA issue and a lack of support in qpid itself.
 The MINA issue is similar to the fast producer issue. In this case, the 
 data is stored in the MINA session queues, and does not appear in the queue 
 counts which makes it very difficult for users to track down. Each MINA 
 session event queue needs to be a bounded list.
 The broker also needs enhancement to offer at least two options when a queue 
 builds up:
 1) throttle the publisher. This is likely to be something that is desirable 
 for public queues.
 2) disconnect the slow consumer. This will be used when dealing with private 
 queues - typically bound to a topic exchange.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2569) Implement the SimpleXML as an OSGI plugin

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2569:
-

Attachment: (was: simple-xml.tgz)

 Implement the SimpleXML as an OSGI plugin
 -

 Key: QPID-2569
 URL: https://issues.apache.org/jira/browse/QPID-2569
 Project: Qpid
  Issue Type: Improvement
Affects Versions: 0.7
Reporter: Sorin Suciu
Priority: Minor
 Fix For: 0.7

 Attachments: 
 0007-QPID-2569-Implement-the-SimpleXML-as-an-OSGi-plugin.patch, simplexml.tgz


 The SimpleXML is in the main code but intended to be an OSGI plugin. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2585) Upgrade Felix to 2.0.5

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2585:
-

Attachment: 0013-QPID-2585-Update-extras-OSGi-plugin-to-work-with-la.patch

qpid/java/broker-plugins/extras/MANIFEST.MF
qpid/java/broker-plugins/extras/build.xml
qpid/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchange.java
qpid/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/example/TestExchange.java
qpid/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java
qpid/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/PluginTest.java


 Upgrade Felix to 2.0.5
 --

 Key: QPID-2585
 URL: https://issues.apache.org/jira/browse/QPID-2585
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch, 
 0013-QPID-2585-Update-extras-OSGi-plugin-to-work-with-la.patch


 Felix 1.0 has a number of issues that prevent us using as our OSGi manager, 
 upgrading to the latest 2.0.5 will address these issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2573) Implement the Firewall functionality as an OSGI plugin

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2573:
-

Attachment: (was: firewall.tgz)

 Implement the Firewall functionality as an OSGI plugin
 --

 Key: QPID-2573
 URL: https://issues.apache.org/jira/browse/QPID-2573
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Affects Versions: 0.7
Reporter: Sorin Suciu
 Fix For: 0.7

 Attachments: 
 0008-QPID-2573-Implement-the-Firewall-functionality-as-a.patch


 The firewall functionality should be exposed as a OSGI plugin and detached 
 from main tree. This allows one to use the service on demand. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Commented: (QPID-2476) Complete ACL implementation for 0-10 code path

2010-05-19 Thread Andrew Kennedy (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12869108#action_12869108
 ] 

Andrew Kennedy commented on QPID-2476:
--

The patches for QPID-2585 (both), QPID-2581, QPID-2542, QPID-2606 and QPID-1447 
should be applied to test the new ACL mechanism. Apologoies for the large size 
of this update. I am happy to go over the purpose of the files for anyone who 
wants clarification, and I am in the process of writing (more) documentation. 
Also, there is still scope for some implementation details to change in the 
future, based on the outcome of discussions on qpid-dev.

Andrew.

 Complete ACL implementation for 0-10 code path
 --

 Key: QPID-2476
 URL: https://issues.apache.org/jira/browse/QPID-2476
 Project: Qpid
  Issue Type: New Feature
  Components: Java Broker
Affects Versions: 0.7
Reporter: Andrew Kennedy
 Fix For: 0.7

   Original Estimate: 336h
  Remaining Estimate: 336h

 Complete ACL implementation for 0-10 code path, providing an ACLv2 
 implementation that covers the following features/requirements:
 - Best practice security design
 - Support for roles/groups
 - Appropriate for standard stores for authorisation credentials (e.g. LDAP, 
 Kerberos)
 - Expressable as XML
 - Easy to store/backup/extract ACL config
 - Exception handling catching at point of ACL application and return to 
 client via Connection ExceptionListener with correct error code, log failure 
 in broker
 - No significant performance cost on publish, permissions to be cached
 - Security handled at correct level of abstraction internally
 - Interoperability with existing ACLv2

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: svn commit: r945945 - in /qpid/trunk/qpid/java: client/src/main/java/org/apache/qpid/client/ systests/src/main/java/org/apache/qpid/test/client/destination/

2010-05-19 Thread Martin Ritchie
Hi Rajith is the testLinkCapacity testing some special CPP broker functionality?
+if (!isCppBroker())
+{
+_logger.info(Not C++ broker, exiting test);
+return;
+}

If it is not for the Java broker it should be excluded in the
JavaExcludes file. I know that our current exclusion method is not the
best. Solutions on a postcard ;)

However, it appears to be testing 0-10 functionality so should it not
also run against the Java broker with 0-10?

Cheers
Martin

On 19 May 2010 00:05,  raj...@apache.org wrote:
 Author: rajith
 Date: Tue May 18 23:05:36 2010
 New Revision: 945945

 URL: http://svn.apache.org/viewvc?rev=945945view=rev
 Log:
 Implemented the feature described in QPID-2515
 However a few issues needs to be ironed out - see the JIRA for these issues.

 Modified:

 qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java

 qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java

 qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java

 Modified: 
 qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
 URL: 
 http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java?rev=945945r1=945944r2=945945view=diff
 ==
 --- 
 qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
  (original)
 +++ 
 qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
  Tue May 18 23:05:36 2010
 @@ -142,7 +142,7 @@ public class AMQSession_0_10 extends AMQ
  * USed to store the range of in tx messages
  */
 private RangeSet _txRangeSet = new RangeSet();
 -private int _txSize = 0;
 +private int _txSize = 0;
 //--- constructors

 /**
 @@ -560,6 +560,9 @@ public class AMQSession_0_10 extends AMQ
 throws AMQException, FailoverException
 {
 boolean preAcquire;
 +
 +long capacity = getCapacity(consumer.getDestination());
 +
 try
 {
 preAcquire = ( ! consumer.isNoConsume()  
 @@ -578,7 +581,7 @@ public class AMQSession_0_10 extends AMQ

 String consumerTag = 
 ((BasicMessageConsumer_0_10)consumer).getConsumerTagString();

 -if (! prefetch())
 +if (capacity == 0)
 {
 getQpidSession().messageSetFlowMode(consumerTag, 
 MessageFlowMode.CREDIT);
 }
 @@ -589,12 +592,12 @@ public class AMQSession_0_10 extends AMQ
 getQpidSession().messageFlow(consumerTag, MessageCreditUnit.BYTE, 
 0x,
  Option.UNRELIABLE);

 -if(prefetch()  _dispatcher != null  (isStarted() || 
 _immediatePrefetch))
 +if(capacity  0  _dispatcher != null  (isStarted() || 
 _immediatePrefetch))
 {
 // set the flow
 getQpidSession().messageFlow(consumerTag,
  MessageCreditUnit.MESSAGE,
 - getAMQConnection().getMaxPrefetch(),
 + capacity,
  Option.UNRELIABLE);
 }

 @@ -604,6 +607,21 @@ public class AMQSession_0_10 extends AMQ
 getCurrentException();
 }
 }
 +
 +private long getCapacity(AMQDestination destination)
 +{
 +long capacity = 0;
 +if (destination.getDestSyntax() == DestSyntax.ADDR 
 +destination.getSourceLink().getCapacity()  0)
 +{
 +capacity = destination.getSourceLink().getCapacity();
 +}
 +else if (prefetch())
 +{
 +capacity = getAMQConnection().getMaxPrefetch();
 +}
 +return capacity;
 +}

 /**
  * Create an 0_10 message producer
 @@ -744,7 +762,9 @@ public class AMQSession_0_10 extends AMQ
 //only set if msg list is null
 try
 {
 -if (! prefetch())
 +long capacity = getCapacity(consumer.getDestination());
 +
 +if (capacity == 0)
 {
 if (consumer.getMessageListener() != null)
 {
 @@ -757,7 +777,7 @@ public class AMQSession_0_10 extends AMQ
 {
 getQpidSession()
 .messageFlow(consumerTag, 
 MessageCreditUnit.MESSAGE,
 - getAMQConnection().getMaxPrefetch(),
 + capacity,
  Option.UNRELIABLE);
 }
 getQpidSession()

 Modified: 
 

Re: svn commit: r945789 - /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java

2010-05-19 Thread Martin Ritchie
All Java test writers

It would make the test code much easier to read if we use
Session.TRANSACTED_SESSION when we really mean to create a transacted
session:
The intent of the following line is unclear:
 +Session consSessB = _connection.createSession(true, 
 Session.AUTO_ACKNOWLEDGE);

Rajith did you want a Transacted session here?

Martin


On 18 May 2010 18:53,  raj...@apache.org wrote:
 Author: rajith
 Date: Tue May 18 17:53:02 2010
 New Revision: 945789

 URL: http://svn.apache.org/viewvc?rev=945789view=rev
 Log:
 Modified the test slightly to make it work against the 0-10 code path.
 Verified that it works against the C++ broker and the Java broker (both 0-8 
 and 0-10 codepaths).

 Modified:

 qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java

 Modified: 
 qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
 URL: 
 http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java?rev=945789r1=945788r2=945789view=diff
 ==
 --- 
 qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
  (original)
 +++ 
 qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
  Tue May 18 17:53:02 2010
 @@ -230,7 +230,16 @@ public class AMQConnectionTest extends Q
 producer.send(producerSession.createTextMessage(test));
 }

 -MessageConsumer consumerB = consSessA.createConsumer(_queue);
 +MessageConsumer consumerB = null;
 +if (isBroker08())
 +{
 +Session consSessB = _connection.createSession(true, 
 Session.AUTO_ACKNOWLEDGE);
 +consumerB = consSessB.createConsumer(_queue);
 +}
 +else
 +{
 +consumerB = consSessA.createConsumer(_queue);
 +}

 Message msg;
 // Check that consumer A has 2 messages



 -
 Apache Qpid - AMQP Messaging Implementation
 Project:  http://qpid.apache.org
 Use/Interact: mailto:commits-subscr...@qpid.apache.org





-- 
Martin Ritchie

-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: [Java] Slow consumer test running out of memory

2010-05-19 Thread Martin Ritchie
Hi Rajith,

I think this is actually down to the erroneous adjustment of the
ExpiredMessageTask frequency in the NullApplicationRegistry.

I recent change I made was to cause HouseKeepingTasks to log when they
execute. The NAR though sets the run frequency to every 200ms. This
was done for one test. Which test I don't recall right now but will
track it down and ensure that it sets the configuration it needs
without breaking the other tests.

The OOM will be due to the test framework holding on to all the broker
log messages.

I actually haven't seen a OOM locally on any of my full suite test
runs (default,java,java.0.10) but hopefully the change to the
housekeeping frequency will address this in your test env.

In the mean time I beleive uping the memory avalable to ant will address this.

Cheers
Martin
On 19 May 2010 00:09, Rajith Attapattu rajit...@gmail.com wrote:
 Hi Martin,

 The slow consumer test seems to run out of memory.
 Could you perhaps adjust the test or the memory requirements to ensure
 it doesn't go OOM ?

 test:
 [echo] Using profile:default
[junit] Running org.apache.qpid.systest.SlowConsumerTest
 test:ExpiredMessagesTask 2010-05-18 17:38:48,908 DEBUG
 [qpid.server.virtualhost.VirtualHostImpl$1ExpiredMessagesTask]
 Checking message status for queue: ping
 development:ExpiredMessagesTask 2010-05-18 17:38:48,909 DEBUG
 [qpid.server.virtualhost.VirtualHostImpl$1ExpiredMessagesTask]
 Checking message status for queue: ping
 java.lang.OutOfMemoryError: PermGen space
 PermGen space
 Thread-1259 2010-05-18 17:38:50,812 INFO
 [qpid.server.registry.ApplicationRegistry] Shutting down
 ApplicationRegistry(1):org.apache.qpid.server.registry.configurationfileapplicationregis...@2268898
 Thread-1259 2010-05-18 17:38:50,812 INFO
 [qpid.server.registry.ApplicationRegistry] Shutting down
 ApplicationRegistry:org.apache.qpid.server.registry.configurationfileapplicationregis...@2268898
 Exception in thread Thread-93 java.lang.OutOfMemoryError: PermGen space
 Stopping Plugin manager
 Exception in thread AnonymousIoService-1 java.lang.OutOfMemoryError:
 PermGen space
 Stopped Plugin manager
 Thread-1259 2010-05-18 17:39:08,086 INFO [qpid.message] MESSAGE
 [Broker(1)] BRK-1005 : Stopped
 Exception in thread Thread-1259 java.lang.OutOfMemoryError: PermGen space


 Regards,

 Rajith Attapattu
 Red Hat
 http://rajith.2rlabs.com/

 -
 Apache Qpid - AMQP Messaging Implementation
 Project:  http://qpid.apache.org
 Use/Interact: mailto:dev-subscr...@qpid.apache.org





-- 
Martin Ritchie

-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Commented: (QPID-2515) Need to be able to set flow control in Java on a per destination level

2010-05-19 Thread Martin Ritchie (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12869115#action_12869115
 ] 

Martin Ritchie commented on QPID-2515:
--

The Java Broker supports PFC on the 0-91/0-9/0-8 branch using queue arguments:
x-qpid-capacity
x-qpid-flow-resume-capacity
See here:
http://qpid.apache.org/use-producer-flow-control.html 

I'm not sure that reusing these values to configure consumer flow control is 
the right approach. We should be able to configure the two indepenantly.
Once I'm done with the Slow Consumer Detection work I'm scheduled to work on 
including Producer Flow Control on the 0-10 code path so would be good if we 
could work together on how these will interact.

 Need to be able to set flow control in Java on a per destination level
 --

 Key: QPID-2515
 URL: https://issues.apache.org/jira/browse/QPID-2515
 Project: Qpid
  Issue Type: Bug
Reporter: Rajith Attapattu
Assignee: Rajith Attapattu
 Fix For: 0.7


 Currently consumer flow control is set at connection level.
 It would nice if capacity  (in number of messages) could be specified on a 
 per destination basis.
 We do not support producer side flow control yet, but when we do this should 
 be easily adapted there as well.
 I propose to include capacity as a link property in the new addressing 
 scheme. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: Destination based flow control and it's affect on session level heuristics

2010-05-19 Thread Martin Ritchie
On 18 May 2010 23:08, Rajith Attapattu rajit...@gmail.com wrote:
 In the JMS client we use the prefetch value in determining two
 important heuristics in addition to using it for flow control.

 1. We use the prefetch value to determine the batch size for message acks.
Ex. if ack mode is auto-ack or dups-ok-ack and if unackedCount =
 prefetch/2 then we flush the acks.

The above is done to ensure that the credits doesn't dry up while
 still not incurring a penalty due to frequent acking.

This seems wrong to me. I'm guessing this is only done on the 0-10
code path as AUTO_ACK should ack for every message. A well behaved
client in AUTO_ACK mode should not expect to receive redelivered
messages if it crashes before it gets to prefech/2. That sounds more
like correct behaviour for DUPS_OK.

The number of acks we send back are dependent on the protocol support
and the ack mode in use.
AUTO_ACK needs to ack every message
DUPS_OK doesn't need to ack everyone so can use batching if supported.
This isn't always possible if another cilent on the same session has
not consumed its messages. At least on 0-8/9/91 as Ack Ranges are not
available only ALL to this point.
CLIENT_ACK and Transacted are very similar. They need only send the
acks when acknowledge() or commit() is called. Transacted has the
added ability to send the acks in the DUPS_OK style to reduce the
acking burden at the commit() barrier. Either way credit should not be
given until the acknowledge() or commit() is performed.
Sure this leads to starvation issues but that is the point of prefetch limits.

 2. In transacted mode we use the prefetch value to determine if we
 need to send completions to ensure that credits don't dry up.
   Or else applications could potentially endup in a deadlock if
 prefetch was incorrectly configured.
   Ex. Prefetch is set at 10, but the application logic maybe waiting
 for some control message to commit, but that message may not be in the
 first 10 messages.

Perhaps my 0-10 spec is rusty but are control messages also flow
controlled using prefetch?
This doesn't seem right. Prefetch should just be the number of client
messages excluding any AMQP control.
If the client has misconfigured their app and drys up sitting on a
receive() then that is correct behaviour. The broker needs to protect
itself from a client asking it to hold on to a large transaction set.

 However the above situation becomes a bit complicated when we
 introduce per destination flow control (QPID-2515) as the above are
 determined at session level.
 (Perhaps the proper solution here is per session flow control, instead
 of per destination ? )

Isn't per session what we have now? The 0-8/9/91 Java broker operates
prefetch on a per JMS Session basis.

 Therefore when capacity is specified at the destination level (which
 overrides the connection default) the above calculations may cause
 undesired behaviour.
 Possible solutions that comes to mind,

 1. We allow these two heuristics to be explicitly configured.  Ex
 qpid.ack-batch-size and qpid.tx-ack-batch-size.
Pros: This may allow the application developer/admin to tune the
 client based on the applications behaviour.
Cons: If the application deviates from the predicted behaviour
 this could affect performance or worse.

 2.  We use some sort of mathematical formula that will use the
 capacity specified in the destinations of the consumers attached to
 that session, to determine the batch sizes.
 Pros: Puts less burden on the end users
 Cons: Creating such a formula may not be straightforward.

 Your comments and suggestions are most appreciated !

Limiting the consumer on a per destination basis would work but I
don't that this would impact flow control. Speaking from a 0-8/9/91
Java broker pov a consuming session is only flow controlled when using
NO_ACK mode and it is the client that tells the broker to stop
sending. The Producer Flow Control also uses flow control to stop
publication from the client but this is on the producing side of the
session.

I would have thought that a prefetch limit per destination per
consumer would be controlled by the broker and the configuration it
was given when the consumer started. This is how the Java broker
currently performs prefetch. Recording the number of messages sent per
session and stopping when credit is exhausted. There is no flow
control frames sent to indicate this, the broker just stops.

I don't think we need complex heuristics I'd just go with a our
current prefetch applying to the session and let developers configure
a per destination per consumer limit in addition. Arguably we should
through an exception if we try and create consumers whose destination
prefetch totals more than their underlying session.

Thoughts

Martin

 Regards,

 Rajith Attapattu
 Red Hat
 http://rajith.2rlabs.com/

 -
 Apache Qpid - AMQP Messaging Implementation
 Project:  

Re: Destination based flow control and it's affect on session level heuristics

2010-05-19 Thread Rajith Attapattu
On Wed, May 19, 2010 at 9:16 AM, Martin Ritchie ritch...@apache.org wrote:
 On 18 May 2010 23:08, Rajith Attapattu rajit...@gmail.com wrote:
 In the JMS client we use the prefetch value in determining two
 important heuristics in addition to using it for flow control.

 1. We use the prefetch value to determine the batch size for message acks.
    Ex. if ack mode is auto-ack or dups-ok-ack and if unackedCount =
 prefetch/2 then we flush the acks.

    The above is done to ensure that the credits doesn't dry up while
 still not incurring a penalty due to frequent acking.

 This seems wrong to me. I'm guessing this is only done on the 0-10
 code path as AUTO_ACK should ack for every message. A well behaved
 client in AUTO_ACK mode should not expect to receive redelivered
 messages if it crashes before it gets to prefech/2. That sounds more
 like correct behaviour for DUPS_OK.

For folks you want the correct behaviour for AUTO_ACK can use
-Dqpid.sync_ack=true or sync_ack=true in the connection URL.
That will ensure we ack after every message.

 The number of acks we send back are dependent on the protocol support
 and the ack mode in use.
 AUTO_ACK needs to ack every message
 DUPS_OK doesn't need to ack everyone so can use batching if supported.
 This isn't always possible if another cilent on the same session has
 not consumed its messages. At least on 0-8/9/91 as Ack Ranges are not
 available only ALL to this point.
 CLIENT_ACK and Transacted are very similar. They need only send the
 acks when acknowledge() or commit() is called. Transacted has the
 added ability to send the acks in the DUPS_OK style to reduce the
 acking burden at the commit() barrier. Either way credit should not be
 given until the acknowledge() or commit() is performed.
 Sure this leads to starvation issues but that is the point of prefetch limits.

 2. In transacted mode we use the prefetch value to determine if we
 need to send completions to ensure that credits don't dry up.
   Or else applications could potentially endup in a deadlock if
 prefetch was incorrectly configured.
   Ex. Prefetch is set at 10, but the application logic maybe waiting
 for some control message to commit, but that message may not be in the
 first 10 messages.

 Perhaps my 0-10 spec is rusty but are control messages also flow
 controlled using prefetch?
 This doesn't seem right. Prefetch should just be the number of client
 messages excluding any AMQP control.
Sorry for not being clear. I wasn't referring to any AMQP control message.
I was talking about an application level control message.
Ex  when sending a large order, the application may send 4 JMS
messages that contains the order and the 5th JMS message may contain
something in the body that says end-of-order.

 If the client has misconfigured their app and drys up sitting on a
 receive() then that is correct behaviour. The broker needs to protect
 itself from a client asking it to hold on to a large transaction set.

Currently both brokers will not be able to protect itself from large
tx sets as it allow us to set any value for flow control. So even if
we don't send completions in the middle of the transaction it could
still happen, if the prefetch is sufficiently large.
So if the client racks up a large transaction set, the broker is
unable to do anything, unless we implement some broker limit, just
like we have queue limits etc..

 However the above situation becomes a bit complicated when we
 introduce per destination flow control (QPID-2515) as the above are
 determined at session level.
 (Perhaps the proper solution here is per session flow control, instead
 of per destination ? )

 Isn't per session what we have now? The 0-8/9/91 Java broker operates
 prefetch on a per JMS Session basis.

Well not in 0-10.
Flow control is set on per subscription basis (isn't it per destination?).
So if a given session has 2 consumers and the max-prefetch=10.
Then the session will have 20 messages.

 Therefore when capacity is specified at the destination level (which
 overrides the connection default) the above calculations may cause
 undesired behaviour.
 Possible solutions that comes to mind,

 1. We allow these two heuristics to be explicitly configured.  Ex
 qpid.ack-batch-size and qpid.tx-ack-batch-size.
    Pros: This may allow the application developer/admin to tune the
 client based on the applications behaviour.
    Cons: If the application deviates from the predicted behaviour
 this could affect performance or worse.

 2.  We use some sort of mathematical formula that will use the
 capacity specified in the destinations of the consumers attached to
 that session, to determine the batch sizes.
     Pros: Puts less burden on the end users
     Cons: Creating such a formula may not be straightforward.

 Your comments and suggestions are most appreciated !

 Limiting the consumer on a per destination basis would work but I
 don't that this would impact flow control. Speaking from a 0-8/9/91
 Java broker 

[jira] Updated: (QPID-2581) Create a ConfigurationManager to allow plugins to provide configuration handling classes

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2581:
-

Attachment: (was: 
0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch)

 Create a ConfigurationManager to allow plugins to provide configuration 
 handling classes
 

 Key: QPID-2581
 URL: https://issues.apache.org/jira/browse/QPID-2581
 Project: Qpid
  Issue Type: New Feature
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7


 To allow plugins to handle configuration add a ConfigurationManager that will 
 load ConfigurationPlugins during the configuration process before the broker 
 starts up. 
 This will allow the configuration values to be processed and determined to be 
 valid input before we actually attempt to continue broker startup.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2581) Create a ConfigurationManager to allow plugins to provide configuration handling classes

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2581:
-

Attachment: 0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch

Fixed

 Create a ConfigurationManager to allow plugins to provide configuration 
 handling classes
 

 Key: QPID-2581
 URL: https://issues.apache.org/jira/browse/QPID-2581
 Project: Qpid
  Issue Type: New Feature
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 
 0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch


 To allow plugins to handle configuration add a ConfigurationManager that will 
 load ConfigurationPlugins during the configuration process before the broker 
 starts up. 
 This will allow the configuration values to be processed and determined to be 
 valid input before we actually attempt to continue broker startup.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: [Java] Slow consumer test running out of memory

2010-05-19 Thread Robbie Gemmell
I had modified the test log4j configuration previously to stop it
outputing that specific logging, it seems to be back though - some
class name changes altering the Logger name used perhaps ?

On 19 May 2010 13:32, Martin Ritchie ritch...@apache.org wrote:
 Hi Rajith,

 I think this is actually down to the erroneous adjustment of the
 ExpiredMessageTask frequency in the NullApplicationRegistry.

 I recent change I made was to cause HouseKeepingTasks to log when they
 execute. The NAR though sets the run frequency to every 200ms. This
 was done for one test. Which test I don't recall right now but will
 track it down and ensure that it sets the configuration it needs
 without breaking the other tests.

 The OOM will be due to the test framework holding on to all the broker
 log messages.

 I actually haven't seen a OOM locally on any of my full suite test
 runs (default,java,java.0.10) but hopefully the change to the
 housekeeping frequency will address this in your test env.

 In the mean time I beleive uping the memory avalable to ant will address this.

 Cheers
 Martin
 On 19 May 2010 00:09, Rajith Attapattu rajit...@gmail.com wrote:
 Hi Martin,

 The slow consumer test seems to run out of memory.
 Could you perhaps adjust the test or the memory requirements to ensure
 it doesn't go OOM ?

 test:
     [echo] Using profile:default
    [junit] Running org.apache.qpid.systest.SlowConsumerTest
 test:ExpiredMessagesTask 2010-05-18 17:38:48,908 DEBUG
 [qpid.server.virtualhost.VirtualHostImpl$1ExpiredMessagesTask]
 Checking message status for queue: ping
 development:ExpiredMessagesTask 2010-05-18 17:38:48,909 DEBUG
 [qpid.server.virtualhost.VirtualHostImpl$1ExpiredMessagesTask]
 Checking message status for queue: ping
 java.lang.OutOfMemoryError: PermGen space
 PermGen space
 Thread-1259 2010-05-18 17:38:50,812 INFO
 [qpid.server.registry.ApplicationRegistry] Shutting down
 ApplicationRegistry(1):org.apache.qpid.server.registry.configurationfileapplicationregis...@2268898
 Thread-1259 2010-05-18 17:38:50,812 INFO
 [qpid.server.registry.ApplicationRegistry] Shutting down
 ApplicationRegistry:org.apache.qpid.server.registry.configurationfileapplicationregis...@2268898
 Exception in thread Thread-93 java.lang.OutOfMemoryError: PermGen space
 Stopping Plugin manager
 Exception in thread AnonymousIoService-1 java.lang.OutOfMemoryError:
 PermGen space
 Stopped Plugin manager
 Thread-1259 2010-05-18 17:39:08,086 INFO [qpid.message] MESSAGE
 [Broker(1)] BRK-1005 : Stopped
 Exception in thread Thread-1259 java.lang.OutOfMemoryError: PermGen space


 Regards,

 Rajith Attapattu
 Red Hat
 http://rajith.2rlabs.com/

 -
 Apache Qpid - AMQP Messaging Implementation
 Project:      http://qpid.apache.org
 Use/Interact: mailto:dev-subscr...@qpid.apache.org





 --
 Martin Ritchie

 -
 Apache Qpid - AMQP Messaging Implementation
 Project:      http://qpid.apache.org
 Use/Interact: mailto:dev-subscr...@qpid.apache.org



-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Created: (QPID-2618) Add org.apache.common to the PluginManager exported packages

2010-05-19 Thread Sorin Suciu (JIRA)
Add org.apache.common to the PluginManager exported packages


 Key: QPID-2618
 URL: https://issues.apache.org/jira/browse/QPID-2618
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Affects Versions: 0.7
Reporter: Sorin Suciu
 Fix For: 0.7


Adding this package to the PluginManager allows accessing QpidProperties. 


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2618) Add org.apache.common to the PluginManager exported packages

2010-05-19 Thread Sorin Suciu (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sorin Suciu updated QPID-2618:
--

Attachment: 0001-Added-org.apache.qpid.common-package-to-PluginManage.patch

 Add org.apache.common to the PluginManager exported packages
 

 Key: QPID-2618
 URL: https://issues.apache.org/jira/browse/QPID-2618
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Affects Versions: 0.7
Reporter: Sorin Suciu
 Fix For: 0.7

 Attachments: 
 0001-Added-org.apache.qpid.common-package-to-PluginManage.patch


 Adding this package to the PluginManager allows accessing QpidProperties. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: Destination based flow control and it's affect on session level heuristics

2010-05-19 Thread Martin Ritchie
On 19 May 2010 14:36, Rajith Attapattu rajit...@gmail.com wrote:
 On Wed, May 19, 2010 at 9:16 AM, Martin Ritchie ritch...@apache.org wrote:
 On 18 May 2010 23:08, Rajith Attapattu rajit...@gmail.com wrote:
 In the JMS client we use the prefetch value in determining two
 important heuristics in addition to using it for flow control.

 1. We use the prefetch value to determine the batch size for message acks.
Ex. if ack mode is auto-ack or dups-ok-ack and if unackedCount =
 prefetch/2 then we flush the acks.

The above is done to ensure that the credits doesn't dry up while
 still not incurring a penalty due to frequent acking.

 This seems wrong to me. I'm guessing this is only done on the 0-10
 code path as AUTO_ACK should ack for every message. A well behaved
 client in AUTO_ACK mode should not expect to receive redelivered
 messages if it crashes before it gets to prefech/2. That sounds more
 like correct behaviour for DUPS_OK.

 For folks you want the correct behaviour for AUTO_ACK can use
 -Dqpid.sync_ack=true or sync_ack=true in the connection URL.
 That will ensure we ack after every message.

Really? The correct behaviour for AUTO_ACK is not the default!
That is surely

 The number of acks we send back are dependent on the protocol support
 and the ack mode in use.
 AUTO_ACK needs to ack every message
 DUPS_OK doesn't need to ack everyone so can use batching if supported.
 This isn't always possible if another cilent on the same session has
 not consumed its messages. At least on 0-8/9/91 as Ack Ranges are not
 available only ALL to this point.
 CLIENT_ACK and Transacted are very similar. They need only send the
 acks when acknowledge() or commit() is called. Transacted has the
 added ability to send the acks in the DUPS_OK style to reduce the
 acking burden at the commit() barrier. Either way credit should not be
 given until the acknowledge() or commit() is performed.
 Sure this leads to starvation issues but that is the point of prefetch 
 limits.

 2. In transacted mode we use the prefetch value to determine if we
 need to send completions to ensure that credits don't dry up.
   Or else applications could potentially endup in a deadlock if
 prefetch was incorrectly configured.
   Ex. Prefetch is set at 10, but the application logic maybe waiting
 for some control message to commit, but that message may not be in the
 first 10 messages.

 Perhaps my 0-10 spec is rusty but are control messages also flow
 controlled using prefetch?
 This doesn't seem right. Prefetch should just be the number of client
 messages excluding any AMQP control.
 Sorry for not being clear. I wasn't referring to any AMQP control message.
 I was talking about an application level control message.
 Ex  when sending a large order, the application may send 4 JMS
 messages that contains the order and the 5th JMS message may contain
 something in the body that says end-of-order.

That is an application error though and not something we should be
trying to solve. They may have forgotten to send the end-of-order
message. Does that mean we have to keep expanding our prefetch window
to allow their app to work?

 If the client has misconfigured their app and drys up sitting on a
 receive() then that is correct behaviour. The broker needs to protect
 itself from a client asking it to hold on to a large transaction set.

 Currently both brokers will not be able to protect itself from large
 tx sets as it allow us to set any value for flow control. So even if
 we don't send completions in the middle of the transaction it could
 still happen, if the prefetch is sufficiently large.
 So if the client racks up a large transaction set, the broker is
 unable to do anything, unless we implement some broker limit, just
 like we have queue limits etc..

Sure you can always configure your application to break the broker. We
just don't make the broker to say no you can't have that prefetch
size. Which really we should. However sending completions in the
middle of the transaction means you can consume MORE then the
prefetch. Does the completion just restore credit. I assume that the
ack isn't actually processed and still remains part of the
transaction. i.e. if the app falls over after the completion those
messages will come back.

 However the above situation becomes a bit complicated when we
 introduce per destination flow control (QPID-2515) as the above are
 determined at session level.
 (Perhaps the proper solution here is per session flow control, instead
 of per destination ? )

 Isn't per session what we have now? The 0-8/9/91 Java broker operates
 prefetch on a per JMS Session basis.

 Well not in 0-10.
 Flow control is set on per subscription basis (isn't it per destination?).
 So if a given session has 2 consumers and the max-prefetch=10.
 Then the session will have 20 messages.

That makes sense and would be very easy to add to the 0-8/9/91 code
path. It is rather unfortunate that we used the same property as one
pertains to 

Re: Destination based flow control and it's affect on session level heuristics

2010-05-19 Thread Rajith Attapattu
On Wed, May 19, 2010 at 10:32 AM, Martin Ritchie ritch...@apache.org wrote:
 On 19 May 2010 14:36, Rajith Attapattu rajit...@gmail.com wrote:
 On Wed, May 19, 2010 at 9:16 AM, Martin Ritchie ritch...@apache.org wrote:
 On 18 May 2010 23:08, Rajith Attapattu rajit...@gmail.com wrote:
 In the JMS client we use the prefetch value in determining two
 important heuristics in addition to using it for flow control.

 1. We use the prefetch value to determine the batch size for message acks.
    Ex. if ack mode is auto-ack or dups-ok-ack and if unackedCount =
 prefetch/2 then we flush the acks.

    The above is done to ensure that the credits doesn't dry up while
 still not incurring a penalty due to frequent acking.

 This seems wrong to me. I'm guessing this is only done on the 0-10
 code path as AUTO_ACK should ack for every message. A well behaved
 client in AUTO_ACK mode should not expect to receive redelivered
 messages if it crashes before it gets to prefech/2. That sounds more
 like correct behaviour for DUPS_OK.

 For folks you want the correct behaviour for AUTO_ACK can use
 -Dqpid.sync_ack=true or sync_ack=true in the connection URL.
 That will ensure we ack after every message.

 Really? The correct behaviour for AUTO_ACK is not the default!
 That is surely

Setting sync-ack=true degrades the performance by an order of magnitude :)

 The number of acks we send back are dependent on the protocol support
 and the ack mode in use.
 AUTO_ACK needs to ack every message
 DUPS_OK doesn't need to ack everyone so can use batching if supported.
 This isn't always possible if another cilent on the same session has
 not consumed its messages. At least on 0-8/9/91 as Ack Ranges are not
 available only ALL to this point.
 CLIENT_ACK and Transacted are very similar. They need only send the
 acks when acknowledge() or commit() is called. Transacted has the
 added ability to send the acks in the DUPS_OK style to reduce the
 acking burden at the commit() barrier. Either way credit should not be
 given until the acknowledge() or commit() is performed.
 Sure this leads to starvation issues but that is the point of prefetch 
 limits.

 2. In transacted mode we use the prefetch value to determine if we
 need to send completions to ensure that credits don't dry up.
   Or else applications could potentially endup in a deadlock if
 prefetch was incorrectly configured.
   Ex. Prefetch is set at 10, but the application logic maybe waiting
 for some control message to commit, but that message may not be in the
 first 10 messages.

 Perhaps my 0-10 spec is rusty but are control messages also flow
 controlled using prefetch?
 This doesn't seem right. Prefetch should just be the number of client
 messages excluding any AMQP control.
 Sorry for not being clear. I wasn't referring to any AMQP control message.
 I was talking about an application level control message.
 Ex  when sending a large order, the application may send 4 JMS
 messages that contains the order and the 5th JMS message may contain
 something in the body that says end-of-order.

 That is an application error though and not something we should be
 trying to solve. They may have forgotten to send the end-of-order
 message. Does that mean we have to keep expanding our prefetch window
 to allow their app to work?

Good point.
But I think my original example was bad, hence I sent you down the
wrong direction.
I apologize for that.

Here is a better use case
Consider a prefetch of 1 (which is the same as no prefetch)
In that case we **really** need to ack unless we are doing
transactions with size = 1.
Or else we will just wait indefinitely for messages to arrive.

So I think this heuristic is really there for, when your transaction
size  prefetch.
And that is a very valid use case, the most prominent being the case
of no-prefetch.

Hope this explains it better.

 If the client has misconfigured their app and drys up sitting on a
 receive() then that is correct behaviour. The broker needs to protect
 itself from a client asking it to hold on to a large transaction set.

 Currently both brokers will not be able to protect itself from large
 tx sets as it allow us to set any value for flow control. So even if
 we don't send completions in the middle of the transaction it could
 still happen, if the prefetch is sufficiently large.
 So if the client racks up a large transaction set, the broker is
 unable to do anything, unless we implement some broker limit, just
 like we have queue limits etc..

 Sure you can always configure your application to break the broker. We
 just don't make the broker to say no you can't have that prefetch
 size. Which really we should. However sending completions in the
 middle of the transaction means you can consume MORE then the
 prefetch. Does the completion just restore credit. I assume that the
 ack isn't actually processed and still remains part of the
 transaction. i.e. if the app falls over after the completion those
 messages will come 

Re: Destination based flow control and it's affect on session level heuristics

2010-05-19 Thread Gordon Sim

On 05/19/2010 02:36 PM, Rajith Attapattu wrote:

On Wed, May 19, 2010 at 9:16 AM, Martin Ritchieritch...@apache.org  wrote:

The 0-8/9/91 Java broker operates
prefetch on a per JMS Session basis.


Well not in 0-10.


This seems to be at the heart of your issue; prefetch is not 
unambiguously defined and means different things to different people or 
on different versions of the protocol where the flow control mechanisms 
are different.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2585) Upgrade Felix to 2.0.5

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2585:
-

Attachment: (was: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch)

 Upgrade Felix to 2.0.5
 --

 Key: QPID-2585
 URL: https://issues.apache.org/jira/browse/QPID-2585
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7


 Felix 1.0 has a number of issues that prevent us using as our OSGi manager, 
 upgrading to the latest 2.0.5 will address these issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2585) Upgrade Felix to 2.0.5

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2585:
-

Attachment: (was: 
0013-QPID-2585-Update-extras-OSGi-plugin-to-work-with-la.patch)

 Upgrade Felix to 2.0.5
 --

 Key: QPID-2585
 URL: https://issues.apache.org/jira/browse/QPID-2585
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7


 Felix 1.0 has a number of issues that prevent us using as our OSGi manager, 
 upgrading to the latest 2.0.5 will address these issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2581) Create a ConfigurationManager to allow plugins to provide configuration handling classes

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2581:
-

Attachment: (was: 
0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch)

 Create a ConfigurationManager to allow plugins to provide configuration 
 handling classes
 

 Key: QPID-2581
 URL: https://issues.apache.org/jira/browse/QPID-2581
 Project: Qpid
  Issue Type: New Feature
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 
 0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch


 To allow plugins to handle configuration add a ConfigurationManager that will 
 load ConfigurationPlugins during the configuration process before the broker 
 starts up. 
 This will allow the configuration values to be processed and determined to be 
 valid input before we actually attempt to continue broker startup.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2585) Upgrade Felix to 2.0.5

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2585:
-

Attachment: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch
0013-QPID-2585-Update-extras-OSGi-plugin-to-work-with-la.patch

Changed due to svn rebase

 Upgrade Felix to 2.0.5
 --

 Key: QPID-2585
 URL: https://issues.apache.org/jira/browse/QPID-2585
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch, 
 0013-QPID-2585-Update-extras-OSGi-plugin-to-work-with-la.patch


 Felix 1.0 has a number of issues that prevent us using as our OSGi manager, 
 upgrading to the latest 2.0.5 will address these issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2542) Implement ACL checking as OSGi plugin

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2542:
-

Attachment: 0011-QPID-2542-Implement-ACL-checking-as-OSGi-plugin.patch

Changed due to svn rebase

 Implement ACL checking as OSGi plugin
 -

 Key: QPID-2542
 URL: https://issues.apache.org/jira/browse/QPID-2542
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0011-QPID-2542-Implement-ACL-checking-as-OSGi-plugin.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2581) Create a ConfigurationManager to allow plugins to provide configuration handling classes

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2581:
-

Attachment: 0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch

Changed due to svn rebase


 Create a ConfigurationManager to allow plugins to provide configuration 
 handling classes
 

 Key: QPID-2581
 URL: https://issues.apache.org/jira/browse/QPID-2581
 Project: Qpid
  Issue Type: New Feature
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 
 0002-QPID-2581-Update-configuration-manager-to-allow-mul.patch


 To allow plugins to handle configuration add a ConfigurationManager that will 
 load ConfigurationPlugins during the configuration process before the broker 
 starts up. 
 This will allow the configuration values to be processed and determined to be 
 valid input before we actually attempt to continue broker startup.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: (was: 
0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch)

 Clarify/identify where ACL permission should be applied in the broker 
 --

 Key: QPID-2606
 URL: https://issues.apache.org/jira/browse/QPID-2606
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2542) Implement ACL checking as OSGi plugin

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2542:
-

Attachment: (was: 
0011-QPID-2542-Implement-ACL-checking-as-OSGi-plugin.patch)

 Implement ACL checking as OSGi plugin
 -

 Key: QPID-2542
 URL: https://issues.apache.org/jira/browse/QPID-2542
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0011-QPID-2542-Implement-ACL-checking-as-OSGi-plugin.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch

Changed due to svn rebase

 Clarify/identify where ACL permission should be applied in the broker 
 --

 Key: QPID-2606
 URL: https://issues.apache.org/jira/browse/QPID-2606
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: (was: 
0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch)

 Clarify/identify where ACL permission should be applied in the broker 
 --

 Key: QPID-2606
 URL: https://issues.apache.org/jira/browse/QPID-2606
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch

(missed a file...)

 Clarify/identify where ACL permission should be applied in the broker 
 --

 Key: QPID-2606
 URL: https://issues.apache.org/jira/browse/QPID-2606
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: Destination based flow control and it's affect on session level heuristics

2010-05-19 Thread Martin Ritchie
On 19 May 2010 15:47, Rajith Attapattu rajit...@gmail.com wrote:
 On Wed, May 19, 2010 at 10:32 AM, Martin Ritchie ritch...@apache.org wrote:
 On 19 May 2010 14:36, Rajith Attapattu rajit...@gmail.com wrote:
 On Wed, May 19, 2010 at 9:16 AM, Martin Ritchie ritch...@apache.org wrote:
 On 18 May 2010 23:08, Rajith Attapattu rajit...@gmail.com wrote:
 In the JMS client we use the prefetch value in determining two
 important heuristics in addition to using it for flow control.

 1. We use the prefetch value to determine the batch size for message acks.
Ex. if ack mode is auto-ack or dups-ok-ack and if unackedCount =
 prefetch/2 then we flush the acks.

The above is done to ensure that the credits doesn't dry up while
 still not incurring a penalty due to frequent acking.

 This seems wrong to me. I'm guessing this is only done on the 0-10
 code path as AUTO_ACK should ack for every message. A well behaved
 client in AUTO_ACK mode should not expect to receive redelivered
 messages if it crashes before it gets to prefech/2. That sounds more
 like correct behaviour for DUPS_OK.

 For folks you want the correct behaviour for AUTO_ACK can use
 -Dqpid.sync_ack=true or sync_ack=true in the connection URL.
 That will ensure we ack after every message.

 Really? The correct behaviour for AUTO_ACK is not the default!
 That is surely

 Setting sync-ack=true degrades the performance by an order of magnitude :)

 The number of acks we send back are dependent on the protocol support
 and the ack mode in use.
 AUTO_ACK needs to ack every message
 DUPS_OK doesn't need to ack everyone so can use batching if supported.
 This isn't always possible if another cilent on the same session has
 not consumed its messages. At least on 0-8/9/91 as Ack Ranges are not
 available only ALL to this point.
 CLIENT_ACK and Transacted are very similar. They need only send the
 acks when acknowledge() or commit() is called. Transacted has the
 added ability to send the acks in the DUPS_OK style to reduce the
 acking burden at the commit() barrier. Either way credit should not be
 given until the acknowledge() or commit() is performed.
 Sure this leads to starvation issues but that is the point of prefetch 
 limits.

 2. In transacted mode we use the prefetch value to determine if we
 need to send completions to ensure that credits don't dry up.
   Or else applications could potentially endup in a deadlock if
 prefetch was incorrectly configured.
   Ex. Prefetch is set at 10, but the application logic maybe waiting
 for some control message to commit, but that message may not be in the
 first 10 messages.

 Perhaps my 0-10 spec is rusty but are control messages also flow
 controlled using prefetch?
 This doesn't seem right. Prefetch should just be the number of client
 messages excluding any AMQP control.
 Sorry for not being clear. I wasn't referring to any AMQP control message.
 I was talking about an application level control message.
 Ex  when sending a large order, the application may send 4 JMS
 messages that contains the order and the 5th JMS message may contain
 something in the body that says end-of-order.

 That is an application error though and not something we should be
 trying to solve. They may have forgotten to send the end-of-order
 message. Does that mean we have to keep expanding our prefetch window
 to allow their app to work?

 Good point.
 But I think my original example was bad, hence I sent you down the
 wrong direction.
 I apologize for that.

 Here is a better use case
 Consider a prefetch of 1 (which is the same as no prefetch)
 In that case we **really** need to ack unless we are doing
 transactions with size = 1.
 Or else we will just wait indefinitely for messages to arrive.

Perhaps the problem is what people believe prefetch is doing.
For me setting perfetch is setting the maximum number of resources you
will need.
So if you set prefetch to 1 and expect two messages before the commit
then your app is flawed.

 So I think this heuristic is really there for, when your transaction
 size  prefetch.
 And that is a very valid use case, the most prominent being the case
 of no-prefetch.

0-8/9/91 doesn't currently have an option to disable prefetch (disable
is not prefetch=0) and so therefore have an unbounded resource usage
on the broker. if transaction size  prefetch then I would always say
that is the app's fault. If we want to support unbounded resources
limits then we need to signal that to the broker but also have some
way of preventing it sending everything to our client and overwhelming
it.

In that scenario the what we are doing as you say is asking for more
messages not acking the ones we have received. This is very similar to
what the 0-8/9/91 code path does in NO_ACK. The the broker is told to
send all messages to the client and the client flow controls the
broker to say stop I've got enough just now.

 Hope this explains it better.

Think we are getting there :)

 If the client has misconfigured 

Re: Destination based flow control and it's affect on session level heuristics

2010-05-19 Thread Martin Ritchie
On 19 May 2010 15:55, Gordon Sim g...@redhat.com wrote:
 On 05/19/2010 02:36 PM, Rajith Attapattu wrote:

 On Wed, May 19, 2010 at 9:16 AM, Martin Ritchieritch...@apache.org
  wrote:

 The 0-8/9/91 Java broker operates
 prefetch on a per JMS Session basis.

 Well not in 0-10.

 This seems to be at the heart of your issue; prefetch is not unambiguously
 defined and means different things to different people or on different
 versions of the protocol where the flow control mechanisms are different.

Agreed, perhaps having the one property 'max_prefetch' really isn't
enough to explain how it should be used.

 -
 Apache Qpid - AMQP Messaging Implementation
 Project:  http://qpid.apache.org
 Use/Interact: mailto:dev-subscr...@qpid.apache.org





-- 
Martin Ritchie

-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2585) Upgrade Felix to 2.0.5

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2585:
-

Attachment: (was: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch)

 Upgrade Felix to 2.0.5
 --

 Key: QPID-2585
 URL: https://issues.apache.org/jira/browse/QPID-2585
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 
 0013-QPID-2585-Update-extras-OSGi-plugin-to-work-with-la.patch


 Felix 1.0 has a number of issues that prevent us using as our OSGi manager, 
 upgrading to the latest 2.0.5 will address these issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2585) Upgrade Felix to 2.0.5

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2585:
-

Attachment: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch

Added another exported package

 Upgrade Felix to 2.0.5
 --

 Key: QPID-2585
 URL: https://issues.apache.org/jira/browse/QPID-2585
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Reporter: Martin Ritchie
Assignee: Martin Ritchie
 Fix For: 0.7

 Attachments: 0009-QPID-2585-Upgrade-Felix-to-2.0.5.patch, 
 0013-QPID-2585-Update-extras-OSGi-plugin-to-work-with-la.patch


 Felix 1.0 has a number of issues that prevent us using as our OSGi manager, 
 upgrading to the latest 2.0.5 will address these issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2542) Implement ACL checking as OSGi plugin

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2542:
-

Attachment: (was: 
0011-QPID-2542-Implement-ACL-checking-as-OSGi-plugin.patch)

 Implement ACL checking as OSGi plugin
 -

 Key: QPID-2542
 URL: https://issues.apache.org/jira/browse/QPID-2542
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0011-QPID-2542-Implement-ACL-checking-as-OSGi-plugin.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: (was: 
0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch)

 Clarify/identify where ACL permission should be applied in the broker 
 --

 Key: QPID-2606
 URL: https://issues.apache.org/jira/browse/QPID-2606
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2606) Clarify/identify where ACL permission should be applied in the broker

2010-05-19 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2606:
-

Attachment: 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch

Improved handling of enqueue events (publishing)

 Clarify/identify where ACL permission should be applied in the broker 
 --

 Key: QPID-2606
 URL: https://issues.apache.org/jira/browse/QPID-2606
 Project: Qpid
  Issue Type: Sub-task
Reporter: Andrew Kennedy
 Attachments: 
 0010-QPID-2606-Identify-where-ACL-permission-should-be-a.patch




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Updated: (QPID-2466) Replace WeakReference use with SoftReference for enhanced message caching

2010-05-19 Thread Robbie Gemmell (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robbie Gemmell updated QPID-2466:
-

Status: Ready To Review  (was: In Progress)

 Replace WeakReference use with SoftReference for enhanced message caching
 -

 Key: QPID-2466
 URL: https://issues.apache.org/jira/browse/QPID-2466
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Affects Versions: 0.6
 Environment: JVM 1.6.0_18
Reporter: Andrew Kennedy
Assignee: Robbie Gemmell
 Fix For: 0.7

 Attachments: 
 0001-QPID-2466-Replace-WeakReference-use-with-SoftRefere.patch, 
 0001-QPID-2466-trunk.patch


 Replace use of WeakReference with SoftReference in the message handles in the 
 broker to improve message cache performance when using a persistent store. 
 Also tuning the eviction policy for soft references and evaluation of other 
 GC settings.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: [jira] Commented: (QPID-2539) Update ACL file syntax to be clearer and add extra operations

2010-05-19 Thread Andrew Kennedy
On 18 May 2010 14:52, Rajith Attapattu rajit...@gmail.com wrote:

 Andrew, I have added your proposal and the text you pasted here in
 https://cwiki.apache.org/confluence/display/qpid/andrew+acl+proposal

 This page is linked off,
 https://cwiki.apache.org/confluence/display/qpid/ACL+Design
 And the above is linked off the developer pages.

 I will get out my proposal a bit later in the week.

Thanks.

For completeness, I have tried to put together another page covering
the recent discussion on the 'METHOD' object and management
operations, the text of which is attached below. Rajith, could you
stick it in another wiki page, please? I think this is a useful
compromise, although there may be some further work required to
straighten out the QMF and JMX bindings anyway...

h1. Method Redux

_Though this be madness, yet there is method in't._
*Polonius, Hamlet Act 2, scene 2*

h2. Introduction

The main point of contention in the ACL debate seems to centre around
the mechanism used to permission non AMQP entities, the current
_METHOD_ method is felt to be unsuitable. This document proposes an
update to this syntax and describes exactly how it should be
interpreted across brokers.

h2. Access Control

The things that are being controlled or permissioned by entries in the
access control list are objects that form part of the Qpid broker.
These entities could reasonably be said to be _children_ of the
broker, although I don't feel that a tree-type structure is either
helpful or necessary here, since there is no parallel in the Qpid or
AMQP internals. A flat _object type_ space has therefore been assumed,
continuing current behavior. These types of object have until now
simply represented the major types of object that exist and are
manipulable inside a broker. The only addition is that of the broker
itself, since there are some operations and actions that can only
realistically be said to be performed globally.  This is the rationale
behind such proposed ACL entries as:

{noformat}
ACL ALLOW robot ACCESS LOG
ACL DENY robot UPDATE CONFIG
ACL DENY kitten UPDATE USERS
ACL ALLOW kitten ADMIN LOG
{noformat}

The _LOG_, _CONFIG_ and _USERS_ object types here represent subsystems
or components or simply collections of management methods that perform
a similar set of tasks. They are *not* actual broker objects, although
(see later) they may be QMF classes, with their own management schema
and package.

A different approach to access control for these management methods
relies on the _BROKER_ object type being used for permissioning,
giving rise to ACL entries as follows:

{noformat}
ACL DENY robot ACCESS BROKER
ACL DENY kitten UPDATE BROKER subsystem=logging
ACL ALLOW kitten ACCESS BROKER method=get*
ACL ALLOW kitten ACCESS BROKER method=invoke*
ACL ALLOW kitten MANAGE BROKER subsystem=users
{noformat}

This _BROKER_ object type represents the entire runtime entity, and is
in fact represented in the QMF management schema, with properties,
statistics and methods available. This is not meant to indicate a
preference for QMF as a final reference point, it should be noted,
rather this is illustrative of the sorts of entities an access control
object type could map to.

{noformat}
class name=Broker
property name=name /
property name=systemRef /
property name=port /
/class
{noformat}

h3. Existing Syntax

The previous ACL entries would all be permissioned using the _METHOD_
object type in the current C++ broker, assuming a logical extension of
the existing syntax. The problem with this syntax is that it is very
closely coupled to the management framework, QMF. Also, the
granularity of the controls falls awkwardly between extremes, and
requires too much specificity to enumerate all methods dealing with a
particular area of interest when controlling that type of access, and
not distinguishing between *getName* methods on various different
managed objects. This makes it impossible to correctly permission
access to multiple objects with similarly named methods. Also, since
JMX provides access to properties using a method call, a permission
for that method would need to be created to allow _READ_ access to a
property, which blurs the distiction between methods and properties.

h3. Mechanism versus Meaning

Since the current C++ implementation is based exclusively on QMF, only
features supported and used by QMF are available. It is preferable to
have a mechanism-agnostic access control specification, since QMF and
JMX will not be the only management entry-points for ever, with SNMP
and other industry standards available as well as future JEE
development.  Also, it should be possible to permission access in a
manner that does not depend on the version of the QMF schema or API,
depending only on the existence or not of particular manageable
objects within the broker. This means that when a new method or
attribute is added at an API change, or a method name is changed,
existing ACLS will have the same meaning as before. 

[jira] Created: (QPID-2619) Capture the PID for the qpid broker on unix platforms

2010-05-19 Thread Sorin Suciu (JIRA)
Capture the PID for the qpid broker on unix platforms
-

 Key: QPID-2619
 URL: https://issues.apache.org/jira/browse/QPID-2619
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Affects Versions: 0.7
Reporter: Sorin Suciu
Priority: Minor
 Fix For: 0.7


As of now we are not capturing the pid for the qpid process upon start. This 
can be useful for monitoring purposes. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: [jira] Commented: (QPID-2539) Update ACL file syntax to be clearer and add extra operations

2010-05-19 Thread Carl Trieloff



I've had a brief read, it seem seems the point I was trying to make has
been entirely miss-understood.

How about some IRC, or a call if you can do that and the reflect back to 
the list.


Carl.


On 05/19/2010 11:59 AM, Andrew Kennedy wrote:

On 18 May 2010 14:52, Rajith Attapatturajit...@gmail.com  wrote:
   

Andrew, I have added your proposal and the text you pasted here in
https://cwiki.apache.org/confluence/display/qpid/andrew+acl+proposal

This page is linked off,
https://cwiki.apache.org/confluence/display/qpid/ACL+Design
And the above is linked off the developer pages.

I will get out my proposal a bit later in the week.
 

Thanks.

For completeness, I have tried to put together another page covering
the recent discussion on the 'METHOD' object and management
operations, the text of which is attached below. Rajith, could you
stick it in another wiki page, please? I think this is a useful
compromise, although there may be some further work required to
straighten out the QMF and JMX bindings anyway...

h1. Method Redux

_Though this be madness, yet there is method in't._
*Polonius, Hamlet Act 2, scene 2*

h2. Introduction

The main point of contention in the ACL debate seems to centre around
the mechanism used to permission non AMQP entities, the current
_METHOD_ method is felt to be unsuitable. This document proposes an
update to this syntax and describes exactly how it should be
interpreted across brokers.

h2. Access Control

The things that are being controlled or permissioned by entries in the
access control list are objects that form part of the Qpid broker.
These entities could reasonably be said to be _children_ of the
broker, although I don't feel that a tree-type structure is either
helpful or necessary here, since there is no parallel in the Qpid or
AMQP internals. A flat _object type_ space has therefore been assumed,
continuing current behavior. These types of object have until now
simply represented the major types of object that exist and are
manipulable inside a broker. The only addition is that of the broker
itself, since there are some operations and actions that can only
realistically be said to be performed globally.  This is the rationale
behind such proposed ACL entries as:

{noformat}
ACL ALLOW robot ACCESS LOG
ACL DENY robot UPDATE CONFIG
ACL DENY kitten UPDATE USERS
ACL ALLOW kitten ADMIN LOG
{noformat}

The _LOG_, _CONFIG_ and _USERS_ object types here represent subsystems
or components or simply collections of management methods that perform
a similar set of tasks. They are *not* actual broker objects, although
(see later) they may be QMF classes, with their own management schema
and package.

A different approach to access control for these management methods
relies on the _BROKER_ object type being used for permissioning,
giving rise to ACL entries as follows:

{noformat}
ACL DENY robot ACCESS BROKER
ACL DENY kitten UPDATE BROKER subsystem=logging
ACL ALLOW kitten ACCESS BROKER method=get*
ACL ALLOW kitten ACCESS BROKER method=invoke*
ACL ALLOW kitten MANAGE BROKER subsystem=users
{noformat}

This _BROKER_ object type represents the entire runtime entity, and is
in fact represented in the QMF management schema, with properties,
statistics and methods available. This is not meant to indicate a
preference for QMF as a final reference point, it should be noted,
rather this is illustrative of the sorts of entities an access control
object type could map to.

{noformat}
class name=Broker
 property name=name /
 property name=systemRef /
 property name=port /
/class
{noformat}

h3. Existing Syntax

The previous ACL entries would all be permissioned using the _METHOD_
object type in the current C++ broker, assuming a logical extension of
the existing syntax. The problem with this syntax is that it is very
closely coupled to the management framework, QMF. Also, the
granularity of the controls falls awkwardly between extremes, and
requires too much specificity to enumerate all methods dealing with a
particular area of interest when controlling that type of access, and
not distinguishing between *getName* methods on various different
managed objects. This makes it impossible to correctly permission
access to multiple objects with similarly named methods. Also, since
JMX provides access to properties using a method call, a permission
for that method would need to be created to allow _READ_ access to a
property, which blurs the distiction between methods and properties.

h3. Mechanism versus Meaning

Since the current C++ implementation is based exclusively on QMF, only
features supported and used by QMF are available. It is preferable to
have a mechanism-agnostic access control specification, since QMF and
JMX will not be the only management entry-points for ever, with SNMP
and other industry standards available as well as future JEE
development.  Also, it should be possible to permission access in a
manner that does not depend on the version of the QMF schema 

Re: [jira] Commented: (QPID-2539) Update ACL file syntax to be clearer and add extra operations

2010-05-19 Thread Andrew Kennedy
On 19 May 2010 17:22, Carl Trieloff cctriel...@redhat.com wrote:


 I've had a brief read, it seem seems the point I was trying to make has
 been entirely miss-understood.

 How about some IRC, or a call if you can do that and the reflect back to the
 list.

 Carl.

Carl,

I'm off home just now, but maybe if we have a chat tomorrow when
you're free? I would like to get this cleared up, because it seems
like a simple little thing and it shouldn't hold up progress. What I'd
like to get agreed on is a mechanism for permissioning the management
entry-points of the broker.

I don't have IRC access, so can you reply to this with a number and
time I can get you on, and maybe we can come up with a solution to
post to the list tomorrow?

Cheers,
Andrew.
-- 
-- andrew d kennedy ? edinburgh : +44 7941 197 134

-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



[jira] Created: (QPID-2620) Enable the Java Broker to run as a service on Windows platforms

2010-05-19 Thread Sorin Suciu (JIRA)
Enable the Java Broker to run as a service on Windows platforms
---

 Key: QPID-2620
 URL: https://issues.apache.org/jira/browse/QPID-2620
 Project: Qpid
  Issue Type: Improvement
  Components: Java Broker
Affects Versions: 0.7
Reporter: Sorin Suciu
Priority: Minor
 Fix For: 0.7


It seems to be useful for Windows users to have qpid run as a service. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: Multiple topics per queue with the JMS API

2010-05-19 Thread Emmanuel Bourg

Le 17/05/2010 19:33, Rajith Attapattu a écrit :


In the future we may have a Java messaging API that is similar to the
new C++ and Python API.
And then build our JMS layer as a thin layer on top of it.


Such a messaging API for Java would be really great. I don't mind if the 
API is unstable as long as it's close to the AMQP semantic and well 
supported.


Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [jira] Commented: (QPID-2539) Update ACL file syntax to be clearer and add extra operations

2010-05-19 Thread Carl Trieloff

On 05/19/2010 12:30 PM, Andrew Kennedy wrote:

On 19 May 2010 17:22, Carl Trieloffcctriel...@redhat.com  wrote:
   


I've had a brief read, it seem seems the point I was trying to make has
been entirely miss-understood.

How about some IRC, or a call if you can do that and the reflect back to the
list.

Carl.
 

Carl,

I'm off home just now, but maybe if we have a chat tomorrow when
you're free? I would like to get this cleared up, because it seems
like a simple little thing and it shouldn't hold up progress. What I'd
like to get agreed on is a mechanism for permissioning the management
entry-points of the broker.

I don't have IRC access, so can you reply to this with a number and
time I can get you on, and maybe we can come up with a solution to
post to the list tomorrow?

Cheers,
Andrew.
   


I've sent phone number privately.

Carl.



-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



Re: Multiple topics per queue with the JMS API

2010-05-19 Thread Emmanuel Bourg

Le 17/05/2010 19:13, Martin Ritchie a écrit :


Emmanuel,
If you are looking to perform the bind/unbind to an existing queue then
there is a bindQueue method on AMQSession however I was just looking at
this and noticed there is no unbind. A simple thing to expose, but
without a clear approach on exposing AMQP functionality in the java
client it may subject to change.


Thank you Martin,

I looked at AMQSession but it seems my understanding of the code isn't 
good enough to implement the unbind feature myself. If someone could 
look into it that would be really nice.


Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


I see that Qpid does not have a category on the JIRA...

2010-05-19 Thread Carl Trieloff


Anyone volunteer to work with infra and fix this, + take over ownership of
Qpid JIRA from Cliff.

https://issues.apache.org/jira/secure/BrowseProjects.jspa

Carl.

-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org



no left navigation panel on qpid website

2010-05-19 Thread Sorin Suciu
Hi, 
It seems we are missing the left navigation panel on qpid website (jira 
issue?). This makes the access to the right area a bit laborious, is anyone 
looking to fix this?

Thank you, 

Sorin




-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org