Skip to content

Commit 4c26864

Browse files
author
taylor.smock
committed
Use pom.xml for dependencies when ivy.xml is not available
This removes ivy.xml from javafx and converts rasterfilters to use maven for dependency management instead of jars in source control. In addition rasterfilters dependencies were upgraded to the latest versions. javafx now requires Java 17 since OpenJFX 21 requires Java 17+. opendata was upgraded to use jdom2 (see https://github.com/JOSM/josm-plugins/security/dependabot/2) git-svn-id: https://josm.openstreetmap.de/osmsvn/applications/editors/josm/plugins@36315 b9d5c4c9-76e1-0310-9c85-f3177eceb1e4
1 parent 7957f5d commit 4c26864

39 files changed

+209
-183
lines changed

build-common.xml

+104-7
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
** Paths are relative to the build.xml that imports this template.
1111
**
1212
-->
13-
<project name="plugin_common" basedir="." xmlns:jacoco="antlib:org.jacoco.ant" xmlns:if="ant:if" xmlns:unless="ant:unless" xmlns:ivy="antlib:org.apache.ivy.ant">
13+
<project name="plugin_common" basedir="." xmlns:jacoco="antlib:org.jacoco.ant" xmlns:if="ant:if" xmlns:unless="ant:unless" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:mvn="antlib:org.apache.maven.resolver.ant" >
1414

1515
<property name="josm" location="../../core/dist/josm-custom.jar"/>
1616
<property name="josm.ivy" location="../../core/ivy.xml"/>
@@ -42,6 +42,9 @@
4242
<property name="ivy.jar.dir" location="${ivy.home}/lib"/>
4343
<property name="ivy.jar.file" location="${ivy.jar.dir}/ivy.jar"/>
4444
<property name="ivy.version" value="2.5.1"/>
45+
<property name="maven.artifact.resolver.version" value="1.5.1"/>
46+
<property name="maven.artifact.resolver.parent.dir" value="${user.home}/.m2/repository/org/apache/maven/resolver/maven-resolver-ant-tasks/${maven.artifact.resolver.version}/"/>
47+
<property name="maven.artifact.resolver.jar.file" value="${maven.artifact.resolver.parent.dir}/maven-resolver-ant-tasks-${maven.artifact.resolver.version}-uber.jar"/>
4548
<property name="jacoco.inclbootstrapclasses" value="false" />
4649
<property name="jacoco.inclnolocationclasses" value="false" />
4750
<property name="junit.printsummary" value="on" />
@@ -110,6 +113,12 @@
110113
<!-- to be overridden by plugins that need to perform additional tasks before compiling -->
111114
</target>
112115
<target name="compile" depends="init, pre-compile, resolve-tools" unless="skip-compile">
116+
<condition property="plugin.classpath.actual.defined">
117+
<isreference refid="plugin.classpath.actual" type="path"/>
118+
</condition>
119+
<path id="plugin.classpath.actual" unless:set="plugin.classpath.actual.defined">
120+
<path refid="plugin.classpath"/>
121+
</path>
113122
<echo message="compiling sources for ${plugin.jar} ..."/>
114123
<path id="jdk.boot.classpath">
115124
<path refid="errorprone_javac.classpath"/>
@@ -133,7 +142,7 @@
133142
<compilerarg value="-Xlint:unchecked"/>
134143
<compilerarg value="-Xplugin:ErrorProne -Xep:StringSplitter:OFF -Xep:ReferenceEquality:OFF -Xep:InsecureCryptoUsage:OFF -Xep:FutureReturnValueIgnored:OFF -Xep:JdkObsolete:OFF -Xep:EqualsHashCode:OFF -Xep:JavaUtilDate:OFF -Xep:DoNotCallSuggester:OFF -Xep:BanSerializableRead:OFF" />
135144
<compilerarg line="-Xmaxwarns 1000"/>
136-
<classpath refid="plugin.classpath"/>
145+
<classpath refid="plugin.classpath.actual"/>
137146
</javac>
138147
</target>
139148
<!--
@@ -279,7 +288,8 @@
279288
<target name="pre-javadoc">
280289
<!-- to be overridden by plugins that need to perform additional tasks before generating javadoc -->
281290
</target>
282-
<target name="javadoc" depends="pre-javadoc" unless="skip-javadoc">
291+
<target name="javadoc" depends="pre-javadoc,pre-compile" unless="skip-javadoc">
292+
<mkdir dir="${plugin.doc.dir}"/>
283293
<javadoc destdir="${plugin.doc.dir}"
284294
executable="${javadoc.executable}"
285295
encoding="UTF-8"
@@ -288,7 +298,8 @@
288298
private="true"
289299
linksource="true"
290300
author="false">
291-
<classpath refid="plugin.classpath"/>
301+
<classpath refid="plugin.classpath" unless:set="plugin.classpath.dependencies"/>
302+
<classpath refid="plugin.classpath.dependencies" if:set="plugin.classpath.dependencies"/>
292303
<sourcepath>
293304
<pathelement path="${plugin.src.dir}" />
294305
<pathelement path="gen" />
@@ -660,6 +671,7 @@
660671
org/osgeo/**/*.java,
661672
"/>
662673
<fileset dir="${basedir}/test" includes="**/*.java" erroronmissingdir="false"/>
674+
<formatter type="plain"/>
663675
<formatter type="xml" toFile="checkstyle-josm-${ant.project.name}.xml"/>
664676
</checkstyle>
665677
</target>
@@ -676,7 +688,8 @@
676688
nested="false"
677689
jvmargs="-Xmx1024m"
678690
>
679-
<auxClasspath refid="plugin.classpath" />
691+
<auxClasspath refid="plugin.classpath" unless:set="plugin.classpath.dependencies"/>
692+
<auxClasspath refid="plugin.classpath.dependencies" if:set="plugin.classpath.dependencies"/>
680693
<sourcePath path="${basedir}/src" />
681694
<class location="${plugin.build.dir}" />
682695
</spotbugs>
@@ -714,6 +727,11 @@
714727
<!--
715728
** Ivy tasks
716729
-->
730+
<target name="is-ivy">
731+
<condition property="isIvy">
732+
<available file="ivy.xml"/>
733+
</condition>
734+
</target>
717735
<target name="download-ivy">
718736
<mkdir dir="${ivy.jar.dir}"/>
719737
<get src="https://josm.openstreetmap.de/nexus/content/repositories/public/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"
@@ -742,15 +760,94 @@
742760
</fileset>
743761
</delete>
744762
</target>
745-
<target name="fetch_dependencies" depends="clean_ivy, init-ivy">
763+
<target name="fetch-dependencies-ivy" depends="clean_ivy, init-ivy, is-ivy" if="isIvy">
746764
<echo>fetching dependencies with ivy</echo>
747765
<available property="plugin.ivysettings.exists" file="ivy_settings.xml"/>
748766
<ivy:settings file="ivy_settings.xml" if:set="plugin.ivysettings.exists"/>
749767
<ivy:settings file="${josm.ivysettings}" unless:set="plugin.ivysettings.exists"/>
750768
<ivy:resolve />
751769
<ivy:retrieve pattern="${plugin.lib.dir}/[artifact]-[revision](-[classifier]).[ext]" conf="default" />
752770
</target>
753-
<target name="ivy-checkdepsupdate" description="Display dependency updates on the console" depends="fetch_dependencies">
771+
<target name="ivy-checkdepsupdate" description="Display dependency updates on the console" depends="fetch-dependencies-ivy">
754772
<ivy:checkdepsupdate/>
755773
</target>
774+
<!--
775+
** Maven tasks
776+
-->
777+
<target name="is-maven" depends="is-ivy">
778+
<condition property="isMaven">
779+
<and>
780+
<available file="pom.xml"/>
781+
<not>
782+
<isset property="isIvy"/>
783+
</not>
784+
</and>
785+
</condition>
786+
</target>
787+
<target name="download-maven" depends="is-maven" if="isMaven">
788+
<mkdir dir="${maven.artifact.resolver.parent.dir}"/>
789+
<get src="https://josm.openstreetmap.de/nexus/content/repositories/public/org/apache/maven/resolver/maven-resolver-ant-tasks/${maven.artifact.resolver.version}/maven-resolver-ant-tasks-${maven.artifact.resolver.version}-uber.jar"
790+
dest="${maven.artifact.resolver.jar.file}"
791+
usetimestamp="true"/>
792+
</target>
793+
<target name="init-maven" depends="is-maven,download-maven" if="isMaven">
794+
<path id="maven.lib.path">
795+
<fileset dir="${maven.artifact.resolver.parent.dir}" includes="*.jar"/>
796+
</path>
797+
<taskdef uri="antlib:org.apache.maven.resolver.ant" resource="org/apache/maven/resolver/ant/antlib.xml" classpathref="maven.lib.path"/>
798+
</target>
799+
<target name="fetch-dependencies-maven" depends="is-maven,init-maven,clean_ivy" if="isMaven">
800+
<mvn:pom file="pom.xml"/>
801+
<mvn:pom file="pom.xml" id="pom"/>
802+
<!-- This stanza is necessary since the maven resolver doesn't read repo settings from the pom.xml file -->
803+
<!-- resolver.repositories makes it global -->
804+
<mvn:remoterepos id="resolver.repositories">
805+
<mvn:remoterepo id="JOSM" url="https://josm.openstreetmap.de/nexus/content/repositories/public/" />
806+
</mvn:remoterepos>
807+
<mkdir dir="${plugin.lib.dir}"/>
808+
<mvn:resolve>
809+
<!-- For some reason, compile time josm-unittest dependencies get included -->
810+
<mvn:dependencies pomRef="pom">
811+
<mvn:exclusion groupId="org.openstreetmap.josm" artifactId="josm-unittest"/>
812+
<mvn:exclusion groupId="org.junit.platform"/>
813+
<mvn:exclusion groupId="org.junit.vintage"/>
814+
<mvn:exclusion groupId="org.junit.jupiter"/>
815+
</mvn:dependencies>
816+
<mvn:files refid="lib.files" dir="${plugin.lib.dir}" layout="{artifactId}-{version}-{classifier}.{extension}" scopes="compile,!test"/>
817+
</mvn:resolve>
818+
<echo message="${toString:lib.files}"/>
819+
<mvn:resolve>
820+
<mvn:path refid="classpath.provided" scopes="provided"/>
821+
</mvn:resolve>
822+
<mvn:resolve>
823+
<mvn:path refid="testlib.classpath" classpath="test"/>
824+
</mvn:resolve>
825+
<mvn:resolve>
826+
<mvn:dependencies>
827+
<mvn:dependency groupId="org.jacoco" artifactId="org.jacoco.ant" version="${pom.properties.jacoco.version}" classifier="nodeps" type="jar" scope="test"/>
828+
</mvn:dependencies>
829+
<mvn:path refid="jacocotest.classpath" classpath="test"/>
830+
</mvn:resolve>
831+
<mvn:resolve>
832+
<mvn:dependencies>
833+
<mvn:dependency groupId="com.puppycrawl.tools" artifactId="checkstyle" version="${pom.properties.checkstyle.version}" scope="compile"/>
834+
</mvn:dependencies>
835+
<mvn:path refid="checkstyle.classpath" classpath="compile"/>
836+
</mvn:resolve>
837+
<mvn:resolve>
838+
<mvn:dependencies>
839+
<mvn:dependency groupId="com.github.spotbugs" artifactId="spotbugs" version="${pom.properties.spotbugs.version}" scope="compile"/>
840+
<mvn:dependency groupId="com.github.spotbugs" artifactId="spotbugs-ant" version="${pom.properties.spotbugs.version}" scope="compile"/>
841+
</mvn:dependencies>
842+
<mvn:path refid="spotbugs.classpath" classpath="compile"/>
843+
</mvn:resolve>
844+
<path id="plugin.classpath.actual">
845+
<path refid="plugin.classpath"/>
846+
<path refid="classpath.provided"/>
847+
</path>
848+
</target>
849+
850+
<target name="fetch_dependencies" depends="fetch-dependencies-ivy,fetch-dependencies-maven">
851+
<!-- We can depend upon ivy and/or maven right now. -->
852+
</target>
756853
</project>

build.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
<!-- Specific plugins -->
1313
<property name="java21_plugins" value="FIT/build.xml
1414
MicrosoftStreetside/build.xml" />
15-
<property name="java17_plugins" value="imageio/build.xml
15+
<property name="java17_plugins" value="javafx/build.xml
16+
imageio/build.xml
1617
Mapillary/build.xml
1718
MapRoulette/build.xml
1819
pmtiles/build.xml
1920
todo/build.xml"/>
2021
<property name="ordered_plugins" value="jackson/build.xml
21-
javafx/build.xml
2222
jaxb/build.xml
2323
jna/build.xml
2424
jts/build.xml

javafx/build.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<property name="plugin.author" value="Don-vip"/>
1212
<property name="plugin.class" value="org.openstreetmap.josm.plugins.javafx.JavaFxPlugin"/>
1313
<property name="plugin.description" value="Provides additional OpenJFX (JavaFX) features such as MP3 audio playback."/>
14-
<!--<property name="plugin.minimum.java.version" value="10"/>-->
14+
<property name="plugin.minimum.java.version" value="17"/>
1515
<property name="plugin.provides" value="javafx"/>
1616
<!--<property name="plugin.icon" value="..."/>-->
1717
<!--<property name="plugin.link" value="..."/>-->

javafx/ivy.xml

-58
This file was deleted.

javafx/pom.xml

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<plugin.description>Provides additional OpenJFX (JavaFX) features such as MP3 audio playback.</plugin.description>
2121
<plugin.early>true</plugin.early>
2222
<plugin.stage>5</plugin.stage>
23+
<plugin.minimum.java.version>17</plugin.minimum.java.version>
2324
<javafx.version>21.0.2</javafx.version>
2425
</properties>
2526
<!-- These dependencies should be installed on the host machine - our installers bundle them -->

opendata/build.xml

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<project name="opendata" default="dist" basedir=".">
2+
<project name="opendata" default="dist" basedir="." xmlns:mvn="antlib:org.apache.maven.resolver.ant">
33
<property name="plugin.main.version" value="18723"/>
44
<property name="plugin.author" value="Don-vip"/>
55
<property name="plugin.class" value="org.openstreetmap.josm.plugins.opendata.OdPlugin"/>
@@ -25,7 +25,7 @@
2525
<property name="jts" location="${plugin.dist.dir}/jts.jar"/>
2626
<property name="ejml" location="${plugin.dist.dir}/ejml.jar"/>
2727
<property name="geotools" location="${plugin.dist.dir}/geotools.jar"/>
28-
28+
2929
<!--
3030
**********************************************************
3131
** compile_poi - compiles Apache POI needed classes
@@ -40,12 +40,12 @@
4040
** compile_jopendoc - compiles JOpenDocument needed classes
4141
**********************************************************
4242
-->
43-
<target name="compile_jopendoc" depends="init">
43+
<target name="compile_jopendoc" depends="init, fetch_dependencies">
4444
<echo message="compiling JOpenDocument ... "/>
4545
<javac srcdir="includes/org/jopendocument" debug="false" destdir="${plugin.build.dir}" includeAntRuntime="false" encoding="ISO-8859-1" release="${java.lang.version}">
4646
<classpath>
4747
<!-- JDOM is required in an older version than the one embedded in geotools jar -->
48-
<pathelement location="lib/jdom-1.1.3.jar"/>
48+
<pathelement location="lib/jdom2-2.0.6.1.jar"/>
4949
<pathelement location="${apache-commons}"/>
5050
</classpath>
5151
</javac>
@@ -77,7 +77,7 @@
7777
** compile - compiles the source tree
7878
**********************************************************
7979
-->
80-
<target name="pre-compile" depends="init, compile_poi, compile_jopendoc, compile_neptune, compile_j7zip"/>
80+
<target name="pre-compile" depends="init, fetch_dependencies, compile_poi, compile_jopendoc, compile_neptune, compile_j7zip"/>
8181

8282
<target name="xjc_neptune" depends="init, -jaxb_linux, -jaxb_windows" unless="jaxb.notRequired">
8383
<exec executable="${xjc}" failonerror="true">

opendata/includes/org/jopendocument/dom/ChildCreator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import java.util.List;
2020
import java.util.ListIterator;
2121

22-
import org.jdom.Element;
23-
import org.jdom.Namespace;
22+
import org.jdom2.Element;
23+
import org.jdom2.Namespace;
2424

2525
/**
2626
* A helper to create children in the schema order.

opendata/includes/org/jopendocument/dom/ImmutableDocStyledNode.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import java.util.HashSet;
1919
import java.util.Set;
2020

21-
import org.jdom.Document;
22-
import org.jdom.Element;
21+
import org.jdom2.Document;
22+
import org.jdom2.Element;
2323

2424
public class ImmutableDocStyledNode<S extends StyleStyle, D extends ODDocument> extends StyledNode<S, D> {
2525

opendata/includes/org/jopendocument/dom/ODMeta.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import java.util.List;
2424
import java.util.Map;
2525

26-
import org.jdom.Element;
27-
import org.jdom.Namespace;
26+
import org.jdom2.Element;
27+
import org.jdom2.Namespace;
2828

2929
/**
3030
* OpenDocument metadata, obtained through {@link ODPackage#getMeta()}.

opendata/includes/org/jopendocument/dom/ODNode.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
package org.jopendocument.dom;
1717

18-
import org.jdom.Element;
18+
import org.jdom2.Element;
1919

2020
/**
2121
* A node in an XML document.

opendata/includes/org/jopendocument/dom/ODPackage.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.Map;
2222
import java.util.Set;
2323

24-
import org.jdom.Document;
24+
import org.jdom2.Document;
2525
import org.jopendocument.util.CopyUtils;
2626
import org.jopendocument.util.FileUtils;
2727

opendata/includes/org/jopendocument/dom/ODUserDefinedMeta.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
import java.util.EnumSet;
1919
import java.util.List;
2020

21-
import org.jdom.Attribute;
22-
import org.jdom.Element;
23-
import org.jdom.Namespace;
21+
import org.jdom2.Attribute;
22+
import org.jdom2.Element;
23+
import org.jdom2.Namespace;
2424

2525
// eg <meta:user-defined meta:name="countOfSomething">5.2</meta:user-defined>
2626
public class ODUserDefinedMeta extends ODNode {

opendata/includes/org/jopendocument/dom/ODXMLDocument.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
import java.util.List;
2424
import java.util.Map;
2525

26-
import org.jdom.Document;
27-
import org.jdom.Element;
28-
import org.jdom.Namespace;
26+
import org.jdom2.Document;
27+
import org.jdom2.Element;
28+
import org.jdom2.Namespace;
2929

3030
/**
3131
* An OpenDocument XML document, like content.xml ou styles.xml.

0 commit comments

Comments
 (0)