You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2007/01/16 16:16:55 UTC

svn commit: r496725 [7/11] - in /incubator/qpid/branches/perftesting/qpid: gentools/ gentools/src/org/apache/qpid/gentools/ gentools/templ.cpp/ gentools/templ.java/ java/ java/broker/ java/broker/etc/ java/broker/src/main/java/org/apache/qpid/server/ j...

Modified: incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java Tue Jan 16 07:16:39 2007
@@ -28,13 +28,7 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
-
-import javax.management.MBeanServerConnection;
-import javax.management.ObjectInstance;
-import javax.management.ObjectName;
 
 import org.apache.qpid.management.ui.ApplicationRegistry;
 import org.apache.qpid.management.ui.Constants;
@@ -42,8 +36,9 @@
 import org.apache.qpid.management.ui.ManagedServer;
 import org.apache.qpid.management.ui.ServerRegistry;
 import org.apache.qpid.management.ui.exceptions.InfoRequiredException;
-import org.apache.qpid.management.ui.jmx.JMXManagedObject;
+import org.apache.qpid.management.ui.exceptions.ManagementConsoleException;
 import org.apache.qpid.management.ui.jmx.JMXServerRegistry;
+import org.apache.qpid.management.ui.jmx.MBeanUtility;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IFontProvider;
@@ -64,7 +59,11 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.part.ViewPart;
 
-
+/**
+ * Navigation View for navigating the managed servers and managed beans on
+ * those servers
+ * @author Bhupendra Bhardwaj
+ */
 public class NavigationView extends ViewPart
 {
 	public static final String ID = "org.apache.qpid.management.ui.navigationView";    
@@ -73,8 +72,6 @@
     private TreeViewer _treeViewer = null;
     private TreeObject _rootNode = null;
     private TreeObject _serversRootNode = null;
-    // List of all server nodes (connecged or removed)
-    //private List<TreeObject> _serverNodeList = new ArrayList<TreeObject>();
     // Map of connected servers
     private HashMap<ManagedServer, TreeObject> _managedServerMap = new HashMap<ManagedServer, TreeObject>();
     
@@ -98,6 +95,9 @@
         createListeners();
     }
     
+    /**
+     * Creates listeners for the JFace treeviewer
+     */
     private void createListeners()
     {
         _treeViewer.addDoubleClickListener(new IDoubleClickListener()
@@ -132,12 +132,17 @@
         });
     }   
     
+    /**
+     * Creates Qpid Server connection using JMX RMI protocol
+     * @param server
+     * @throws Exception
+     */
     private void createRMIServerConnection(ManagedServer server) throws Exception
     {     
         try
         {
             // Currently Qpid Management Console only supports JMX MBeanServer
-            JMXServerRegistry serverRegistry = new JMXServerRegistry(server);  
+            ServerRegistry serverRegistry = new JMXServerRegistry(server);  
             ApplicationRegistry.addServer(server, serverRegistry);         
         }
         catch(Exception ex)
@@ -151,14 +156,24 @@
         return "service:jmx:rmi:///jndi/rmi://" + host + "/jmxrmi";
     }
     
-    
+    /**
+     * Adds a new server node in the navigation view if server connection is successful.
+     * @param transportProtocol
+     * @param host
+     * @param port
+     * @param domain
+     * @throws Exception
+     */
     public void addNewServer(String transportProtocol, String host, String port, String domain)
         throws Exception
     {
+        String serverAddress = host + ":" + port;
+        String url = null;
+        ManagedServer managedServer = null;
+        
         if ("RMI".equals(transportProtocol))
-        {
-            String serverAddress = host + ":" + port;
-            String url = getRMIURL(serverAddress);
+        {            
+            url = getRMIURL(serverAddress);
             List<TreeObject> list = _serversRootNode.getChildren();
             for (TreeObject node : list)
             {
@@ -166,30 +181,36 @@
                     throw new InfoRequiredException("Server " + serverAddress + " is already added");
             }
             
-            ManagedServer managedServer = new ManagedServer(url, domain);
+            managedServer = new ManagedServer(url, domain);
             managedServer.setName(serverAddress);
-            createRMIServerConnection(managedServer); 
-            
-            // RMI server connection is successful. Now add the server in the tree
-            TreeObject serverNode = new TreeObject(serverAddress, Constants.SERVER);
-            serverNode.setUrl(url);
-            serverNode.setManagedObject(managedServer);
-            _serversRootNode.addChild(serverNode);
-            
-            // Add server in the connected server map
-            _managedServerMap.put(managedServer, serverNode);
-            populateServer(serverNode); 
-            _treeViewer.refresh();
-            
-            // save server address in file            
-            addServerAddressInFile(serverAddress);
+            createRMIServerConnection(managedServer);
         }
         else
         {
             throw new InfoRequiredException(transportProtocol + " transport is not supported");
         }
+        
+        // Server connection is successful. Now add the server in the tree
+        TreeObject serverNode = new TreeObject(serverAddress, Constants.SERVER);
+        serverNode.setUrl(url);
+        serverNode.setManagedObject(managedServer);
+        _serversRootNode.addChild(serverNode);
+        
+        // Add server in the connected server map
+        _managedServerMap.put(managedServer, serverNode);
+        populateServer(serverNode); 
+        _treeViewer.refresh();
+        
+        // save server address in file            
+        addServerAddressInFile(serverAddress);
     }
     
+    /**
+     * Server addresses are stored in a file. When user launches the application again, the
+     * server addresses are picked up from the file and shown in the navigfation view. This method
+     * adds the server address in a file, when a new server is added in the navigation view. 
+     * @param serverAddress
+     */
     private void addServerAddressInFile(String serverAddress)
     {
         File file = new File(INI_FILENAME);
@@ -210,11 +231,14 @@
         }
     }    
 
