[mkgmap-splitter] 01/09: Imported Upstream version 0.0.0+svn438
Bas Couwenberg
sebastic at debian.org
Sat Aug 6 11:17:13 UTC 2016
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch master
in repository mkgmap-splitter.
commit 28e125a4334d321db58cba8dd6abd12b48a3d9e8
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Sat Aug 6 11:57:48 2016 +0200
Imported Upstream version 0.0.0+svn438
---
build.xml | 630 ++++++++++-----------
resources/splitter-version.properties | 4 +-
.../core/filter/common/PolygonFileReader.java | 4 +-
.../parabola/splitter/BackgroundInputStream.java | 4 +-
src/uk/me/parabola/splitter/BinaryMapParser.java | 9 +-
src/uk/me/parabola/splitter/BinaryMapWriter.java | 16 +-
src/uk/me/parabola/splitter/JVMHealthMonitor.java | 2 +-
src/uk/me/parabola/splitter/Main.java | 2 +-
.../me/parabola/splitter/MultiTileProcessor.java | 10 +-
src/uk/me/parabola/splitter/PrecompSeaReader.java | 2 +-
.../me/parabola/splitter/ProblemListProcessor.java | 12 +-
.../me/parabola/splitter/SparseLong2ShortMap.java | 6 +-
.../parabola/splitter/SparseLong2ShortMapHuge.java | 23 +-
.../splitter/SparseLong2ShortMapInline.java | 21 +-
src/uk/me/parabola/splitter/SplitProcessor.java | 36 +-
src/uk/me/parabola/splitter/TileMetaInfo.java | 3 -
src/uk/me/parabola/splitter/WriterGrid.java | 4 +-
.../parabola/splitter/TestCustomCollections.java | 36 +-
18 files changed, 410 insertions(+), 414 deletions(-)
diff --git a/build.xml b/build.xml
index c4239ce..85a0118 100644
--- a/build.xml
+++ b/build.xml
@@ -1,317 +1,313 @@
-<?xml version="1.0"?>
-<!--
- File: build.xml
-
- Copyright (C) 2006 Steve Ratcliffe
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 or 3 as
- published by the Free Software Foundation.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
-
- Author: Steve Ratcliffe
- Create date: 3 Jan 2008
--->
-<project name="splitter" default="dist" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
-
- <!-- Init -->
- <property name="top" value="."/>
-
- <!-- Set default javac target value -->
- <property name="ant.build.javac.target" value="1.7"/>
- <property name="ant.build.javac.source" value="1.7"/>
-
- <property name="project.name" value="${ant.project.name}"/>
-
- <!--
- This file is not checked into svn, so you can create it and put any
- property definitions that you want to override those below.
- -->
- <property file="${top}/local.properties"/>
-
- <property name="build" value="build"/>
- <property name="dist" value="dist"/>
- <property name="src" value="src"/>
- <property name="lib" value="lib"/>
- <property name="test" value="test"/>
- <property name="doc" value="doc"/>
- <property name="javadoc" value="${doc}/api"/>
- <property name="resources" value="resources"/>
-
- <property name="build.classes" value="${build}/classes"/>
- <property name="build.test-classes" value="${build}/test-classes"/>
- <property name="build.test-output" location="${build}/test-output"/>
-
- <property name="project.jar" value="${dist}/${project.name}.jar"/>
-
- <!-- Third party libraries -->
- <property name="xpp.jar" location="${lib}/compile/xpp3-1.1.4c.jar"/>
-
- <!-- the project's build timestamp -->
- <tstamp>
- <format property="build.timestamp" pattern="yyyy-MM-dd'T'HH:mm:ssZ" />
- </tstamp>
-
- <!-- ivy dependency support -->
- <property name="ivy.version" value="2.2.0"/>
- <property name="ivy.lib.dir" value="${basedir}/lib" />
- <property name="ivy.jar.dir" value="${ivy.lib.dir}/build" />
- <property name="ivy.retrieve.pattern" value="${ivy.lib.dir}/[conf]/[artifact]-[revision].[ext]" />
- <property name="ivy.distrib.dir" value="ivy-distrib" />
-
- <!-- Classpaths -->
- <path id="classpath">
- <pathelement location="${build.classes}"/>
- <fileset dir="${ivy.lib.dir}/compile" />
- </path>
-
- <path id="test.classpath">
- <path refid="classpath"/>
- <pathelement location="${build.test-classes}"/>
- <fileset dir="${ivy.lib.dir}/test" includes="*.jar"/>
- </path>
-
- <!-- targets for downloading and registering ivy -->
- <target name="ivy-availability" description="Checks if the ivy library is available">
- <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy-${ivy.version}.jar" />
- <available property="ivy.available" file="${ivy.jar.file}" />
- </target>
-
- <target name="download-ivy" unless="ivy.available" description="Downloads the ivy library from public repositories.">
- <delete dir="${ivy.jar.dir}"/>
- <mkdir dir="${ivy.jar.dir}" />
- <mkdir dir="${ivy.lib.dir}/compile" />
- <mkdir dir="${ivy.lib.dir}/test" />
- <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"
- dest="${ivy.jar.file}" usetimestamp="true"/>
- </target>
-
- <target name="init-ivy" depends="ivy-availability, download-ivy" description="Registers ivy with ant and initializes it." unless="ivy.initialized">
- <path id="ivy.lib.path">
- <fileset dir="${ivy.jar.dir}" includes="*.jar" />
- <path refid="test.classpath"/>
- </path>
- <taskdef resource="org/apache/ivy/ant/antlib.xml"
- uri="antlib:org.apache.ivy.ant"
- classpathref="ivy.lib.path" />
- <ivy:configure />
- <ivy:info />
- <property name="ivy.initialized" value="true"/>
- </target>
-
- <!-- targets for fetching dependencies via ivy -->
- <target name="resolve-compile" depends="init-ivy" description="Downloads compile dependencies using ivy.">
- <ivy:retrieve conf="compile" log="download-only" />
- </target>
- <target name="resolve-test" depends="init-ivy" description="Downloads test program dependencies using ivy.">
- <ivy:retrieve conf="test" log="download-only"/>
- </target>
- <target name="resolve" depends="resolve-compile, resolve-test"
- description="Downloads all program dependencies using ivy." />
-
- <!-- targets for publishing the project (locally) via ivy -->
- <target name="publish" depends="dist">
- <copy file="${project.jar}"
- tofile="${ivy.distrib.dir}/jars/${project.name}-${project.version}.jar"/>
- <ivy:deliver pubrevision="${project.version}"/>
- <ivy:publish resolver="local" pubrevision="${project.version}" overwrite="true"/>
- </target>
-
- <!-- Prepare - make all the directories -->
- <target name="prepare">
- <mkdir dir="${build.classes}"/>
- <mkdir dir="${build.test-classes}"/>
- <mkdir dir="${build.test-output}"/>
- <mkdir dir="${resources}"/>
- <property environment="env"/>
-
- <condition property="have.svn">
- <and>
- <available file="${top}/.svn"/>
- <or>
- <available file="svnversion" filepath="${env.PATH}"/>
- <available file="svnversion.exe" filepath="${env.PATH}"/>
- <available file="svnversion.exe" filepath="${env.Path}"/>
- </or>
- </and>
- </condition>
- <condition property="have.git">
- <available file="${top}/.git"/>
- </condition>
- </target>
-
- <target name="svn-version" if="have.svn">
- <exec executable="svnversion" dir="${top}" logError="false"
- outputproperty="svn.version.tmp" resultproperty="svnversion.result"
- failifexecutionfails="false">
- <arg value="-n" /><arg value="-c" />
- <redirector><outputfilterchain><tokenfilter>
- <replaceregex pattern="^([0-9]*:)?" replace="" />
- <replaceregex pattern="^exported$" replace="" />
- </tokenfilter></outputfilterchain></redirector>
- </exec>
- <condition property="svn.version.build" value="${svn.version.tmp}" else="unknown">
- <and>
- <isset property="svn.version.tmp" />
- <equals arg1="${svnversion.result}" arg2="0" />
- <not><equals arg1="${svn.version.tmp}" arg2="" /></not>
- </and>
- </condition>
-
- <property name="project.version" value="${svn.version.build}" />
- </target>
-
- <target name="git-version" if="have.git">
- <exec executable="git" dir="${top}" logError="false"
- outputproperty="git.version.tmp" resultproperty="gitdescribe.result"
- failifexecutionfails="false">
- <arg value="describe" /><arg value="--dirty" /><arg value="--tags" /><arg value="--always" />
- </exec>
- <condition property="git.version.build" value="${git.version.tmp}">
- <and>
- <isset property="git.version.tmp" />
- <equals arg1="${gitdescribe.result}" arg2="0" />
- <not><equals arg1="${git.version.tmp}" arg2="" /></not>
- </and>
- </condition>
- <property name="project.version" value="${git.version.build}" />
- </target>
-
- <target name="check-version" depends="svn-version, git-version">
- <property file="${build.classes}/splitter-version.properties"/>
- <condition property="have.version">
- <or>
- <and>
- <isset property="have.svn"/>
- <equals arg1="${svn.version.build}" arg2="${svn.version}"/>
- </and>
- <and>
- <not><isset property="have.svn"/></not>
- <available file="${build}/classes/splitter-version.properties"/>
- </and>
- </or>
- </condition>
- </target>
-
- <target name="version-file" unless="have.version">
- <property name="project.version" value="${build.timestamp}" />
- <property name="svn.version.build" value="unknown"/>
-
- <propertyfile file="${build.classes}/splitter-version.properties">
- <entry key="svn.version" value="${svn.version.build}" />
- <entry key="build.timestamp" value="${build.timestamp}" />
- </propertyfile>
- </target>
-
- <target name="compile" depends="prepare, resolve-compile" description="main compilation">
- <javac srcdir="${src}" destdir="${build.classes}" debug="yes" includeantruntime="false">
- <include name="**/*.java"/>
- <classpath refid="classpath"/>
- </javac>
- </target>
-
- <target name="compile.tests" depends="prepare, resolve-test" description="test compilation">
- <javac srcdir="${test}" destdir="${build.test-classes}" debug="yes" includeantruntime="false">
- <include name="**/*.java"/>
- <classpath refid="test.classpath"/>
- </javac>
- </target>
-
- <target name="javadoc" description="Create the javadoc">
- <mkdir dir="doc"/>
- <javadoc destdir="${javadoc}">
- <fileset dir="${src}" includes="**/*.java"/>
- <classpath refid="classpath"/>
- </javadoc>
- </target>
-
- <target name="run.tests" depends="compile.tests">
- <!-- Run the java unit tests -->
- <taskdef resource="testngtasks" classpathref="test.classpath"/>
- <testng classpathref="test.classpath" outputdir="${build.test-output}" haltonfailure="true">
- <classfileset dir="${build.test-classes}">
- <include name="**/*.class"/>
- </classfileset>
- </testng>
- </target>
-
-
- <target name="dist" depends="build, check-version, version-file" description="Make the distribution area">
-
- <mkdir dir="${dist}"/>
- <mkdir dir="${dist}/doc/api"/>
-
- <copy todir="${dist}/doc">
- <fileset dir="doc" includes="*.txt"/>
- </copy>
-
- <copy todir="${dist}/lib">
- <fileset dir="${lib}/compile"/>
- </copy>
-
- <!-- misc -->
- <copy todir="${dist}">
- <fileset dir="${basedir}">
- <include name="README"/>
- <include name="LICENCE*"/>
- </fileset>
- </copy>
-
- <manifestclasspath property="manifest_cp" jarfile="${project.jar}">
- <classpath>
- <fileset dir="${dist}/lib">
- <include name="*.jar" />
- </fileset>
- </classpath>
- </manifestclasspath>
-
- <!-- Make the jar -->
- <jar basedir="${build.classes}" jarfile="${dist}/splitter.jar">
- <manifest>
- <attribute name="Main-Class" value="uk.me.parabola.splitter.Main" />
- <attribute name="Class-Path" value="${manifest_cp}" />
- <attribute name="Implementation-Version" value="${project.version}" />
- </manifest>
- <include name="**/*.class"/>
- <include name="*.csv"/>
- <include name="*.properties"/>
- <zipfileset src="${xpp.jar}" includes="**/*.class,META-INF/services/**"/>
- </jar>
- </target>
-
- <!-- Clean everything -->
- <target name="clean">
- <delete dir="${build}"/>
- </target>
-
- <!-- Clobber all generated and built files -->
- <target name="clobber" depends="clean">
- <delete dir="${dist}"/>
- <delete dir="${ivy.lib.dir}"/>
- </target>
-
- <target name="clean-ivy" description="Clean the ivy installation.">
- <delete dir="${ivy.jar.dir}"/>
- </target>
-
- <target name="clean-cache" depends="init-ivy" description="Clean the ivy cache.">
- <ivy:cleancache />
- </target>
-
- <!-- Main -->
- <target name="build" depends="compile,compile.tests,run.tests">
- <copy todir="${build.classes}">
- <fileset dir="${resources}">
- <include name="*.properties"/>
- </fileset>
- </copy>
- </target>
-
- <target name="rebuild" depends="clean, build"/>
-</project>
-
+<?xml version="1.0"?>
+<!--
+ File: build.xml
+
+ Copyright (C) 2006 Steve Ratcliffe
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2 or 3 as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+
+ Author: Steve Ratcliffe
+ Create date: 3 Jan 2008
+-->
+<project name="splitter" default="dist" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
+
+ <!-- Init -->
+ <property name="top" value="."/>
+
+ <property name="project.name" value="${ant.project.name}"/>
+
+ <!--
+ This file is not checked into svn, so you can create it and put any
+ property definitions that you want to override those below.
+ -->
+ <property file="${top}/local.properties"/>
+
+ <property name="build" value="build"/>
+ <property name="dist" value="dist"/>
+ <property name="src" value="src"/>
+ <property name="lib" value="lib"/>
+ <property name="test" value="test"/>
+ <property name="doc" value="doc"/>
+ <property name="javadoc" value="${doc}/api"/>
+ <property name="resources" value="resources"/>
+
+ <property name="build.classes" value="${build}/classes"/>
+ <property name="build.test-classes" value="${build}/test-classes"/>
+ <property name="build.test-output" location="${build}/test-output"/>
+
+ <property name="project.jar" value="${dist}/${project.name}.jar"/>
+
+ <!-- Third party libraries -->
+ <property name="xpp.jar" location="${lib}/compile/xpp3-1.1.4c.jar"/>
+
+ <!-- the project's build timestamp -->
+ <tstamp>
+ <format property="build.timestamp" pattern="yyyy-MM-dd'T'HH:mm:ssZ" />
+ </tstamp>
+
+ <!-- ivy dependency support -->
+ <property name="ivy.version" value="2.2.0"/>
+ <property name="ivy.lib.dir" value="${basedir}/lib" />
+ <property name="ivy.jar.dir" value="${ivy.lib.dir}/build" />
+ <property name="ivy.retrieve.pattern" value="${ivy.lib.dir}/[conf]/[artifact]-[revision].[ext]" />
+ <property name="ivy.distrib.dir" value="ivy-distrib" />
+
+ <!-- Classpaths -->
+ <path id="classpath">
+ <pathelement location="${build.classes}"/>
+ <fileset dir="${ivy.lib.dir}/compile" />
+ </path>
+
+ <path id="test.classpath">
+ <path refid="classpath"/>
+ <pathelement location="${build.test-classes}"/>
+ <fileset dir="${ivy.lib.dir}/test" includes="*.jar"/>
+ </path>
+
+ <!-- targets for downloading and registering ivy -->
+ <target name="ivy-availability" description="Checks if the ivy library is available">
+ <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy-${ivy.version}.jar" />
+ <available property="ivy.available" file="${ivy.jar.file}" />
+ </target>
+
+ <target name="download-ivy" unless="ivy.available" description="Downloads the ivy library from public repositories.">
+ <delete dir="${ivy.jar.dir}"/>
+ <mkdir dir="${ivy.jar.dir}" />
+ <mkdir dir="${ivy.lib.dir}/compile" />
+ <mkdir dir="${ivy.lib.dir}/test" />
+ <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"
+ dest="${ivy.jar.file}" usetimestamp="true"/>
+ </target>
+
+ <target name="init-ivy" depends="ivy-availability, download-ivy" description="Registers ivy with ant and initializes it." unless="ivy.initialized">
+ <path id="ivy.lib.path">
+ <fileset dir="${ivy.jar.dir}" includes="*.jar" />
+ <path refid="test.classpath"/>
+ </path>
+ <taskdef resource="org/apache/ivy/ant/antlib.xml"
+ uri="antlib:org.apache.ivy.ant"
+ classpathref="ivy.lib.path" />
+ <ivy:configure />
+ <ivy:info />
+ <property name="ivy.initialized" value="true"/>
+ </target>
+
+ <!-- targets for fetching dependencies via ivy -->
+ <target name="resolve-compile" depends="init-ivy" description="Downloads compile dependencies using ivy.">
+ <ivy:retrieve conf="compile" log="download-only" />
+ </target>
+ <target name="resolve-test" depends="init-ivy" description="Downloads test program dependencies using ivy.">
+ <ivy:retrieve conf="test" log="download-only"/>
+ </target>
+ <target name="resolve" depends="resolve-compile, resolve-test"
+ description="Downloads all program dependencies using ivy." />
+
+ <!-- targets for publishing the project (locally) via ivy -->
+ <target name="publish" depends="dist">
+ <copy file="${project.jar}"
+ tofile="${ivy.distrib.dir}/jars/${project.name}-${project.version}.jar"/>
+ <ivy:deliver pubrevision="${project.version}"/>
+ <ivy:publish resolver="local" pubrevision="${project.version}" overwrite="true"/>
+ </target>
+
+ <!-- Prepare - make all the directories -->
+ <target name="prepare">
+ <mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.test-classes}"/>
+ <mkdir dir="${build.test-output}"/>
+ <mkdir dir="${resources}"/>
+ <property environment="env"/>
+
+ <condition property="have.svn">
+ <and>
+ <available file="${top}/.svn"/>
+ <or>
+ <available file="svnversion" filepath="${env.PATH}"/>
+ <available file="svnversion.exe" filepath="${env.PATH}"/>
+ <available file="svnversion.exe" filepath="${env.Path}"/>
+ </or>
+ </and>
+ </condition>
+ <condition property="have.git">
+ <available file="${top}/.git"/>
+ </condition>
+ </target>
+
+ <target name="svn-version" if="have.svn">
+ <exec executable="svnversion" dir="${top}" logError="false"
+ outputproperty="svn.version.tmp" resultproperty="svnversion.result"
+ failifexecutionfails="false">
+ <arg value="-n" /><arg value="-c" />
+ <redirector><outputfilterchain><tokenfilter>
+ <replaceregex pattern="^([0-9]*:)?" replace="" />
+ <replaceregex pattern="^exported$" replace="" />
+ </tokenfilter></outputfilterchain></redirector>
+ </exec>
+ <condition property="svn.version.build" value="${svn.version.tmp}" else="unknown">
+ <and>
+ <isset property="svn.version.tmp" />
+ <equals arg1="${svnversion.result}" arg2="0" />
+ <not><equals arg1="${svn.version.tmp}" arg2="" /></not>
+ </and>
+ </condition>
+
+ <property name="project.version" value="${svn.version.build}" />
+ </target>
+
+ <target name="git-version" if="have.git">
+ <exec executable="git" dir="${top}" logError="false"
+ outputproperty="git.version.tmp" resultproperty="gitdescribe.result"
+ failifexecutionfails="false">
+ <arg value="describe" /><arg value="--dirty" /><arg value="--tags" /><arg value="--always" />
+ </exec>
+ <condition property="git.version.build" value="${git.version.tmp}">
+ <and>
+ <isset property="git.version.tmp" />
+ <equals arg1="${gitdescribe.result}" arg2="0" />
+ <not><equals arg1="${git.version.tmp}" arg2="" /></not>
+ </and>
+ </condition>
+ <property name="project.version" value="${git.version.build}" />
+ </target>
+
+ <target name="check-version" depends="svn-version, git-version">
+ <property file="${build.classes}/splitter-version.properties"/>
+ <condition property="have.version">
+ <or>
+ <and>
+ <isset property="have.svn"/>
+ <equals arg1="${svn.version.build}" arg2="${svn.version}"/>
+ </and>
+ <and>
+ <not><isset property="have.svn"/></not>
+ <available file="${build}/classes/splitter-version.properties"/>
+ </and>
+ </or>
+ </condition>
+ </target>
+
+ <target name="version-file" unless="have.version">
+ <property name="project.version" value="${build.timestamp}" />
+ <property name="svn.version.build" value="unknown"/>
+
+ <propertyfile file="${build.classes}/splitter-version.properties">
+ <entry key="svn.version" value="${svn.version.build}" />
+ <entry key="build.timestamp" value="${build.timestamp}" />
+ </propertyfile>
+ </target>
+
+ <target name="compile" depends="prepare, resolve-compile" description="main compilation">
+ <javac srcdir="${src}" destdir="${build.classes}" debug="yes" includeantruntime="false">
+ <include name="**/*.java"/>
+ <classpath refid="classpath"/>
+ </javac>
+ </target>
+
+ <target name="compile.tests" depends="prepare, resolve-test" description="test compilation">
+ <javac srcdir="${test}" destdir="${build.test-classes}" debug="yes" includeantruntime="false">
+ <include name="**/*.java"/>
+ <classpath refid="test.classpath"/>
+ </javac>
+ </target>
+
+ <target name="javadoc" description="Create the javadoc">
+ <mkdir dir="doc"/>
+ <javadoc destdir="${javadoc}">
+ <fileset dir="${src}" includes="**/*.java"/>
+ <classpath refid="classpath"/>
+ </javadoc>
+ </target>
+
+ <target name="run.tests" depends="compile.tests">
+ <!-- Run the java unit tests -->
+ <taskdef resource="testngtasks" classpathref="test.classpath"/>
+ <testng classpathref="test.classpath" outputdir="${build.test-output}" haltonfailure="true">
+ <classfileset dir="${build.test-classes}">
+ <include name="**/*.class"/>
+ </classfileset>
+ </testng>
+ </target>
+
+
+ <target name="dist" depends="build, check-version, version-file" description="Make the distribution area">
+
+ <mkdir dir="${dist}"/>
+ <mkdir dir="${dist}/doc/api"/>
+
+ <copy todir="${dist}/doc">
+ <fileset dir="doc" includes="*.txt"/>
+ </copy>
+
+ <copy todir="${dist}/lib">
+ <fileset dir="${lib}/compile"/>
+ </copy>
+
+ <!-- misc -->
+ <copy todir="${dist}">
+ <fileset dir="${basedir}">
+ <include name="README"/>
+ <include name="LICENCE*"/>
+ </fileset>
+ </copy>
+
+ <manifestclasspath property="manifest_cp" jarfile="${project.jar}">
+ <classpath>
+ <fileset dir="${dist}/lib">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </manifestclasspath>
+
+ <!-- Make the jar -->
+ <jar basedir="${build.classes}" jarfile="${dist}/splitter.jar">
+ <manifest>
+ <attribute name="Main-Class" value="uk.me.parabola.splitter.Main" />
+ <attribute name="Class-Path" value="${manifest_cp}" />
+ <attribute name="Implementation-Version" value="${project.version}" />
+ </manifest>
+ <include name="**/*.class"/>
+ <include name="*.csv"/>
+ <include name="*.properties"/>
+ <zipfileset src="${xpp.jar}" includes="**/*.class,META-INF/services/**"/>
+ </jar>
+ </target>
+
+ <!-- Clean everything -->
+ <target name="clean">
+ <delete dir="${build}"/>
+ </target>
+
+ <!-- Clobber all generated and built files -->
+ <target name="clobber" depends="clean">
+ <delete dir="${dist}"/>
+ <delete dir="${ivy.lib.dir}"/>
+ </target>
+
+ <target name="clean-ivy" description="Clean the ivy installation.">
+ <delete dir="${ivy.jar.dir}"/>
+ </target>
+
+ <target name="clean-cache" depends="init-ivy" description="Clean the ivy cache.">
+ <ivy:cleancache />
+ </target>
+
+ <!-- Main -->
+ <target name="build" depends="compile,compile.tests,run.tests">
+ <copy todir="${build.classes}">
+ <fileset dir="${resources}">
+ <include name="*.properties"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="rebuild" depends="clean, build"/>
+</project>
+
diff --git a/resources/splitter-version.properties b/resources/splitter-version.properties
index 1d21a42..67b0e45 100644
--- a/resources/splitter-version.properties
+++ b/resources/splitter-version.properties
@@ -1,2 +1,2 @@
-svn.version: 437
-build.timestamp: 2016-03-26T09:10:19+0000
+svn.version: 438
+build.timestamp: 2016-08-05T08:44:38+0100
diff --git a/src/org/openstreetmap/osmosis/core/filter/common/PolygonFileReader.java b/src/org/openstreetmap/osmosis/core/filter/common/PolygonFileReader.java
index faa0897..c692850 100644
--- a/src/org/openstreetmap/osmosis/core/filter/common/PolygonFileReader.java
+++ b/src/org/openstreetmap/osmosis/core/filter/common/PolygonFileReader.java
@@ -206,7 +206,7 @@ public class PolygonFileReader {
* record of a polygon section.
* @return An area representing the section polygon.
*/
- private Area loadSectionPolygon(BufferedReader bufferedReader) throws IOException {
+ private static Area loadSectionPolygon(BufferedReader bufferedReader) throws IOException {
Path2D.Double polygonPath;
double[] beginPoint = null;
@@ -267,7 +267,7 @@ public class PolygonFileReader {
* @return A pair of coordinate values, first is longitude, second is
* latitude.
*/
- private double[] parseCoordinates(String coordinateLine) {
+ private static double[] parseCoordinates(String coordinateLine) {
String[] rawTokens;
double[] results;
int tokenCount;
diff --git a/src/uk/me/parabola/splitter/BackgroundInputStream.java b/src/uk/me/parabola/splitter/BackgroundInputStream.java
index 2066006..2d0b6b6 100644
--- a/src/uk/me/parabola/splitter/BackgroundInputStream.java
+++ b/src/uk/me/parabola/splitter/BackgroundInputStream.java
@@ -27,8 +27,8 @@ public class BackgroundInputStream extends InputStream {
private final BlockingQueue<byte[]> inQueue;
private final BlockingQueue<byte[]> recycleQueue;
private final int bufferSize;
- private final InputStream sourceStream;
- private volatile boolean closed;
+ protected final InputStream sourceStream;
+ protected volatile boolean closed;
// These variables are only accessed from the reader thread
private byte[] currentBuffer;
diff --git a/src/uk/me/parabola/splitter/BinaryMapParser.java b/src/uk/me/parabola/splitter/BinaryMapParser.java
index 0b6c2a8..9b65461 100644
--- a/src/uk/me/parabola/splitter/BinaryMapParser.java
+++ b/src/uk/me/parabola/splitter/BinaryMapParser.java
@@ -39,15 +39,17 @@ public class BinaryMapParser extends BinaryParser implements MapReader {
private boolean skipNodes;
private boolean skipWays;
private boolean skipRels;
- short wantedTypeMask = 0;
+ private short wantedTypeMask = 0;
+ private int msgLevel;
- BinaryMapParser(MapProcessor processor, ShortArrayList knownBlockTypes) {
+ BinaryMapParser(MapProcessor processor, ShortArrayList knownBlockTypes, int msgLevel) {
this.processor = processor;
this.knownBlockTypes = knownBlockTypes;
this.skipTags = processor.skipTags();
this.skipNodes = processor.skipNodes();
this.skipWays = processor.skipWays();
this.skipRels = processor.skipRels();
+ this.msgLevel = msgLevel;
if (skipNodes == false){
wantedTypeMask |= TYPE_DENSE;
@@ -242,7 +244,8 @@ public class BinaryMapParser extends BinaryParser implements MapReader {
double topf = block.getBbox().getTop() * multiplier;
double bottomf = block.getBbox().getBottom() * multiplier;
- System.out.println("Bounding box "+leftf+" "+bottomf+" "+rightf+" "+topf);
+ if (msgLevel > 0)
+ System.out.println("Bounding box "+leftf+" "+bottomf+" "+rightf+" "+topf);
Area area = new Area(
Utils.toMapUnit(bottomf),
diff --git a/src/uk/me/parabola/splitter/BinaryMapWriter.java b/src/uk/me/parabola/splitter/BinaryMapWriter.java
index 8c44a81..21ae043 100644
--- a/src/uk/me/parabola/splitter/BinaryMapWriter.java
+++ b/src/uk/me/parabola/splitter/BinaryMapWriter.java
@@ -32,7 +32,7 @@ import crosby.binary.file.FileBlock;
public class BinaryMapWriter extends AbstractOSMWriter {
- private PBFSerializer serializer;
+ protected PBFSerializer serializer;
private BlockOutputStream output;
@@ -40,7 +40,7 @@ public class BinaryMapWriter extends AbstractOSMWriter {
protected boolean headerWritten = false;
- public class PBFSerializer extends BinarySerializer {
+ private class PBFSerializer extends BinarySerializer {
public PBFSerializer(BlockOutputStream output)
{
@@ -61,7 +61,7 @@ public class BinaryMapWriter extends AbstractOSMWriter {
contents.add(item);
}
- /** Add all of the tags of all entities in the queue to the stringtable. */
+ /** Add all of the tags of all entities in the queue to the string table. */
public void addStringsToStringtable()
{
StringTable stable = getStringTable();
@@ -353,13 +353,13 @@ public class BinaryMapWriter extends AbstractOSMWriter {
}
/* One list for each type */
- private WayGroup ways;
+ protected WayGroup ways;
- private NodeGroup nodes;
+ protected NodeGroup nodes;
- private RelationGroup relations;
+ protected RelationGroup relations;
- private Processor processor = new Processor();
+ protected Processor processor = new Processor();
/**
* Buffer up events into groups that are all of the same type, or all of the
@@ -420,7 +420,7 @@ public class BinaryMapWriter extends AbstractOSMWriter {
* At the end of this function, all of the lists of unprocessed 'things'
* must be null
*/
- private void switchTypes()
+ protected void switchTypes()
{
if(nodes != null) {
groups.add(nodes);
diff --git a/src/uk/me/parabola/splitter/JVMHealthMonitor.java b/src/uk/me/parabola/splitter/JVMHealthMonitor.java
index 75470c1..0e8f1eb 100644
--- a/src/uk/me/parabola/splitter/JVMHealthMonitor.java
+++ b/src/uk/me/parabola/splitter/JVMHealthMonitor.java
@@ -65,7 +65,7 @@ public class JVMHealthMonitor {
statusThread.start();
}
- private static String getElapsedTime() {
+ protected static String getElapsedTime() {
long elapsed = (System.currentTimeMillis() - startTime) / 1000;
long seconds = elapsed % 60;
long minutes = elapsed / 60 % 60;
diff --git a/src/uk/me/parabola/splitter/Main.java b/src/uk/me/parabola/splitter/Main.java
index 3a2c9a6..5ccc256 100644
--- a/src/uk/me/parabola/splitter/Main.java
+++ b/src/uk/me/parabola/splitter/Main.java
@@ -1423,7 +1423,7 @@ public class Main {
// Is it a binary file?
File file = new File(filename);
ShortArrayList blockTypes = blockTypeMap.get(filename);
- BinaryMapParser binParser = new BinaryMapParser(processor, blockTypes);
+ BinaryMapParser binParser = new BinaryMapParser(processor, blockTypes, 1);
try(InputStream stream = new FileInputStream(file)){
BlockInputStream blockinput = (new BlockInputStream(stream, binParser));
blockinput.process();
diff --git a/src/uk/me/parabola/splitter/MultiTileProcessor.java b/src/uk/me/parabola/splitter/MultiTileProcessor.java
index 43836fc..4c9eda7 100644
--- a/src/uk/me/parabola/splitter/MultiTileProcessor.java
+++ b/src/uk/me/parabola/splitter/MultiTileProcessor.java
@@ -43,7 +43,7 @@ class MultiTileProcessor extends AbstractMapProcessor {
private final static byte MEM_REL_TYPE = 3;
private final static byte MEM_INVALID_TYPE = -1;
private final static int PROBLEM_WIDTH = Utils.toMapUnit(180.0);
- private final static String[] NAME_TAGS = {"name","name:en","int_name","note"};
+ protected final static String[] NAME_TAGS = {"name","name:en","int_name","note"};
private final static String NOT_SORTED_MSG = "Maybe the IDs are not sorted. This is not supported with keep-complete=true or --problem-list";
private int phase = PHASE1_RELS_ONLY;
@@ -951,10 +951,10 @@ class MultiTileProcessor extends AbstractMapProcessor {
private final static short IS_NOT_COMPLETE = 0x40;
private final long id;
- private final byte[] memTypes;
- private final String[] memRoles;
- private final long[] memRefs;
- private final int numMembers;
+ protected final byte[] memTypes;
+ protected final String[] memRoles;
+ protected final long[] memRefs;
+ protected final int numMembers;
private final String name;
private int multiTileWriterIndex = -1;
diff --git a/src/uk/me/parabola/splitter/PrecompSeaReader.java b/src/uk/me/parabola/splitter/PrecompSeaReader.java
index 799f2f9..2919584 100644
--- a/src/uk/me/parabola/splitter/PrecompSeaReader.java
+++ b/src/uk/me/parabola/splitter/PrecompSeaReader.java
@@ -78,7 +78,7 @@ public class PrecompSeaReader {
if (is != null){
try{
if (tileName.endsWith(".pbf")){
- BinaryMapParser binParser = new BinaryMapParser(processor, null);
+ BinaryMapParser binParser = new BinaryMapParser(processor, null, 0);
BlockInputStream blockinput = (new BlockInputStream(is, binParser));
blockinput.process();
blockinput.close();
diff --git a/src/uk/me/parabola/splitter/ProblemListProcessor.java b/src/uk/me/parabola/splitter/ProblemListProcessor.java
index 2b4e0fb..40f11dd 100644
--- a/src/uk/me/parabola/splitter/ProblemListProcessor.java
+++ b/src/uk/me/parabola/splitter/ProblemListProcessor.java
@@ -68,7 +68,7 @@ class ProblemListProcessor extends AbstractMapProcessor {
this.dataStorer = dataStorer;
this.writerDictionary = dataStorer.getWriterDictionary();
if (dataStorer.getUsedWays() == null){
- ways = SparseLong2ShortMap.createMap();
+ ways = SparseLong2ShortMap.createMap("way");
ways.defaultReturnValue(UNASSIGNED);
dataStorer.setUsedWays(ways);
}
@@ -79,7 +79,7 @@ class ProblemListProcessor extends AbstractMapProcessor {
writerSet = new BitSet(writerDictionary.getNumOfWriters());
this.writerIndex = dataStorer.getGrid();
- this.coords = SparseLong2ShortMap.createMap();
+ this.coords = SparseLong2ShortMap.createMap("coord");
this.coords.defaultReturnValue(UNASSIGNED);
this.isFirstPass = (writerOffset == 0);
this.writerOffset = writerOffset;
@@ -177,7 +177,7 @@ class ProblemListProcessor extends AbstractMapProcessor {
coords.put(node.getId(), writerIdx);
++countCoords;
if (countCoords % 10000000 == 0){
- System.out.println("MAP occupancy: " + Utils.format(countCoords) + ", number of area dictionary entries: " + writerDictionary.size() + " of " + ((1<<16) - 1));
+ System.out.println("coord MAP occupancy: " + Utils.format(countCoords) + ", number of area dictionary entries: " + writerDictionary.size() + " of " + ((1<<16) - 1));
coords.stats(0);
}
}
@@ -359,10 +359,8 @@ class ProblemListProcessor extends AbstractMapProcessor {
phase++;
return false;
}
- System.out.println("Statistics for coords map:");
- coords.stats(1);
- System.out.println("Statistics for ways map:");
- ways.stats(1);
+ coords.stats(0);
+ ways.stats(0);
if (isLastPass){
System.out.println("");
System.out.println(" Number of stored shorts for ways: " + Utils.format(dataStorer.getUsedWays().size()));
diff --git a/src/uk/me/parabola/splitter/SparseLong2ShortMap.java b/src/uk/me/parabola/splitter/SparseLong2ShortMap.java
index b396cf1..66019c4 100644
--- a/src/uk/me/parabola/splitter/SparseLong2ShortMap.java
+++ b/src/uk/me/parabola/splitter/SparseLong2ShortMap.java
@@ -18,11 +18,11 @@ package uk.me.parabola.splitter;
*
*/
public class SparseLong2ShortMap {
- public static SparseLong2ShortMapFunction createMap(){
+ public static SparseLong2ShortMapFunction createMap(String dataDesc){
long maxMem = Runtime.getRuntime().maxMemory() / 1024 / 1024;
// prefer implementation with lower memory footprint when free heap is less than 2 GB
if (maxMem < 2048)
- return new SparseLong2ShortMapInline();
- return new SparseLong2ShortMapHuge();
+ return new SparseLong2ShortMapInline(dataDesc);
+ return new SparseLong2ShortMapHuge(dataDesc);
}
}
diff --git a/src/uk/me/parabola/splitter/SparseLong2ShortMapHuge.java b/src/uk/me/parabola/splitter/SparseLong2ShortMapHuge.java
index 4b5aa06..068d09d 100644
--- a/src/uk/me/parabola/splitter/SparseLong2ShortMapHuge.java
+++ b/src/uk/me/parabola/splitter/SparseLong2ShortMapHuge.java
@@ -105,6 +105,7 @@ public class SparseLong2ShortMapHuge implements SparseLong2ShortMapFunction{
// for statistics
+ private final String dataDesc;
private long [] countChunkLen;
private long expanded = 0;
private long uncompressedLen = 0;
@@ -122,8 +123,10 @@ public class SparseLong2ShortMapHuge implements SparseLong2ShortMapFunction{
/**
* A map that stores pairs of (OSM) IDs and short values identifying the
* areas in which the object (node,way) with the ID occurs.
+ * @param dataDesc
*/
- SparseLong2ShortMapHuge() {
+ SparseLong2ShortMapHuge(String dataDesc) {
+ this.dataDesc = dataDesc;
clear();
}
@@ -492,7 +495,7 @@ public class SparseLong2ShortMapHuge implements SparseLong2ShortMapFunction{
int i;
if (size() == 0){
- System.out.println("Map is empty");
+ System.out.println(dataDesc + " Map is empty");
return;
}
for (i=1; i <=CHUNK_SIZE; i++) {
@@ -511,17 +514,15 @@ public class SparseLong2ShortMapHuge implements SparseLong2ShortMapFunction{
totalOverhead += topMap.size() * (long)LARGE_VECTOR_SIZE * 8;
float bytesPerKey = (size()==0) ? 0: (float)((totalBytes + totalOverhead)*100 / size()) / 100;
- if (msgLevel > 0){
- System.out.println();
- System.out.println("Number of stored ids: " + Utils.format(size()) + " require ca. " +
- bytesPerKey + " bytes per pair. " +
- totalChunks + " chunks are used, the avg. number of values in one "+CHUNK_SIZE+"-chunk is " +
- ((totalChunks==0) ? 0 :(size() / totalChunks)) + ".");
- }
- System.out.println("Map details: bytes/overhead " + Utils.format(totalBytes) + " / " + Utils.format(totalOverhead) + ", overhead includes " +
+ System.out.println();
+ System.out.println(dataDesc + " Map: Number of stored ids: " + Utils.format(size()) + " require ca. " +
+ bytesPerKey + " bytes per pair. " +
+ totalChunks + " chunks are used, the avg. number of values in one "+CHUNK_SIZE+"-chunk is " +
+ ((totalChunks==0) ? 0 :(size() / totalChunks)) + ".");
+ System.out.println(dataDesc + " Map details: bytes/overhead " + Utils.format(totalBytes) + " / " + Utils.format(totalOverhead) + ", overhead includes " +
topMap.size() + " arrays with " + LARGE_VECTOR_SIZE * 8/1024/1024 + " MB");
if (msgLevel > 0 & uncompressedLen > 0){
- System.out.print("RLE compresion info: compressed / uncompressed size / ratio: " +
+ System.out.print(dataDesc + " RLE compresion info: compressed / uncompressed size / ratio: " +
Utils.format(compressedLen) + " / "+
Utils.format(uncompressedLen) + " / "+
Utils.format(Math.round(100-(float) (compressedLen*100/uncompressedLen))) + "%");
diff --git a/src/uk/me/parabola/splitter/SparseLong2ShortMapInline.java b/src/uk/me/parabola/splitter/SparseLong2ShortMapInline.java
index eedb739..4068cf4 100644
--- a/src/uk/me/parabola/splitter/SparseLong2ShortMapInline.java
+++ b/src/uk/me/parabola/splitter/SparseLong2ShortMapInline.java
@@ -106,6 +106,7 @@ public class SparseLong2ShortMapInline implements SparseLong2ShortMapFunction{
// for statistics
+ private final String dataDesc;
private long [] countChunkLen;
private long expanded = 0;
private long uncompressedLen = 0;
@@ -123,8 +124,10 @@ public class SparseLong2ShortMapInline implements SparseLong2ShortMapFunction{
/**
* A map that stores pairs of (OSM) IDs and short values identifying the
* areas in which the object (node,way) with the ID occurs.
+ * @param dataDesc
*/
- SparseLong2ShortMapInline() {
+ SparseLong2ShortMapInline(String dataDesc) {
+ this.dataDesc = dataDesc;
clear();
}
@@ -494,7 +497,7 @@ public class SparseLong2ShortMapInline implements SparseLong2ShortMapFunction{
int i;
if (size() == 0){
- System.out.println("Map is empty");
+ System.out.println(dataDesc + " Map is empty");
return;
}
for (i=1; i <=CHUNK_SIZE; i++) {
@@ -513,14 +516,12 @@ public class SparseLong2ShortMapInline implements SparseLong2ShortMapFunction{
totalOverhead += topMap.size() * (long)LARGE_VECTOR_SIZE * 4;
float bytesPerKey = (size()==0) ? 0: (float)((totalBytes + totalOverhead)*100 / size()) / 100;
- if (msgLevel > 0){
- System.out.println();
- System.out.println("Number of stored ids: " + Utils.format(size()) + " require ca. " +
- bytesPerKey + " bytes per pair. " +
- totalChunks + " chunks are used, the avg. number of values in one "+CHUNK_SIZE+"-chunk is " +
- ((totalChunks==0) ? 0 :(size() / totalChunks)) + ".");
- }
- System.out.println("Map details: bytes/overhead " + Utils.format(totalBytes) + " / " + Utils.format(totalOverhead) + ", overhead includes " +
+ System.out.println();
+ System.out.println(dataDesc + " Map: Number of stored ids: " + Utils.format(size()) + " require ca. " +
+ bytesPerKey + " bytes per pair. " +
+ totalChunks + " chunks are used, the avg. number of values in one "+CHUNK_SIZE+"-chunk is " +
+ ((totalChunks==0) ? 0 :(size() / totalChunks)) + ".");
+ System.out.println(dataDesc + " Map details: bytes/overhead " + Utils.format(totalBytes) + " / " + Utils.format(totalOverhead) + ", overhead includes " +
topMap.size() + " arrays with " + LARGE_VECTOR_SIZE * 4/1024/1024 + " MB");
if (msgLevel > 0 & uncompressedLen > 0){
System.out.print("RLE compresion info: compressed / uncompressed size / ratio: " +
diff --git a/src/uk/me/parabola/splitter/SplitProcessor.java b/src/uk/me/parabola/splitter/SplitProcessor.java
index e96bde4..959ff99 100644
--- a/src/uk/me/parabola/splitter/SplitProcessor.java
+++ b/src/uk/me/parabola/splitter/SplitProcessor.java
@@ -48,9 +48,9 @@ class SplitProcessor extends AbstractMapProcessor {
private final short unassigned = Short.MIN_VALUE;
private final InputQueueInfo[] writerInputQueues;
- private final BlockingQueue<InputQueueInfo> toProcess;
+ protected final BlockingQueue<InputQueueInfo> toProcess;
private final ArrayList<Thread> workerThreads;
- private final InputQueueInfo STOP_MSG = new InputQueueInfo(null);
+ protected final InputQueueInfo STOP_MSG = new InputQueueInfo(null);
// private int currentNodeAreaSet;
@@ -65,8 +65,8 @@ class SplitProcessor extends AbstractMapProcessor {
this.oneTileOnlyRels = oneTileOnlyRels;
this.writerDictionary = dataStorer.getWriterDictionary();
this.writers = writerDictionary.getWriters();
- this.coords = SparseLong2ShortMap.createMap();
- this.ways = SparseLong2ShortMap.createMap();
+ this.coords = SparseLong2ShortMap.createMap("coord");
+ this.ways = SparseLong2ShortMap.createMap("way");
this.coords.defaultReturnValue(unassigned);
this.ways.defaultReturnValue(unassigned);
this.writerIndex = dataStorer.getGrid();
@@ -74,7 +74,7 @@ class SplitProcessor extends AbstractMapProcessor {
this.writerOffset = writerOffset;
this.lastWriter = writerOffset + numWritersThisPass-1;
this.maxThreads = maxThreads;
- this.toProcess = new ArrayBlockingQueue<InputQueueInfo>(numWritersThisPass);
+ this.toProcess = new ArrayBlockingQueue<>(numWritersThisPass);
this.writerInputQueues = new InputQueueInfo[numWritersThisPass];
for (int i = 0; i < writerInputQueues.length; i++) {
writerInputQueues[i] = new InputQueueInfo(this.writers[i + writerOffset]);
@@ -88,7 +88,7 @@ class SplitProcessor extends AbstractMapProcessor {
usedWriters = new BitSet();
int noOfWorkerThreads = Math.min(this.maxThreads - 1, numWritersThisPass);
- workerThreads = new ArrayList<Thread>(noOfWorkerThreads);
+ workerThreads = new ArrayList<>(noOfWorkerThreads);
for (int i = 0; i < noOfWorkerThreads; i++) {
Thread worker = new Thread(new OSMWriterWorker());
worker.setName("worker-" + i);
@@ -147,7 +147,7 @@ class SplitProcessor extends AbstractMapProcessor {
ways.put(w.getId(), idx);
++countWays;
if (countWays % 1000000 == 0){
- System.out.println("MAP occupancy: " + Utils.format(countWays) + ", number of area dictionary entries: " + writerDictionary.size() + " of " + ((1<<16) - 1));
+ System.out.println("way MAP occupancy: " + Utils.format(countWays) + ", number of area dictionary entries: " + writerDictionary.size() + " of " + ((1<<16) - 1));
ways.stats(0);
}
try {
@@ -219,11 +219,8 @@ class SplitProcessor extends AbstractMapProcessor {
}
@Override
public boolean endMap() {
- System.out.println("Statistics for coords map:");
- coords.stats(1);
- System.out.println("");
- System.out.println("Statistics for ways map:");
- ways.stats(1);
+ coords.stats(0);
+ ways.stats(0);
Utils.printMem();
System.out.println("Full Node tests: " + Utils.format(countFullTest));
System.out.println("Quick Node tests: " + Utils.format(countQuickTest));
@@ -271,7 +268,7 @@ class SplitProcessor extends AbstractMapProcessor {
if (writerCandidates == null && !isSpecialNode) {
return;
}
- if (isSpecialNode || writerCandidates.l.size() > 1)
+ if (isSpecialNode || writerCandidates != null && writerCandidates.l.size() > 1)
usedWriters.clear();
if (writerCandidates != null){
for (int i = 0; i < writerCandidates.l.size(); i++) {
@@ -375,14 +372,14 @@ class SplitProcessor extends AbstractMapProcessor {
}
private class InputQueueInfo {
- private final OSMWriter writer;
+ protected final OSMWriter writer;
private ArrayList<Element> staging;
- private final BlockingQueue<ArrayList<Element>> inputQueue;
+ protected final BlockingQueue<ArrayList<Element>> inputQueue;
public InputQueueInfo(OSMWriter writer) {
- inputQueue = new ArrayBlockingQueue<ArrayList<Element>>(NO_ELEMENTS);
+ inputQueue = new ArrayBlockingQueue<>(NO_ELEMENTS);
this.writer = writer;
- this.staging = new ArrayList<Element>(STAGING_SIZE);
+ this.staging = new ArrayList<>(STAGING_SIZE);
}
void put(Element e) throws InterruptedException {
@@ -395,7 +392,7 @@ class SplitProcessor extends AbstractMapProcessor {
void flush() throws InterruptedException {
// System.out.println("Flush");
inputQueue.put(staging);
- staging = new ArrayList<Element>(STAGING_SIZE);
+ staging = new ArrayList<>(STAGING_SIZE);
toProcess.put(this);
}
@@ -409,6 +406,9 @@ class SplitProcessor extends AbstractMapProcessor {
private class OSMWriterWorker implements Runnable {
+ public OSMWriterWorker() {
+ }
+
public void processElement(Element element, OSMWriter writer)
throws IOException {
if (element instanceof Node) {
diff --git a/src/uk/me/parabola/splitter/TileMetaInfo.java b/src/uk/me/parabola/splitter/TileMetaInfo.java
index 4f45498..9248c69 100644
--- a/src/uk/me/parabola/splitter/TileMetaInfo.java
+++ b/src/uk/me/parabola/splitter/TileMetaInfo.java
@@ -263,9 +263,6 @@ class TileMetaInfo {
assert sum - tile.getColSum(validEndX) < minNodes;
}
if (validStartX >= 0){
- if (tile.count == 209218100){
- long dd = 4;
- }
long sum = 0;
for (int i = 0; i < validStartX; i++){
sum += tile.getColSum(i);
diff --git a/src/uk/me/parabola/splitter/WriterGrid.java b/src/uk/me/parabola/splitter/WriterGrid.java
index 2fd6ebf..d7f9337 100644
--- a/src/uk/me/parabola/splitter/WriterGrid.java
+++ b/src/uk/me/parabola/splitter/WriterGrid.java
@@ -26,8 +26,8 @@ import java.util.BitSet;
public class WriterGrid implements WriterIndex{
private final Area bounds;
private final Grid grid;
- private final WriterGridResult r;
- private final WriterDictionaryShort writerDictionary;
+ protected final WriterGridResult r;
+ protected final WriterDictionaryShort writerDictionary;
/**
* Create a grid to speed up the search of writer candidates.
diff --git a/test/uk/me/parabola/splitter/TestCustomCollections.java b/test/uk/me/parabola/splitter/TestCustomCollections.java
index 8b17d24..d053958 100644
--- a/test/uk/me/parabola/splitter/TestCustomCollections.java
+++ b/test/uk/me/parabola/splitter/TestCustomCollections.java
@@ -1,8 +1,8 @@
-/*
- * Copyright (c) 2009, Chris Miller
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
+/*
+ * Copyright (c) 2009, Chris Miller
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
@@ -29,19 +29,19 @@ public class TestCustomCollections {
//}
@Test
- public void testLongShortMap() {
- testMap(new SparseLong2ShortMapInline(), 0L);
- testMap(new SparseLong2ShortMapInline(), -10000L);
- testMap(new SparseLong2ShortMapInline(), 1L << 35);
- testMap(new SparseLong2ShortMapInline(), -1L << 35);
- testMap(new SparseLong2ShortMapHuge(), 0L);
- testMap(new SparseLong2ShortMapHuge(), -10000L);
- testMap(new SparseLong2ShortMapHuge(), 1L << 35);
- testMap(new SparseLong2ShortMapHuge(), -1L << 35);
+ public static void testLongShortMap() {
+ testMap(new SparseLong2ShortMapInline("test"), 0L);
+ testMap(new SparseLong2ShortMapInline("test"), -10000L);
+ testMap(new SparseLong2ShortMapInline("test"), 1L << 35);
+ testMap(new SparseLong2ShortMapInline("test"), -1L << 35);
+ testMap(new SparseLong2ShortMapHuge("test"), 0L);
+ testMap(new SparseLong2ShortMapHuge("test"), -10000L);
+ testMap(new SparseLong2ShortMapHuge("test"), 1L << 35);
+ testMap(new SparseLong2ShortMapHuge("test"), -1L << 35);
}
- private void testMap(SparseLong2ShortMapFunction map, long idOffset) {
- map.defaultReturnValue((short) Short.MIN_VALUE);
+ private static void testMap(SparseLong2ShortMapFunction map, long idOffset) {
+ map.defaultReturnValue(Short.MIN_VALUE);
for (short i = 1; i < 1000; i++) {
int j = map.put(idOffset + i, i);
@@ -153,11 +153,11 @@ public class TestCustomCollections {
}
@Test
- public void testLong2IntMap() {
+ public static void testLong2IntMap() {
testMap(new Long2IntClosedMap("test", 10000, -1));
}
- private void testMap(Long2IntClosedMapFunction map) {
+ private static void testMap(Long2IntClosedMapFunction map) {
int val;
for (int i = 1; i < 1000; i++) {
int j = map.add((long)i*10, i);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/mkgmap-splitter.git
More information about the Pkg-grass-devel
mailing list