Index: /trunk/.classpath
===================================================================
--- /trunk/.classpath	(revision 15976)
+++ /trunk/.classpath	(revision 15977)
@@ -34,4 +34,5 @@
 		</attributes>
 	</classpathentry>
+	<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=JOSM&amp;ivyXmlPath=ivy.xml&amp;confs=*"/>
 	<classpathentry kind="lib" path="test/lib/jfcunit.jar">
 		<attributes>
Index: /trunk/.project
===================================================================
--- /trunk/.project	(revision 15976)
+++ /trunk/.project	(revision 15977)
@@ -43,4 +43,5 @@
 		<nature>sf.eclipse.javacc.javaccnature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.apache.ivyde.eclipse.ivynature</nature>
 	</natures>
 </projectDescription>
Index: /trunk/build.xml
===================================================================
--- /trunk/build.xml	(revision 15976)
+++ /trunk/build.xml	(revision 15977)
@@ -9,6 +9,18 @@
 **
 -->
-<project xmlns:as="antlib:org.codehaus.mojo.animal_sniffer" name="josm" default="dist" xmlns:jacoco="antlib:org.jacoco.ant" xmlns:if="ant:if" xmlns:unless="ant:unless">
-    <target name="init-properties">
+<project name="josm" default="dist"
+         xmlns:as="antlib:org.codehaus.mojo.animal_sniffer"
+         xmlns:if="ant:if"
+         xmlns:ivy="antlib:org.apache.ivy.ant"
+         xmlns:jacoco="antlib:org.jacoco.ant"
+         xmlns:unless="ant:unless"
+>
+    <target name="init-ivy">
+        <dirname property="base.dir" file="${ant.file.josm}"/>
+        <property name="lib.dir"   location="${base.dir}/lib"/>
+        <property name="tools.dir" location="${base.dir}/tools"/>
+        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${tools.dir}/ivy/ivy.jar"/>
+    </target>
+    <target name="init-properties" depends="resolve">
         <property environment="env"/>
         <!-- Load properties in a target and not at top level, so this build file can be
@@ -17,5 +29,4 @@
         of the importing ant file. Use ${base.dir} instead, which is always the parent
         directory of this file. -->
-        <dirname property="base.dir" file="${ant.file.josm}"/>
         <property name="test.dir" location="${base.dir}/test"/>
         <property name="src.dir" location="${base.dir}/src"/>
@@ -190,4 +201,12 @@
         <!-- create josm-custom.jar -->
         <delete file="${dist.jar}"/>
+        <!-- extract libraries to build dir to create uber-jar -->
+        <unzip dest="${build.dir}">
+            <fileset refid="runtime.fileset"/>
+            <patternset>
+                <exclude name="META-INF/**"/>
+                <exclude name="*"/>
+            </patternset>
+        </unzip>
         <jar destfile="${dist.jar}" basedir="${build.dir}" level="${clevel}">
             <!-- add attribute excludes="**/*BZip2*,**/*Bzip2*" to create a non-bzip2 supporting jar -->
@@ -388,4 +407,7 @@
             <compilerarg line="-Xmaxwarns 1000"/>
             <exclude name="org/openstreetmap/josm/io/audio/fx/*.java" if:set="noJavaFX"/>
+            <classpath>
+                <path refid="runtime.path"/>
+            </classpath>
         </javac>
 
@@ -981,4 +1003,8 @@
                 reportLevel="low"
                 >
+            <classpath>
+                <path refid="spotbugs-classpath"/>
+                <path refid="compile.path"/>
+            </classpath>
             <sourcePath path="${base.dir}/src" />
             <class location="${dist.jar}" />
@@ -1108,3 +1134,17 @@
         <move file="${modules.dir}/dots/summary.dot.png" tofile="${modules.dir}/josm-with-all-dependencies.png"/>
     </target>
+    <target name="resolve" depends="init-ivy">
+        <ivy:resolve keep="true"/>
+        <ivy:report todir="${tools.dir}/ivy-report" graph="false"/>
+        <ivy:cachepath pathid="compile.path" conf="compile"/>
+        <ivy:cachepath pathid="runtime.path" conf="runtime"/>
+        <ivy:cachefileset setid="runtime.fileset" conf="runtime"/>
+        <ivy:cachepath pathid="test.path" conf="test"/>
+        <ivy:retrieve pattern="${tools.dir}/ivy/[artifact]-[type].[ext]" conf="ivy"/>
+    </target>
+    <target name="bootstrap-workspace" description="Copy libraries from ivy cache to workspace folders for IDE" depends="resolve">
+        <delete dir="${lib.dir}"/>
+        <ivy:retrieve pattern="${lib.dir}/compile/[artifact]-[type].[ext]" conf="compile"/>
+        <ivy:retrieve pattern="${lib.dir}/runtime/[artifact]-[type].[ext]" conf="runtime"/>
+    </target>
 </project>