-    
+    /**
+     * Queries the qpid server for MBeans and populates the navigation view with all MBeans for 
+     * the given server node.
+     * @param serverNode
+     */
     private void populateServer(TreeObject serverNode)
     {
         ManagedServer server = (ManagedServer)serverNode.getManagedObject();
-        JMXServerRegistry serverRegistry = (JMXServerRegistry)ApplicationRegistry.getServerRegistry(server);
         String domain = server.getDomain();
         try
         {
@@ -228,11 +252,10 @@
             else
             {
                 List<TreeObject> domainList = new ArrayList<TreeObject>();
-                MBeanServerConnection mbsc = serverRegistry.getServerConnection();
-                String[] domains = mbsc.getDomains();           
-                for (int i = 0; i < domains.length; i++)
+                List<String> domains = MBeanUtility.getAllDomains(server);;           
+                for (String domainName : domains)
                 {       
-                    TreeObject domainNode = new TreeObject(domains[i], Constants.DOMAIN);
+                    TreeObject domainNode = new TreeObject(domainName, Constants.DOMAIN);
                     domainNode.setParent(serverNode);
 
                     domainList.add(domainNode);
@@ -247,80 +270,118 @@
         }
     }
     
+    /**
+     * Queries the Qpid Server and populates the given domain node with all MBeans undser that domain.
+     * @param domain
+     * @throws IOException
+     * @throws Exception
+     */
     @SuppressWarnings("unchecked")
     private void populateDomain(TreeObject domain) throws IOException, Exception
     {
         ManagedServer server = (ManagedServer)domain.getParent().getManagedObject();
-        JMXServerRegistry serverRegistry = (JMXServerRegistry)ApplicationRegistry.getServerRegistry(server);
         
-        String domainName = domain.getName();
-        MBeanServerConnection mbsc = serverRegistry.getServerConnection();
-        
-    
-        ObjectName objName = new ObjectName(domainName + ":*");
-        Set queryMBeans = mbsc.queryMBeans(objName, null);
-        final Set<ObjectInstance> objectInstances = queryMBeans;
-
-        for (Iterator<ObjectInstance> itr = objectInstances.iterator(); itr.hasNext();)
-        {
-            ObjectInstance instance = itr.next();
-            ManagedBean obj = new JMXManagedObject(instance.getObjectName());
-            obj.setServer(server);
-            addManagedBean(domain, obj);                   
+        // Add these three types - Connection, Exchange, Queue
+        // By adding these, these will always be available, even if there are no mbeans under thse types
+        // This is required because, the mbeans will be added from mbeanview, by selecting from the list
+        TreeObject typeChild = new TreeObject(Constants.CONNECTION, Constants.TYPE);
+        typeChild.setParent(domain);
+        typeChild = new TreeObject(Constants.EXCHANGE, Constants.TYPE);
+        typeChild.setParent(domain);
+        typeChild = new TreeObject(Constants.QUEUE, Constants.TYPE);
+        typeChild.setParent(domain);
+        
+        
+        // Now populate the mbenas under those types
+        List<ManagedBean> mbeans = MBeanUtility.getManagedObjectsForDomain(server, domain.getName());
+        for (ManagedBean mbean : mbeans)
+        {
+            mbean.setServer(server);
+            ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(server);
+            serverRegistry.addManagedObject(mbean);     
+            
+            // Add all mbeans other than Connections, Exchanges and Queues. Because these will be added
+            // manually by selecting from MBeanView
+            if (!(mbean.getType().equals(Constants.CONNECTION) || mbean.getType().equals(Constants.EXCHANGE) || mbean.getType().equals(Constants.QUEUE)))
+            {
+                addManagedBean(domain, mbean);
+            }
         }
     }
     
-    private TreeObject getIfTypeAlreadyExists(TreeObject domain, String type)
+    /**
+     * Checks if a particular mbeantype is already there in the navigation view for a domain.
+     * This is used while populating domain with mbeans.
+     * @param domain
+     * @param typeName
+     * @return Node if given mbeantype already exists, otherwise null
+     */
+    private TreeObject getMBeanTypeNode(TreeObject domain, String typeName)
     {
-        List<TreeObject> types = domain.getChildren();
+        List<TreeObject> childNodes = domain.getChildren();
         
-        for (TreeObject child : types)
+        for (TreeObject child : childNodes)
         {
-            if (Constants.TYPE.equals(child.getType()) && type.equals(child.getName()))
+            if (Constants.TYPE.equals(child.getType()) && typeName.equals(child.getName()))
                 return child;
         }
         return null;
     }
     
-    private void addManagedBean(TreeObject domain, ManagedBean obj)
+    private boolean doesMBeanNodeAlreadyExist(TreeObject typeNode, String mbeanName)
     {
-        ManagedServer server = (ManagedServer)domain.getParent().getManagedObject();
-        JMXServerRegistry serverRegistry = (JMXServerRegistry)ApplicationRegistry.getServerRegistry(server);
-        serverRegistry.addManagedObject(obj);
-        
-        String type = obj.getType();
-        String name = obj.getName();
+        List<TreeObject> childNodes = typeNode.getChildren();
+        for (TreeObject child : childNodes)
+        {
+            if (Constants.MBEAN.equals(child.getType()) && mbeanName.equals(child.getName()))
+                return true;
+        }
+        return false;
+    }
+    
+    /**
+     * Adds the given MBean to the given domain node. Creates Notification node for the MBean.
+     * @param domain
+     * @param mbean mbean
+     */
+    private void addManagedBean(TreeObject domain, ManagedBean mbean) throws Exception
+    {
+        String type = mbean.getType();
+        String name = mbean.getName();
+
+        TreeObject typeNode = getMBeanTypeNode(domain, type);
+        if (typeNode != null && doesMBeanNodeAlreadyExist(typeNode, name))
+            return;
         
-        TreeObject typeChild = getIfTypeAlreadyExists(domain, type);
         TreeObject mbeanNode = null;
-        if (typeChild != null) // if type is already added as a TreeItem
+        if (typeNode != null) // type node already exists
         {
             if (name == null)
             {
-                System.out.println("Two mbeans can't exist without a name and with same type");
-                return;
+                throw new ManagementConsoleException("Two mbeans can't exist without a name and with same type");
             }
-            mbeanNode = new TreeObject(obj);
-            mbeanNode.setParent(typeChild);
+            mbeanNode = new TreeObject(mbean);
+            mbeanNode.setParent(typeNode);
         }
         else
         {
-            if (name != null)  // An managedObject with type and name
+            // type node does not exist. Now check if node to be created as mbeantype or MBean
+            if (name != null)  // A managedObject with type and name
             {
-                typeChild = new TreeObject(type, Constants.TYPE);
-                typeChild.setParent(domain);
-                mbeanNode = new TreeObject(obj);
-                mbeanNode.setParent(typeChild);               
+                typeNode = new TreeObject(type, Constants.TYPE);
+                typeNode.setParent(domain);
+                mbeanNode = new TreeObject(mbean);
+                mbeanNode.setParent(typeNode);               
             }
-            else              // An managedObject with only type
+            else              // A managedObject with only type
             {
-                mbeanNode = new TreeObject(obj);
+                mbeanNode = new TreeObject(mbean);
                 mbeanNode.setParent(domain);
             }
         }
         
         // Add notification node
-        // TODO: show this only of the mbean sends any notification
+        // TODO: show this only if the mbean sends any notification
         TreeObject notificationNode = new TreeObject(Constants.NOTIFICATION, Constants.NOTIFICATION);
         notificationNode.setParent(mbeanNode);
     }
@@ -373,6 +434,9 @@
         
     }
     
+    /**
+     * Closes the Qpid server connection
+     */
     public void disconnect() throws Exception
     {
         TreeObject selectedNode = getSelectedServerNode();        
@@ -408,6 +472,11 @@
         _treeViewer.refresh();  
     }
     
+    /**
+     * Closes the Qpid server connection if not already closed and removes the server node from the navigation view and
+     * also from the ini file stored in the system.
+     * @throws Exception
+     */
     public void removeServer() throws Exception
     {
         disconnect();
@@ -430,7 +499,6 @@
             list.remove(objectToRemove);
         }
         
-        //_serverNodeList.remove(objectToRemove);
         _treeViewer.refresh();
         
         // Remove from the ini file
@@ -445,6 +513,10 @@
         out.close();
     }
     
+    /**
+     * @return the server addresses from the ini file
+     * @throws Exception
+     */
     private List<String> getServerListFromFile() throws Exception
     {
         BufferedReader in = new BufferedReader(new FileReader(INI_FILENAME));
@@ -538,6 +610,9 @@
         _treeViewer.refresh();
     }
     
+    /**
+     * Content provider class for the tree viewer
+     */
     private class ContentProviderImpl implements ITreeContentProvider
     {
         public Object[] getElements(Object parent)
@@ -574,6 +649,9 @@
         }
     }
     
