You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ar...@apache.org on 2008/10/13 10:16:05 UTC

svn commit: r703961 [1/2] - in /incubator/qpid/trunk/qpid/java/management/client/src: main/java/org/apache/qpid/management/ main/java/org/apache/qpid/management/configuration/ main/java/org/apache/qpid/management/domain/handler/base/ main/java/org/apac...

Author: arnaudsimon
Date: Mon Oct 13 01:16:03 2008
New Revision: 703961

URL: http://svn.apache.org/viewvc?rev=703961&view=rev
Log:
qpid-1284: on behalf Adnrea (latest posted patch)

Modified:
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Names.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/config.xml
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionDataParser.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configurator.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/MessageHandlerMapping.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/QpidDatasource.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Tag.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandler.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/MethodResponseMessageHandler.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/DomainModel.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidArgument.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidClass.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidFeature.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidMethod.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidPackage.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/AbsTime.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Binary.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Boolean.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/DeltaTime.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Map.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/ObjectReference.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str16.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str8.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Type.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint16.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint32.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint64.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint8.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uuid.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/ManagementClient.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QMan.java
    incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QpidService.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfiguratorTest.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/configuration/MappingParsersTest.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/configuration/StubConfigurator.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandlerTest.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/DomainModelTest.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidMethodBuilderTest.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidNumberPropertyTest.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPackageTest.java
    incubator/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStringPropertyTest.java

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Names.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Names.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Names.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Names.java Mon Oct 13 01:16:03 2008
@@ -29,13 +29,13 @@
 {
     /** Name of the qpid management exchange. */
     String MANAGEMENT_EXCHANGE = "qpid.management";    
-    String MANAGEMENT_ROUTING_KEY = "console.#";
+    String MANAGEMENT_ROUTING_KEY = "mgmt.#";
    
     String MANAGEMENT_QUEUE_PREFIX = "management.";
     String METHOD_REPLY_QUEUE_PREFIX = "reply.";
    
     String AMQ_DIRECT_QUEUE = "amq.direct";
-    String AGENT_ROUTING_KEY = "agent.1.0";
+    String AGENT_ROUTING_KEY = "agent.0";
    
     String BROKER_ROUTING_KEY = "broker";
     
@@ -49,4 +49,4 @@
     String CONFIGURATION_FILE_NAME = "/org/apache/qpid/management/config.xml";
     
     String ARG_COUNT_PARAM_NAME = "argCount";
-}
+}
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/Protocol.java Mon Oct 13 01:16:03 2008
@@ -27,8 +27,15 @@
  */
 public interface Protocol
 {
-    String MAGIC_NUMBER = "AM2";
+    String MAGIC_NUMBER = "AM1";
     
-    byte [] METHOD_REQUEST_FIRST_FOUR_BYTES = (MAGIC_NUMBER+"M").getBytes();
-    byte [] SCHEMA_REQUEST_FIRST_FOUR_BYTES = (MAGIC_NUMBER+"S").getBytes();  
-}
+    char SCHEMA_REQUEST_OPCODE = 'S';
+    char SCHEMA_RESPONSE_OPCODE = Character.toLowerCase(SCHEMA_REQUEST_OPCODE);
+    
+    char OPERATION_INVOCATION_REQUEST_OPCODE = 'M';
+    char OPERATION_INVOCATION_RESPONSE_OPCODE = Character.toLowerCase(OPERATION_INVOCATION_REQUEST_OPCODE);
+    
+    char INSTRUMENTATION_CONTENT_RESPONSE_OPCODE = 'i';
+    char CONFIGURATION_CONTENT_RESPONSE_OPCDE = 'c';
+    char INSTR_AND_CONFIG_CONTENT_RESPONSE_OPCODE = 'g';
+}
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/config.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/config.xml?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/config.xml (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/config.xml Mon Oct 13 01:16:03 2008
@@ -1,26 +1,4 @@
 <configuration>
-	<message-handlers>
-		<management-queue>
-			<handler>
-				<opcode>i</opcode>
-				<class-name>org.apache.qpid.management.domain.handler.impl.InstrumentationMessageHandler</class-name>
-			</handler>
-			<handler>
-				<opcode>c</opcode>
-				<class-name>org.apache.qpid.management.domain.handler.impl.ConfigurationMessageHandler</class-name>
-			</handler>
-		</management-queue>
-		<method-reply-queue>
-			<handler>
-				<opcode>m</opcode>
-				<class-name>org.apache.qpid.management.domain.handler.impl.MethodResponseMessageHandler</class-name>
-			</handler>
-			<handler>
-				<opcode>s</opcode>
-				<class-name>org.apache.qpid.management.domain.handler.impl.SchemaResponseMessageHandler</class-name>
-			</handler>
-		</method-reply-queue>	
-	</message-handlers>
 	<type-mappings>
 		<mapping>
 			<code>1</code>
@@ -99,7 +77,7 @@
 			<user>guest</user>
 			<password>guest</password>
 			<max-pool-capacity>4</max-pool-capacity>
-			<initial-pool-capacity>4</initial-pool-capacity>
+			<initial-pool-capacity>0</initial-pool-capacity>
 			<max-wait-timeout>-1</max-wait-timeout>
 		</broker>		
 	</brokers>

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionDataParser.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionDataParser.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionDataParser.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/BrokerConnectionDataParser.java Mon Oct 13 01:16:03 2008
@@ -29,13 +29,16 @@
  * For each access-mode-mappings/mapping element found in the configuration file, a new access mode mapping 
  * is built and injected into the bridge configuration.
  * 
- * <broker>
-        <host>192.168.61.130</host>
-        <port>5673</port>
-        <virtual-host>test</virtual-host>
-        <user>andrea</user>
-        <password>andrea</password>
-    </broker>
+        <broker>
+            <host>192.168.148.131</host>
+            <port>5672</port>
+            <virtual-host>test</virtual-host>
+            <user>guest</user>
+            <password>guest</password>
+            <max-pool-capacity>4</max-pool-capacity>
+            <initial-pool-capacity>4</initial-pool-capacity>
+            <max-wait-timeout>-1</max-wait-timeout>
+        </broker>   
  * 
  * @author Andrea Gazzarini
  */

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configuration.java Mon Oct 13 01:16:03 2008
@@ -25,9 +25,12 @@
 import java.util.Set;
 import java.util.UUID;
 import java.util.Map.Entry;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.SynchronousQueue;
 
 import org.apache.qpid.management.Names;
 import org.apache.qpid.management.domain.handler.base.IMessageHandler;
+import org.apache.qpid.management.domain.handler.impl.InvocationResult;
 import org.apache.qpid.management.domain.model.AccessMode;
 import org.apache.qpid.management.domain.model.type.Type;
 import org.apache.qpid.transport.DeliveryProperties;
@@ -60,6 +63,9 @@
     private String _methodReplyQueueName;
     
     private Header _headerForCommandMessages;
+    private DeliveryProperties _deliveryProperties = new DeliveryProperties();
+    private MessageProperties _messageProperties = new MessageProperties();
+    public BlockingQueue<InvocationResult> _resultExchangeChannel = new SynchronousQueue<InvocationResult>();
     
     // Private constructor.
     private Configuration()
@@ -236,6 +242,26 @@
     }
 
     /**
+     * Returns the command message properties.
+     *  
+     * @return the command message properties.
+     */
+    public MessageProperties getCommandMessageProperties ()
+    {
+        return _messageProperties;
+    }
+
+    /**
+     * Returns the command message delivery properties.
+     *  
+     * @return the command message delivery properties.
+     */
+    public DeliveryProperties getCommandDeliveryProperties ()
+    {
+        return _deliveryProperties;
+    }        
+    
+    /**
      * Adds a new type mapping to this configuration.
      * 
      * @param mapping the type mapping that will be added.
@@ -314,16 +340,11 @@
      */
     private void createHeaderForCommandMessages ()
     {
-        MessageProperties messageProperties = new MessageProperties();
-        
         ReplyTo replyTo=new ReplyTo();
         replyTo.setRoutingKey(_methodReplyQueueName);
-        messageProperties.setReplyTo(replyTo);
-
-        DeliveryProperties deliveryProperties = new DeliveryProperties();
-        deliveryProperties.setRoutingKey(Names.AGENT_ROUTING_KEY);        
-
-        _headerForCommandMessages = new Header(deliveryProperties, messageProperties);
+        _messageProperties.setReplyTo(replyTo);
+        _deliveryProperties.setRoutingKey(Names.AGENT_ROUTING_KEY);        
+        _headerForCommandMessages = new Header(_deliveryProperties, _messageProperties);
     }
     
     /**
@@ -339,5 +360,5 @@
         
         LOGGER.debug("<QMAN-200021> : Management queue name : %s",_managementQueueName);
         LOGGER.debug("<QMAN-000022> : Method-reply queue name : %s",_methodReplyQueueName);        
-    }    
+    }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configurator.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configurator.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configurator.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Configurator.java Mon Oct 13 01:16:03 2008
@@ -27,6 +27,11 @@
 import javax.xml.parsers.SAXParserFactory;
 
 import org.apache.qpid.management.Names;
+import org.apache.qpid.management.Protocol;
+import org.apache.qpid.management.domain.handler.impl.ConfigurationMessageHandler;
+import org.apache.qpid.management.domain.handler.impl.InstrumentationMessageHandler;
+import org.apache.qpid.management.domain.handler.impl.MethodResponseMessageHandler;
+import org.apache.qpid.management.domain.handler.impl.SchemaResponseMessageHandler;
 import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
@@ -57,9 +62,6 @@
     IParser _typeMappingParser = new TypeMappingParser();
     IParser _accessModeMappingParser = new AccessModeMappingParser();
     IParser _brokerConfigurationParser = new BrokerConnectionDataParser();
-    IParser _managementQueueHandlerParser = new ManagementQueueMessageListenerParser();
-    IParser _methodReplyQueueHandlerParser = new MethodReplyQueueMessageListenerParser();
-
     IParser _currentParser = DEFAULT_PARSER;
     
     /**
@@ -95,16 +97,6 @@
                 _currentParser = _brokerConfigurationParser;
                 break;
             }
-            case MANAGEMENT_QUEUE: 
-            {
-                _currentParser = _managementQueueHandlerParser;
-                break;
-            }  
-            case METHOD_REPLY_QUEUE: 
-            {
-                _currentParser = _methodReplyQueueHandlerParser;
-                break;
-            } 
         }
     }
     
@@ -127,6 +119,11 @@
             BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(getConfigurationFileName()),"UTF8"));
             InputSource source = new InputSource(reader);
             parser.parse(source, this);
+            
+            // Hard-coded configuration for message handlers : we need that because those handler mustn't be configurable.
+            // QMan is not able to work without them!
+            addMandatoryManagementMessageHandlers();
+            addMandatoryMethodReplyMessageHandlers();                        
         } catch (Exception exception)
         {
             throw new ConfigurationException(exception);
@@ -134,6 +131,38 @@
     }
     
     /**
+     * Configures the mandatory management message handlers.
+     */
+    private void addMandatoryMethodReplyMessageHandlers ()
+    {
+        Configuration.getInstance().addMethodReplyMessageHandlerMapping(
+                new MessageHandlerMapping(
+                        Protocol.OPERATION_INVOCATION_RESPONSE_OPCODE,
+                        MethodResponseMessageHandler.class.getName()));
+        
+        Configuration.getInstance().addMethodReplyMessageHandlerMapping(
+                new MessageHandlerMapping(
+                        Protocol.SCHEMA_RESPONSE_OPCODE,
+                        SchemaResponseMessageHandler.class.getName()));        
+    }
+
+    /**
+     * Configures the mandatory management message handlers.
+     */
+    private void addMandatoryManagementMessageHandlers ()
+    {
+        Configuration.getInstance().addManagementMessageHandlerMapping(
+                new MessageHandlerMapping(
+                        Protocol.INSTRUMENTATION_CONTENT_RESPONSE_OPCODE,
+                        InstrumentationMessageHandler.class.getName()));
+      
+        Configuration.getInstance().addManagementMessageHandlerMapping(
+                new MessageHandlerMapping(
+                        Protocol.CONFIGURATION_CONTENT_RESPONSE_OPCDE,
+                        ConfigurationMessageHandler.class.getName()));        
+    }
+
+    /**
      * Returns the name of the configuration file.
      * 
      * @return the name of the configuration file.

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/MessageHandlerMapping.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/MessageHandlerMapping.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/MessageHandlerMapping.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/MessageHandlerMapping.java Mon Oct 13 01:16:03 2008
@@ -31,6 +31,24 @@
     private String _handlerClass;
     
     /**
+     * Builds an empty message handler mapping.
+     */
+    MessageHandlerMapping()
+    {
+    }
+    
+    /**
+     * Builds a new mapping with the given opcode and handler class.
+     * 
+     * @param opcode the opcode.
+     * @param handlerClass the handler class.
+     */
+    MessageHandlerMapping(Character opcode, String handlerClass) {
+        this._opcode = opcode;
+        this._handlerClass = handlerClass;
+    }
+    
+    /**
      * Returns the opcode of this mapping.
      * 
      * @return the code of this mapping.

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/QpidDatasource.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/QpidDatasource.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/QpidDatasource.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/QpidDatasource.java Mon Oct 13 01:16:03 2008
@@ -28,95 +28,158 @@
 import org.apache.commons.pool.ObjectPool;
 import org.apache.commons.pool.impl.GenericObjectPool;
 import org.apache.commons.pool.impl.GenericObjectPoolFactory;
-import org.apache.qpid.transport.Connection;
-import org.apache.qpid.transport.ConnectionException;
+import org.apache.qpid.ErrorCode;
+import org.apache.qpid.QpidException;
+import org.apache.qpid.nclient.Client;
+import org.apache.qpid.nclient.ClosedListener;
+import org.apache.qpid.nclient.Connection;
+import org.apache.qpid.nclient.DtxSession;
+import org.apache.qpid.nclient.Session;
 import org.apache.qpid.transport.util.Logger;
 
 /**
  * Qpid datasource.
- * Basically it is a connection pool manager used for optimizing broker connections usage.
- *
+ * Basically it is a connection pool manager used for optimizing broker connections usage. 
+ * 
  * @author Andrea Gazzarini
  */
