Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 301615
Collapse All | Expand All

(-)src/org/eclipse/linuxtools/tmf/tests/request/TmfRequestExecutorTest.java (-38 / +47 lines)
Lines 12-19 Link Here
12
12
13
package org.eclipse.linuxtools.tmf.tests.request;
13
package org.eclipse.linuxtools.tmf.tests.request;
14
14
15
import java.util.concurrent.Executors;
16
15
import junit.framework.TestCase;
17
import junit.framework.TestCase;
16
18
19
import org.eclipse.linuxtools.tmf.request.TmfRequestExecutor;
20
17
/**
21
/**
18
 * <b><u>TmfRequestExecutorTest</u></b>
22
 * <b><u>TmfRequestExecutorTest</u></b>
19
 *
23
 *
Lines 21-94 Link Here
21
 */
25
 */
22
public class TmfRequestExecutorTest extends TestCase {
26
public class TmfRequestExecutorTest extends TestCase {
23
27
28
	// ------------------------------------------------------------------------
29
	// Variables
30
	// ------------------------------------------------------------------------
31
32
	// ------------------------------------------------------------------------
33
	// Housekeeping
34
	// ------------------------------------------------------------------------
35
24
	/**
36
	/**
25
	 * @param name
37
	 * @param name the test name
26
	 */
38
	 */
27
	public TmfRequestExecutorTest(String name) {
39
	public TmfRequestExecutorTest(String name) {
28
		super(name);
40
		super(name);
29
	}
41
	}
30
42
31
	/* (non-Javadoc)
43
	@Override
32
	 * @see junit.framework.TestCase#setUp()
33
	 */
34
	protected void setUp() throws Exception {
44
	protected void setUp() throws Exception {
35
		super.setUp();
45
		super.setUp();
36
	}
46
	}
37
47
38
	/* (non-Javadoc)
48
	@Override
39
	 * @see junit.framework.TestCase#tearDown()
40
	 */
41
	protected void tearDown() throws Exception {
49
	protected void tearDown() throws Exception {
42
		super.tearDown();
50
		super.tearDown();
43
	}
51
	}
44
52
45
	/**
53
	// ------------------------------------------------------------------------
46
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#TmfRequestExecutor(java.util.concurrent.ExecutorService)}.
54
	// Constructors
47
	 */
55
	// ------------------------------------------------------------------------
48
	public void testTmfRequestExecutorExecutorService() {
49
		fail("Not yet implemented");
50
	}
51
56
52
	/**
57
	/**
53
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#TmfRequestExecutor()}.
58
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#TmfRequestExecutor()}.
54
	 */
59
	 */
55
	public void testTmfRequestExecutor() {
60
	public void testTmfRequestExecutor() {
56
		fail("Not yet implemented");
61
		TmfRequestExecutor executor = new TmfRequestExecutor();
57
	}
62
		assertTrue("TmfRequestExecutor", executor != null);
63
		assertTrue("TmfRequestExecutor", executor instanceof TmfRequestExecutor);
64
		assertEquals("toString", "[TmfRequestExecutor(DelegatedExecutorService)]", executor.toString());
58
65
59
	/**
66
		assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
60
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#start()}.
67
		assertFalse("isShutdown",   executor.isShutdown());
61
	 */
68
		assertFalse("isTerminated", executor.isTerminated());
62
	public void testStart() {
63
		fail("Not yet implemented");
64
	}
69
	}
65
70
66
	/**
71
	/**
67
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#stop()}.
72
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#TmfRequestExecutor(java.util.concurrent.ExecutorService)}.
68
	 */
73
	 */
69
	public void testStop() {
74
	public void testTmfRequestExecutorExecutorService() {
70
		fail("Not yet implemented");
75
		TmfRequestExecutor executor = new TmfRequestExecutor(Executors.newCachedThreadPool());
71
	}
76
		assertTrue("TmfRequestExecutor", executor != null);
77
		assertTrue("TmfRequestExecutor", executor instanceof TmfRequestExecutor);
78
		assertEquals("toString", "[TmfRequestExecutor(ThreadPoolExecutor)]", executor.toString());
72
79
73
	/**
80
		assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
74
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#execute(java.lang.Runnable)}.
81
		assertFalse("isShutdown",   executor.isShutdown());
75
	 */
82
		assertFalse("isTerminated", executor.isTerminated());
76
	public void testExecute() {
77
		fail("Not yet implemented");
78
	}
83
	}
79
84
80
	/**
85
	/**
81
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#scheduleNext()}.
86
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#stop()}.
82
	 */
87
	 */
83
	public void testScheduleNext() {
88
	public void testStop() {
84
		fail("Not yet implemented");
89
		TmfRequestExecutor executor = new TmfRequestExecutor();
90
		executor.stop();
91
		assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
92
		assertTrue("isShutdown",   executor.isShutdown());
93
		assertTrue("isTerminated", executor.isTerminated());
85
	}
94
	}
86
95
87
	/**
96
//	/**
88
	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#queueRequest(java.lang.Runnable)}.
97
//	 * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#execute(java.lang.Runnable)}.
89
	 */
98
//	 */
90
	public void testQueueRequest() {
99
//	public void testExecute() {
91
		fail("Not yet implemented");
100
//		fail("Not yet implemented");
92
	}
101
//	}
93
102
94
}
103
}
(-)src/org/eclipse/linuxtools/tmf/tests/request/AllTests.java (-1 / +1 lines)
Lines 14-20 Link Here
14
		suite.addTestSuite(TmfEventRequestTest.class);