+    /**
+     * Label provider class for the tree viewer
+     */
     private class LabelProviderImpl extends LabelProvider implements IFontProvider
     {
         public Image getImage(Object element)
@@ -615,24 +693,6 @@
             }
             return ApplicationRegistry.getFont(Constants.FONT_NORMAL);
         }
-        
-        /*
-        public Color getForeground(Object element)
-        {
-            TreeObject node = (TreeObject)element;
-            if (node.getType().equals(Constants.SERVER))
-            {
-                if (!node.getChildren().isEmpty())
-                    return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GREEN);
-                else
-                    return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY);
-            }
-            return Display.getCurrent().getSystemColor(SWT.COLOR_BLACK);
-        }
-        public Color getBackground(Object element)
-        {
-            return _treeViewer.getControl().getBackground();
-        }*/
     } // End of LabelProviderImpl
     
     
@@ -641,12 +701,12 @@
         public int category(Object element)
         {
             TreeObject node = (TreeObject)element;
-           if (node.getType().equals(Constants.MBEAN))
+            if (node.getType().equals(Constants.MBEAN))
                 return 1;
             return 2;
         }
     }
-    
+            
     /**
      * Worker thread, which keeps looking for new ManagedObjects to be added and 
      * unregistered objects to be removed from the tree.
@@ -668,60 +728,36 @@
                 catch(Exception ex)
                 {
 
-                }               
-                refreshAddedObjects();                
+                }                          
                 refreshRemovedObjects();                               
                 refreshClosedServerConnections();                                
             }// end of while loop
         }// end of run method.        
     }// end of Worker class
     
-    
-    private void refreshAddedObjects()
+    public void addManagedBean(ManagedBean mbean) throws Exception
     {
-        for (ManagedServer server : _managedServerMap.keySet())
+        TreeObject treeServerObject = _managedServerMap.get(mbean.getServer());
+        List<TreeObject> domains = treeServerObject.getChildren();
+        TreeObject domain = null;
+        for (TreeObject child : domains)
         {
-            JMXServerRegistry serverRegistry = (JMXServerRegistry)ApplicationRegistry.getServerRegistry(server);
-            if (serverRegistry == null) // server connection is closed
-                continue;
-            
-            final List<ManagedBean> list = serverRegistry.getObjectsToBeAdded();
-            if (list != null)
+            if (child.getName().equals(mbean.getDomain()))
             {
-                Display display = getSite().getShell().getDisplay();
-                display.syncExec(new Runnable()
-                    {
-                        public void run()
-                        {
-                            for (ManagedBean obj : list)
-                            {
-                                System.out.println("adding " + obj.getName() + " " + obj.getType());
-                                TreeObject treeServerObject = _managedServerMap.get(obj.getServer());
-                                List<TreeObject> domains = treeServerObject.getChildren();
-                                TreeObject domain = null;
-                                for (TreeObject child : domains)
-                                {
-                                    if (child.getName().equals(obj.getDomain()))
-                                    {
-                                        domain = child;
-                                        break;
-                                    }
-                                }
-                                
-                                addManagedBean(domain, obj);
-                            }
-                            _treeViewer.refresh();
-                        }
-                    });
+                domain = child;
+                break;
             }
         }
+        
+        addManagedBean(domain, mbean);
+        _treeViewer.refresh();
     }
     
     private void refreshRemovedObjects()
     {
         for (ManagedServer server : _managedServerMap.keySet())
         {
-            final JMXServerRegistry serverRegistry = (JMXServerRegistry)ApplicationRegistry.getServerRegistry(server);
+            final ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(server);
             if (serverRegistry == null)  // server connection is closed
                 continue;
             
@@ -758,8 +794,8 @@
     }
     
     /**
-     * 
-     *
+     * Gets the list of closed server connection from the ApplicationRegistry and then removes
+     * the closed server nodes from the navigation view
      */
     private void refreshClosedServerConnections()
     {

Modified: incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java Tue Jan 16 07:16:39 2007
@@ -196,7 +196,7 @@
         formData = new FormData();
         formData.top = new FormAttachment(notificationNameCombo, 5);
         formData.left = new FormAttachment(fixedLabel, 10);
-        formData.right = new FormAttachment(80);
+        formData.right = new FormAttachment(100);
         descriptionLabel.setLayoutData(formData);
         descriptionLabel.setText("      ");
         descriptionLabel.setFont(ApplicationRegistry.getFont(Constants.FONT_ITALIC));

Modified: incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java Tue Jan 16 07:16:39 2007
@@ -492,11 +492,11 @@
     {
         if (result instanceof TabularDataSupport)
         {
-            ViewUtility.createTabularDataHolder(parent, (TabularDataSupport)result);
+            ViewUtility.createTabularDataHolder(_toolkit, parent, (TabularDataSupport)result);
         }
         else if (result instanceof CompositeDataSupport)
         {
-            ViewUtility.populateCompositeDataHolder(parent, (CompositeDataSupport)result);
+            ViewUtility.populateCompositeDataHolder(_toolkit, parent, (CompositeDataSupport)result);
         }
     }  
     
@@ -521,6 +521,9 @@
      */
     private void clearParameterValues(Composite control)
     {
+        if (control == null)
+            return;
+        
         Control[] controls = control.getChildren();
         if (controls == null || controls.length == 0)
             return;

Modified: incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java Tue Jan 16 07:16:39 2007
@@ -51,6 +51,7 @@
 import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
 
 public class ViewUtility
 {
@@ -75,13 +76,11 @@
         SUPPORTED_ARRAY_DATATYPES.add("java.lang.Double");
         SUPPORTED_ARRAY_DATATYPES.add("java.util.Date");
     }
-
+    
     @SuppressWarnings("unchecked")
-    public static void createTabularDataHolder(Composite parent, TabularDataSupport tabularData)
+    public static void createTabularDataHolder(FormToolkit toolkit, Composite parent, TabularDataSupport tabularData)
     {
-        Composite composite = new Composite(parent, SWT.BORDER);
-        //composite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
-        //composite.setBackground(parent.getBackground());
+        Composite composite = toolkit.createComposite(parent, SWT.BORDER);
         GridLayout layout = new GridLayout(4, true);
         layout.horizontalSpacing = 0;
         layout.marginWidth = 0;
@@ -94,28 +93,27 @@
         ArrayList<Map.Entry> list = new ArrayList<Map.Entry>(entrySet);
         if (list.size() == 0)
         {
-            Text text = new Text(composite, SWT.CENTER | SWT.SINGLE | SWT.READ_ONLY);
-            text.setText(" No records ");
-            //text.setBackground(parent.getBackground());
+            Text text = toolkit.createText(composite, " No records ", SWT.CENTER | SWT.SINGLE | SWT.READ_ONLY);
             GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1);
             text.setLayoutData(layoutData);
             return;
         }  
-        // Attach the tabular record to be retrieve and shown
+        // Attach the tabular record to be retrieved and shown later when record is traversed
+        // using first/next/previous/last buttons
         composite.setData(list);
         
         // Create button and the composite for CompositeData
-        Composite compositeDataHolder = createCompositeDataHolder(composite,
+        Composite compositeDataHolder = createCompositeDataHolder(toolkit, composite,
                                         tabularData.getTabularType().getRowType());
 
         // display the first record
         CompositeData data = (CompositeData)(list.get(0)).getValue();
         composite.setData(INDEX, 0);
-        populateCompositeDataHolder(compositeDataHolder, data);
+        populateCompositeDataHolder(toolkit, compositeDataHolder, data);
         enableOrDisableTraversalButtons(composite);
     }
 
-    public static void enableOrDisableTraversalButtons(Composite composite)
+    private static void enableOrDisableTraversalButtons(Composite composite)
     {
         int index = (Integer)composite.getData(INDEX);
         int size = ((List)composite.getData()).size();
@@ -137,40 +135,36 @@
         }
     }
 
-    public static Composite createCompositeDataHolder(final Composite dataHolder, CompositeType compositeType)
+    public static Composite createCompositeDataHolder(final FormToolkit toolkit, final Composite dataHolder, CompositeType compositeType)
     {        
-        Label description = new Label(dataHolder, SWT.CENTER);
-        description.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false, 4, 1));
         String desc = compositeType.getDescription();