-public final class QpidDatasource
+public final class QpidDatasource 
 {
     private final static Logger LOGGER = Logger.get(QpidDatasource.class);
-
+    
     /**
      * A connection decorator used for adding pool interaction behaviour to an existing connection.
-     *
+     * 
      * @author Andrea Gazzarini
      */
-    class PooledConnection extends Connection
+    public class ConnectionDecorator implements Connection,ClosedListener 
     {
+        private final Connection _decoratee;
         private final UUID _brokerId;
         private boolean _valid;
-
+        private BrokerConnectionData _connectionData;
+      
         /**
          * Builds a new decorator with the given connection.
-         *
+         * 
          * @param brokerId the broker identifier.
          * @param decoratee the underlying connection.
+         * @param connectionData connection details used for logging purposes.
          */
-        private PooledConnection(UUID brokerId)
+        private ConnectionDecorator(UUID brokerId, Connection decoratee, BrokerConnectionData connectionData)
         {
+            this._decoratee = decoratee;
             this._brokerId = brokerId;
+            this._decoratee.setClosedListener(this);
+            this._connectionData = connectionData;
             _valid = true;
+            LOGGER.debug("<QMAN-200045> : Connection %s for pool %s created.",this,_connectionData);
         }
-
+        
         /**
          * Returns true if the underlying connection is still valid and can be used.
-         *
+         * 
          * @return true if the underlying connection is still valid and can be used.
          */
         boolean isValid()
         {
+            if (_valid)
+            {
+                LOGGER.debug("<QMAN-200013> : Pooled connection %s for %s  seems to be valid.",this,_connectionData);
+            } else 
+            {
+                LOGGER.debug("<QMAN-200013> : Pooled connection %s for %s  has been marked as invalid.",this,_connectionData);                
+            }
             return _valid;
         }
-
-        void reallyClose()
-        {
-            super.close();
-        }
-
+        
         /**
          * Returns the connection to the pool. That is, marks this connections as available.
          * After that, this connection will be available for further operations.
          */
-        public void close()
+        public void close () throws QpidException
         {
             try
             {
                 pools.get(_brokerId).returnObject(this);
-                LOGGER.debug("<QMAN-200012> : Connection %s returned to the pool.", this);
-            }
-            catch (Exception e)
+                LOGGER.debug("<QMAN-200012> : <Connection for pool %s released.", _connectionData);
+            } catch (Exception exception)
             {
-                throw new ConnectionException(e);
-            }
+                throw new QpidException("<QMAN-100203> : Error while releasing pooled connection.",ErrorCode.CONNECTION_ERROR,exception);
+            }  
         }
 
