svn commit: r741035 - /qpid/trunk/qpid/java/management/client/README.txt

2009-02-04 Thread agazzarini
Author: agazzarini
Date: Thu Feb  5 07:30:34 2009
New Revision: 741035

URL: http://svn.apache.org/viewvc?rev=741035&view=rev
Log: (empty)

Removed:
qpid/trunk/qpid/java/management/client/README.txt


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



svn commit: r741031 [3/3] - in /qpid/trunk/qpid/java/management/client: ./ console/ console/css/ console/definitions/ console/fragments/ console/images/

2009-02-04 Thread agazzarini
Added: 
qpid/trunk/qpid/java/management/client/console/wsdm_operations_perspective.jsp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/client/console/wsdm_operations_perspective.jsp?rev=741031&view=auto
==
--- 
qpid/trunk/qpid/java/management/client/console/wsdm_operations_perspective.jsp 
(added)
+++ 
qpid/trunk/qpid/java/management/client/console/wsdm_operations_perspective.jsp 
Thu Feb  5 07:21:17 2009
@@ -0,0 +1,153 @@
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"; %>
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%...@page import="org.apache.qpid.management.web.action.BrokerModel"%>
+<%...@page import="java.util.Set"%>
+<%...@page import="javax.management.ObjectName"%>
+<%...@page import="org.apache.qpid.management.Names"%>
+<%...@page import="java.util.*"%>
+<%
+   Map java2Xml = new HashMap();
+java2Xml.put(UUID.class.getName(),"qman:uuid");
+java2Xml.put(Long.class.getName(),"xsd:long");
+java2Xml.put(long.class.getName(),"xsd:long");
+java2Xml.put(Boolean.class.getName(),"xsd:boolean");
+java2Xml.put(boolean.class.getName(),"xsd:boolean");
+java2Xml.put(Double.class.getName(),"xsd:double");
+java2Xml.put(double.class.getName(),"xsd:double");
+java2Xml.put(Float.class.getName(),"xsd:float");
+java2Xml.put(float.class.getName(),"xsd:float");
+java2Xml.put(Integer.class.getName(),"xsd:integer");
+java2Xml.put(int.class.getName(),"xsd:integer");
+java2Xml.put(Short.class.getName(),"xsd:short");
+java2Xml.put(short.class.getName(),"xsd:short");
+java2Xml.put(String.class.getName(),"xsd:string");
+java2Xml.put(URI.class.getName(),"xsd:anyURI");
+java2Xml.put(Date.class.getName(),"xsd:dateTime");
+java2Xml.put(QName.class.getName(),"xsd:QName");
+java2Xml.put(Element.class.getName(),"xsd:element");
+java2Xml.put(byte[].class.getName(),"xsd:base64Binary");
+java2Xml.put(Long[].class.getName(),"qman:arrayOfLong");   
+java2Xml.put(long[].class.getName(),"qman:arrayOfLong");
+java2Xml.put(Boolean[].class.getName(),"qman:arrayOfBoolean");
+java2Xml.put(boolean[].class.getName(),"qman:arrayOfBoolean");
+java2Xml.put(Double[].class.getName(),"qman:arrayOfDouble");
+java2Xml.put(double[].class.getName(),"qman:arrayOfDouble");
+java2Xml.put(Float[].class.getName(),"qman:arrayOfFloat");
+java2Xml.put(float[].class.getName(),"qman:arrayOfFloat");
+java2Xml.put(Integer[].class.getName(),"qman:arrayOfInteger");
+java2Xml.put(int[].class.getName(),"qman:arrayOfInteger");
+java2Xml.put(Short[].class.getName(),"qman:arrayOfShort");
+java2Xml.put(short[].class.getName(),"qman:arrayOfShort");
+java2Xml.put(String[].class.getName(),"qman:arrayOfString");
+java2Xml.put(URI[].class.getName(),"qman:arrayOfURI");
+java2Xml.put(Date[].class.getName(),"qman:arrayOfDate");
+java2Xml.put(Map.class.getName(),"qman:map");
+java2Xml.put(HashMap.class.getName(),"qman:map");
+
+pageContext.setAttribute("types",java2Xml);
+%>
+<%...@page import="java.net.URI"%>
+<%...@page import="javax.xml.namespace.QName"%>
+<%...@page import="org.w3c.dom.Element"%>
+
+   
+   
+   QMan Administration Console
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+
+JMX
+WS-DM
+
+
+
+   
+   
+   
+   
+   
+   
+   Resource ID
+
+   
+   
+   
+   
+
+ 
+
+
+
+   
+   
+   
+
+Properties
+Operations
+WSDL
+RDM
+
+
+
+  
+
+   
+   
+   Attributes
+
+   

svn commit: r741031 [1/3] - in /qpid/trunk/qpid/java/management/client: ./ console/ console/css/ console/definitions/ console/fragments/ console/images/

2009-02-04 Thread agazzarini
Author: agazzarini
Date: Thu Feb  5 07:21:17 2009
New Revision: 741031

URL: http://svn.apache.org/viewvc?rev=741031&view=rev
Log:
QPID-1581 : QMan (Web) admin console

Added:
qpid/trunk/qpid/java/management/client/console/
qpid/trunk/qpid/java/management/client/console/brokers_management.jsp
qpid/trunk/qpid/java/management/client/console/console.jsp
qpid/trunk/qpid/java/management/client/console/css/
qpid/trunk/qpid/java/management/client/console/definitions/
qpid/trunk/qpid/java/management/client/console/error_page.jsp
qpid/trunk/qpid/java/management/client/console/fragments/
qpid/trunk/qpid/java/management/client/console/fragments/header.jsp
qpid/trunk/qpid/java/management/client/console/fragments/menu.jsp
qpid/trunk/qpid/java/management/client/console/images/
qpid/trunk/qpid/java/management/client/console/images/asf-logo.png   (with 
props)
qpid/trunk/qpid/java/management/client/console/images/menu.gif   (with 
props)
qpid/trunk/qpid/java/management/client/console/images/menuleft.gif   (with 
props)
qpid/trunk/qpid/java/management/client/console/images/menuright.gif   (with 
props)
qpid/trunk/qpid/java/management/client/console/images/qpid-logo.png   (with 
props)
qpid/trunk/qpid/java/management/client/console/images/style.css
qpid/trunk/qpid/java/management/client/console/jmx_perspective.jsp
qpid/trunk/qpid/java/management/client/console/logging_configuration.jsp
qpid/trunk/qpid/java/management/client/console/resources_management.jsp
qpid/trunk/qpid/java/management/client/console/tbd.jsp
qpid/trunk/qpid/java/management/client/console/wsdl-viewer.xsl

