annotate flys-backend/src/test/java/de/intevation/flys/AppTest.java @ 5779:ebec12def170

Datacage: Add a pool of builders to make it multi threadable. XML DOM is not thread safe. Therefore the old implementation only allowed one thread to use the builder at a time. As the complexity of the configuration has increased over time this has become a bottleneck of the whole application because it took quiet some time to build a result. Furthermore the builder code path is visited very frequent. So many concurrent requests were piled up resulting in long waits for the users. To mitigate this problem a round robin pool of builders is used now. Each of the pooled builders has an independent copy of the XML template and can be run in parallel. The number of builders is determined by the system property 'flys.datacage.pool.size'. It defaults to 4.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 21 Apr 2013 12:48:09 +0200
parents d37ccb04ab5d
children
rev   line source
165
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys;
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import junit.framework.Test;
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 import junit.framework.TestCase;
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 import junit.framework.TestSuite;
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 /**
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 * Unit test for simple App.
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 */
464
d37ccb04ab5d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 165
diff changeset
10 public class AppTest
165
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 extends TestCase
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 {
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 /**
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 * Create the test case
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 *
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 * @param testName name of the test case
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 */
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 public AppTest( String testName )
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 {
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 super( testName );
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 }
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 /**
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 * @return the suite of tests being tested
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 */
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 public static Test suite()
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 {
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 return new TestSuite( AppTest.class );
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 }
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 /**
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 * Rigourous Test :-)
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 */
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 public void testApp()
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 {
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 assertTrue( true );
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 }
a69b8494fcac Created a new empty maven project
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 }

http://dive4elements.wald.intevation.org