-        public void exception(Throwable t)
+        /**
+         * Do nothing : underlying connection is already connected.
+         */
+        public void connect (String host, int port, String virtualHost, String username, String password)
+                throws QpidException
         {
-            super.exception(t);
-            _valid = false;
+            // DO NOTHING : DECORATEE CONNECTION IS ALREADY CONNECTED.
+        }
+        
+        /**
+         * Do nothing : underlying connection is already connected.
+         */
+        public void connect (String url) throws QpidException
+        {
+            // DO NOTHING : DECORATEE CONNECTION IS ALREADY CONNECTED.
+        }
+
+        /**
+         * @see Connection#createDTXSession(int)
+         */
+        public DtxSession createDTXSession (int expiryInSeconds)
+        {
+            return _decoratee.createDTXSession(expiryInSeconds);
         }
-    }
 
+        /**
+         * @see Connection#createSession(long)
+         */
+        public Session createSession (long expiryInSeconds)
+        {
+            return _decoratee.createSession(expiryInSeconds);
+        }
+
+        /**
+         * Do nothing : closed listener  has been already injected.
+         */
+        public void setClosedListener (ClosedListener exceptionListner)
+        {
+        }
+        
+        /**
+         * Callback method used for error notifications while underlying connection is closing.
+         */
+        public void onClosed (ErrorCode errorCode, String reason, Throwable throwable)
+        {
+            _valid = false;
+            LOGGER.error(
+                    throwable,
+                    "<QMAN-100012> : Error on closing connection. Reason is : %s, error code is %s. Connection %s to %s will be " +
+                    "marked as invalid and therefore will be purged..",
+                    reason,
+                    errorCode.getCode(),
+                    this,
+                    _connectionData);
+        }        
+    };
+        
     /**
-     * This is the connection factory, that is, the factory used to manage the lifecycle (create, validate & destroy) of
+     * This is the connection factory, that is, the factory used to manage the lifecycle (create, validate & destroy) of 
      * the broker connection(s).
-     *
+     * 
      * @author Andrea Gazzarini
      */
     class QpidConnectionFactory extends BasePoolableObjectFactory