qpid/trunk/qpid/java/management/client/console/wsdm_operations_perspective.jsp

qpid/trunk/qpid/java/management/client/console/wsdm_properties_perspective.jsp
qpid/trunk/qpid/java/management/client/console/wsdm_rmd_perspective.jsp
qpid/trunk/qpid/java/management/client/console/wsdm_wsdl_perspective.jsp
Modified:
qpid/trunk/qpid/java/management/client/web.xml

Added: qpid/trunk/qpid/java/management/client/console/brokers_management.jsp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/client/console/brokers_management.jsp?rev=741031&view=auto
==
--- qpid/trunk/qpid/java/management/client/console/brokers_management.jsp 
(added)
+++ qpid/trunk/qpid/java/management/client/console/brokers_management.jsp Thu 
Feb  5 07:21:17 2009
@@ -0,0 +1,188 @@
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"; %>
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%...@page import="org.apache.qpid.management.web.action.BrokerModel"%>
+<%...@page import="java.util.Set"%>
+<%...@page import="javax.management.ObjectName"%>
+<%...@page import="org.apache.qpid.management.Names"%>
+<%...@page import="java.util.List"%>
+<%...@page import="java.util.*"%>
+<%...@page import="java.net.URI"%>
+<%...@page import="javax.xml.namespace.QName"%>
+<%...@page import="org.w3c.dom.Element"%>
+
+   
+   
+   QMan Administration Console
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+   
+
+   
+   
+   Connected Brokers
+
+   
+   Host
+   Port
+   Virtual Host
+   Username
+   Initial Pool Capacity
+   Max Pool Capacity
+   Max Wait Timeout
+  
+   
+   
+   

+   

+   

+   

+   

+   

+  

svn commit: r741028 - /qpid/trunk/qpid/java/build.deps

2009-02-04 Thread agazzarini
Author: agazzarini
Date: Thu Feb  5 07:14:35 2009
New Revision: 741028

URL: http://svn.apache.org/viewvc?rev=741028&view=rev
Log:
QPID-1581 : updated build dependencies in order to include QMan Admin console 
libraries.

Modified:
qpid/trunk/qpid/java/build.deps

Modified: qpid/trunk/qpid/java/build.deps
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/build.deps?rev=741028&r1=741027&r2=741028&view=diff
==
--- qpid/trunk/qpid/java/build.deps (original)
+++ qpid/trunk/qpid/java/build.deps Thu Feb  5 07:14:35 2009
@@ -52,12 +52,18 @@
 jetty-util=lib/jetty-util-6.1.14.jar
 jetty-bootstrap=lib/start.jar
 
+jsp-api=lib/jsp-api-2.1.jar
+jsp-impl=lib/jsp-2.1.jar
+core-lib=lib/core-3.1.1.jar
+
 muse.libs = ${muse-core} ${muse-platform-mini} ${muse-util} ${muse-util-qname} 
\
 ${muse-util-xml} ${muse-wsa-soap} ${muse-wsdm-muws-adv-api} 
${muse-wsdm-muws-adv-impl} \
 ${muse-wsdm-muws-api} ${muse-wsdm-muws-impl} ${muse-wsdm-wef-api} 
${muse-wsdm-wef-impl} \
 ${muse-wsn-api} ${muse-wsn-impl} ${muse-wsrf-api} ${muse-wsrf-impl} 
${muse-wsrf-rmd} \
 ${muse-wsx-api} ${muse-wsx-impl} ${wsdl4j} ${xercesImpl} ${xml-apis} ${jetty} 
${jetty-util} ${jetty-bootstrap}
 
+jsp.libs = ${jsp-api} ${jsp-impl} ${core-lib}
+
 osgi-core=lib/org.osgi.core-1.0.0.jar
 felix-framework=lib/org.apache.felix.framework-1.0.0.jar
 
@@ -73,7 +79,7 @@
 ${slf4j-log4j} ${xalan} ${felix.libs} 
${build.lib}/${project.name}-common-${project.version}.jar
 
 broker-plugins.libs=${common.libs} ${felix.libs} 
-management-client.libs=${log4j} ${slf4j-log4j} ${slf4j-api} ${commons-pool} 
${geronimo-servlet} ${muse.libs} ${javassist} ${xalan} ${mina-core} 
${mina-filter-ssl}
+management-client.libs=${jsp.libs} ${log4j} ${slf4j-log4j} ${slf4j-api} 
${commons-pool} ${geronimo-servlet} ${muse.libs} ${javassist} ${xalan} 
${mina-core} ${mina-filter-ssl}
 
 junit-toolkit.libs=${log4j} ${junit} ${slf4j-api}
 test.libs=${slf4j-log4j} ${junit-toolkit.libs}



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



svn commit: r741027 - in /qpid/trunk/qpid/java/lib: core-3.1.1.jar jsp-2.1.jar jsp-api-2.1.jar

2009-02-04 Thread agazzarini
Author: agazzarini
Date: Thu Feb  5 07:13:52 2009
New Revision: 741027

URL: http://svn.apache.org/viewvc?rev=741027&view=rev
Log:
QPID-1581 : JSP Libraries added for QMan Admin console.

Added:
qpid/trunk/qpid/java/lib/core-3.1.1.jar   (with props)
qpid/trunk/qpid/java/lib/jsp-2.1.jar   (with props)
qpid/trunk/qpid/java/lib/jsp-api-2.1.jar   (with props)

Added: qpid/trunk/qpid/java/lib/core-3.1.1.jar
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/lib/core-3.1.1.jar?rev=741027&view=auto
==
Binary file - no diff available.

Propchange: qpid/trunk/qpid/java/lib/core-3.1.1.jar
--
svn:mime-type = application/octet-stream