14
		suite.addTestSuite(TmfEventRequestTest.class);
15
		suite.addTestSuite(TmfCoalescedDataRequestTest.class);
15
		suite.addTestSuite(TmfCoalescedDataRequestTest.class);
16
		suite.addTestSuite(TmfCoalescedEventRequestTest.class);
16
		suite.addTestSuite(TmfCoalescedEventRequestTest.class);
17
//		suite.addTestSuite(TmfRequestExecutorTest.class);
17
		suite.addTestSuite(TmfRequestExecutorTest.class);
18
		//$JUnit-END$
18
		//$JUnit-END$
19
		return suite;
19
		return suite;
20
	}
20
	}
(-)src/org/eclipse/linuxtools/tmf/tests/AllTmfCoreTests.java (-1 / +2 lines)
Lines 18-23 Link Here
18
import org.eclipse.linuxtools.tmf.tests.request.TmfCoalescedEventRequestTest;
18
import org.eclipse.linuxtools.tmf.tests.request.TmfCoalescedEventRequestTest;
19
import org.eclipse.linuxtools.tmf.tests.request.TmfDataRequestTest;
19
import org.eclipse.linuxtools.tmf.tests.request.TmfDataRequestTest;
20
import org.eclipse.linuxtools.tmf.tests.request.TmfEventRequestTest;
20
import org.eclipse.linuxtools.tmf.tests.request.TmfEventRequestTest;
21
import org.eclipse.linuxtools.tmf.tests.request.TmfRequestExecutorTest;
21
import org.eclipse.linuxtools.tmf.tests.trace.TmfExperimentTest;
22
import org.eclipse.linuxtools.tmf.tests.trace.TmfExperimentTest;
22
import org.eclipse.linuxtools.tmf.tests.trace.TmfMultiTraceExperimentTest;
23
import org.eclipse.linuxtools.tmf.tests.trace.TmfMultiTraceExperimentTest;
23
import org.eclipse.linuxtools.tmf.tests.trace.TmfTraceTest;
24
import org.eclipse.linuxtools.tmf.tests.trace.TmfTraceTest;
Lines 43-49 Link Here
43
		suite.addTestSuite(TmfEventRequestTest.class);
44
		suite.addTestSuite(TmfEventRequestTest.class);
44
		suite.addTestSuite(TmfCoalescedDataRequestTest.class);
45
		suite.addTestSuite(TmfCoalescedDataRequestTest.class);
45
		suite.addTestSuite(TmfCoalescedEventRequestTest.class);
46
		suite.addTestSuite(TmfCoalescedEventRequestTest.class);
46
//		suite.addTestSuite(TmfRequestExecutorTest.class);
47
		suite.addTestSuite(TmfRequestExecutorTest.class);
47
48
48
		suite.addTestSuite(TmfEventProviderTest.class);
49
		suite.addTestSuite(TmfEventProviderTest.class);
49
		suite.addTestSuite(TmfProviderManagerTest.class);
50
		suite.addTestSuite(TmfProviderManagerTest.class);