-    {
+    {    
         private final BrokerConnectionData _connectionData;
         private final UUID _brokerId;
-
+        
         /**
          * Builds a new connection factory with the given parameters.
-         *
+         * 
          * @param brokerId the broker identifier.
          * @param connectionData the connecton data.
          */
@@ -125,67 +188,68 @@
             this._connectionData = connectionData;
             this._brokerId = brokerId;
         }
-
+        
         /**
          * Creates a new underlying connection.
          */
         @Override
         public Connection makeObject () throws Exception
         {
-            PooledConnection connection = new PooledConnection(_brokerId);
+            Connection connection = Client.createConnection();
             connection.connect(
-                    _connectionData.getHost(),
-                    _connectionData.getPort(),
-                    _connectionData.getVirtualHost(),
-                    _connectionData.getUsername(),
+                    _connectionData.getHost(), 
+                    _connectionData.getPort(), 
+                    _connectionData.getVirtualHost(), 
+                    _connectionData.getUsername(), 
                     _connectionData.getPassword());
-            return connection;
+            return new ConnectionDecorator(_brokerId,connection,_connectionData);
         }
-
+    
         /**
          * Validates the underlying connection.
          */
         @Override
         public boolean validateObject (Object obj)
         {
-            PooledConnection connection = (PooledConnection) obj;
-            boolean isValid = connection.isValid();
-            LOGGER.debug("<QMAN-200013> : Test connection on reserve. Is valid? %s",isValid);
-            return isValid;
+            ConnectionDecorator connection = (ConnectionDecorator) obj;
+            return connection.isValid();
         }
-
+        
         /**
          * Closes the underlying connection.
          */
         @Override
         public void destroyObject (Object obj) throws Exception
         {
+            ConnectionDecorator connection = (ConnectionDecorator) obj;
             try
             {
-                PooledConnection connection = (PooledConnection) obj;
-                connection.reallyClose();
-                LOGGER.debug("<QMAN-200014> : Connection has been destroyed.");
-            } catch (Exception e)
+                connection._decoratee.close();
+                LOGGER.debug("<QMAN-200014> : Connection for %s has been closed.",connection._connectionData);
+            } catch (Exception exception)
             {
-                LOGGER.debug(e, "<QMAN-200015> : Unable to destroy a connection object");
+                LOGGER.debug(
+                        exception,
+                        "<QMAN-200015> : Unable to close an underlying qpid connection (target address is %s) .",
+                        connection._connectionData);
             }
         }
     }
-
+   
     // Singleton instance.
     private static QpidDatasource instance = new QpidDatasource();
 
     // Each entry contains a connection pool for a specific broker.
     private Map<UUID, ObjectPool> pools = new HashMap<UUID, ObjectPool>();
-
+    
     // Private constructor.
     private QpidDatasource()
     {
     }
-
+    
     /**
      * Gets an available connection from the pool of the given broker.
-     *
+     * 
      * @param brokerId the broker identifier.
      * @return a valid connection to the broker associated with the given identifier.
      */
@@ -193,20 +257,20 @@
     {
         return (Connection) pools.get(brokerId).borrowObject();
     }
-
+    
     /**
      * Entry point method for retrieving the singleton instance of this datasource.
-     *
+     * 
      * @return the qpid datasource singleton instance.
      */
-    public static QpidDatasource getInstance()
+    public static QpidDatasource getInstance() 
     {
         return instance;
     }
-
+    
     /**
      * Adds a connection pool to this datasource.
-     *
+     * 
      * @param brokerId the broker identifier that will be associated with the new connection pool.
      * @param connectionData the broker connection data.
      * @throws Exception when the pool cannot be created.
@@ -221,9 +285,20 @@
                 false);
         ObjectPool pool = factory.createPool();
 
-        for (int i  = 0; i < connectionData.getInitialPoolCapacity(); i++)
+        // Open connections at startup according to initial capacity param value.
+        int howManyConnectionAtStartup = connectionData.getInitialPoolCapacity(); 
+        Object [] openStartupList = new Object[howManyConnectionAtStartup];
+        
+        // Open...
+        for (int index  = 0; index < howManyConnectionAtStartup; index++)
+        {
+            openStartupList[index] = pool.borrowObject();
+        }
+        
+        // ...and immediately return them to pool. In this way the pooled connection has been opened.
+        for (int index = 0; index < howManyConnectionAtStartup; index++)
         {
-            pool.returnObject(pool.borrowObject());
+            pool.returnObject(openStartupList[index]);
         }
 
         pools.put(brokerId,pool);

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Tag.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Tag.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Tag.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/configuration/Tag.java Mon Oct 13 01:16:03 2008
@@ -26,9 +26,7 @@
 	VIRTUAL_HOST { @Override public String toString() { return "virtual-host"; }},
 	USER { @Override public String toString() { return "user"; }},
 	PASSWORD { @Override public String toString() { return "password"; }},
-	BROKERS { @Override public String toString() { return "brokers"; }},
-	MANAGEMENT_QUEUE { @Override public String toString() { return "management-queue"; }},
-	METHOD_REPLY_QUEUE { @Override public String toString() { return "method-reply-queue"; }};
+	BROKERS { @Override public String toString() { return "brokers"; }};
 	
 	/**
 	 * Returns the enum entry associated to the given tag name.

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandler.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandler.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandler.java Mon Oct 13 01:16:03 2008
@@ -46,8 +46,6 @@
         long timeObjectWasCreated = decoder.readDatetime();
         long timeObjectWasDeleted = decoder.readDatetime();
         
-       
-        
         Binary objectId = new Binary(decoder.readBin128());
                 
         if (objectHasBeenRemoved(timeObjectWasDeleted, timeStampOfCurrentSample))

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/MethodResponseMessageHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/MethodResponseMessageHandler.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/MethodResponseMessageHandler.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/MethodResponseMessageHandler.java Mon Oct 13 01:16:03 2008
@@ -20,22 +20,90 @@
  */
 package org.apache.qpid.management.domain.handler.impl;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.BlockingQueue;