Added: qpid/trunk/qpid/java/lib/jsp-2.1.jar
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/lib/jsp-2.1.jar?rev=741027&view=auto
==
Binary file - no diff available.

Propchange: qpid/trunk/qpid/java/lib/jsp-2.1.jar
--
svn:mime-type = application/octet-stream

Added: qpid/trunk/qpid/java/lib/jsp-api-2.1.jar
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/lib/jsp-api-2.1.jar?rev=741027&view=auto
==
Binary file - no diff available.

Propchange: qpid/trunk/qpid/java/lib/jsp-api-2.1.jar
--
svn:mime-type = application/octet-stream



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



svn commit: r741026 - in /qpid/trunk/qpid/java/resources: LICENSE NOTICE

2009-02-04 Thread agazzarini
Author: agazzarini
Date: Thu Feb  5 07:13:07 2009
New Revision: 741026

URL: http://svn.apache.org/viewvc?rev=741026&view=rev
Log:
QPID-1581 : Updated license information about JSP libraries

Modified:
qpid/trunk/qpid/java/resources/LICENSE
qpid/trunk/qpid/java/resources/NOTICE

Modified: qpid/trunk/qpid/java/resources/LICENSE
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/resources/LICENSE?rev=741026&r1=741025&r2=741026&view=diff
==
--- qpid/trunk/qpid/java/resources/LICENSE (original)
+++ qpid/trunk/qpid/java/resources/LICENSE Thu Feb  5 07:13:07 2009
@@ -704,6 +704,101 @@
 
[ACCEPT BUTTON]
 
+=
+==  COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 1.  ==
+=
+Definitions. 
+
+1.1. Contributor means each individual or entity that creates or contributes 
to the creation of Modifications. 
+
+1.2. Contributor Version means the combination of the Original Software, prior 
Modifications used by a Contributor (if any), and the Modifications made by 
that particular Contributor. 
+
+1.3. Covered Software means (a) the Original Software, or (b) Modifications, 
or (c) the combination of files containing Original Software with files 
containing Modifications, in each case including portions thereof. 
+
+1.4. Executable means the Covered Software in any form other than Source Code. 
+
+1.5. Initial Developer means the individual or entity that first makes 
Original Software available under this License. 
+
+1.6. Larger Work means a work which combines Covered Software or portions 
thereof with code not governed by the terms of this License. 
+
+1.7. License means this document. 
+
+1.8. Licensable means having the right to grant, to the maximum extent 
possible, whether at the time of the initial grant or subsequently acquired, 
any and all of the rights conveyed herein. 
+
+1.9. Modifications means the Source Code and Executable form of any of the 
following: A. Any file that results from an addition to, deletion from or 
modification of the contents of a file containing Original Software or previous 
Modifications; B. Any new file that contains any part of the Original Software 
or previous Modification; or C. Any new file that is contributed or otherwise 
made available under the terms of this License. 
+
+1.10. Original Software means the Source Code and Executable form of computer 
software code that is originally released under this License. 
+
+1.11. Patent Claims means any patent claim(s), now owned or hereafter 
acquired, including without limitation, method, process, and apparatus claims, 
in any patent Licensable by grantor. 
+
+1.12. Source Code means (a) the common form of computer software code in which 
modifications are made and (b) associated documentation included in or with 
such code. 
+
+1.13. You (or Your) means an individual or a legal entity exercising rights 
under, and complying with all of the terms of, this License. For legal 
entities, You includes any entity which controls, is controlled by, or is under 
common control with You. For purposes of this definition, control means (a) the 
power, direct or indirect, to cause the direction or management of such entity, 
whether by contract or otherwise, or (b) ownership of more than fifty percent 
(50%) of the outstanding shares or beneficial ownership of such entity. 
+
+2. License Grants.
+
+ 2.1. The Initial Developer Grant. Conditioned upon Your compliance with 
Section 3.1 below and subject to third party intellectual property claims, the 
Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive 
license: 
+
+(a) under intellectual property rights (other than patent or trademark) 
Licensable by Initial Developer, to use, reproduce, modify, display, perform, 
sublicense and distribute the Original Software (or portions thereof), with or 
without Modifications, and/or as part of a Larger Work; and 
+
+(b) under Patent Claims infringed by the making, using or selling of Original 
Software, to make, have made, use, practice, sell, and offer for sale, and/or 
otherwise dispose of the Original Software (or portions thereof);
+
+(c) The licenses granted in Sections 2.1(a) and (b) are effective on the date 
Initial Developer first distributes or otherwise makes the Original Software 
available to a third party under the terms of this License;
+
+(d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) 
for code that You delete from the Original Software, or (2) for infringements 
caused by: (i) the modification of the Original Software, or (ii) the 
combination of the Original Software with other software or devices. 
+
+2.2. Contributor Grant. Conditioned upon Your compliance with Section 3.1 
below and subject to third party i

svn commit: r741024 - in /qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport: ClientDelegate.java Session.java SessionDelegate.java

2009-02-04 Thread rhs
Author: rhs
Date: Thu Feb  5 06:41:54 2009
New Revision: 741024

URL: http://svn.apache.org/viewvc?rev=741024&view=rev
Log:
QPID-1646: implemented handlers for producer flow control signals

Modified:

qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java

qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java

qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java

Modified: 
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java?rev=741024&r1=741023&r2=741024&view=diff
==
--- 
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java
 (original)
+++ 
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java
 Thu Feb  5 06:41:54 2009
@@ -22,8 +22,9 @@
 
 import static org.apache.qpid.transport.Connection.State.OPEN;
 
-import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.security.sasl.Sasl;
 import javax.security.sasl.SaslClient;