(-)src/org/eclipse/linuxtools/tmf/request/TmfRequestExecutor.java (-20 / +44 lines)
Lines 26-58 Link Here
26
public class TmfRequestExecutor implements Executor {
26
public class TmfRequestExecutor implements Executor {
27
27
28
	private final ExecutorService fExecutor;
28
	private final ExecutorService fExecutor;
29
	private final Queue<Runnable> fRequests = new LinkedBlockingQueue<Runnable>();
29
	private final Queue<Runnable> fRequestQueue = new LinkedBlockingQueue<Runnable>();
30
	private Runnable fRequest;
30
	private Runnable fCurrentRequest;
31
	
31
	
32
	public TmfRequestExecutor(ExecutorService executor) {
32
	// ------------------------------------------------------------------------
33
		fExecutor = executor;
33
	// Constructors
34
	}
34
	// ------------------------------------------------------------------------
35
35
	
36
	public TmfRequestExecutor() {
36
	public TmfRequestExecutor() {
37
		this(Executors.newSingleThreadExecutor());
37
		this(Executors.newSingleThreadExecutor());
38
	}
38
	}
39
39
40
	public void start() {
40
	public TmfRequestExecutor(ExecutorService executor) {
41
		// Nothing to do
41
		fExecutor = executor;
42
	}
42
	}
43
43
44
	/**
44
	/**
45
	 * @return the number of pending requests
46
	 */
47
	public int getNbPendingRequests() {
48
		return fRequestQueue.size();
49
	}
50
	
51
	/**
52
	 * @return the shutdown state (i.e. if it is accepting new requests)
53
	 */
54
	public boolean isShutdown() {
55
		return fExecutor.isShutdown();
56
	}
57
	
58
	/**
59
	 * @return the termination state
60
	 */
61
	public boolean isTerminated() {
62
		return fExecutor.isTerminated();
63
	}
64
	
65
	/**
45
	 * Stops the executor
66
	 * Stops the executor
46
	 */
67
	 */
47
	public void stop() {
68
	public void stop() {
48
		fExecutor.shutdown();
69
		fExecutor.shutdown();
49
	}
70
	}
50
	
71
	
72
	// ------------------------------------------------------------------------
73
	// Operations
74
	// ------------------------------------------------------------------------
75
	
51
	/* (non-Javadoc)
76
	/* (non-Javadoc)
52
	 * @see java.util.concurrent.Executor#execute(java.lang.Runnable)
77
	 * @see java.util.concurrent.Executor#execute(java.lang.Runnable)
53
	 */
78
	 */
54
	public synchronized void execute(final Runnable request) {
79
	public synchronized void execute(final Runnable request) {
55
		fRequests.offer(new Runnable() {
80
		fRequestQueue.offer(new Runnable() {
56
			public void run() {
81
			public void run() {
57
				try {
82
				try {
58
					request.run();
83
					request.run();
Lines 61-67 Link Here
61
				}
86
				}
62
			}
87
			}
63
		});
88
		});
64
		if (fRequest == null) {
89
		if (fCurrentRequest == null) {
65
			scheduleNext();
90
			scheduleNext();
66
		}
91
		}
67
	}
92
	}
Lines 70-88 Link Here
70
	 * Executes the next pending request, if applicable.
95
	 * Executes the next pending request, if applicable.
71
	 */
96
	 */
72
	protected synchronized void scheduleNext() {
97
	protected synchronized void scheduleNext() {
73
		if ((fRequest = fRequests.poll()) != null) {
98
		if ((fCurrentRequest = fRequestQueue.poll()) != null) {
74
			fExecutor.execute(fRequest);
99
			fExecutor.execute(fCurrentRequest);
75
		}
100
		}
76
	}
101
	}
77
102
78
	/**
103
	// ------------------------------------------------------------------------
79
	 * Queues the request and schedules it.
104
	// Object
80
	 * 
105
	// ------------------------------------------------------------------------
81
	 * @param request the request to service
106
82
	 */
107
	@Override
83
	public synchronized void queueRequest(Runnable request) {
108
	public String toString() {
84
		fRequests.add(request);
109
		return "[TmfRequestExecutor(" + fExecutor.getClass().getSimpleName() + "" + ")]";
85
		scheduleNext();
86
	}
110
	}
87
111
88
}
112
}
(-)src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java (-1 / +1 lines)
Lines 190-196 Link Here
190
				request.done();
190
				request.done();
191
			}
191
			}
192
		};
192
		};
193
		fExecutor.queueRequest(thread);
193
		fExecutor.execute(thread);
194
	}
194
	}
195
195
196
	/**
196
	/**

Return to bug 301615