KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > performance > standard > StandardMBeanThroughputTEST


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2005, JBoss Inc., and individual contributors as indicated
4 * by the @authors tag. See the copyright.txt in the distribution for a
5 * full listing of individual contributors.
6 *
7 * This is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */

22 package test.performance.standard;
23
24 import junit.framework.TestCase;
25 import test.performance.PerformanceSUITE;
26 import test.performance.standard.support.StandardMBeanExtension;
27
28 import javax.management.*;
29
30 public class StandardMBeanThroughputTEST extends TestCase
31 {
32
33    public StandardMBeanThroughputTEST(String JavaDoc s)
34    {
35       super(s);
36    }
37
38    public void testThroughput() throws Exception JavaDoc
39    {
40       MyThread myThread = new MyThread();
41       Thread JavaDoc t = new Thread JavaDoc(myThread);
42       StandardMBeanExtension std = new StandardMBeanExtension();
43       
44       String JavaDoc method = "mixedArguments";
45       String JavaDoc[] signature = new String JavaDoc[] {
46                               Integer JavaDoc.class.getName(),
47                               Integer.TYPE.getName(),
48                               Object JavaDoc[][][].class.getName(),
49                               Attribute.class.getName()
50                            };
51                            
52       Object JavaDoc[] args = new Object JavaDoc[] {
53                               new Integer JavaDoc(1234),
54                               new Integer JavaDoc(5678),
55                               new Object JavaDoc[][][] {
56                                  {
57                                     { "1x1x1", "1x1x2", "1x1x3" },
58                                     { "1x2x1", "1x2x2", "1x2x3" },
59                                     { "1x3x1", "1x3x2", "1x3x3" }
60                                  },
61                                  
62                                  {
63                                     { "2x1x1", "2x1x2", "2x1x3" },
64                                     { "2x2x1", "2x2x2", "2x2x3" },
65                                     { "2x3x1", "2x3x2", "2x3x3" }
66                                  },
67                                  
68                                  {
69                                     { "3x1x1", "3x1x2", "3x1x3" },
70                                     { "3x2x1", "3x2x2", "3x2x3" },
71                                     { "3x3x1", "3x3x2", "3x3x3" }
72                                  }
73                               },
74                               new Attribute("attribute", "value")
75                            };
76
77       MBeanServer server = MBeanServerFactory.createMBeanServer();
78       ObjectName name = new ObjectName("test:test=test");
79
80       server.registerMBean(std, name);
81       
82       t.start();
83       while(myThread.isKeepRunning())
84       {
85          server.invoke(name, method, args, signature);
86       }
87
88       System.out.println("\nStandardMBeanExtension Throughput: " +
89                          std.getCount() / (PerformanceSUITE.THROUGHPUT_TIME / PerformanceSUITE.SECOND) +
90                          " invocations per second.");
91       System.out.println("(Total: " + std.getCount() + ")\n");
92    }
93
94    class MyThread implements Runnable JavaDoc
95    {
96
97       private boolean keepRunning = true;
98       
99       public void run()
100       {
101          try
102          {
103             Thread.sleep(PerformanceSUITE.THROUGHPUT_TIME);
104          }
105          catch (InterruptedException JavaDoc e)
106          {
107             
108          }
109          
110          keepRunning = false;
111       }
112       
113       public boolean isKeepRunning()
114       {
115          return keepRunning;
116       }
117    }
118 }
119
Popular Tags