@@ -63,11 +64,14 @@
 
 @Override public void connectionStart(Connection conn, ConnectionStart 
start)
 {
+Map clientProperties = new HashMap();
+clientProperties.put("qpid.session_flow", 1);
+
 List mechanisms = start.getMechanisms();
 if (mechanisms == null || mechanisms.isEmpty())
 {
 conn.connectionStartOk
-(Collections.EMPTY_MAP, null, null, conn.getLocale());
+(clientProperties, null, null, conn.getLocale());
 return;
 }
 
@@ -86,7 +90,7 @@
 byte[] response = sc.hasInitialResponse() ?
 sc.evaluateChallenge(new byte[0]) : null;
 conn.connectionStartOk
-(Collections.EMPTY_MAP, sc.getMechanismName(), response,
+(clientProperties, sc.getMechanismName(), response,
  conn.getLocale());
 }
 catch (SaslException e)
@@ -132,7 +136,7 @@
 {
 throw new UnsupportedOperationException();
 }
-
+
 /**
  * Currently the spec specified the min and max for heartbeat using secs
  */

Modified: 
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java?rev=741024&r1=741023&r2=741024&view=diff
==
--- 
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
 (original)
+++ 
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
 Thu Feb  5 06:41:54 2009
@@ -33,6 +33,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
 
 import static org.apache.qpid.transport.Option.*;
 import static org.apache.qpid.transport.Session.State.*;
@@ -99,6 +101,10 @@
 
 private State state = NEW;
 
+// transfer flow control
+private volatile boolean flowControl = false;
+private Semaphore credit = new Semaphore(0);
+
 Session(Connection connection, Binary name, long expiry)
 {
 this.connection = connection;
@@ -166,6 +172,41 @@
 }
 }
 