Index: /trunk/ivy.xml
===================================================================
--- /trunk/ivy.xml	(revision 15977)
+++ /trunk/ivy.xml	(revision 15977)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- License: GPL. For details, see LICENSE file. -->
+<ivy-module version="2.0">
+    <info organisation="org.openstreetmap" module="josm"/>
+    <configurations>
+        <conf name="ivy" description="Apache Ivy configuration for self-update"/>
+        <!--  configuration that should be used when specifying dependencies -->
+        <conf name="implementation" description="All libs JOSM uses that plugins should not use"/>
+        <conf name="api" description="All libs that JOSM uses and are available for plugins"/>
+        <conf name="runtimeOnly" description="The libs shipped with JOSM that we do not need during compilation"/>
+        <conf name="provided" description="The libs we need during compilation but not on application start"/>
+        <conf name="epsg" description="Everything epsg needs- which is currently all of JOSM."/>
+        <!--  Meta configuration used in build scripts -->
+        <conf name="runtime" description="Libraries only needed at runtime" extends="implementation,api,runtimeOnly"/>
+        <conf name="compile" description="Libraries needed only for compilation" extends="implementation,api,provided"/>
+        <conf name="test" description="Libraries only needed for testing" extends="compile,runtime"/>
+    </configurations>
+    <dependencies>
+    </dependencies>
+</ivy-module>
Index: /trunk/ivysettings.xml
===================================================================
--- /trunk/ivysettings.xml	(revision 15977)
+++ /trunk/ivysettings.xml	(revision 15977)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- License: GPL. For details, see LICENSE file. -->
+<ivysettings>
+  <settings defaultResolver="chain"/>
+  <resolvers>
+    <chain name="chain">
+      <ibiblio name="josm-nexus" m2compatible="true" root="https://josm.openstreetmap.de/nexus/content/repositories/public/" />
+      <ibiblio name="jcenter" m2compatible="true" root="https://jcenter.bintray.com/" />
+    </chain>
+  </resolvers>
+</ivysettings>
Index: /trunk/tools/ivy/ivy.xml
===================================================================
--- /trunk/tools/ivy/ivy.xml	(revision 15977)
+++ /trunk/tools/ivy/ivy.xml	(revision 15977)
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<ivy-module version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
+    <info organisation="org.apache.ivy" module="ivy" revision="2.5.0" status="release" publication="20191020104435">
+        <description homepage="http://ant.apache.org/ivy/">
+        Apache Ivy is a tool for managing (recording, tracking, resolving and reporting) project dependencies.
+        </description>
+    </info>
+    <configurations defaultconfmapping="*->default">
+        <conf name="core" description="only ivy jar, without any dependencies"/>
+        <conf name="httpclient" extends="core" description="core + optional httpclient for better http handling"/>
+        <conf name="oro" extends="core" description="to use optional glob matcher"/>
+        <conf name="vfs" extends="core" description="core + optional VirtualFileSystem(VFS) support"/>
+        <conf name="sftp" extends="core" description="core + optional SFTP support"/>
+        <conf name="standalone" extends="core" description="to launch in standalone mode (from command line)"/>
+        <conf name="ant" extends="core" description="core + ant jar provided as a dependency"/>
+        <conf name="default" extends="core" description="full ivy with all dependencies"/>
+        <conf name="test" description="dependencies used for junit testing ivy" visibility="private"/>
+        <conf name="source" description="ivy sources"/>
+    </configurations>
+    <publications>
+        <artifact name="ivy" type="jar" conf="core"/>
+        <artifact name="ivy" type="source" ext="jar" conf="source"/>
+    </publications>
+    <!-- Definition of the version is done in version.properties -->
+    <dependencies>
+        <dependency org="org.apache.ant" name="ant" rev="1.9.14" conf="default,ant"/>
+        <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.5.9" conf="default,httpclient->runtime,master"/>
+        <dependency org="oro" name="oro" rev="2.0.8" conf="default,oro"/>
+        <dependency org="org.apache.commons" name="commons-vfs2" rev="2.2" conf="default,vfs"/>
+        <dependency org="com.jcraft" name="jsch" rev="0.1.55" conf="default,sftp"/>
+        <dependency org="com.jcraft" name="jsch.agentproxy" rev="0.0.9" conf="default,sftp"/>
+        <dependency org="com.jcraft" name="jsch.agentproxy.connector-factory" rev="0.0.9" conf="default,sftp"/>
+        <dependency org="com.jcraft" name="jsch.agentproxy.jsch" rev="0.0.9" conf="default,sftp"/>
+        <dependency org="org.bouncycastle" name="bcpg-jdk15on" rev="1.62" conf="default"/>
+        <dependency org="org.bouncycastle" name="bcprov-jdk15on" rev="1.62" conf="default"/>
+
+        <!-- Test dependencies -->
+        <dependency org="junit" name="junit" rev="4.12" conf="test"/>
+        <dependency org="org.hamcrest" name="hamcrest-core" rev="1.3" conf="test"/>
+        <dependency org="org.hamcrest" name="hamcrest-library" rev="1.3" conf="test"/>
+        <dependency org="org.apache.ant" name="ant-testutil" rev="1.9.14" conf="test" transitive="false"/>
+        <dependency org="org.apache.ant" name="ant-launcher" rev="1.9.14" conf="test" transitive="false"/>
+        <dependency org="org.apache.ant" name="ant-junit" rev="1.9.14" conf="test" transitive="false"/>
+        <dependency org="org.apache.ant" name="ant-junit4" rev="1.9.14" conf="test" transitive="false"/>
+        <dependency org="ant-contrib" name="ant-contrib" rev="1.0b3" conf="test" transitive="false"/>
+        <dependency org="xmlunit" name="xmlunit" rev="1.6" conf="test" transitive="false"/>
+
+        <!-- Global excludes -->
+        <exclude org="junit" module="junit" conf="core,default,httpclient,oro,vfs,sftp,standalone,ant"/>
+        <exclude org="org.hamcrest" module="hamcrest-core" conf="core,default,httpclient,oro,vfs,sftp,standalone,ant"/>
+        <!-- Exclude the whole outdated commons-httpclient org -->
+        <exclude org="commons-httpclient" conf="*"/>
+    </dependencies>
+</ivy-module>
Index: /trunk/tools/ivy/ivy.xsd
===================================================================
--- /trunk/tools/ivy/ivy.xsd	(revision 15977)
+++ /trunk/tools/ivy/ivy.xsd	(revision 15977)
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     https://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+    <xs:complexType name="configurations-conf">
+        <xs:attribute name="name" type="xs:string" use="required"/>
+        <xs:attribute name="transitive" type="xs:boolean"/>
+        <xs:attribute name="extends" type="xs:string"/>
+        <xs:attribute name="description" type="xs:string"/>
+        <xs:attribute name="deprecated" type="xs:string"/>
+        <xs:attribute name="visibility" default="public">
+            <xs:simpleType>
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="private"/>
+                    <xs:enumeration value="public"/>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+
+    <xs:complexType name="global-exclude">
+        <xs:sequence>
+            <xs:element name="conf" minOccurs="0" maxOccurs="unbounded">
+                <xs:complexType>
+                    <xs:attribute name="name" type="xs:string" use="required"/>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+        <xs:attribute name="org" type="xs:string"/>
+        <xs:attribute name="module" type="xs:string"/>
+        <xs:attribute name="artifact" type="xs:string"/>
+        <xs:attribute name="type" type="xs:string"/>
+        <xs:attribute name="ext" type="xs:string"/>
+        <xs:attribute name="conf" type="xs:string"/>
+        <xs:attribute name="matcher" type="xs:string"/>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+
+    <xs:element name="ivy-module">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="info">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="extends" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:attribute name="organisation" type="xs:string" use="required"/>
+                                    <xs:attribute name="module" type="xs:string" use="required"/>
+                                    <xs:attribute name="revision" type="xs:string" use="required"/>
+                                    <xs:attribute name="location" type="xs:string"/>
+                                    <xs:attribute name="extendType" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="license" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:attribute name="name" type="xs:string" use="required"/>
+                                    <xs:attribute name="url" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="ivyauthor" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:attribute name="name" type="xs:string" use="required"/>
+                                    <xs:attribute name="url" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="repository" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:attribute name="name" type="xs:string" use="required"/>
+                                    <xs:attribute name="url" type="xs:string"/>
+                                    <xs:attribute name="pattern" type="xs:string"/>
+                                    <xs:attribute name="ivys" type="xs:boolean"/>
+                                    <xs:attribute name="artifacts" type="xs:boolean"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="description" minOccurs="0" maxOccurs="1">
+                                <xs:complexType mixed="true">
+                                    <xs:sequence>
+                                        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+                                    </xs:sequence>
+                                    <xs:attribute name="homepage" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/>
+                        </xs:sequence>
+                        <xs:attribute name="organisation" type="xs:string"/>
+                        <xs:attribute name="module" type="xs:string" use="required"/>
+                        <xs:attribute name="branch" type="xs:string"/>
+                        <xs:attribute name="revision" type="xs:string"/>
+                        <xs:attribute name="status" type="xs:string"/>
+                        <xs:attribute name="publication" type="xs:string"/>
+                        <xs:attribute name="resolver" type="xs:string"/>
+                        <xs:attribute name="namespace" type="xs:string"/>
+                        <xs:attribute name="default" type="xs:boolean"/>
+                        <xs:anyAttribute namespace="##other" processContents="lax"/>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="configurations" minOccurs="0">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                                <xs:element name="conf" type="configurations-conf"/>
+                                <xs:element name="include">
+                                    <xs:complexType>
+                                        <xs:attribute name="file" type="xs:string"/>
+                                        <xs:attribute name="url" type="xs:string"/>
+                                    </xs:complexType>
+                                </xs:element>
+                            </xs:choice>
+                        </xs:sequence>
+                        <xs:attribute name="defaultconf" type="xs:string"/>
+                        <xs:attribute name="defaultconfmapping" type="xs:string"/>
+                        <xs:attribute name="confmappingoverride" type="xs:boolean"/>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="publications" minOccurs="0">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="artifact" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:element name="conf" minOccurs="0" maxOccurs="unbounded">
+                                            <xs:complexType>
+                                                <xs:attribute name="name" type="xs:string" use="required"/>
+                                            </xs:complexType>
+                                        </xs:element>
+                                    </xs:sequence>
+                                    <xs:attribute name="name" type="xs:string"/>
+                                    <xs:attribute name="type" type="xs:string"/>
+                                    <xs:attribute name="ext" type="xs:string"/>
+                                    <xs:attribute name="conf" type="xs:string"/>
+                                    <xs:attribute name="url" type="xs:string"/>
+                                    <xs:attribute name="packaging" type="xs:string"/>
+                                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                                </xs:complexType>
+                            </xs:element>
+                        </xs:sequence>
+                        <xs:attribute name="defaultconf" type="xs:string"/>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="dependencies" minOccurs="0">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:sequence>
+                                        <xs:element name="conf" minOccurs="0" maxOccurs="unbounded">
+                                            <xs:complexType>
+                                                <xs:sequence>
+                                                    <xs:element name="mapped" minOccurs="0" maxOccurs="unbounded">
+                                                        <xs:complexType>
+                                                            <xs:attribute name="name" type="xs:string" use="required"/>
+                                                        </xs:complexType>
+                                                    </xs:element>
+                                                </xs:sequence>
+                                                <xs:attribute name="name" type="xs:string" use="required"/>
+                                                <xs:attribute name="mapped" type="xs:string"/>
+                                            </xs:complexType>
+                                        </xs:element>
+                                        <xs:element name="artifact" minOccurs="0" maxOccurs="unbounded">
+                                            <xs:complexType>
+                                                <xs:sequence>
+                                                    <xs:element name="conf" minOccurs="0" maxOccurs="unbounded">
+                                                        <xs:complexType>
+                                                            <xs:attribute name="name" type="xs:string" use="required"/>
+                                                        </xs:complexType>
+                                                    </xs:element>
+                                                </xs:sequence>
+                                                <xs:attribute name="name" type="xs:string" use="required"/>
+                                                <xs:attribute name="type" type="xs:string"/>
+                                                <xs:attribute name="ext" type="xs:string"/>
+                                                <xs:attribute name="conf" type="xs:string"/>
+                                                <xs:attribute name="url" type="xs:string"/>
+                                                <xs:anyAttribute namespace="##other" processContents="lax"/>
+                                            </xs:complexType>
+                                        </xs:element>
+                                        <xs:element name="include" minOccurs="0" maxOccurs="unbounded">
+                                            <xs:complexType>
+                                                <xs:sequence>
+                                                    <xs:element name="conf" minOccurs="0" maxOccurs="unbounded">
+                                                        <xs:complexType>
+                                                            <xs:attribute name="name" type="xs:string" use="required"/>
+                                                        </xs:complexType>
+                                                    </xs:element>
+                                                </xs:sequence>
+                                                <xs:attribute name="name" type="xs:string"/>
+                                                <xs:attribute name="type" type="xs:string"/>
+                                                <xs:attribute name="ext" type="xs:string"/>
+                                                <xs:attribute name="conf" type="xs:string"/>
+                                                <xs:attribute name="matcher" type="xs:string"/>
+                                                <xs:anyAttribute namespace="##other" processContents="lax"/>
+                                            </xs:complexType>
+                                        </xs:element>
+                                        <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded">
+                                            <xs:complexType>
+                                                <xs:sequence>
+                                                    <xs:element name="conf" minOccurs="0" maxOccurs="unbounded">
+                                                        <xs:complexType>
+                                                            <xs:attribute name="name" type="xs:string" use="required"/>
+                                                        </xs:complexType>
+                                                    </xs:element>
+                                                </xs:sequence>
+                                                <xs:attribute name="org" type="xs:string"/>
+                                                <xs:attribute name="module" type="xs:string"/>
+                                                <xs:attribute name="name" type="xs:string"/>
+                                                <xs:attribute name="type" type="xs:string"/>
+                                                <xs:attribute name="ext" type="xs:string"/>
+                                                <xs:attribute name="conf" type="xs:string"/>
+                                                <xs:attribute name="matcher" type="xs:string"/>
+                                                <xs:anyAttribute namespace="##other" processContents="lax"/>
+                                            </xs:complexType>
+                                        </xs:element>
+                                    </xs:sequence>
+                                    <xs:attribute name="org" type="xs:string"/>
+                                    <xs:attribute name="name" type="xs:string" use="required"/>
+                                    <xs:attribute name="branch" type="xs:string"/>
+                                    <xs:attribute name="branchConstraint" type="xs:string"/>
+                                    <xs:attribute name="rev" type="xs:string" use="required"/>
+                                    <xs:attribute name="revConstraint" type="xs:string"/>
+                                    <xs:attribute name="force" type="xs:boolean"/>
+                                    <xs:attribute name="changing" type="xs:boolean" default="false"/>
+                                    <xs:attribute name="transitive" type="xs:boolean" default="true"/>
+                                    <xs:attribute name="conf" type="xs:string"/>
+                                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="exclude" type="global-exclude" minOccurs="0" maxOccurs="unbounded"/>
+                            <xs:element name="override" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:attribute name="org" type="xs:string"/>
+                                    <xs:attribute name="module" type="xs:string"/>
+                                    <xs:attribute name="matcher" type="xs:string"/>
+                                    <xs:attribute name="rev" type="xs:string"/>
+                                    <xs:attribute name="branch" type="xs:string"/>
+                                </xs:complexType>
+                            </xs:element>
+                            <xs:element name="conflict" minOccurs="0" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:attribute name="org" type="xs:string"/>
+                                    <xs:attribute name="module" type="xs:string"/>
+                                    <xs:attribute name="manager" type="xs:string"/>
+                                    <xs:attribute name="rev" type="xs:string"/>
+                                    <xs:attribute name="matcher" type="xs:string"/>
+                                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                                </xs:complexType>
+                            </xs:element>
+                        </xs:sequence>
+                        <xs:attribute name="defaultconf" type="xs:string"/>
+                        <xs:attribute name="defaultconfmapping" type="xs:string"/>
+                        <xs:attribute name="confmappingoverride" type="xs:boolean"/>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="conflicts" minOccurs="0">
+                    <xs:complexType>
+                        <xs:sequence>
+                            <xs:element name="manager" maxOccurs="unbounded">
+                                <xs:complexType>
+                                    <xs:attribute name="org" type="xs:string"/>
+                                    <xs:attribute name="module" type="xs:string"/>
+                                    <xs:attribute name="name" type="xs:string"/>
+                                    <xs:attribute name="rev" type="xs:string"/>
+                                    <xs:attribute name="matcher" type="xs:string"/>
+                                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                                </xs:complexType>
+                            </xs:element>
+                        </xs:sequence>
+                    </xs:complexType>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="version" type="xs:string" use="required"/>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>