+
 import org.apache.qpid.management.domain.handler.base.BaseMessageHandler;
+import org.apache.qpid.management.domain.model.DomainModel;
+import org.apache.qpid.management.domain.model.InvocationEvent;
 import org.apache.qpid.transport.codec.ManagementDecoder;
 import org.apache.qpid.transport.util.Logger;
 
+/**
+ * Message handler for method response messages.
+ * This handler is installed on domain model as a method invocation result listener. 
+ * When a method is going to be invoked this listener is notified with the exchange channel that will be used between it and
+ * the event (method invocation) source object.
+ * 
+ * @author Andrea Gazzarini
+ *
+ */
 public class MethodResponseMessageHandler extends BaseMessageHandler
 {
     private final static Logger LOGGER = Logger.get(MethodResponseMessageHandler.class);
+        
+    private Map<Integer, BlockingQueue<InvocationResult>> _exchangeChannels = new HashMap<Integer, BlockingQueue<InvocationResult>>();
     
-    public void process (ManagementDecoder decoder, int sequenceNumber)
+    /**
+     * This is the listener installed on domain model for method invocations.
+     */
+    private final IMethodInvocationListener methodInvocationListener = new IMethodInvocationListener()
     {
-        LOGGER.debug("<QMAN-200009> : Incoming method response message.");
-        
-        long statusCode = decoder.readUint32();
-        String statusText = decoder.readStr8();
-        
-        LOGGER.debug("<QMAN-200010> : Status code : %s", statusCode);
-        LOGGER.debug("<QMAN-200011> : Status text : %s", statusText);
+        /**
+         * Event source callback. 
+         * A method is going to be invoked and this method lets this listener take the exchange channel that will be used
+         * with the event source for synchronous communication.
+         * 
+         * @param event the operation invocation event.
+         */
+        public void operationIsGoingToBeInvoked (InvocationEvent event)
+        {
+            _exchangeChannels.put(event.getSequenceNumber(), event.getExchangeChannel());
+        }        
+    };
+    
+    /**
+     * Processes the incoming message.
+     * 
+     * @param decoder the decoder used for parsing incoming data.
+     * @param sequenceNumber the sequence number of the incoming message.
+     */
+    public void process (ManagementDecoder decoder, int sequenceNumber)
+    {        
+        InvocationResult result = new InvocationResult(decoder.readUint32(), decoder.readStr8(),decoder.readReaminingBytes());
+        BlockingQueue<InvocationResult> exchangeChannel = _exchangeChannels.remove(sequenceNumber);
+        if (exchangeChannel != null)
+        {
+            try
+            {
+                exchangeChannel.put(result);
+            } catch (InterruptedException exception)
+            {
+                LOGGER.error(
+                        exception,
+                        "<QMAN-100044> : an exception occurred while storing the result of a method invocation. " +
+                        "Sequence number was %s", 
+                        sequenceNumber);
+            }
+        } else 
+        {
+            LOGGER.warn(
+                    "Unable to deal with incoming message because it contains a unknown sequence number (%s).", 
+                    sequenceNumber);
+        }
     }
+
+    /**
+     * Sets the domain model on this handler.
+     * In addiction, this handler registers a method invocation listener on the domain model.
+     * 
+     *  @param domainModel the managed broker domain model.
+     */
+    @Override
+    public void setDomainModel (DomainModel domainModel)
+    {
+        super.setDomainModel(domainModel);
+        domainModel.setMethodInvocationListener(methodInvocationListener);
+    }    
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/handler/impl/SchemaResponseMessageHandler.java Mon Oct 13 01:16:03 2008
@@ -49,10 +49,6 @@
     {        
         try 
         {
-            int classKind = decoder.readUint8();
-            if (classKind != 1) {
-                return;
-            }
             String packageName = decoder.readStr8();
             String className = decoder.readStr8();
             
@@ -61,7 +57,7 @@
             int howManyProperties = decoder.readUint16();
             int howManyStatistics = decoder.readUint16();
             int howManyMethods = decoder.readUint16();
-            int howManyEvents = 0;
+            int howManyEvents = decoder.readUint16();
                                     
             // FIXME : Divide between schema error and raw data conversion error!!!!
             _domainModel.addSchema(
@@ -159,4 +155,4 @@
         }        
         return result;
     }
- }
+ }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/DomainModel.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/DomainModel.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/DomainModel.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/DomainModel.java Mon Oct 13 01:16:03 2008
@@ -25,6 +25,7 @@
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.qpid.management.domain.handler.impl.IMethodInvocationListener;
 import org.apache.qpid.management.domain.handler.impl.MethodOrEventDataTransferObject;
 import org.apache.qpid.management.domain.model.type.Binary;
 
@@ -40,6 +41,8 @@
     
     /** Here the known packages of the remote broker are stored. */
     Map<String,QpidPackage> _packages = new HashMap<String, QpidPackage>();
+
+    private IMethodInvocationListener _methodInvocationListener;
     
     /**
      * Builds a new domain model with the given broker identifier.
@@ -171,4 +174,14 @@
             qpidPackage.releaseResources();
         }
     }
+
+    public void setMethodInvocationListener(IMethodInvocationListener listener)
+    {
+        this._methodInvocationListener = listener;
+    }
+    
+    IMethodInvocationListener getMethodInvocationListener ()
+    {
+        return _methodInvocationListener;
+    }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidArgument.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidArgument.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidArgument.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidArgument.java Mon Oct 13 01:16:03 2008
@@ -20,7 +20,8 @@
  */
 package org.apache.qpid.management.domain.model;
 
-import org.apache.qpid.transport.codec.ManagementEncoder;
+import org.apache.qpid.management.messages.AmqpCoDec;
+import org.apache.qpid.transport.codec.ManagementDecoder;
 import org.apache.qpid.transport.util.Logger;
 
 class QpidArgument extends QpidProperty
@@ -68,10 +69,14 @@
             .toString();
     }
 
