source: osm/applications/editors/josm/plugins/geotools/build.xml@ 36172

Last change on this file since 36172 was 36028, checked in by taylor.smock, 2 years ago

Fix #22455: NPE when opening GeoPackage

This updates the merge-services.jar file using a fork
( https://github.com/JOSM/merge-jar-services ), which
allows us to merge the service files every time we do
a build. The fork also fixes the annoying issue where
service files not ending in a newline will have a
newline appended.

  • Property svn:mime-type set to text/xml
File size: 5.8 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2 <project name="geotools" default="dist" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors">
3 <!-- enter the SVN commit message -->
4 <property name="commit.message" value="Commit message"/>
5 <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
6 <property name="plugin.main.version" value="10899"/>
7
8 <property name="plugin.author" value="Don-vip"/>
9 <property name="plugin.class" value="org.openstreetmap.josm.plugins.geotools.GeoToolsPlugin"/>
10 <property name="plugin.description" value="Provides parts of the GeoTools library for other JOSM plugins. Not meant to be installed directly by users, but rather as a dependency for other plugins."/>
11 <property name="plugin.icon" value="images/compass.png"/>
12 <property name="plugin.canloadatruntime" value="true"/>
13 <property name="plugin.requires" value="apache-commons;ejml;jackson;jaxb;jts"/>
14 <property name="plugin.stage" value="20"/>
15
16 <!-- ** include targets that all plugins have in common ** -->
17 <import file="../build-common.xml"/>
18
19 <target name="pre-compile" depends="fetch_dependencies">
20 <!-- include fetch_dependencies task -->
21 </target>
22
23 <fileset id="plugin.requires.jars" dir="${plugin.dist.dir}">
24 <include name="apache-commons.jar"/>
25 <include name="ejml.jar"/>
26 <include name="jaxb.jar"/>
27 <include name="jts.jar"/>
28 <!-- jackson causes issues if it is on the compile-time path. Since we don't actually use jackson in our code, we can just not have it in the requires.jars array. -->
29 <!--<include name="jackson.jar"/>-->
30 </fileset>
31 <macrodef name="merge-text-files">
32 <attribute name="mergefile"/>
33 <attribute name="targetdir"/>
34 <sequential>
35 <concat destfile="@{targetdir}/@{mergefile}">
36 <restrict>
37 <rsel:name name="@{mergefile}"/>
38 <archives>
39 <zips>
40 <fileset dir="${plugin.lib.dir}" includes="*.jar" excludes="*-sources.jar, *-javadoc.jar" erroronmissingdir="no"/>
41 </zips>
42 </archives>
43 </restrict>
44 </concat>
45 </sequential>
46 </macrodef>
47
48 <target name="merge-geotools-services" depends="fetch_dependencies">
49 <taskdef resource="org/pescuma/mergeservices/antlib.xml" classpath="tools/merge-services.jar" />
50 <delete dir="jar/"/>
51 <mkdir dir="jar"/>
52 <merge-services dest="jar">
53 <fileset dir="lib">
54 <include name="**/*.jar" />
55 <exclude name="**/*-javadoc.jar" />
56 <exclude name="**/*-source.jar" />
57 </fileset>
58 </merge-services>
59 <!-- We currently don't like shipping maven pom files or other "useless" files (see #21667) -->
60 <delete includeEmptyDirs="true">
61 <fileset dir="jar">
62 <include name="META-INF/maven/**/*"/>
63 <include name="META-INF/maven"/>
64 <include name="META-INF/ECLIPSE*"/>
65 <include name="META-INF/eclipse*"/>
66 <include name="META-INF/INDEX.LIST"/>
67 <include name="META-INF/MANIFEST.MF"/>
68 <include name="META-INF/**/module-info.class"/>
69 </fileset>
70 </delete>
71
72 <merge-text-files mergefile="META-INF/javax.media.jai.registryFile.jai" targetdir="jar"/>
73 <merge-text-files mergefile="META-INF/registryFile.jai" targetdir="jar"/>
74 <merge-text-files mergefile="META-INF/registryFile.jaiext" targetdir="jar"/>
75 </target>
76
77 <!--
78 **********************************************************
79 ** post-dist - replaces files from the generated jar
80 **********************************************************
81 -->
82 <target name="post-dist" depends="merge-geotools-services">
83 <move file="${plugin.jar}" todir="${plugin.build.dir}" />
84 <jar destfile="${plugin.jar}" filesetmanifest="merge" manifestencoding="UTF-8">
85 <fileset dir="jar"/>
86 <zipfileset src="${plugin.build.dir}/${ant.project.name}.jar">
87 <exclude name="*.class"/>
88 <exclude name="*.html"/>
89 <exclude name="META-INF/**/*"/>
90 <exclude name="javax/*.txt"/>
91 </zipfileset>
92 <zipfileset src="${plugin.build.dir}/${ant.project.name}.jar">
93 <include name="META-INF/MANIFEST.MF"/>
94 <include name="META-INF/javax.media.jai.registryFile.jai"/>
95 </zipfileset>
96 </jar>
97 <delete file="${plugin.build.dir}/${ant.project.name}.jar" />
98 <delete dir="jar" />
99 </target>
100
101 <!--
102 **********************************************************
103 ** additional-manifest - add additional manifest entries
104 **********************************************************
105 -->
106 <target name="additional-manifest">
107 <manifest file="MANIFEST" mode="update">
108 <!-- JAI requires a vendor name for some of its deep internals,
109 see https://stackoverflow.com/a/18495658/2257172 -->
110 <attribute name="Specification-Title" value="JOSM GeoTools plugin"/>
111 <attribute name="Specification-Version" value="${gt.version}"/>
112 <attribute name="Specification-Vendor" value="JOSM developers" />
113 <attribute name="Implementation-Title" value="org.openstreetmap.josm.plugins.geotools" />
114 <attribute name="Implementation-Version" value="${gt.version}" />
115 <attribute name="Implementation-Vendor" value="JOSM developers"/>
116 </manifest>
117 </target>
118</project>
Note: See TracBrowser for help on using the repository browser.