1   /*** 
2    * 
3    * Copyright 2004 Hiram Chirino
4    * 
5    * Licensed under the Apache License, Version 2.0 (the "License"); 
6    * you may not use this file except in compliance with the License. 
7    * You may obtain a copy of the License at 
8    * 
9    * http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS, 
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
14   * See the License for the specific language governing permissions and 
15   * limitations under the License. 
16   * 
17   **/
18  package org.codehaus.activemq.journal.impl;
19  
20  import java.io.File;
21  import java.io.IOException;
22  
23  import org.codehaus.activemq.journal.Journal;
24  import org.codehaus.activemq.journal.JournalPerfToolSupport;
25  
26  /***
27   * A Performance statistics gathering tool for the JournalImpl based Journal.
28   * 
29   * @version $Revision: 1.4 $
30   */
31  public class JournalPerfTool extends JournalPerfToolSupport {
32  	
33  	private int segmentSize = 1024*1000*5;
34      private int segmentCount = 4;
35  	
36  	public static void main(String[] args) throws Exception {
37  		JournalPerfTool tool = new JournalPerfTool();
38  		if( args.length > 0 ) {
39  			tool.journalDirectory = new File(args[0]);
40  		}
41  		if( args.length > 1 ) {
42  			tool.workerIncrement = Integer.parseInt(args[1]);
43  		}
44  		if( args.length > 2 ) {
45  			tool.incrementDelay = Long.parseLong(args[2]);
46  		}
47  		if( args.length > 3 ) {
48  			tool.verbose = Boolean.getBoolean(args[3]);
49  		}
50  		if( args.length > 4 ) {
51  			tool.recordSize = Integer.parseInt(args[4]);
52  		}
53  		if( args.length > 5 ) {
54  			tool.syncFrequency = Integer.parseInt(args[5]);
55  		}
56  		if( args.length > 6 ) {
57  			tool.workerThinkTime = Integer.parseInt(args[6]);
58  		}
59  		if( args.length > 7 ) {
60  			tool.segmentCount = Integer.parseInt(args[7]);
61  		}
62  		if( args.length > 8 ) {
63  			tool.segmentSize = Integer.parseInt(args[8]);
64  		}
65  		tool.exec();
66  	}
67  
68  	/***
69  	 * @throws IOException
70  	 * @see org.codehaus.activemq.journal.JournalPerfToolSupport#createJournal()
71  	 */
72  	public Journal createJournal() throws IOException {
73  		return new JournalImpl( this.journalDirectory, segmentCount, segmentSize);
74  	}
75  	
76  }