+        Label description = toolkit.createLabel(dataHolder, desc, SWT.CENTER);
+        description.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false, 4, 1));       
         // TODO nameLabel.setFont(font);
         description.setText(desc);
 
         // Add traversal buttons
-        final Button firstRecordButton = new Button(dataHolder, SWT.PUSH);
-        firstRecordButton.setText(FIRST);
+        final Button firstRecordButton = toolkit.createButton(dataHolder, FIRST, SWT.PUSH);
         GridData layoutData = new GridData (GridData.HORIZONTAL_ALIGN_END);
         layoutData.widthHint = 80;
         firstRecordButton.setLayoutData(layoutData);
 
-        final Button nextRecordButton = new Button(dataHolder, SWT.PUSH);
-        nextRecordButton.setText(NEXT);
+        final Button nextRecordButton = toolkit.createButton(dataHolder, NEXT, SWT.PUSH);
         layoutData = new GridData (GridData.HORIZONTAL_ALIGN_END);
         layoutData.widthHint = 80;
         nextRecordButton.setLayoutData(layoutData);
 
-        final Button previousRecordButton = new Button(dataHolder, SWT.PUSH);
-        previousRecordButton.setText(PREV);
+        final Button previousRecordButton = toolkit.createButton(dataHolder, PREV, SWT.PUSH);
         layoutData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
         layoutData.widthHint = 80;
         previousRecordButton.setLayoutData(layoutData);
 
