Mercurial > dive4elements > river
view flys-client/pom.xml @ 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 | d3193a336ddd |
children | 821a02bbfb4e |
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- POM file generated with GWT webAppCreator --> <modelVersion>4.0.0</modelVersion> <groupId>de.intevation.flys.client</groupId> <artifactId>FLYS</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>de.intevation.flys.client.FLYS</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- Convenience property to set the GWT version --> <gwtVersion>2.4.0</gwtVersion> <!-- GWT needs at least java 1.5 --> <maven.compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-servlet</artifactId> <version>${gwtVersion}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-user</artifactId> <version>${gwtVersion}</version> <scope>provided</scope> </dependency> <!--dependency> <groupId>com.smartgwt</groupId> <artifactId>smartgwt</artifactId> <version>2.5</version> </dependency--> <dependency> <groupId>com.smartgwt</groupId> <artifactId>smartgwt</artifactId> <version>3.0</version> </dependency> <dependency> <groupId>de.intevation.artifacts.common</groupId> <artifactId>artifacts-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>de.intevation.artifacts.httpclient</groupId> <artifactId>http-client</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sf.opencsv</groupId> <artifactId>opencsv</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.gwtopenmaps.openlayers</groupId> <artifactId>gwt-openlayers-client</artifactId> <version>0.6</version> </dependency> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.2</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>org.mapfish.print</groupId> <artifactId>print-lib</artifactId> <version>1.2-SNAPSHOT</version> </dependency> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.4</version> </dependency> </dependencies> <build> <!-- Generate compiled stuff in the folder used for developing mode --> <outputDirectory>target/www/WEB-INF/classes</outputDirectory> <plugins> <!-- GWT Maven Plugin--> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>gwt-maven-plugin</artifactId> <version>${gwtVersion}</version> <dependencies> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-user</artifactId> <version>${gwtVersion}</version> </dependency> <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-dev</artifactId> <version>${gwtVersion}</version> </dependency> </dependencies> <!-- JS is only needed in the package phase, this speeds up testing --> <executions> <execution> <phase>prepare-package</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> <!-- Plugin configuration. There are many available options, see gwt-maven-plugin documentation at codehaus.org --> <configuration> <!-- URL that should be automatically opened in the GWT shell (gwt:run). --> <runTarget>FLYS.html</runTarget> <!-- Location of the develop-mode web application structure (gwt:run). --> <hostedWebapp>target/www</hostedWebapp> <!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) --> <soyc>true</soyc> </configuration> </plugin> <!-- Add source folders to test classpath in order to run gwt-tests as normal junit-tests --> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <additionalClasspathElements> <additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement> <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement> </additionalClasspathElements> <useManifestOnlyJar>false</useManifestOnlyJar> <forkMode>always</forkMode> <!-- Folder for generated testing stuff --> <systemProperties> <property> <name>gwt.args</name> <value>-out target/www</value> </property> </systemProperties> </configuration> </plugin> <!-- Copy static web files before executing gwt:run --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <phase>compile</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>target/www</outputDirectory> <resources> <resource> <directory>src/main/webapp</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- Delete gwt generated stuff --> <plugin> <artifactId>maven-clean-plugin</artifactId> <configuration> <filesets> <fileset><directory>src/main/webapp/flys</directory></fileset> <fileset><directory>src/main/webapp/WEB-INF/classes</directory></fileset> <fileset><directory>tomcat</directory></fileset> <fileset><directory>www-test</directory></fileset> <fileset><directory>.gwt-tmp</directory></fileset> </filesets> </configuration> </plugin> </plugins> </build> <repositories> <repository> <id>com.smartgwt</id> <name>SmartGWT</name> <url>http://www.smartclient.com/maven2</url> </repository> <repository> <id>org.mapfish</id> <url>http://dev.mapfish.org/maven/repository</url> </repository> <repository> <id>osgeo</id> <name>Open Source Geospatial Foundation Repository</name> <url>http://download.osgeo.org/webdav/geotools/</url> </repository> </repositories> </project>