Skip to content

Commit 9016292

Browse files
authored
GeoAPI wrappers for PROJ4J (#115)
* Move to the root `pom.xml` the Maven configuration that was duplicated in modules. The intend is to avoid more duplication with the introduction of additional modules. The result should be identical, except the following: In the `maven-deploy-plugin`, the configuration was: * <deployAtEnd>true</deployAtEnd> in the `proj4j` module. * <updateReleaseInfo>true</updateReleaseInfo> in the `epsg` module. With this commit, the configuration become the following for the two modules: <deployAtEnd>true</deployAtEnd> <updateReleaseInfo>true</updateReleaseInfo> Everything else should be effectively identical. * Move the declaration of JUnit dependency version in the root `pom.xml`, in order to manage the dependency version in a single place for all modules. * Add GeoAPI wrappers for GeographicCRS and its dependencies. * Add wrappers for Projected CRS and Coordinate Operation. Test the transform of a point from geographic to projected CRS. * Add wrappers for factories and register them in META-INF/services. A side-effect of this work is the addition of `proj4j(…)` methods as the reverse of `geoapi(…)` methods. * Add a few tests and validations provided by the by GeoAPI conformance module. * Build with Java 21 with the Java release fixed to 8. Java version has been verified with `javap`.
1 parent 768c9eb commit 9016292

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+5835
-330
lines changed

.github/workflows/ci.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ jobs:
77
runs-on: ubuntu-latest
88
steps:
99
- uses: actions/checkout@v4
10-
- name: Set up JDK 1.8
10+
- name: Set up JDK 21
1111
uses: actions/setup-java@v4
1212
with:
1313
distribution: 'adopt'
14-
java-version: '8'
14+
java-version: '21'
1515
- uses: actions/cache@v4
1616
with:
1717
path: ~/.m2/repository

core/pom.xml

+6-165
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,18 @@
11
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
22
<modelVersion>4.0.0</modelVersion>
33

4+
<parent>
5+
<groupId>org.locationtech.proj4j</groupId>
6+
<artifactId>proj4j-modules</artifactId>
7+
<version>1.3.1-SNAPSHOT</version>
8+
</parent>
9+
410
<groupId>org.locationtech.proj4j</groupId>
511
<artifactId>proj4j</artifactId>
6-
<version>1.3.1-SNAPSHOT</version>
712
<packaging>bundle</packaging>
813
<name>Proj4J</name>
9-
<url>https://github.com/locationtech/proj4j</url>
1014
<description>Java port of the Proj.4 library for coordinate reprojection</description>
1115

12-
<licenses>
13-
<license>
14-
<name>Apache License, Version 2.0</name>
15-
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
16-
</license>
17-
</licenses>
18-
19-
<scm>
20-
<url>https://github.com/locationtech/proj4j.git</url>
21-
<connection>scm:git:https://github.com/locationtech/proj4j.git</connection>
22-
<tag>HEAD</tag>
23-
</scm>
24-
25-
<developers>
26-
<developer>
27-
<id>echeipesh</id>
28-
<name>Eugene Cheipesh</name>
29-
<url>https://github.com/echeipesh</url>
30-
</developer>
31-
<developer>
32-
<id>lossyrob</id>
33-
<name>Rob Emanuele</name>
34-
<url>https://github.com/lossyrob</url>
35-
</developer>
36-
<developer>
37-
<id>pomadchin</id>
38-
<name>Grigory Pomadchin</name>
39-
<url>https://github.com/pomadchin</url>
40-
</developer>
41-
</developers>
42-
43-
<contributors>
44-
<contributor>
45-
<name>Martin Davis</name>
46-
<url>https://github.com/dr-jts</url>
47-
</contributor>
48-
</contributors>
49-
5016
<properties>
5117
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5218
<bundle-symbolicname>org.locationtech.proj4j</bundle-symbolicname>
@@ -64,60 +30,12 @@
6430
<dependency>
6531
<groupId>junit</groupId>
6632
<artifactId>junit</artifactId>
67-
<version>4.13.2</version>
6833
<scope>test</scope>
6934
</dependency>
7035
</dependencies>
7136

7237
<build>
7338
<plugins>
74-
<plugin>
75-
<groupId>org.apache.maven.plugins</groupId>
76-
<artifactId>maven-compiler-plugin</artifactId>
77-
<version>3.11.0</version>
78-
<configuration>
79-
<source>1.8</source>
80-
<target>1.8</target>
81-
<debug>true</debug>
82-
<encoding>UTF-8</encoding>
83-
</configuration>
84-
</plugin>
85-
<plugin>
86-
<inherited>true</inherited>
87-
<artifactId>maven-javadoc-plugin</artifactId>
88-
<version>3.5.0</version>
89-
<executions>
90-
<execution>
91-
<id>attach-javadocs</id>
92-
<goals>
93-
<goal>jar</goal>
94-
</goals>
95-
<configuration>
96-
<failOnError>true</failOnError>
97-
<failOnWarnings>false</failOnWarnings>
98-
<detectJavaApiLink>false</detectJavaApiLink>
99-
</configuration>
100-
</execution>
101-
</executions>
102-
</plugin>
103-
<plugin>
104-
<groupId>org.apache.maven.plugins</groupId>
105-
<artifactId>maven-source-plugin</artifactId>
106-
<version>3.2.1</version>
107-
<executions>
108-
<execution>
109-
<id>attach-sources</id>
110-
<goals>
111-
<goal>jar</goal>
112-
</goals>
113-
</execution>
114-
</executions>
115-
</plugin>
116-
<plugin>
117-
<groupId>org.apache.maven.plugins</groupId>
118-
<artifactId>maven-surefire-plugin</artifactId>
119-
<version>3.1.0</version>
120-
</plugin>
12139
<plugin>
12240
<groupId>org.apache.felix</groupId>
12341
<artifactId>maven-bundle-plugin</artifactId>
@@ -135,84 +53,7 @@
13553
<niceManifest>true</niceManifest>
13654
</configuration>
13755
</plugin>
138-
139-
<!-- Maven Central Publish -->
140-
<plugin>
141-
<artifactId>maven-deploy-plugin</artifactId>
142-
<version>3.1.1</version>
143-
<configuration>
144-
<deployAtEnd>true</deployAtEnd>
145-
</configuration>
146-
<executions>
147-
<execution>
148-
<id>default-deploy</id>
149-
<phase>deploy</phase>
150-
<goals>
151-
<goal>deploy</goal>
152-
</goals>
153-
</execution>
154-
</executions>
155-
</plugin>
15656
</plugins>
15757
</build>
15858

159-
<profiles>
160-
<profile>
161-
<id>eclipse</id>
162-
<distributionManagement>
163-
<repository>
164-
<id>repo.eclipse.org</id>
165-
<name>Proj4J Repository - Releases</name>
166-
<url>https://repo.eclipse.org/content/repositories/proj4j-releases/</url>
167-
</repository>
168-
<snapshotRepository>
169-
<id>repo.eclipse.org</id>
170-
<name>Proj4J Repository - Snapshots</name>
171-
<url>https://repo.eclipse.org/content/repositories/proj4j-snapshots/</url>
172-
</snapshotRepository>
173-
</distributionManagement>
174-
</profile>
175-
<profile>
176-
<id>central</id>
177-
<distributionManagement>
178-
<repository>
179-
<id>ossrh</id>
180-
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
181-
</repository>
182-
<snapshotRepository>
183-
<id>ossrh</id>
184-
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
185-
</snapshotRepository>
186-
</distributionManagement>
187-
<build>
188-
<plugins>
189-
<plugin>
190-
<groupId>org.sonatype.plugins</groupId>
191-
<artifactId>nexus-staging-maven-plugin</artifactId>
192-
<version>1.6.13</version>
193-
<extensions>true</extensions>
194-
<configuration>
195-
<serverId>ossrh</serverId>
196-
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
197-
<autoReleaseAfterClose>false</autoReleaseAfterClose>
198-
</configuration>
199-
</plugin>
200-
<plugin>
201-
<groupId>org.apache.maven.plugins</groupId>
202-
<artifactId>maven-gpg-plugin</artifactId>
203-
<version>3.0.1</version>
204-
<executions>
205-
<execution>
206-
<id>sign-artifacts</id>
207-
<phase>verify</phase>
208-
<goals>
209-
<goal>sign</goal>
210-
</goals>
211-
</execution>
212-
</executions>
213-
</plugin>
214-
</plugins>
215-
</build>
216-
</profile>
217-
</profiles>
21859
</project>

0 commit comments

Comments
 (0)