-        final Button lastRecordButton = new Button(dataHolder, SWT.PUSH);
-        lastRecordButton.setText(LAST);
+        final Button lastRecordButton = toolkit.createButton(dataHolder, LAST, SWT.PUSH);
         layoutData = new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING);
         layoutData.widthHint = 80;
         lastRecordButton.setLayoutData(layoutData);
         
-        final Composite composite = new Composite(dataHolder, SWT.NONE);
+        final Composite composite = toolkit.createComposite(dataHolder, SWT.NONE);
         GridLayout layout = new GridLayout();
         layout.horizontalSpacing = layout.verticalSpacing = 0;
         layout.marginHeight = layout.marginWidth = 0;
@@ -195,7 +189,7 @@
 
                 Button traverseButton =(Button)e.widget; 
                 CompositeData data = getCompositeData(dataHolder, traverseButton.getText());
-                populateCompositeDataHolder(composite, data);
+                populateCompositeDataHolder(toolkit, composite, data);
                 enableOrDisableTraversalButtons(dataHolder);   
             }
         };
@@ -248,7 +242,7 @@
     }
 
     @SuppressWarnings("unchecked")
-    public static void populateCompositeDataHolder(Composite parent, CompositeData data/*String dataIndex*/)
+    public static void populateCompositeDataHolder(FormToolkit toolkit, Composite parent, CompositeData data/*String dataIndex*/)
     {
         Control[] oldControls = parent.getChildren();       
         for (int i = 0; i < oldControls.length; i++)
@@ -256,7 +250,7 @@
             oldControls[i].dispose();
         }
         
-        Composite compositeHolder = new Composite(parent, SWT.NONE);
+        Composite compositeHolder = toolkit.createComposite(parent, SWT.NONE);
         GridLayout layout = new GridLayout(4, false);
         layout.horizontalSpacing = 10;
         compositeHolder.setLayout(layout);
@@ -271,12 +265,10 @@
             OpenType itemType = data.getCompositeType().getType(itemName);
             if (compositeHolder.getData(itemName) == null)
             {
-                Label keyLabel = new Label(compositeHolder, SWT.TRAIL);
-                keyLabel.setText(itemName);
+                Label keyLabel = toolkit.createLabel(compositeHolder, itemName, SWT.TRAIL);
                 GridData layoutData = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1);
                 layoutData.minimumWidth = 70;
                 keyLabel.setLayoutData(layoutData);
-                System.out.println(itemType);
 
                 if (itemType.isArray())
                 {
@@ -298,12 +290,12 @@
                             
                             if (mimeType.equals("text/plain"))
                             {
-                                displayByteArray(compositeHolder, data, itemName, encoding);
+                                displayByteArray(toolkit, compositeHolder, data, itemName, encoding);
                             }
                         }
                         else
                         {
-                            displayNotSupportedDataType(compositeHolder);
+                            displayNotSupportedDataType(toolkit, compositeHolder);
                         }                        
                     }
                     // If array of any other supported type, show as a list of String array
@@ -313,23 +305,22 @@
                     }
                     else
                     {
-                        displayNotSupportedDataType(compositeHolder);
+                        displayNotSupportedDataType(toolkit, compositeHolder);
                     }
                 }
                 else if (itemType instanceof TabularType)
                 {
-                    Composite composite = new Composite(compositeHolder, SWT.NONE);
+                    Composite composite = toolkit.createComposite(compositeHolder, SWT.NONE);
                     composite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 3, 1));
                     layout = new GridLayout();
                     layout.marginHeight = 0;
                     layout.marginWidth = 0;
                     composite.setLayout(layout);
-                    createTabularDataHolder(composite, (TabularDataSupport)data.get(itemName));
+                    createTabularDataHolder(toolkit, composite, (TabularDataSupport)data.get(itemName));
                 }
                 else
                 {
-                    Text valueText = new Text(compositeHolder, SWT.READ_ONLY | SWT.BORDER);
-                    valueText.setText(String.valueOf(data.get(itemName)));
+                    Text valueText = toolkit.createText(compositeHolder, String.valueOf(data.get(itemName)), SWT.READ_ONLY | SWT.BORDER);
                     valueText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 3, 1));
                 }
             }
@@ -340,7 +331,7 @@
     } //end of method
   
     
