svn commit: r741035 - /qpid/trunk/qpid/java/management/client/README.txt
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/
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/
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
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
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
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
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
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
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
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
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
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)
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)
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
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)
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)
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)
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
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)
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