otp
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.opentripplanner</groupId> <artifactId>otp</artifactId> <version>2.6.0</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <name>OpenTripPlanner</name> <description>The OpenTripPlanner multimodal journey planning system</description> <url>https://opentripplanner.org</url> <groupId>org.opentripplanner</groupId> <artifactId>otp</artifactId> <version>2.6.0</version> <packaging>jar</packaging> <licenses> <license> <name>GNU Lesser General Public License</name> <url>https://www.gnu.org/licenses/lgpl-3.0.txt</url> </license> </licenses> <scm> <url>https://github.com/opentripplanner/OpenTripPlanner</url> </scm> <!-- Developer entries are provided for the main contributors on the GitHub stats page for to the dev-2.x branch. This minimal information is only present to meet the Sonatype artifact upload requirements. For other contributors, see https://github.com/opentripplanner/OpenTripPlanner/graphs/contributors --> <developers> <developer> <name>Andrew Byrd</name> <email>andrew@fastmail.net</email> <organization>Conveyal</organization> <organizationUrl>http://conveyal.com/</organizationUrl> </developer> <developer> <name>Thomas Gran</name> <email>t2gran@gmail.com</email> <organization>Entur</organization> <organizationUrl>http://entur.org/</organizationUrl> </developer> <developer> <name>Leonard Ehrenfried</name> <email>mail@leonard.io</email> <organization>Independent Contractor</organization> <organizationUrl>https://leonard.io</organizationUrl> </developer> <developer> <name>Hannes Junnila</name> <email>hannes.junnila@gmail.com</email> <organization>Entur</organization> <organizationUrl>http://entur.org/</organizationUrl> </developer> </developers> <properties> <otp.serialization.version.id>157</otp.serialization.version.id> <!-- Lib versions - keep list sorted on property name --> <geotools.version>31.3</geotools.version> <google.dagger.version>2.52</google.dagger.version> <jackson.version>2.17.2</jackson.version> <jersey.version>3.1.8</jersey.version> <junit.version>5.11.0</junit.version> <micrometer.version>1.13.4</micrometer.version> <netcdf4.version>5.6.0</netcdf4.version> <logback.version>1.5.7</logback.version> <lucene.version>9.11.1</lucene.version> <slf4j.version>2.0.16</slf4j.version> <netex-java-model.version>2.0.15</netex-java-model.version> <siri-java-model.version>1.27</siri-java-model.version> <jaxb-runtime.version>4.0.5</jaxb-runtime.version> <!-- Other properties --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <GITHUB_REPOSITORY>opentripplanner/OpenTripPlanner</GITHUB_REPOSITORY> <!-- Set argLine to an empty string so that running the tests without the coverage agent works. When running `mvn jacoco:prepare-agent test` argLine is replaced with the one activating the agent. --> <argLine/> <plugin.prettier.version>0.22</plugin.prettier.version> <plugin.prettier.goal>write</plugin.prettier.goal> </properties> <distributionManagement> <repository> <id>github</id> <name>OpenTripPlanner Maven Repository on Github Packages</name> <url>https://maven.pkg.github.com/${GITHUB_REPOSITORY}/</url> </repository> </distributionManagement> <build> <!-- Filtering will perform substitution on otp-project-info.properties, see git commit id plugin below. --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> <resource> <directory>src/ext/resources</directory> <filtering>true</filtering> </resource> <resource> <directory>src/client</directory> <targetPath>client</targetPath> <filtering>false</filtering> </resource> </resources> <testResources> <testResource> <directory>src/test/resources</directory> </testResource> <testResource> <directory>src/ext-test/resources</directory> </testResource> <testResource> <!-- Shell scripts to start up OTP, need to be filtered to insert the JAR file name. --> <!-- These are treated as testResources rather than resources to keep them out of the JAR. --> <!-- The staging repo will reject a JAR containing them as they use traversal paths (../..). --> <directory>src/scripts</directory> <filtering>true</filtering> <!-- Copy the scripts up into the root of the repo, not /target/classes --> <targetPath>../..</targetPath> </testResource> </testResources> <extensions> <!-- makes build variables like os.detected.classifier available. use to select the correct protoc instance for the OS. see protobuf-maven-plugin below --> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.7.1</version> </extension> </extensions> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.13.0</version> <configuration> <!-- Target Java version --> <release>21</release> <annotationProcessorPaths> <path> <groupId>com.google.dagger</groupId> <artifactId>dagger-compiler</artifactId> <version>${google.dagger.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.4.2</version> <configuration> <archive> <manifestEntries> <!-- For Java 11 Modules, specify a module name. Do not create module-info.java until all our dependencies specify a module name. --> <Automatic-Module-Name>org.opentripplanner.otp</Automatic-Module-Name> <OTP-Serialization-Version-Id>${otp.serialization.version.id}</OTP-Serialization-Version-Id> </manifestEntries> </archive> </configuration> <executions> <execution> <!-- OTP includes an empty javadoc.jar file. See doc/javadoc/README.md --> <id>package-javadoc</id> <phase>package</phase> <goals><goal>jar</goal></goals> <configuration> <classesDirectory>${basedir}/doc/javadoc</classesDirectory> <classifier>javadoc</classifier> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.3.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <!-- we are seeing random failures in Windows CI builds which appear related to the properties files: https://issues.apache.org/jira/browse/MRESOURCES-265 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> <configuration> <propertiesEncoding>UTF-8</propertiesEncoding> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.6.0</version> <executions> <execution> <id>build-helper-generate-sources</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>src/main/java</source> <source>src/ext/java</source> </sources> </configuration> </execution> <execution> <id>build-helper-generate-test-sources</id> <phase>generate-test-sources</phase> <goals> <goal>add-test-source</goal> </goals> <configuration> <sources> <source>src/test/java</source> <source>src/ext-test/java</source> </sources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.0</version> <dependencies> <dependency> <groupId>me.fabriciorby</groupId> <artifactId>maven-surefire-junit5-tree-reporter</artifactId> <version>1.3.0</version> </dependency> </dependencies> <configuration> <!-- we have to fork the JVM during tests so that the argLine is passed along --> <forkCount>3</forkCount> <!-- enable the restricted reflection under Java 11 so that the ObjectDiffer works the @{argLine} part is there to allow jacoco to insert its arguments as well --> <argLine> @{argLine} -Xmx2G -Dfile.encoding=UTF-8 --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.module=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.lang.ref=ALL-UNNAMED --add-opens java.base/java.math=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.base/java.time=ALL-UNNAMED --add-opens java.base/java.time.zone=ALL-UNNAMED --add-opens java.base/java.time.format=ALL-UNNAMED --add-opens java.base/java.time.temporal=ALL-UNNAMED --add-opens java.base/java.time.chrono=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens java.base/java.util.regex=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED --add-opens java.base/jdk.internal.misc=ALL-UNNAMED --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/jdk.internal.util=ALL-UNNAMED --add-opens java.base/jdk.internal.module=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.http=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-opens java.base/sun.util.calendar=ALL-UNNAMED --add-opens java.base/sun.util.locale=ALL-UNNAMED --add-opens java.base/sun.invoke.util=ALL-UNNAMED --add-opens java.xml/org.xml.sax.helpers=ALL-UNNAMED </argLine> <!-- Jenkins needs XML test reports to determine whether the build is stable. --> <disableXmlReport>true</disableXmlReport> <reportFormat>plain</reportFormat> <consoleOutputReporter> <disable>true</disable> </consoleOutputReporter> <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter"> <printStacktraceOnError>true</printStacktraceOnError> <printStacktraceOnFailure>true</printStacktraceOnFailure> <printStdoutOnError>true</printStdoutOnError> <printStdoutOnFailure>true</printStdoutOnFailure> <printStdoutOnSuccess>false</printStdoutOnSuccess> <printStderrOnError>true</printStderrOnError> <printStderrOnFailure>true</printStderrOnFailure> <printStderrOnSuccess>false</printStderrOnSuccess> </statelessTestsetInfoReporter> </configuration> </plugin> <!-- code coverage report --> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.12</version> </plugin> <plugin> <!-- Get current Git commit information for use in MavenVersion class. Commit information is stored in Maven variables, which are then substituted into the properties file. The plugin has a mode to generate a git.properties file, but we need the Maven project version as well, so we perform substitution. --> <groupId>io.github.git-commit-id</groupId> <artifactId>git-commit-id-maven-plugin</artifactId> <version>9.0.1</version> <executions> <execution> <goals> <goal>revision</goal> </goals> </execution> </executions> <configuration> <verbose>false</verbose> <dateFormat>yyyy-MM-dd'T'HH:mm:ssXXX</dateFormat> <includeOnlyProperties> <!-- Including each property used reduce the plugin execution time. --> <includeOnlyProperty>git.commit.id</includeOnlyProperty> <includeOnlyProperty>git.commit.id.describe</includeOnlyProperty> <includeOnlyProperty>git.commit.time</includeOnlyProperty> <includeOnlyProperty>git.build.time</includeOnlyProperty> <includeOnlyProperty>git.branch</includeOnlyProperty> <includeOnlyProperty>git.dirty</includeOnlyProperty> </includeOnlyProperties> </configuration> </plugin> <!-- There used to be a dependency-plugin:copy-dependencies plugin entry here, but the shade-plugin will explode the dependencies even if they aren't manually copied in. --> <plugin> <!-- We want to create a standalone jar that can be run on the command line. Java does not really allow this - you cannot place jars inside of jars. You must either provide all the dependency jars to the user (usually lib/ under the directory containing the runnable jar) or explode all the jars and repackage them into a single jar. The problem is that while class files are nicely organized into the package namespace and should not collide, the META-INF directories of the jars will collide. Maven's standard assembly plugin does not account for this and will just clobber metadata. This then causes runtime errors, particularly with Spring. Instead, we use the shade plugin which has transformers that will for example append files of the same name rather than overwrite them in the combined JAR. NB: Don't use a version of the shade plugin older than 1.3.2, as it fixed MSHADE-76 (files not merged properly if some input files are missing a terminating newline) --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.6.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <!-- exclude signatures from merged JAR to avoid invalid signature messages --> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <!-- The shaded JAR will not be the main artifact for the project, it will be attached for deployment in the way source and docs are. --> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>shaded</shadedClassifierName> <createDependencyReducedPom>false</createDependencyReducedPom> <!-- MinimizeJar removes unused classes, (classes not imported explicitly by name). We have eliminated most Jersey auto-scanning, but there is still some need for include filters to force-include classes that are dynamically loaded by name/auto-scanned. --> <!-- This roughly halves the size of the OTP JAR, bringing it down to around 20 MB. <minimizeJar>true</minimizeJar> <filters> <filter> <artifact>com.sun.jersey:*</artifact> <includes> <include>**</include> </includes> </filter> <filter> <artifact>org.opentripplanner:*</artifact> <includes> <include>**</include> </includes> </filter> </filters> --> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>org.opentripplanner.standalone.OTPMain</Main-Class> <!-- The ImageIO lines allow some image reader plugins to work https://stackoverflow.com/questions/7051603/jai-vendorname-null#18495658 --> <Specification-Title>Java Advanced Imaging Image I/O Tools </Specification-Title> <Specification-Version>1.1</Specification-Version> <Specification-Vendor>Sun Microsystems, Inc.</Specification-Vendor> <Implementation-Title>com.sun.media.imageio</Implementation-Title> <Implementation-Version>1.1</Implementation-Version> <Implementation-Vendor>Sun Microsystems, Inc.</Implementation-Vendor> <Extension-Name>com.sun.media.imageio</Extension-Name> </manifestEntries> </transformer> </transformers> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.hubspot.maven.plugins</groupId> <artifactId>prettier-maven-plugin</artifactId> <version>${plugin.prettier.version}</version> <configuration> <prettierJavaVersion>2.0.0</prettierJavaVersion> <inputGlobs> <inputGlob>src/main/java/**/*.java</inputGlob> <inputGlob>src/test/java/**/*.java</inputGlob> <inputGlob>src/ext/java/**/*.java</inputGlob> <inputGlob>src/ext-test/java/**/*.java</inputGlob> <inputGlob>src/test/resources/org/opentripplanner/apis/**/*.graphql</inputGlob> </inputGlobs> </configuration> <executions> <execution> <phase>validate</phase> <goals> <goal>${plugin.prettier.goal}</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>3.4.3</version> <configuration> <container> <mainClass>org.opentripplanner.standalone.OTPMain</mainClass> <entrypoint>/docker-entrypoint.sh</entrypoint> <volumes> <volume> /var/opentripplanner/ </volume> </volumes> <ports> <port>8080</port> <port>8081</port> </ports> </container> <from> <image>eclipse-temurin:21-jre</image> <platforms> <platform> <architecture>amd64</architecture> <os>linux</os> </platform> <platform> <architecture>arm64</architecture> <os>linux</os> </platform> </platforms> </from> <to> <image>${env.CONTAINER_REPO}</image> <auth> <username>${env.CONTAINER_REGISTRY_USER}</username> <password>${env.CONTAINER_REGISTRY_PASSWORD}</password> </auth> </to> <extraDirectories> <permissions> <permission> <file>/docker-entrypoint.sh</file> <mode>755</mode> </permission> <permission> <file>/var/opentripplanner/</file> <mode>755</mode> </permission> </permissions> </extraDirectories> </configuration> </plugin> <!-- compile the gtfs-realtime.proto file to Java code To update the proto file run the following command: curl https://raw.githubusercontent.com/google/transit/master/gtfs-realtime/proto/gtfs-realtime.proto -o src/main/proto/gtfs-realtime.proto --> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.6.1</version> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <configuration> <protocArtifact>com.google.protobuf:protoc:3.22.0:exe:${os.detected.classifier}</protocArtifact> </configuration> </plugin> </plugins> </build> <repositories> <!-- Hack to force maven to check central first. Maven central is inherited from the superpom, but ends up at the end of the list. Though most of the time the artifact is in central, Maven tries to download from every other repository and fails before checking central. Do not change the id from central2 to central, otherwise the entry will be ignored. --> <repository> <id>central2</id> <name>Check central first to avoid a lot of not found warnings</name> <url>https://repo.maven.apache.org/maven2</url> </repository> <repository> <id>osgeo</id> <name>Open Source Geospatial Foundation Repository</name> <url>https://repo.osgeo.org/repository/release/</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <!-- This make sure all google libraries are using compatible versions. --> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.45.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Logging API --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <!-- Jersey uses java.util logging, redirect it to slf4j API (we use the Logback implementation) --> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <!-- Logging library, implements slf4j logging API --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <!-- JSON-formatted logging --> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>8.0</version> </dependency> <!-- dependency injection --> <dependency> <groupId>com.google.dagger</groupId> <artifactId>dagger</artifactId> <version>${google.dagger.version}</version> </dependency> <!-- GEOTOOLS AND JTS TOPOLOGY: geometry, rasters and projections. --> <!-- GEOTOOLS includes JTS as a transitive dependency. --> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-coverage</artifactId> <version>${geotools.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-geotiff</artifactId> <version>${geotools.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-api</artifactId> <version>${geotools.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-geojson-core</artifactId> <version>${geotools.version}</version> </dependency> <!-- Lucene is used by the Debug Client Geocode API --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>${lucene.version}</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-queryparser</artifactId> <version>${lucene.version}</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-suggest</artifactId> <version>${lucene.version}</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>${micrometer.version}</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-influx</artifactId> <version>${micrometer.version}</version> <scope>test</scope> </dependency> <!-- netcdf4 --> <dependency> <groupId>edu.ucar</groupId> <artifactId>netcdf4</artifactId> <version>${netcdf4.version}</version> </dependency> <!-- Netex XML document - JAXB generated Java model. This is generated using the official Netex schema(v1.0) and support the entire model, not just the Nordic/Norwegian profile which is currently supported by OTP. --> <dependency> <groupId>org.entur</groupId> <artifactId>netex-java-model</artifactId> <version>${netex-java-model.version}</version> </dependency> <!-- SIRI --> <dependency> <groupId>org.entur</groupId> <artifactId>siri-java-model</artifactId> <version>${siri-java-model.version}</version> </dependency> <!-- XML <-> protobuf-mapper for SIRI--> <dependency> <groupId>org.entur</groupId> <artifactId>siri-protobuf-mapper</artifactId> <version>1.0.3</version> </dependency> <dependency> <groupId>org.mobilitydata</groupId> <artifactId>gbfs-java-model</artifactId> <version>1.0.7</version> </dependency> <!-- TESTING --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-params</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.truth</groupId> <artifactId>truth</artifactId> <version>1.4.4</version> <scope>test</scope> </dependency> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit</artifactId> <version>1.3.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>5.13.0</version> <scope>test</scope> </dependency> <dependency> <groupId>io.github.origin-energy</groupId> <artifactId>java-snapshot-testing-junit5</artifactId> <version>2.3.0</version> <scope>test</scope> </dependency> <!-- Provides some shared serializers for Kryo. Introduces transitive dependencies on Trove, and Kryo. --> <!-- Also provides classes for testing that a round trip through serialization reproduces the same network. --> <dependency> <groupId>com.conveyal</groupId> <artifactId>kryo-tools</artifactId> <version>1.6.0</version> </dependency> <!-- kryo serializers for Guava types !--> <dependency> <groupId>de.javakaffee</groupId> <artifactId>kryo-serializers</artifactId> <version>0.45</version> </dependency> <!-- Direct dependency with -jre version, in order to not resolve to the limited -android version --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>33.2.1-jre</version> </dependency> <!-- Jersey annotation-driven REST web services (JAX-RS implementation) --> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>${jersey.version}</version> </dependency> <!-- Deploy Jersey apps in stand-alone Grizzly server instead of a servlet container. --> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-grizzly2-http</artifactId> <version>${jersey.version}</version> </dependency> <!-- Jackson modules to serialize Jersey response objects to JSON. --> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>${jersey.version}</version> </dependency> <!-- HK2 dependency injection framework for injecting context --> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>${jersey.version}</version> </dependency> <!-- JAXB API Implementation no longer supplied with Java 11+ --> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>${jaxb-runtime.version}</version> </dependency> <!-- Jackson modules. --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jdk8</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>${jackson.version}</version> </dependency> <!-- jersey pulls in older versions of this dependency which are binary-incompatible with the latest jackson version, so we need to explicitly define them here --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <!-- Google library imports The version is imported using google libraries-bom, see dep.management --> <!-- Google Cloud Storage - as OTP DataSource --> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-storage</artifactId> </dependency> <!-- Google Cloud Pubsub for SIRI-updater--> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-pubsub</artifactId> </dependency> <!-- Google Protocol Buffers compact binary serialization format --> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> </dependency> <!-- OBA GTFS loader --> <dependency> <groupId>org.onebusaway</groupId> <artifactId>onebusaway-gtfs</artifactId> <version>3.2.3</version> </dependency> <!-- Processing is used for the debug GUI (though we could probably use just Java2D) --> <dependency> <groupId>org.processing</groupId> <artifactId>core</artifactId> <version>2.2.1</version> </dependency> <!-- Used in DegreeGridNEDTileSource to fetch tiles from Amazon S3 --> <dependency> <groupId>net.java.dev.jets3t</groupId> <artifactId>jets3t</artifactId> <version>0.9.4</version> </dependency> <!-- OpenStreetMap protobuf (PBF) definitions and parser --> <dependency> <groupId>org.openstreetmap.osmosis</groupId> <artifactId>osmosis-osm-binary</artifactId> <version>0.48.3</version> </dependency> <!-- Command line parameter parsing --> <dependency> <groupId>com.beust</groupId> <artifactId>jcommander</artifactId> <version>1.82</version> </dependency> <dependency> <groupId>com.graphql-java</groupId> <artifactId>graphql-java</artifactId> <version>22.3</version> </dependency> <dependency> <groupId>com.graphql-java</groupId> <artifactId>graphql-java-extended-scalars</artifactId> <version>22.0</version> </dependency> <dependency> <groupId>org.apache.httpcomponents.client5</groupId> <artifactId>httpclient5</artifactId> <version>5.3.1</version> </dependency> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.5.0</version> <scope>test</scope> </dependency> <dependency> <groupId>net.sourceforge.javacsv</groupId> <artifactId>javacsv</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>io.github.ci-cmg</groupId> <artifactId>mapbox-vector-tile</artifactId> <version>4.0.6</version> </dependency> <dependency> <groupId>net.objecthunter</groupId> <artifactId>exp4j</artifactId> <version>0.4.8</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-core</artifactId> <version>1.46.0</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-messaging-servicebus</artifactId> <version>7.15.0</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.11.2</version> <scope>compile</scope> </dependency> <dependency> <groupId>ch.poole</groupId> <artifactId>OpeningHoursParser</artifactId> <version>0.28.2</version> </dependency> <!-- create zip test files--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.27.1</version> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>prettierCheck</id> <properties> <!-- In the CI environment we want to validate that code is formatted --> <plugin.prettier.goal>check</plugin.prettier.goal> </properties> </profile> <profile> <id>prettierSkip</id> <activation> <property> <!-- This works as a short alias to enable this from the command line. To skip prettier, set the 'ps' system property with the '-D ps' parameter: # mvn test -D ps --> <name>ps</name> <value/> </property> </activation> <build> <plugins> <plugin> <groupId>com.hubspot.maven.plugins</groupId> <artifactId>prettier-maven-plugin</artifactId> <version>${plugin.prettier.version}</version> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>clean-test-snapshots</id> <build> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <configuration> <filesets> <fileset> <directory>${project.build.testSourceDirectory}</directory> <includes> <include>**/__snapshots__/*</include> <include>**/__snapshots__</include> </includes> </fileset> </filesets> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>deployGitHub</id> <distributionManagement> <repository> <id>github</id> <name>OpenTripPlanner Maven Repository on Github Packages</name> <url>https://maven.pkg.github.com/${GITHUB_REPOSITORY}/</url> </repository> </distributionManagement> </profile> <profile> <id>release</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>3.2.5</version> <executions> <execution> <id>sign-artifacts</id> <!-- We sign in the verify phase, which means it will happen before install and deploy (the last two phases) but not before earlier phases like test or package. --> <phase>verify</phase> <goals> <goal>sign</goal> </goals> <configuration> <keyname>74ED86891C2BCCD1352D928460B7785172A9FE89</keyname> </configuration> </execution> </executions> </plugin> <plugin> <!-- Recommended way to deploy to OSSRH , which allows deferred manual release to Central. --> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.7.0</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> </plugins> </build> </profile> </profiles> </project>