-    private static void displayByteArray(Composite compositeHolder, CompositeData data, String itemName, String encoding)
+    private static void displayByteArray(FormToolkit toolkit, Composite compositeHolder, CompositeData data, String itemName, String encoding)
     {
         Byte[] arrayItems = (Byte[])data.get(itemName);
         byte[] byteArray = new byte[arrayItems.length];
@@ -354,9 +345,8 @@
             String textMessage = new String(byteArray, encoding);
             System.out.println("\nMessage : \n" + textMessage + "\n");
 
-            Text valueText = new Text(compositeHolder, SWT.READ_ONLY | SWT.BORDER |
+            Text valueText = toolkit.createText(compositeHolder, textMessage, SWT.READ_ONLY | SWT.BORDER |
                     SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
-            valueText.setText(textMessage);
             GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
             gridData.heightHint = 300;
             valueText.setLayoutData(gridData);
@@ -369,8 +359,7 @@
     
     public static int popupInfoMessage(String title, String message)
     {
-        MessageBox messageBox = new MessageBox(Display.getCurrent().getActiveShell(), 
-                                    SWT.ICON_INFORMATION | SWT.OK);
+        MessageBox messageBox = new MessageBox(Display.getCurrent().getActiveShell(), SWT.ICON_INFORMATION | SWT.OK);
         messageBox.setMessage(message);
         messageBox.setText(title);
         int response = messageBox.open();
@@ -380,8 +369,7 @@
     
     public static int popupErrorMessage(String title, String message)
     {
-        MessageBox messageBox = new MessageBox(Display.getCurrent().getActiveShell(), 
-                                    SWT.ICON_ERROR | SWT.OK);
+        MessageBox messageBox = new MessageBox(Display.getCurrent().getActiveShell(), SWT.ICON_ERROR | SWT.OK);
         messageBox.setMessage(message);
         messageBox.setText(title);
         int response = messageBox.open();
@@ -400,10 +388,10 @@
         return response;
     }
     
-    public static void popupError(String title, String message, Exception ex)
+    public static void popupError(String title, String message, Throwable ex)
     {
         IStatus status = new Status(IStatus.ERROR, ApplicationWorkbenchAdvisor.PERSPECTIVE_ID,
-                                    IStatus.ERROR, ex.getMessage(), ex); 
+                                    IStatus.ERROR, ex.toString(), ex); 
         ErrorDialog.openError(Display.getCurrent().getActiveShell(), title, message, status);
 
     }
@@ -425,8 +413,10 @@
         label.setLayoutData(new GridData(SWT.TRAIL, SWT.TOP, false, false));
         
         shell.open();
-        while (!shell.isDisposed()) {
-            if (!display.readAndDispatch()) {
+        while (!shell.isDisposed())
+        {
+            if (!display.readAndDispatch())
+            {
                 display.sleep();
             }
         }
@@ -446,6 +436,12 @@
         return shell;
     }
     
+    /**
+     * Creates a List widget for displaying array of strings
+     * @param compositeHolder
+     * @param data - containing the array item value
+     * @param itemName - item name
+     */
     private static void displayArrayItem(Composite compositeHolder, CompositeData data, String itemName)
     {
         Object[] arrayItems = (Object[])data.get(itemName);
@@ -457,21 +453,20 @@
         org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(compositeHolder,
                 SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.READ_ONLY);
         list.setItems(items);
-        list.setBackground(compositeHolder.getBackground());
+        //list.setBackground(compositeHolder.getBackground());
         list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
     }
     
-    private static void displayNotSupportedDataType(Composite compositeHolder)
+    private static void displayNotSupportedDataType(FormToolkit toolkit, Composite compositeHolder)
     {
-        Text valueText = new Text(compositeHolder, SWT.READ_ONLY);
-        valueText.setText("Format is not supported to be displayed");
+        Text valueText = toolkit.createText(compositeHolder, "Format is not supported to be displayed", SWT.READ_ONLY);
         valueText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 3, 1));
     }
     
     /**
      * Converts the input string to displayable format by converting some character case or inserting space
      * @param input
-     * @return
+     * @return formatted string
      */
     public static String getDisplayText(String input)
     {
@@ -498,6 +493,10 @@
         return result.toString();
     }
     
+    /**
+     * Disposes the children of given Composite if not null and not already disposed
+     * @param parent composite
+     */
     public static void disposeChildren(Composite parent)
     {
         if (parent == null || parent.isDisposed())

Modified: incubator/qpid/branches/perftesting/qpid/java/pom.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/pom.xml?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/pom.xml (original)
+++ incubator/qpid/branches/perftesting/qpid/java/pom.xml Tue Jan 16 07:16:39 2007
@@ -40,6 +40,14 @@
         <maven>2.0.4</maven>
     </prerequisites>
 
+    <distributionManagement>
+        <snapshotRepository>
+            <id>apache.snapshots</id>
+            <name>Apache SNAPSHOT Repository</name>
+            <url>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
+        </snapshotRepository>
+    </distributionManagement>
+
     <inceptionYear>2006</inceptionYear>
     <mailingLists>
         <mailingList>
@@ -87,6 +95,7 @@
         <eclipse.plugin.version>2.2</eclipse.plugin.version>
         <jar.version>2.0</jar.version>
         <javadoc.version>2.0</javadoc.version>
+        <junit.version>3.8.1</junit.version>
         <jxr.version>2.0</jxr.version>
         <mprojectinfo.version>2.0</mprojectinfo.version>
         <resources.version>2.2</resources.version>
@@ -94,9 +103,10 @@
         <surefire-report.version>2.1-SNAPSHOT</surefire-report.version>
         <surefire.version>2.2</surefire.version>
 
-        <amqj.logging.level>debug</amqj.logging.level>
+        <amqj.logging.level>warn</amqj.logging.level>
 
         <eclipse.workspace.dir>${basedir}/${topDirectoryLocation}/../workspace</eclipse.workspace.dir>
+        <clover.license.pathname>/set/clover/license/path/here</clover.license.pathname>
     </properties>
 
     <modules>
@@ -160,6 +170,7 @@
 
         <pluginManagement>
             <plugins>
+
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-antrun-plugin</artifactId>
@@ -172,6 +183,52 @@
                         </dependency>
 
                     </dependencies>
+
+                    <executions>
+
+                         <!-- This Ant task writes the module name, version and the Subversion version information out to a properties file.
+                              The svnversion command must be available to run from the command line for this to work. The build will not fail if
+                              svnversion cannot be run though.
+                              This is done during the 'compile' phase to reflect the version of the currently compiled code and to ensure that
+                              these properties are up to date when running from a file system classpath. Consider moving this to, or running a second
+                              time, during the 'package' phase to capture the version of any resources added to jar files.
+                              This svnversion command is always run in the top directory to accurately reflect the svnversion range accross all modules 
+                              at the time of the build.
+                              The properties are placed into a file 'qpidversion.properties' in the target/classes directory of any child module that runs 
+                              this plugin.
+                              The 'qpidversion.properties' file is loaded by the org.apache.qpid.common.QpidProperties class.
+                              Be carefull of the possibility that the 'common' module may run this antrun plugin and recieve its own set of 
+                              qpidversion.properties and then the client or broker being built against an older version of the common library ending up with
+                              the wrong version information. This is unlikely to happen because the client or broker should pick up its own properties
+                              from the classpath first. If this happens it will be obvious because the productName property will be 
+                              'Qpid Common Utilities'. If this is a problem then push this ant task down into the client and broker poms and remove it
+                              from here.
+                         -->
+                         <execution>
+                             <id>version_properties</id>
+                             <phase>compile</phase>
+                             <configuration>
+                             <tasks>
+
+                               <exec executable="svnversion" spawn="false" failifexecutionfails="false" 
+                                     dir="${topDirectoryLocation}" outputproperty="svnversion">
+                                 <arg line="."/>
+                               </exec>
+
+                               <!-- Write the version.properties out. -->
+                               <propertyfile file="target/classes/qpidversion.properties">
+                                 <entry key="qpid.svnversion" value="${svnversion}"/>
+                                 <entry key="qpid.name" value="${project.name}"/>
+                                 <entry key="qpid.version" value="${project.version}"/>
+                               </propertyfile>
+
+                             </tasks>
+                           </configuration>
+                           <goals>
+                             <goal>run</goal>
+                           </goals>
+                        </execution>
+                   </executions>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
@@ -241,9 +298,25 @@
                         <downloadJavadocs>true</downloadJavadocs>
                     </configuration>
                 </plugin>
-
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-clover-plugin</artifactId>
+                    <version>2.3</version>
+                    <configuration>
+                        <licenseLocation>${clover.license.pathname}</licenseLocation>
+                        <jdk>${java.source.version}</jdk>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <phase>verify</phase>
+                            <goals>
+                                <goal>instrument</goal>
+                                <goal>aggregate</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
             </plugins>
-
         </pluginManagement>
         <defaultGoal>install</defaultGoal>
     </build>
@@ -335,7 +408,7 @@
             <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
-                <version>3.8.1</version>
+                <version>${junit.version}</version>
                 <scope>test</scope>
             </dependency>
             <dependency>
@@ -398,6 +471,10 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-javadoc-plugin</artifactId>
                 <version>${javadoc.version}</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-clover-plugin</artifactId>
             </plugin>
         </plugins>
     </reporting>

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/pom.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/pom.xml?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/pom.xml (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/pom.xml Tue Jan 16 07:16:39 2007
@@ -34,7 +34,6 @@
 
     <properties>
         <topDirectoryLocation>..</topDirectoryLocation>
-        <amqj.logging.level>warn</amqj.logging.level>
     </properties>
 
     <dependencies>

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/AbstractHeadersExchangeTestBase.java Tue Jan 16 07:16:39 2007
@@ -22,12 +22,7 @@
 
 import junit.framework.TestCase;
 import org.apache.qpid.AMQException;
-import org.apache.qpid.framing.BasicContentHeaderProperties;
-import org.apache.qpid.framing.BasicPublishBody;
-import org.apache.qpid.framing.ContentBody;
-import org.apache.qpid.framing.ContentHeaderBody;
-import org.apache.qpid.framing.FieldTable;
-import org.apache.qpid.framing.FieldTableFactory;
+import org.apache.qpid.framing.*;
 import org.apache.qpid.server.queue.AMQMessage;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.registry.ApplicationRegistry;
@@ -140,7 +135,9 @@
 
     static BasicPublishBody getPublishRequest(String id)
     {
-        BasicPublishBody request = new BasicPublishBody();
+        // AMQP version change: Hardwire the version to 0-8 (major=8, minor=0)
+        // TODO: Establish some way to determine the version for the test.
+        BasicPublishBody request = new BasicPublishBody((byte)8, (byte)0);
         request.routingKey = id;
         return request;
     }

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ExchangeMBeanTest.java Tue Jan 16 07:16:39 2007
@@ -18,10 +18,10 @@
 package org.apache.qpid.server.exchange;
 
 import junit.framework.TestCase;
-import org.apache.qpid.server.management.ManagedObject;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.management.ManagedObject;
 
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.TabularData;
@@ -33,12 +33,13 @@
 public class ExchangeMBeanTest  extends TestCase
 {
     private AMQQueue _queue;
-    private QueueRegistry _queueRegistry = ApplicationRegistry.getInstance().getQueueRegistry();
+    private QueueRegistry _queueRegistry;
 
     /**
      * Test for direct exchange mbean
      * @throws Exception
      */
+
     public void testDirectExchangeMBean() throws Exception
     {
         DestNameExchange exchange = new DestNameExchange();
@@ -65,6 +66,7 @@
      * Test for "topic" exchange mbean
      * @throws Exception
      */
+
     public void testTopicExchangeMBean() throws Exception
     {
         DestWildExchange exchange = new DestWildExchange();
@@ -91,6 +93,7 @@
      * Test for "Headers" exchange mbean
      * @throws Exception
      */
+
     public void testHeadersExchangeMBean() throws Exception
     {
         HeadersExchange exchange = new HeadersExchange();
@@ -117,6 +120,7 @@
     protected void setUp() throws Exception
     {
         super.setUp();
+        _queueRegistry = ApplicationRegistry.getInstance().getQueueRegistry();
         _queue = new AMQQueue("testQueue", false, "ExchangeMBeanTest", false, _queueRegistry);
         _queueRegistry.registerQueue(_queue);
     }

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/exchange/ReturnUnroutableMandatoryMessageTest.java Tue Jan 16 07:16:39 2007
@@ -2,7 +2,6 @@
 
 import junit.framework.TestCase;
 import org.apache.log4j.Logger;
-import org.apache.qpid.test.VMBrokerSetup;
 import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.util.TestApplicationRegistry;
 import org.apache.qpid.client.*;
@@ -11,7 +10,6 @@
 import org.apache.qpid.url.BindingURL;
 import org.apache.qpid.exchange.ExchangeDefaults;
 import org.apache.qpid.framing.FieldTable;
-import org.apache.qpid.framing.PropertyFieldTable;
 
 import javax.jms.*;
 import java.util.List;
@@ -63,7 +61,7 @@
         AMQSession consumerSession = (AMQSession) con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
 
         AMQHeadersExchange queue = new AMQHeadersExchange(new AMQBindingURL(ExchangeDefaults.HEADERS_EXCHANGE_CLASS + "://" + ExchangeDefaults.HEADERS_EXCHANGE_NAME + "/test/queue1?" + BindingURL.OPTION_ROUTING_KEY + "='F0000=1'"));
-        FieldTable ft = new PropertyFieldTable();
+        FieldTable ft = new FieldTable();
         ft.setString("F1000", "1");
         MessageConsumer consumer = consumerSession.createConsumer(queue, AMQSession.DEFAULT_PREFETCH_LOW_MARK, AMQSession.DEFAULT_PREFETCH_HIGH_MARK, false, false, (String) null, ft);
 

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/protocol/AMQProtocolSessionMBeanTest.java Tue Jan 16 07:16:39 2007
@@ -28,11 +28,9 @@
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.store.SkeletonMessageStore;
+import org.apache.qpid.AMQException;
 
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
 import javax.management.JMException;
-import java.util.ArrayList;
 
 /**
  * Test class to test MBean operations for AMQMinaProtocolSession.
@@ -56,20 +54,11 @@
         channelCount = _mbean.channels().size();
         assertTrue(channelCount == 2);
 
-        // check the channel closing
-        _mbean.closeChannel(1);
-        TabularData channels = _mbean.channels();
-        ArrayList<CompositeData> list = new ArrayList<CompositeData>(channels.values());
-        channelCount = list.size();
-        assertTrue(channelCount == 1);
-        CompositeData channelData = list.get(0);
-        assertEquals(channelData.get("Channel Id"), new Integer(2));
-
         // general properties test
         _mbean.setMaximumNumberOfChannels(1000L);
         assertTrue(_mbean.getMaximumNumberOfChannels() == 1000L);
 
-        // check if the rollback and commit APIs
+        // check APIs
         AMQChannel channel3 = new AMQChannel(3, _messageStore, null);
         channel3.setTransactional(true);
         _protocolSession.addChannel(channel3);
@@ -94,10 +83,13 @@
         _mbean.closeConnection();
         try
         {
-            _mbean.closeChannel(5);
+            channelCount = _mbean.channels().size();
+            assertTrue(channelCount == 0);
+            // session is now closed so adding another channel should throw an exception
+            _protocolSession.addChannel(new AMQChannel(6, _messageStore, null));
             fail();
         }
-        catch(JMException ex)
+        catch(AMQException ex)
         {
             System.out.println("expected exception is thrown :" + ex.getMessage());
         }

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java Tue Jan 16 07:16:39 2007
@@ -148,7 +148,9 @@
 
     private AMQMessage message(boolean immediate) throws AMQException
     {
-        BasicPublishBody publish = new BasicPublishBody();
+        // AMQP version change: Hardwire the version to 0-8 (major=8, minor=0)
+        // TODO: Establish some way to determine the version for the test.
+        BasicPublishBody publish = new BasicPublishBody((byte)8, (byte)0);
         publish.immediate = immediate;
         ContentHeaderBody contentHeaderBody = new ContentHeaderBody();
         contentHeaderBody.bodySize = 1000;   // in bytes       

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AckTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AckTest.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AckTest.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/AckTest.java Tue Jan 16 07:16:39 2007
@@ -80,7 +80,9 @@
     {
         for (int i = 1; i <= count; i++)
         {
-            BasicPublishBody publishBody = new BasicPublishBody();
+            // AMQP version change: Hardwire the version to 0-8 (major=8, minor=0)
+            // TODO: Establish some way to determine the version for the test.
+            BasicPublishBody publishBody = new BasicPublishBody((byte)8, (byte)0);
             publishBody.routingKey = "rk";
             publishBody.exchange = "someExchange";
             AMQMessage msg = new AMQMessage(_messageStore, publishBody);

Modified: incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/MessageTestHelper.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/MessageTestHelper.java?view=diff&rev=496725&r1=496724&r2=496725
==============================================================================
--- incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/MessageTestHelper.java (original)
+++ incubator/qpid/branches/perftesting/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/MessageTestHelper.java Tue Jan 16 07:16:39 2007
@@ -46,7 +46,9 @@
 
     AMQMessage message(boolean immediate) throws AMQException
     {
-        BasicPublishBody publish = new BasicPublishBody();
+        // AMQP version change: Hardwire the version to 0-8 (major=8, minor=0)
+        // TODO: Establish some way to determine the version for the test.
+        BasicPublishBody publish = new BasicPublishBody((byte)8, (byte)0);
         publish.immediate = immediate;
         return new AMQMessage(_messageStore, publish, new ContentHeaderBody(), null);
     }