-    public void validateAndEncode (Object value,ManagementEncoder encoder) throws ValidationException
+    public void encode(Object value,AmqpCoDec encoder) 
     {
-        validate(value);
         _type.encode(value, encoder);
-        LOGGER.debug("Encoded value %S for argument %s. Type is %s",value,_name,_type);
+        LOGGER.debug("<QMAN-200012> : Encoded value %S for argument %s. Type is %s",value,_name,_type);
+    }
+    
+    public Object decode(ManagementDecoder decoder) 
+    {
+        return _type.decode(decoder);
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidClass.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidClass.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidClass.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidClass.java Mon Oct 13 01:16:03 2008
@@ -27,6 +27,9 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.SynchronousQueue;
+import java.util.concurrent.TimeUnit;
 
 import javax.management.Attribute;
 import javax.management.AttributeList;
@@ -43,12 +46,13 @@
 import javax.management.ReflectionException;
 import javax.management.RuntimeOperationsException;
 
-import org.apache.qpid.management.Protocol;
+import org.apache.qpid.management.domain.handler.impl.IMethodInvocationListener;
+import org.apache.qpid.management.domain.handler.impl.InvocationResult;
 import org.apache.qpid.management.domain.handler.impl.MethodOrEventDataTransferObject;
 import org.apache.qpid.management.domain.model.type.Binary;
 import org.apache.qpid.management.domain.services.QpidService;
+import org.apache.qpid.management.domain.services.SequenceNumberGenerator;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 import org.apache.qpid.transport.util.Logger;
 
 /**
@@ -124,10 +128,20 @@
          */
         public synchronized void addConfigurationData (Binary objectId, byte[] rawData)
         {
-            schemaRequest();
-            QpidManagedObject instance = getObjectInstance(objectId,false);
-            instance._rawConfigurationData.add(rawData);       
-            _state = _schemaRequestedButNotYetInjected;
+            try
+            {
+                requestSchema();  
+                _state = _schemaRequestedButNotYetInjected;
+            } catch (Exception e)
+            {
+                LOGGER.error(
+                        "<QMAN-100012> : Unable to send a schema request schema for %s.%s", 
+                        _parent.getName(),
+                        _name);
+            } finally {
+                QpidManagedObject instance = getObjectInstance(objectId,false);
+                instance._rawConfigurationData.add(rawData);       
+            }
         }
 
         /**
@@ -139,10 +153,21 @@
          */
         public synchronized void addInstrumentationData (Binary objectId, byte[] rawData)
         {
-            schemaRequest();
-            QpidManagedObject instance = getObjectInstance(objectId,false);
-            instance._rawConfigurationData.add(rawData);
-            _state = _schemaRequestedButNotYetInjected;
+            try
+            {
+                requestSchema();  
+                _state = _schemaRequestedButNotYetInjected;
+            } catch (Exception e)
+            {
+                LOGGER.error(
+                        "<QMAN-100012> : Unable to send a schema request schema for %s.%s", 
+                        _parent.getName(),
+                        _name);
+            } finally {
+                QpidManagedObject instance = getObjectInstance(objectId,false);
+                instance._rawConfigurationData.add(rawData);
+                _state = _schemaRequestedButNotYetInjected;
+            }
         }
 
         /**
@@ -394,9 +419,9 @@
             {
                 try
                 {
-                    methodRequest(_objectId, method, params);
-                    return null;
-                } catch (ValidationException exception)
+                    method.validate(params);
+                    return invokeMethod(_objectId, method, params);
+                } catch (Exception exception)
                 {
                     throw new MBeanException(exception);
                 }
@@ -495,10 +520,23 @@
     private final QpidService _service;
     
     private int _howManyPresenceBitMasks;
+    private BlockingQueue<InvocationResult> _exchangeChannelForMethodInvocations;
+    private final IMethodInvocationListener _methodInvocationListener;
     
     Map<Binary, QpidManagedObject> _objectInstances = new HashMap<Binary, QpidManagedObject>();
     State _state = _schemaNotRequested;;
     
+    private final static class Log 
+    {
+        final static void logMethodInvocationResult(InvocationResult result)
+        {
+            if (LOGGER.isDebugEnabled())
+            {
+                LOGGER.debug(String.valueOf(result));
+            }
+        }
+    }
+    
     /**
      * Builds a new class with the given name and package as parent.
      * 
@@ -512,6 +550,9 @@
         this._parent = parentPackage;
         this._hash = hash;
         this._service = new QpidService(_parent.getOwnerId());
+        this._methodInvocationListener = _parent.getMethodInvocationListener();
+        this._exchangeChannelForMethodInvocations = new SynchronousQueue<InvocationResult>();
+        
         LOGGER.debug(
                 "<QMAN-200017> : Class definition has been built (without schema) for %s::%s.%s", 
                 _parent.getOwnerId(),
@@ -688,29 +729,18 @@
         }
     }    
     
-    private void schemaRequest()
-    {
-        ByteBuffer buffer = ByteBuffer.allocate(100);
-        ManagementEncoder encoder = new ManagementEncoder(buffer);
-        buffer.put(Protocol.SCHEMA_REQUEST_FIRST_FOUR_BYTES);
-        
-        // TODO
-        encoder.writeSequenceNo(1000);
-        encoder.writeStr8(_parent.getName());
-        encoder.writeStr8(_name);
-        _hash.encode(encoder);
-        buffer.rewind();        
+    /**
+     * Internal method used to send a schema request for this class.
+     * 
+     * @throws Exception when the request cannot be sent.
+     */
+    private void requestSchema() throws Exception
+    {     
         try
         {
             _service.connect();
-            _service.sendCommandMessage(buffer);
+            _service.requestSchema(_parent.getName(), _name, _hash);
             _service.sync();
-        } catch (Exception exception)
-        {
-            exception.printStackTrace();
-            // TODO
-            // Log.logSchemaRequestNotSent(exception,
-            // _parent.getOwnerId(),_parent.getName(), _name);
         } finally
         {
             _service.close();
@@ -730,33 +760,30 @@
      * @param objectId
      * @param method
      * @param parameters
-     * @throws ValidationException
+     * @throws Exception
      */
-    private void methodRequest(Binary objectId,QpidMethod method,Object [] parameters) throws ValidationException
+    private InvocationResult invokeMethod(Binary objectId,QpidMethod method,Object [] parameters) throws Exception
     {
-        ByteBuffer buffer = ByteBuffer.allocate(1000);
-        ManagementEncoder encoder = new ManagementEncoder(buffer);
-        buffer.put(Protocol.METHOD_REQUEST_FIRST_FOUR_BYTES);
-        encoder.writeSequenceNo(0);
-        objectId.encode(encoder);
-        encoder.writeStr8(_parent.getName());
-        encoder.writeStr8(_name);
-        _hash.encode(encoder);
-        encoder.writeStr8(method.getName());
-        method.encodeParameters(parameters,encoder);
-        
-        buffer.rewind();        
-          try
+        try
         {
             _service.connect();
-            _service.sendCommandMessage(buffer);
-            //_service.sync();
-        } catch (Exception exception)
-        {
-            exception.printStackTrace();
-            // TODO
-            // Log.logSchemaRequestNotSent(exception,
-            // _parent.getOwnerId(),_parent.getName(), _name);
+            
+            int sequenceNumber = SequenceNumberGenerator.getNextSequenceNumber();
+            _methodInvocationListener.operationIsGoingToBeInvoked(new InvocationEvent(this,sequenceNumber,_exchangeChannelForMethodInvocations));
+            _service.invoke(_parent.getName(), _name, _hash,objectId,parameters, method,sequenceNumber);
+            
+            // TODO : Shoudl be configurable?
+            InvocationResult result = _exchangeChannelForMethodInvocations.poll(5000,TimeUnit.MILLISECONDS);
+            Map<String, Object> output = method.decodeParameters(result.getOutputAndBidirectionalArgumentValues());
+            result.setOutputSection(output);
+            
+            Log.logMethodInvocationResult(result);
+            
+            if (result.isException()) 
+            {
+                result.createAndThrowException();
+            }
+            return result;
         } finally
         {
             _service.close();

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidFeature.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidFeature.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidFeature.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidFeature.java Mon Oct 13 01:16:03 2008
@@ -60,7 +60,7 @@
      * 
      * @return the name of the feature.
      */
-    String getName ()
+    public String getName ()
     {
         return _name;
     }

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidMethod.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidMethod.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidMethod.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidMethod.java Mon Oct 13 01:16:03 2008
@@ -20,10 +20,15 @@
  */
 package org.apache.qpid.management.domain.model;
 
+import java.nio.ByteBuffer;
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
+
+import org.apache.qpid.management.messages.AmqpCoDec;
+import org.apache.qpid.transport.codec.ManagementDecoder;
 
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 /**
  * Qpid method definition.
@@ -31,7 +36,7 @@
  * 
  * @author Andrea Gazzarini
  */
-class QpidMethod extends QpidFeature
+public class QpidMethod extends QpidFeature
 {
     /** Argument list */
     List<QpidArgument> arguments = new LinkedList<QpidArgument>();
@@ -82,22 +87,61 @@
 
     /**
      * Encodes the given parameter values according to this method arguments definitions.
-     * Also provide a validation of the given values according to the invariants defined for each argument.
-     * Note that only Input/Output and Output parameters are encoded.
+     * Note that only Input/Output and Input parameters are encoded.
      * 
      * @param parameters the parameters values.
      * @param encoder the encoder used for encoding.
-     * @throws ValidationException when one of the given values is violating an argument invariant.
      */
-    void encodeParameters (Object[] parameters, ManagementEncoder encoder) throws ValidationException
+    public void encodeParameters (Object[] parameters, AmqpCoDec encoder) 
     {
         int index = 0;
         for (QpidArgument argument : arguments)
         {
             if (argument.getDirection() != Direction.O)
             {
-                argument.validateAndEncode(parameters[index++],encoder);
+                argument.encode(parameters[index++],encoder);
+            }
+        }
+    }
+
+    /**
+     * Decodes the given input raw according to this method arguments definitions.
+     * Note that only Input/Output and Output parameters are encoded.
+     * 
+     * @param parameters the parameters values.
+     * @param encoder the encoder used for encoding.
+     */
+    public Map<String, Object> decodeParameters (byte [] values) 
+    {
+        ManagementDecoder decoder = new ManagementDecoder();
+        decoder.init(ByteBuffer.wrap(values));
+        Map<String, Object> result = new HashMap<String, Object>();
+        
+        for (QpidArgument argument : arguments)
+        {
+            if (argument.getDirection() != Direction.I)
+            {
+                result.put(argument.getName(),argument.decode(decoder));
             }
         }
+        return result;
+    }    
+    
+    /**
+     * Validates the given array of parameters against the constraint defined on this method's arguments.
+     * 
+     * @param parameters the parameters (values) to be validated.
+     * @throws ValidationException when one of the supplied values is violating some constraint.
+     */
+    public void validate (Object[] parameters) throws ValidationException
+    {
+        int index = 0;
+        for (QpidArgument argument : arguments)
+        {
+            if (argument.getDirection() != Direction.O)
+            {
+                argument.validate(parameters[index++]);
+            }
+        }        
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidPackage.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidPackage.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidPackage.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/QpidPackage.java Mon Oct 13 01:16:03 2008
@@ -25,6 +25,7 @@
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.qpid.management.domain.handler.impl.IMethodInvocationListener;
 import org.apache.qpid.management.domain.handler.impl.MethodOrEventDataTransferObject;
 import org.apache.qpid.management.domain.model.type.Binary;
 
@@ -224,4 +225,14 @@
             qpidClass.releaseResources();
         }
     }
+
+    /**
+     * Returns the method invocation listener of the corresponing parent domain model.
+     * 
+     * @return the method invocation listener of the corresponing parent domain model.
+     */
+    IMethodInvocationListener getMethodInvocationListener ()
+    {
+        return _parent.getMethodInvocationListener();
+    }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/AbsTime.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/AbsTime.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/AbsTime.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/AbsTime.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class AbsTime extends Type
 {
@@ -37,8 +37,8 @@
     }
 
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUint64((Long)value);
+        encoder.pack64((Long)value);
     }  
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Binary.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Binary.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Binary.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Binary.java Mon Oct 13 01:16:03 2008
@@ -24,7 +24,8 @@
 import java.util.Arrays;
 import java.util.UUID;
 
-import org.apache.qpid.transport.codec.ManagementEncoder;
+import org.apache.qpid.management.messages.AmqpCoDec;
+
 
 /**
  * It is a simple wrapper for a byte array (for example a 128bin).
@@ -115,9 +116,9 @@
      * 
      * @param encoder the encoder used to encode instance content.
      */
-    public void encode(ManagementEncoder encoder)
+    public void encode(AmqpCoDec encoder)
     {
-      encoder.writeBin128(bytes);  
+      encoder.pack(bytes);  
     }
     
     // TODO

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Boolean.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Boolean.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Boolean.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Boolean.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Boolean extends Type
 {
@@ -37,8 +37,8 @@
     }
 
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUint8( ((java.lang.Boolean)value) ? (short)1 : (short)0);
+        encoder.pack8( ((java.lang.Boolean)value) ? 1 : 0);
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/DeltaTime.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/DeltaTime.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/DeltaTime.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/DeltaTime.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class DeltaTime extends Type
 {
@@ -37,8 +37,8 @@
     }
 
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUint64((Long)value);
+        encoder.pack64((Long)value);
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Map.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Map.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Map.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Map.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Map extends Type
 {
@@ -37,8 +37,9 @@
     }
 
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeMap((java.util.Map<String, Object>)value);
+        throw new RuntimeException("encode not yet supported for AMQP Map type.");
+        //encoder.writeMap((java.util.Map<String, Object>)value);
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/ObjectReference.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/ObjectReference.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/ObjectReference.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/ObjectReference.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class ObjectReference extends Type
 {
@@ -37,7 +37,7 @@
     }
 
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
         ((Binary)value).encode(encoder);
     }

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str16.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str16.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str16.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str16.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Str16 extends Type
 {
@@ -37,8 +37,8 @@
     }
 
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeStr16((String)value);
+        encoder.packStr16((String)value);
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str8.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str8.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str8.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Str8.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Str8 extends Type
 {
@@ -37,8 +37,8 @@
     }
     
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeStr8((String)value);
+        encoder.packStr8((String)value);
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Type.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Type.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Type.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Type.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 /**
  * Layer supertype for all management "types".
@@ -91,5 +91,5 @@
         return getClass().hashCode();
     }
 
-    public abstract void encode (Object value, ManagementEncoder encoder);
+    public abstract void encode (Object value, AmqpCoDec encoder);
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint16.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint16.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint16.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint16.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Uint16 extends Type
 {
@@ -37,8 +37,8 @@
     }
     
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUint16((Integer)value);
+        encoder.pack16((Integer)value);
     }
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint32.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint32.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint32.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint32.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Uint32 extends Type
 {
@@ -37,8 +37,8 @@
     }
     
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUint32((Integer)value);
+        encoder.pack32((Integer)value);
     }    
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint64.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint64.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint64.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint64.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Uint64 extends Type
 {
@@ -37,8 +37,8 @@
     }
     
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUint64((Integer)value);
+        encoder.pack64((Long)value);
     }    
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint8.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint8.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint8.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uint8.java Mon Oct 13 01:16:03 2008
@@ -20,8 +20,8 @@
  */
 package org.apache.qpid.management.domain.model.type;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Uint8 extends Type
 {
@@ -37,8 +37,8 @@
     }
     
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUint8((Short)value);
+        encoder.pack8((Short)value);
     }    
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uuid.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uuid.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uuid.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/model/type/Uuid.java Mon Oct 13 01:16:03 2008
@@ -22,8 +22,8 @@
 
 import java.util.UUID;
 
+import org.apache.qpid.management.messages.AmqpCoDec;
 import org.apache.qpid.transport.codec.ManagementDecoder;
-import org.apache.qpid.transport.codec.ManagementEncoder;
 
 public class Uuid extends Type
 {
@@ -39,8 +39,9 @@
     }
     
     @Override
-    public void encode (Object value, ManagementEncoder encoder)
+    public void encode (Object value, AmqpCoDec encoder)
     {
-        encoder.writeUuid((UUID)value);
+        throw new RuntimeException("Not yet implemented encode for UUID type.");
+//        encoder.writeUuid((UUID)value);
     }    
 }
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/ManagementClient.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/ManagementClient.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/ManagementClient.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/ManagementClient.java Mon Oct 13 01:16:03 2008
@@ -129,7 +129,6 @@
         BrokerMessageListener methodReplyChannelListener = new BrokerMessageListener(_domainModel);
         methodReplyChannelListener.setHandlers(Configuration.getInstance().getMethodReplyQueueHandlers());
         _service.createSubscription(_methodReplyQueueName, _methodReplyQueueName, methodReplyChannelListener);
-        
         LOGGER.info(
                 "<QMAN-000039> : Method-reply queue consumer has been successfully installed and bound on broker %s.", 
                 _domainModel.getBrokerId());             

Modified: incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QMan.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QMan.java?rev=703961&r1=703960&r2=703961&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QMan.java (original)
+++ incubator/qpid/trunk/qpid/java/management/client/src/main/java/org/apache/qpid/management/domain/services/QMan.java Mon Oct 13 01:16:03 2008
@@ -57,9 +57,15 @@
             public void run ()
             {
                 LOGGER.info("<QMAN-000006> : Shutting down Q-Man...");
-                for (ManagementClient client : managementClients)
-                {   
-                    client.shutdown();  
+                try 
+                {
+                    for (ManagementClient client : managementClients)
+                    {   
+                        client.shutdown();  
+                    }
+                } catch(Exception exception)
+                {
+                    
                 }
                 LOGGER.info("<QMAN-000007> : Q-Man shut down.");                
             }
@@ -85,7 +91,7 @@
                     
                     LOGGER.info("<QMAN-000004> : Management client for broker %s successfully connected.",brokerId);
                 } catch(StartupFailureException exception) {
-                    LOGGER.error(exception, "<QMAN-100001>: Cannot connect to broker %s on %s:%s",brokerId,data.getHost(),data.getPort());
+                    LOGGER.error(exception, "<QMAN-100001>: Cannot connect to broker %s on %s",brokerId,data);
                 }
             }
             LOGGER.info("<QMAN-000004> : Q-Man open for e-business.");
@@ -96,7 +102,9 @@
             while ( !"q".equals(reader.readLine()) ){
             }
        } catch(ConfigurationException exception) {
-            LOGGER.error(exception, "<QMAN-100002> : Q-Man was unable to startup correctly : a configuration error occurred.");
+            LOGGER.error(
+                    exception, 
+                    "<QMAN-100002> : Q-Man was unable to startup correctly : a configuration error occurred.");
             System.exit(1);
         } 
     }