annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/LinearFunction.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 5642a83420f2
children
rev   line source
2281
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.math;
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
3076
5642a83420f2 FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2281
diff changeset
3 public class LinearFunction
2281
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 implements Function
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 {
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 protected double m;
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 protected double b;
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 public LinearFunction(double m, double b) {
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 this.m = m;
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 this.b = b;
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 }
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 @Override
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 public double value(double x) {
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 return x*m + b;
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 }
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 }
08811a335baf "Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org