+void setFlowControl(boolean value)
+{
+flowControl = value;
+}
+
+void addCredit(int value)
+{
+credit.release(value);
+}
+
+void drainCredit()
+{
+credit.drainPermits();
+}
+
+void acquireCredit()
+{
+if (flowControl)
+{
+try
+{
+if (!credit.tryAcquire(timeout, TimeUnit.MILLISECONDS))
+{
+throw new SessionException
+("timed out waiting for message credit");
+}
+}
+catch (InterruptedException e)
+{
+throw new SessionException
+("interrupted while waiting for credit", null, e);
+}
+}
+}
+
 private void initReceiver()
 {
 synchronized (processedLock)
@@ -428,6 +469,11 @@
 {
 if (m.getEncodedTrack() == Frame.L4)
 {
+if (m.hasPayload())
+{
+acquireCredit();
+}
+
 synchronized (commands)
 {
 if (state != OPEN && state != CLOSED)

Modified: 
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.j

svn commit: r740933 - in /qpid/trunk/qpid/cpp/src: qpid/broker/RateFlowcontrol.h qpid/broker/SessionState.cpp qpid/broker/SessionState.h tests/RateFlowcontrolTest.cpp

2009-02-04 Thread astitcher
Author: astitcher
Date: Wed Feb  4 22:57:34 2009
New Revision: 740933

URL: http://svn.apache.org/viewvc?rev=740933&view=rev
Log:
Fixes to producer flow control to reduce the number
of flow messages sent to the client and to eliminate
a concurrency issue updating the broker flow control
state.

Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/RateFlowcontrol.h
qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.h
qpid/trunk/qpid/cpp/src/tests/RateFlowcontrolTest.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/RateFlowcontrol.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/RateFlowcontrol.h?rev=740933&r1=740932&r2=740933&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/broker/RateFlowcontrol.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/RateFlowcontrol.h Wed Feb  4 22:57:34 
2009
@@ -62,6 +62,7 @@
 }
 void sentCredit(const qpid::sys::AbsTime& t, uint32_t credit);
 uint32_t receivedMessage(const qpid::sys::AbsTime& t, uint32_t  msgs);
+uint32_t availableCredit(const qpid::sys::AbsTime& t);
 bool flowStopped() const;
 };
 
@@ -79,14 +80,22 @@
 creditSent = t;
 }
 
-inline uint32_t RateFlowcontrol::receivedMessage(const qpid::sys::AbsTime& t, 
uint32_t  msgs) {
-requestedCredit +=msgs;
+inline uint32_t RateFlowcontrol::availableCredit(const qpid::sys::AbsTime& t) {
 qpid::sys::Duration d(creditSent, t);
 // Could be -ve before first sentCredit
 int64_t toSend = std::min(rate * d / qpid::sys::TIME_SEC, 
static_cast(requestedCredit));
 return toSend > 0 ? toSend : 0;
 }
 
+inline uint32_t RateFlowcontrol::receivedMessage(const qpid::sys::AbsTime& t, 
uint32_t  msgs) {
+requestedCredit +=msgs;
+// Don't send credit for every message, only send if more than 0.5s since 
last credit or
+// we've got less than .25 of the max left (heuristic)
+return requestedCredit*4 >= maxCredit*3 || qpid::sys::Duration(creditSent, 
t) >= 500*qpid::sys::TIME_MSEC
+? availableCredit(t)
+: 0;
+}
+
 inline bool RateFlowcontrol::flowStopped() const {
 return requestedCredit >= maxCredit;
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp?rev=740933&r1=740932&r2=740933&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionState.cpp Wed Feb  4 22:57:34 
2009
@@ -202,19 +202,17 @@
 struct ScheduledCreditTask : public TimerTask {
 Timer& timer;
 SessionState& sessionState;
-RateFlowcontrol& flowControl;
 ScheduledCreditTask(const qpid::sys::Duration& d, Timer& t,
-SessionState& s, RateFlowcontrol& f) :
+SessionState& s) :
 TimerTask(d),
 timer(t),
-sessionState(s),
-flowControl(f)
+sessionState(s)
 {}
 
 void fire() {
 // This is the best we can currently do to avoid a destruction/fire 
race
 if (!isCancelled()) {
-if ( !sessionState.processSendCredit(0) && 
flowControl.flowStopped() ) {
+if ( !sessionState.processSendCredit(0) ) {
 QPID_LOG(warning, sessionState.getId() << ": Reschedule 
sending credit");
 reset();
 timer.add(this);
@@ -258,26 +256,27 @@
 
 // Handle producer session flow control
 if (rateFlowcontrol && frame.getBof() && frame.getBos()) {
-// Check for violating flow control
-if ( rateFlowcontrol->flowStopped() ) {
-QPID_LOG(warning, getId() << ": producer throttling violation");
-// TODO: Probably do message.stop("") first time then disconnect
-getProxy().getMessage().stop("");
-} else {
-if ( !processSendCredit(1) && rateFlowcontrol->flowStopped() ) {
-QPID_LOG(debug, getId() << ": Schedule sending credit");
-Timer& timer = getBroker().getTimer();
-// Use heuristic for scheduled credit of time for 50 messages, 
but not longer than 500ms
-sys::Duration d = std::min(sys::TIME_SEC * 50 / 
rateFlowcontrol->getRate(), 500 * sys::TIME_MSEC);
-flowControlTimer = new ScheduledCreditTask(d, timer, *this, 
*rateFlowcontrol);
-timer.add(flowControlTimer);
-}
+if ( !processSendCredit(1) ) {
+QPID_LOG(debug, getId() << ": Schedule sending credit");
+Timer& timer = getBroker().getTimer();
+// Use heuristic for scheduled credit of time for 50 messages, but 
not longer than 500ms
+sys::Duration d = std::min(sys::TIME_SEC * 50 / 
rateFlowcontrol->getRate(), 500 * sys::TIME_MSEC);
+flowContro

svn commit: r740900 - in /qpid/trunk/qpid/cpp/src/qpid/cluster: Cluster.cpp ConnectionMap.cpp ConnectionMap.h

2009-02-04 Thread aconway
Author: aconway
Date: Wed Feb  4 21:31:23 2009
New Revision: 740900

URL: http://svn.apache.org/viewvc?rev=740900&view=rev
Log:
Fix race condition with deleted local connections.

Modified:
qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.h

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp?rev=740900&r1=740899&r2=740900&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp Wed Feb  4 21:31:23 2009
@@ -251,7 +251,8 @@
 return;
 }
 boost::intrusive_ptr connection = 
connections.get(e.connectionId);
-connection->deliveredFrame(e);
+if (connection) // Ignore frames to closed local connections.
+connection->deliveredFrame(e);
 }
 QPID_LATENCY_RECORD("processed", e.frame);
 }
@@ -321,11 +322,11 @@
 
 if (state == INIT) {// First configChange
 if (map.aliveCount() == 1) {
-QPID_LOG(notice, *this << " first in cluster");
 setClusterId(true);
 setReady(l);
 map = ClusterMap(myId, myUrl, true);
 memberUpdate(l);
+QPID_LOG(notice, *this << " first in cluster");
 }
 else {  // Joining established group.
 state = JOINER;
@@ -380,8 +381,8 @@
 if (map.ready(id, Url(url))) 
 memberUpdate(l);
 if (state == CATCHUP && id == myId) {
-QPID_LOG(notice, *this << " caught up, active cluster member");
 setReady(l);
+QPID_LOG(notice, *this << " caught up, active cluster member");
 }
 }
 

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.cpp?rev=740900&r1=740899&r2=740900&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.cpp Wed Feb  4 21:31:23 
2009
@@ -48,7 +48,9 @@
 ConnectionMap::ConnectionPtr ConnectionMap::get(const ConnectionId& id) {
 Map::const_iterator i = map.find(id);
 if (i == map.end()) {
-assert(id.getMember() != cluster.getId());
+// Deleted local connection.
+if(id.getMember() == cluster.getId())
+return 0;
 // New remote connection, create a shadow.
 std::ostringstream mgmtId;
 mgmtId << id;

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.h?rev=740900&r1=740899&r2=740900&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/ConnectionMap.h Wed Feb  4 21:31:23 
2009
@@ -55,7 +55,9 @@
 /** Erase a closed connection. Called in deliver thread. */
 void erase(const ConnectionId& id);
 
-/** Get an existing connection. */ 
+/** Get an existing connection. Returns 0 if id is a closed local
+ * connections, frames for closed connections should be ignored.
+ */ 
 ConnectionPtr get(const ConnectionId& id);
 
 /** Get connections for sending an update. */



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



svn commit: r740872 - in /qpid/trunk/qpid/cpp/src/qpid/cluster: Connection.cpp OutputInterceptor.cpp OutputInterceptor.h

2009-02-04 Thread aconway
Author: aconway
Date: Wed Feb  4 20:47:14 2009
New Revision: 740872

URL: http://svn.apache.org/viewvc?rev=740872&view=rev
Log:
Fix assertion due to doOutput control being sent after local connection closed.

Modified:
qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp?rev=740872&r1=740871&r2=740872&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Connection.cpp Wed Feb  4 20:47:14 2009
@@ -112,7 +112,7 @@
 cluster.addShadowConnection(this);
 AMQFrame ok((ConnectionCloseOkBody()));
 connection.getOutput().send(ok);
-output.setOutputHandler(discardHandler);
+output.closeOutput(discardHandler);
 catchUp = false;
 }
 else
@@ -165,7 +165,7 @@
 // This was a local replicated connection. Multicast a deliver
 // closed and process any outstanding frames from the cluster
 // until self-delivery of deliver-close.
-output.setOutputHandler(discardHandler);
+output.closeOutput(discardHandler);
 
cluster.getMulticast().mcastControl(ClusterConnectionDeliverCloseBody(), self);
 }
 }

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp?rev=740872&r1=740871&r2=740872&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.cpp Wed Feb  4 
20:47:14 2009
@@ -34,7 +34,8 @@
 
 OutputInterceptor::OutputInterceptor(
 cluster::Connection& p, sys::ConnectionOutputHandler& h)
-: parent(p), next(&h), sent(), 
writeEstimate(p.getCluster().getWriteEstimate()),
+: parent(p), closing(false), next(&h), sent(),
+  writeEstimate(p.getCluster().getWriteEstimate()),
   moreOutput(), doingOutput()
 {}
 
@@ -54,7 +55,7 @@
 sys::Mutex::ScopedLock l(lock);
 next->activateOutput();
 }
-else {
+else if (!closing) {// Don't send do ouput after output stopped.
 QPID_LOG(trace,  parent << " activateOutput - sending doOutput");
 moreOutput = true;
 sendDoOutput();
@@ -117,8 +118,9 @@
 QPID_LOG(trace, parent << "Send doOutput request for " << request);
 }
 
-void OutputInterceptor::setOutputHandler(sys::ConnectionOutputHandler& h) {
+void OutputInterceptor::closeOutput(sys::ConnectionOutputHandler& h) {
 sys::Mutex::ScopedLock l(lock);
+closing = true;
 next = &h;
 }
 

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h?rev=740872&r1=740871&r2=740872&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/OutputInterceptor.h Wed Feb  4 
20:47:14 2009
@@ -53,7 +53,7 @@
 // Intercept doOutput requests on Connection.
 bool doOutput();
 
-void setOutputHandler(sys::ConnectionOutputHandler& h);
+void closeOutput(sys::ConnectionOutputHandler& h);
 
 cluster::Connection& parent;
 
@@ -63,6 +63,7 @@
 void sendDoOutput();
 
 mutable sys::Mutex lock;
+bool closing;
 sys::ConnectionOutputHandler* next;
 size_t sent;
 size_t lastDoOutput;



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



svn commit: r740849 - in /qpid/trunk/qpid/cpp/src/qpid/cluster: ClusterPlugin.cpp Cpg.cpp

2009-02-04 Thread aconway
Author: aconway
Date: Wed Feb  4 20:01:52 2009
New Revision: 740849

URL: http://svn.apache.org/viewvc?rev=740849&view=rev
Log:
Fix memory error in ClusterPlugin.

Modified:
qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp?rev=740849&r1=740848&r2=740849&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp Wed Feb  4 20:01:52 
2009
@@ -158,8 +158,10 @@
 }
 }
 
-void initialize(Plugin::Target& ) {
-cluster->initialize();
+void initialize(Plugin::Target& target) {
+Broker* broker = dynamic_cast(&target);
+if (broker && cluster)
+cluster->initialize();
 }
 };
 

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp?rev=740849&r1=740848&r2=740849&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp Wed Feb  4 20:01:52 2009
@@ -144,8 +144,9 @@
 os << msg << ": ";
 switch (err) {
   case CPG_OK: os << "ok"; break;
+  case CPG_ERR_LIBRARY: os << "library"; break;
   case CPG_ERR_TIMEOUT: os << "timeout"; break;
-  case CPG_ERR_TRY_AGAIN: os << "timeout. The aisexec daemon may not be 
running"; break;
+  case CPG_ERR_TRY_AGAIN: os << "try again"; break;
   case CPG_ERR_INVALID_PARAM: os << "invalid param"; break;
   case CPG_ERR_NO_MEMORY: os << "no memory"; break;
   case CPG_ERR_BAD_HANDLE: os << "bad handle"; break;
@@ -153,10 +154,8 @@
   case CPG_ERR_NOT_EXIST: os << "not exist"; break;
   case CPG_ERR_EXIST: os << "exist"; break;
   case CPG_ERR_NOT_SUPPORTED: os << "not supported"; break;
-// The following are not mapped, or are incorrectly mapped in corosync 
0-92-5
-// case CPG_ERR_LIBRARY: os << "library"; break;
-// case CPG_ERR_SECURITY: os << "security"; break;
-// case CPG_ERR_TOO_MANY_GROUPS: os << "too many groups"; break;
+  case CPG_ERR_SECURITY: os << "security"; break;
+  case CPG_ERR_TOO_MANY_GROUPS: os << "too many groups"; break;
   default: os << ": unknown cpg error " << err;
 };
 os << " (" << err << ")";



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



svn commit: r740801 - /qpid/trunk/qpid/cpp/src/tests/run_acl_tests

2009-02-04 Thread aconway
Author: aconway
Date: Wed Feb  4 17:16:51 2009
New Revision: 740801

URL: http://svn.apache.org/viewvc?rev=740801&view=rev
Log:
Fixed run_acl_tests.

Modified:
qpid/trunk/qpid/cpp/src/tests/run_acl_tests

Modified: qpid/trunk/qpid/cpp/src/tests/run_acl_tests
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_acl_tests?rev=740801&r1=740800&r2=740801&view=diff
==
--- qpid/trunk/qpid/cpp/src/tests/run_acl_tests (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_acl_tests Wed Feb  4 17:16:51 2009
@@ -38,9 +38,8 @@
 test_loading_acl_from_absolute_path(){
 POLICY_FILE=$PWD/$srcdir/policy.acl
 rm -f temp.log
-   ../qpidd --daemon --port 0 --no-module-dir --no-data-dir --auth no 
--load-module ../.libs/acl.so --acl-file $POLICY_FILE -t --log-to-file temp.log 
 2>/dev/null
-PORT=`grep "Listening on TCP port" temp.log | awk '{print $8}'`
-ACL_FILE=`grep "notice Read ACL file" temp.log | awk '{print $7}'`
+PORT=`../qpidd --daemon --port 0 --no-module-dir --no-data-dir --auth no 
--load-module ../.libs/acl.so --acl-file $POLICY_FILE -t --log-to-file temp.log 
 2>/dev/null`
+ACL_FILE=`grep "notice Read ACL file" temp.log | awk '{print $5x}'`
../qpidd -q --port $PORT
if test "$ACL_FILE" != "\"$POLICY_FILE\""; then
  echo "unable to load policy file from an absolute path";



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



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
Here's a variant for those who prefer "firewall" and "rule":








As for the virtualhost idea, I think I would do that by nesting firewall:

















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







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



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
Here is an alternative for those who prefer "firewall" and "rule" elements:








As for the virtualhost idea, I think I would do that by nesting firewall:

















Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







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



svn commit: r740793 - in /qpid/trunk/qpid/cpp/src: qpid/broker/Broker.cpp qpid/broker/Broker.h qpid/cluster/Cluster.cpp qpid/cluster/Cluster.h qpid/cluster/ClusterPlugin.cpp tests/run_acl_tests

2009-02-04 Thread aconway
Author: aconway
Date: Wed Feb  4 17:04:45 2009
New Revision: 740793

URL: http://svn.apache.org/viewvc?rev=740793&view=rev
Log:
Cluster sets recovery flag on Broker for first member in cluster.
Disable recovery from local store if the recovery flag is not set.

Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.h
qpid/trunk/qpid/cpp/src/qpid/cluster/ClusterPlugin.cpp
qpid/trunk/qpid/cpp/src/tests/run_acl_tests

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=740793&r1=740792&r2=740793&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Wed Feb  4 17:04:45 2009
@@ -149,6 +149,7 @@
 *this),
 queueCleaner(queues, timer),
 queueEvents(poller),
+recovery(true),
 getKnownBrokers(boost::bind(&Broker::getKnownBrokersImpl, this))
 {
 if (conf.enableMgmt) {
@@ -209,11 +210,17 @@
 setStore (new NullMessageStore());
 
 exchanges.declare(empty, DirectExchange::typeName); // Default exchange.
-
+
 if (store.get() != 0) {
-RecoveryManagerImpl recoverer(queues, exchanges, links, dtxManager, 
-  conf.stagingThreshold);
-store->recover(recoverer);
+// The cluster plug-in will setRecovery(false) on all but the first
+// broker to join a cluster.
+if (getRecovery()) {
+RecoveryManagerImpl recoverer(queues, exchanges, links, 
dtxManager, 
+  conf.stagingThreshold);
+store->recover(recoverer);
+}
+else
+QPID_LOG(notice, "Recovering from cluster, no recovery from local 
journal");
 }
 
 //ensure standard exchanges exist (done after recovery from store)

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h?rev=740793&r1=740792&r2=740793&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.h Wed Feb  4 17:04:45 2009
@@ -139,6 +139,8 @@
 std::vector getKnownBrokersImpl();
 std::string federationTag;
 
+bool recovery;
+
   public:
 
   
@@ -223,6 +225,9 @@
 boost::function ()> getKnownBrokers;
 
 static const std::string TCP_TRANSPORT;
+
+void setRecovery(bool set) { recovery = set; }
+bool getRecovery() const { return recovery; }
 };
 
 }}

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp?rev=740793&r1=740792&r2=740793&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp Wed Feb  4 17:04:45 2009
@@ -21,28 +21,30 @@
 #include "UpdateClient.h"
 #include "FailoverExchange.h"
 
+#include "qmf/org/apache/qpid/cluster/ArgsClusterStopClusterNode.h"
+#include "qmf/org/apache/qpid/cluster/Package.h"
 #include "qpid/broker/Broker.h"
-#include "qpid/broker/SessionState.h"
 #include "qpid/broker/Connection.h"
 #include "qpid/broker/QueueRegistry.h"
+#include "qpid/broker/SessionState.h"
 #include "qpid/framing/AMQFrame.h"
 #include "qpid/framing/AMQP_AllOperations.h"
 #include "qpid/framing/AllInvoker.h"
-#include "qpid/framing/ClusterUpdateRequestBody.h"
-#include "qpid/framing/ClusterReadyBody.h"
 #include "qpid/framing/ClusterConfigChangeBody.h"
-#include "qpid/framing/ClusterUpdateOfferBody.h"
-#include "qpid/framing/ClusterShutdownBody.h"
 #include "qpid/framing/ClusterConnectionDeliverCloseBody.h"
 #include "qpid/framing/ClusterConnectionDeliverDoOutputBody.h"
-#include "qpid/log/Statement.h"
+#include "qpid/framing/ClusterReadyBody.h"
+#include "qpid/framing/ClusterShutdownBody.h"
+#include "qpid/framing/ClusterUpdateOfferBody.h"
+#include "qpid/framing/ClusterUpdateRequestBody.h"
 #include "qpid/log/Helpers.h"
-#include "qpid/sys/Thread.h"
-#include "qpid/sys/LatencyMetric.h"
+#include "qpid/log/Statement.h"
+#include "qpid/management/IdAllocator.h"
+#include "qpid/management/ManagementBroker.h"
 #include "qpid/memory.h"
 #include "qpid/shared_ptr.h"
-#include "qmf/org/apache/qpid/cluster/Package.h"
-#include "qmf/org/apache/qpid/cluster/ArgsClusterStopClusterNode.h"
+#include "qpid/sys/LatencyMetric.h"
+#include "qpid/sys/Thread.h"
 
 #include 
 #include 
@@ -101,11 +103,28 @@
   poller),
 connections(*this),
 decoder(boost::bind(&PollableFrameQueue::push, &deliverFrameQueue, _1)),
+init

[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
I prefer to call this an "access list for a server". It's not a firewall - you clearly say that in your description. And I think we're moving into calling these things servers rather than brokers, for consistency with AMQP. An access list contains access elements. Each access element specifies the permissions for a network or a hostname:


   
   
   
   


As for the virtualhost idea, I think I would do that by nesting accesslist:



  













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







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



[CONF] Apache Qpid: Java Broker Configuration Design (page edited)

2009-02-04 Thread confluence










Page Edited :
qpid :
Java Broker Configuration Design



 
Java Broker Configuration Design
has been edited by Martin Ritchie
(Feb 04, 2009).
 

 
 (View changes)
 

Content:
Java Broker Configuration Design

The Java broker configuration xml files have grown in complexity through M4 and reached a state where we need to look at the simplifying the design to help both our users and our selves.

QPID-1612

Current Issues


	We use an XML format but don't validate the XML.
	We can't validate because we use dynamic tags in the Virutalhost sections.
	We don't ensure that all configuration values are used in the code.
	We have two three locations where virtualhost information is declared.
	Information is duplicated rather than defaulted, such as Virtualhost store class.
	Advanced configuration options are available and highlighted via the config file but we would never advocate their use.



Improvement Plans

As we are currently using Commons Configuration it would make sense to made use to use as much of their code rather than writing our own.

Steps to improving design:


	Start using a ConfigurationFactory
	
		Allows us to split up our configuration moving the Virtualhost sections to it's own file.
		Allows validation of the main configuration file.
		Allows an optional user-config.xml file to be included where users can easily override default values.
	
	
	Redesign Virtualhost file to allow validation
	
		Allow default values for all Virtualhosts
	
	
	Investigate mechanism to allow plugins and broker elements to identify sections of configuration they use.
	
		Fail to start broker if there are missing sections of the configuration.
		Fail to start broker if there are unused sections of the configuration.
	
	



Example for new config.xml that would work with Commons ConfigurationFactory:


  
  
  
  














Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







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



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Jonathan Robie
(Feb 04, 2009).


Comment:
 

   












Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







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



svn commit: r740756 - /qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp

2009-02-04 Thread aconway
Author: aconway
Date: Wed Feb  4 14:30:23 2009
New Revision: 740756

URL: http://svn.apache.org/viewvc?rev=740756&view=rev
Log:
Clean up error messages.

Modified:
qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp?rev=740756&r1=740755&r2=740756&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp Wed Feb  4 14:30:23 2009
@@ -143,21 +143,21 @@
 std::ostringstream  os;
 os << msg << ": ";
 switch (err) {
-  case CPG_OK: os << ": ok"; break;
-  case CPG_ERR_TIMEOUT: os << ": timeout"; break;
-  case CPG_ERR_TRY_AGAIN: os << ": timeout. The aisexec daemon may not be 
running"; break;
-  case CPG_ERR_INVALID_PARAM: os << ": invalid param"; break;
-  case CPG_ERR_NO_MEMORY: os << ": no memory"; break;
-  case CPG_ERR_BAD_HANDLE: os << ": bad handle"; break;
-  case CPG_ERR_ACCESS: os << ": access denied. You may need to set your 
group ID to 'ais'"; break;
-  case CPG_ERR_NOT_EXIST: os << ": not exist"; break;
-  case CPG_ERR_EXIST: os << ": exist"; break;
-  case CPG_ERR_NOT_SUPPORTED: os << ": not supported"; break;
+  case CPG_OK: os << "ok"; break;
+  case CPG_ERR_TIMEOUT: os << "timeout"; break;
+  case CPG_ERR_TRY_AGAIN: os << "timeout. The aisexec daemon may not be 
running"; break;
+  case CPG_ERR_INVALID_PARAM: os << "invalid param"; break;
+  case CPG_ERR_NO_MEMORY: os << "no memory"; break;
+  case CPG_ERR_BAD_HANDLE: os << "bad handle"; break;
+  case CPG_ERR_ACCESS: os << "access denied. You may need to set your 
group ID to 'ais'"; break;
+  case CPG_ERR_NOT_EXIST: os << "not exist"; break;
+  case CPG_ERR_EXIST: os << "exist"; break;
+  case CPG_ERR_NOT_SUPPORTED: os << "not supported"; break;
 // The following are not mapped, or are incorrectly mapped in corosync 
0-92-5
-// case CPG_ERR_LIBRARY: os << ": library"; break;
-// case CPG_ERR_SECURITY: os << ": security"; break;
-// case CPG_ERR_TOO_MANY_GROUPS: os << ": too many groups"; break;
-  default: os << ": unknown cpg error";
+// case CPG_ERR_LIBRARY: os << "library"; break;
+// case CPG_ERR_SECURITY: os << "security"; break;
+// case CPG_ERR_TOO_MANY_GROUPS: os << "too many groups"; break;
+  default: os << ": unknown cpg error " << err;
 };
 os << " (" << err << ")";
 return os.str();



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



[CONF] Apache Qpid: IP Whitelisting (comment added)

2009-02-04 Thread confluence










Comment Added :
qpid :
Re: IP Whitelisting




IP Whitelisting
commented on by Aidan Skinner
(Feb 04, 2009).


Comment:


 
 [3:42  pm] 
 partychat4  
 ["rhs"] aidan: so a ..  sort of thing would actually be a blacklist, would it  not? 


 
 [3:45  pm] 
 aidan.x.skinner  
 rhs:  yes 


 
 [3:48  pm] 
 aidan.x.skinner  
 rhs: I've  been pondering dropping default-action and just letting having a rule with no  match attribute at the end serve that  purpouse 


 
 [3:48  pm] 
 aidan.x.skinner  
 (and  default to deny if not specified) 


 
 [3:48  pm] 
 partychat4  
 ["rob"] but if you have no whitelist at all the default action is  allow? 


 
 [3:49  pm] 
 aidan.x.skinner  
 yeah 


 
 [3:49  pm] 
 aidan.x.skinner  
 i guess  that probably makes allow a more sensible  default? 


 
 [3:49  pm] 
 aidan.x.skinner  
 also, ideas  for calling  something else would be gratefully  recieved 


 
 [3:49  pm] 
 partychat4  
 ["rob"] I'm not sure there is a sensible default which is why I think  you should force the user to set one 


 
 [3:49  pm] 
 partychat4  
 ["rhs"] accesslist? 


 
 [3:50  pm] 
 aidan.x.skinner  
 rob: we  could demand one empty rule at the  end? 


 
 [3:50  pm] 
 aidan.x.skinner  
 rhs: i  thought about that but considered it a little too close to  ACL 


 
 [3:51  pm] 
 partychat4  
 ["rhs"] ? 


 
 [3:51  pm] 
 partychat4  
 ["rob"] aidan: I'm pretty relaxed  really 


 
 [3:51  pm] 
 partychat4  
 ["rhs"] ... might  make some sense 


 
 [3:51  pm] 
 partychat4  
 ["rhs"] er, default-action rather 


 
 [3:52  pm] 
 aidan.x.skinner  
 firewall  sounds reasonable 


 
 [3:52  pm] 
 partychat4  
 ["rhs"] I'm also fairly relaxed, I just had the urge to mock your  usage of the term whitelist. 


 
 [3:52  pm] 
 aidan.x.skinner  
 it's not a  great term really. but greylists are something else  again 


 
 [3:53  pm] 
 aidan.x.skinner  
 whiteandblacklist  seemed a little unwieldy 
  


 
 [3:54  pm] 
 partychat4  
 ["rhs"] but I'm not particularly fussy either  way 


 
 [3:54  pm] 
 aidan.x.skinner  
 firewall is  more accurate, i'm going to go with  that 


 
 [4:06  pm] 
 partychat4  
 ["marnie"] honest answers, does anyone here really care about what we  call it ? 


 
 [4:07  pm] 
 partychat4  
 ["marnie"] cos I know some people who  do 


 
 [6:13  pm] 
 partychat4  
 [jonathan.ro...@gmail.com] i care that what we call it is easy to  explain 


 
 [6:13  pm] 
 partychat4  
 [jonathan.ro...@gmail.com] i think the sub elements might be   and , i don't know what to call the containing  element 
 













Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request

Unsubscribe or edit your notifications preferences







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