diff --git a/.github/workflows/jar-and-R-ci.yaml b/.github/workflows/ci.yml similarity index 52% rename from .github/workflows/jar-and-R-ci.yaml rename to .github/workflows/ci.yml index 5c3235ed4..6e52c3777 100644 --- a/.github/workflows/jar-and-R-ci.yaml +++ b/.github/workflows/ci.yml @@ -2,88 +2,12 @@ name: CI on: push: - paths: - - java-r5rcore/** - - r-package/** - - .github/workflows/** -jobs: - build-jar: - env: - GH_TOKEN: ${{ github.token }} - - runs-on: ubuntu-latest - - # don't build on merges to master - if: ${{ !github.ref_protected }} - - steps: - - uses: actions/checkout@v3 - - name: Set up R - uses: r-lib/actions/setup-r@v2 -# with: -# use-public-rspm: true # this no longer works as of September 2025 - - - name: Install R packages - run: | - # this specification is necessary for some reason as of September 2025 - options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/noble/latest")) - install.packages(c('devtools', 'remotes')) - remotes::install_deps(dependencies = TRUE) - shell: Rscript {0} - working-directory: r-package + pull_request: - - name: Install system dependencies - run: | - while read -r cmd - do - eval sudo $cmd - done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))') - working-directory: r-package - - - name: Set up JDK 21 - uses: actions/setup-java@v3 - with: - java-version: '21' - distribution: 'temurin' - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v2 - - name: Build with Gradle - uses: gradle/gradle-build-action@749f47bda3e44aa060e82d7b3ef7e40d953bd629 - with: - arguments: build - build-root-directory: java-r5rcore - - - name: Create pull request - # https://github.com/actions/checkout/pull/1184 - run: | - NEW_JAR="java-r5rcore/build/libs/java-r5rcore-*.jar" - TARGET_JAR="r-package/inst/jar/r5r.jar" - - new_sha=$(sha256sum $NEW_JAR | awk '{print $1}') - # ensure file exists and then compute sha - old_sha=$( [ -f "$TARGET_JAR" ] && sha256sum "$TARGET_JAR" | awk '{print $1}' || echo "" ) - - echo "NEW: $new_sha" - echo "OLD: $old_sha" - - # Only push if sha different - if [ "$new_sha" != "$old_sha" ]; then - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - - echo "JAR changed — updating." - mv $NEW_JAR $TARGET_JAR - git add $TARGET_JAR - git commit -m "Rebuild JAR for commit ${GITHUB_SHA}" - git push - else - echo "JAR unchanged — skipping commit." - fi +jobs: R-CMD-check: - needs: build-jar - runs-on: ${{ matrix.config.os }} name: R-CMD-check ${{ matrix.config.os }} (R ${{ matrix.config.r }}) @@ -103,15 +27,13 @@ jobs: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: fetch-depth: 0 + submodules: true - - name: Sync to latest HEAD including rebuilt JAR - run: | - git fetch origin "${{ github.ref_name }}" - git checkout "${{ github.ref_name }}" - git pull origin "${{ github.ref_name }}" + # ensure our gradle wrapper is correct, https://github.com/gradle/actions/blob/main/docs/wrapper-validation.md + - uses: gradle/actions/wrapper-validation@v5 - uses: r-lib/actions/setup-r@v2 with: @@ -147,8 +69,6 @@ jobs: working-directory: r-package R-CMD-check-CRAN: - needs: build-jar - runs-on: ${{ matrix.config.os }} name: R-CMD-check-CRAN @@ -164,15 +84,10 @@ jobs: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - - name: Sync to latest HEAD including rebuilt JAR - run: | - git fetch origin "${{ github.ref_name }}" - git checkout "${{ github.ref_name }}" - git pull origin "${{ github.ref_name }}" + submodules: true - uses: r-lib/actions/setup-r@v2 with: @@ -194,20 +109,14 @@ jobs: NOT_CRAN: false test-coverage: - needs: build-jar - runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: fetch-depth: 0 + submodules: true - - name: Sync to latest HEAD including rebuilt JAR - run: | - git fetch origin "${{ github.ref_name }}" - git checkout "${{ github.ref_name }}" - git pull origin "${{ github.ref_name }}" - uses: r-lib/actions/setup-r@v2 diff --git a/.gitignore b/.gitignore index 2f0b5cec2..35f5c5215 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ java-api/out java-api/target java-r5/target r-package/.Rproj.user +r-package/inst/jar/* +!r-package/inst/jar/.gitkeep r-package/.Rhistory R5.jar r5r_core.jar @@ -15,15 +17,16 @@ poa_osm.pbf.mapdb poa_osm.pbf.mapdb.p /r-package/inst/extdata/spo/spo_osm.pbf.mapdb /r-package/inst/extdata/spo/spo_osm.pbf.mapdb.p -java-r5rcore/out/artifacts/r5r_jar/r5r.jar -java-r5rcore/out/production/r5r/org/ipea/r5r/DetailedItineraryPlanner.class -java-r5rcore/out/production/r5r/org/ipea/r5r/R5RCore.class -java-r5rcore/out/production/r5r/org/ipea/r5r/RDataFrame.class -java-r5rcore/out/production/r5r/org/ipea/r5r/TravelTimeMatrixComputer.class -java-r5rcore/out -java-r5rcore/libs +r-package/java/out/artifacts/r5r_jar/r5r.jar +r-package/java/out/production/r5r/org/ipea/r5r/DetailedItineraryPlanner.class +r-package/java/out/production/r5r/org/ipea/r5r/R5RCore.class +r-package/java/out/production/r5r/org/ipea/r5r/RDataFrame.class +r-package/java/out/production/r5r/org/ipea/r5r/TravelTimeMatrixComputer.class +r-package/java/out +r-package/java/libs +r-package/java/build .DS_Store -java-r5rcore/target +r-package/java/target .*.swp jpa-buddy.xml r5-*.jar diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..df28241c7 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "r-package/java/r5"] + path = r-package/java/r5 + url = https://github.com/conveyal/r5.git diff --git a/configure b/configure new file mode 100644 index 000000000..153bd9496 --- /dev/null +++ b/configure @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +( + cd src + ./gradlew build +) \ No newline at end of file diff --git a/java-r5rcore/build.gradle b/java-r5rcore/build.gradle deleted file mode 100644 index aa6051c93..000000000 --- a/java-r5rcore/build.gradle +++ /dev/null @@ -1,42 +0,0 @@ -plugins { - id 'java' -} - -tasks.withType(Jar).configureEach { - preserveFileTimestamps = false - reproducibleFileOrder = true -} - -group 'org.ipea' -version '1.1.0999-SNAPSHOT' - -// Build against the version of R5 that the current r5r download_r5 function will -// grab -def baos = new ByteArrayOutputStream() -exec { - commandLine 'R', '--no-save', '-q', '-s', '-e', 'setwd("../r-package"); devtools::load_all(quiet=T); cat(download_r5());' - standardOutput = baos -} -def r5Path = baos.toString() - -def rjava_baos = new ByteArrayOutputStream() -exec { - commandLine 'R', '--no-save', '-q', '-s', '-e', 'cat(system.file("jri/JRI.jar", package="rJava"))' - standardOutput = rjava_baos -} -def rJavaPath = rjava_baos.toString() - -println(rJavaPath) - -sourceSets { - main { - java { - srcDirs = ['src'] - } - } -} - -dependencies { - implementation files(r5Path) - implementation files(rJavaPath) -} \ No newline at end of file diff --git a/java-r5rcore/gradle/wrapper/gradle-wrapper.jar b/java-r5rcore/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index d64cd4917..000000000 Binary files a/java-r5rcore/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/r-package/.Rbuildignore b/r-package/.Rbuildignore index d7a7296f9..3f2544467 100644 --- a/r-package/.Rbuildignore +++ b/r-package/.Rbuildignore @@ -13,6 +13,16 @@ ^inst/extdata/.*/.*\.mapdb\.p$ ^\.github$ ^inst/img -^inst/jar/r5-.*\.jar$ +# The JAR will be included in the binary package, because it is not in .Rinstignore +^inst/jar$ ^man/figures ^cran-comments\.md$ +^java/r5r/build$ +^java/r5/build$ +^java/build$ +^java/r5r/.gradle$ +^java/r5/.gradle$ +^java/.gradle$ + +# lots of big files used in r5 tests, which we don't need to run +^java/r5/src/test$ \ No newline at end of file diff --git a/r-package/.Rinstignore b/r-package/.Rinstignore new file mode 100644 index 000000000..3ce0a16d0 --- /dev/null +++ b/r-package/.Rinstignore @@ -0,0 +1,3 @@ +^extdata/.*/.*\.dat$ +^extdata/.*/.*\.log$ +^extdata/.*/.*\.mapdb\.p$ \ No newline at end of file diff --git a/r-package/DESCRIPTION b/r-package/DESCRIPTION index d6b82ff89..56fae64ea 100644 --- a/r-package/DESCRIPTION +++ b/r-package/DESCRIPTION @@ -73,10 +73,12 @@ Suggests: patchwork, rJavaEnv, rmarkdown, - testthat + testthat, + devtools VignetteBuilder: knitr Encoding: UTF-8 Roxygen: list(markdown = TRUE) RoxygenNote: 7.3.3 SystemRequirements: Java JDK (>= 21.0) +Biarch: true diff --git a/r-package/NAMESPACE b/r-package/NAMESPACE index 5cb46f69f..228b6be49 100644 --- a/r-package/NAMESPACE +++ b/r-package/NAMESPACE @@ -5,13 +5,11 @@ export(arrival_travel_time_matrix) export(build_network) export(check_transit_availability) export(detailed_itineraries) -export(download_r5) export(expanded_travel_time_matrix) export(find_snap) export(get_gtfs_errors) export(isochrone) export(pareto_frontier) -export(r5r_cache) export(r5r_sitrep) export(read_fare_structure) export(setup_fare_structure) diff --git a/r-package/R/download_r5.R b/r-package/R/download_r5.R deleted file mode 100644 index 4d5f8825c..000000000 --- a/r-package/R/download_r5.R +++ /dev/null @@ -1,103 +0,0 @@ -#' Download `R5.jar` -#' -#' Downloads `R5.jar` and saves it locally, inside the package directory. -#' -#' @param version A string. The version of R5 to be downloaded. When `NULL`, it -#' defaults to the latest version. -#' @param quiet A logical. Whether to show informative messages when downloading -#' the file. Defaults to `FALSE`. -#' @param force_update A logical. Whether to overwrite a previously downloaded -#' `R5.jar` in the local directory. Defaults to `FALSE`. -#' @param temp_dir A logical. Whether the file should be saved in a temporary -#' directory. Defaults to `FALSE`. -#' -#' @return The path to the downloaded file. -#' -#' @family Build network -#' -#' @examplesIf identical(tolower(Sys.getenv("NOT_CRAN")), "true") -#' library(r5r) -#' -#' download_r5(temp_dir = TRUE) -#' @export -download_r5 <- function(version = NULL, - quiet = FALSE, - force_update = FALSE, - temp_dir = FALSE) { - - # R5 version - if (is.null(version)) {version = r5r_env$r5_jar_version} - - - # check inputs ---------------------------------------------------------- - - checkmate::assert_logical(quiet) - checkmate::assert_logical(force_update) - checkmate::assert_logical(temp_dir) - - - # set timeout options --------------------------------------------------- - - old_options <- options() - on.exit(options(old_options), add = TRUE) - - options(timeout = max(600, getOption("timeout"))) - - - # download R5 jar ----------------------------------------------------- - - if (!dir.exists(r5r_env$cache_dir)) {dir.create(r5r_env$cache_dir, recursive = TRUE)} - - file_url <- fileurl_from_metadata(version) - filename <- basename(file_url) - - jar_file <- data.table::fifelse( - temp_dir, - file.path(tempdir(), filename), - file.path( r5r_env$cache_dir , filename) - ) - - # check if the file exists and is not corrupted - if (file.exists(jar_file) && file.info(jar_file)$size < r5r_env$r5_jar_size && isFALSE(force_update)) { - stop(message("R5 Jar file is corrupted. To fix this problem, download it again with 'r5r::download_r5(force_update = TRUE)'")) - } - - # check if the file exists, and returns its path if it does. otherwise, - # download it from IPEA's server - if there's no internet connection "fail - # gracefully" (i.e invisibly returns NULL and outputs a informative message)" - if (file.exists(jar_file) && (force_update == FALSE)) { - if (!quiet) message("Using cached R5 version from ", jar_file) - return(jar_file) - } - - # download JAR - message("Downloading R5 jar file to ", jar_file) - - try(silent = TRUE, - utils::download.file( - url = file_url, - destfile = jar_file, - mode = "wb", - # method = "curl", - # extra = "--insecure", - quiet = quiet - ) - ) - - # try(silent = TRUE, - # httr::GET(url=file_url, - # if(isFALSE(quiet)){ httr::progress()}, - # httr::write_disk(jar_file, overwrite = TRUE), - # config = httr::config(ssl_verifypeer = FALSE)) - # ) - - -# Halt function if download failed (file must exist and be larger than 60 MB) -if (!file.exists(jar_file) | file.info(jar_file)$size < r5r_env$r5_jar_size) { - message('Internet connection not working properly.') - return(invisible(NULL)) - } - - return(jar_file) - -} diff --git a/r-package/R/r5r_cache.R b/r-package/R/r5r_cache.R deleted file mode 100644 index b618654b9..000000000 --- a/r-package/R/r5r_cache.R +++ /dev/null @@ -1,72 +0,0 @@ -#' Manage cached files from the r5r package -#' -#' @param list_files Logical. Whether to print a message with the address of r5r -#' JAR files cached locally. Defaults to `TRUE`. -#' @param delete_file String. The file name (basename) of a JAR file cached -#' locally that should be deleted. Defaults to `NULL`, so that no -#' file is deleted. If `delete_file = "all"`, then all cached files are -#' deleted. -#' -#' @return A message indicating which file exist and/or which ones have been -#' deleted from local cache directory. -#' @export -#' @family Cache data -#' @examplesIf identical(tolower(Sys.getenv("NOT_CRAN")), "true") -#' # download r5 JAR -#' r5r::download_r5() -#' -#' # list all files cached -#' r5r_cache(list_files = TRUE) -#' -#' # delete r5 JAR -#' r5r_cache(delete_file = 'r5-v7.0') -#' -r5r_cache <- function(list_files = TRUE, - delete_file = NULL){ - - # check inputs - checkmate::assert_logical(list_files) - checkmate::assert_character(delete_file, null.ok = TRUE) - - # find / create local dir - if (!dir.exists(r5r_env$cache_dir)) { dir.create(r5r_env$cache_dir, recursive=TRUE) } - - # list cached files - files <- list.files(dirname(r5r_env$cache_dir), full.names = TRUE, recursive = TRUE) - - # if wants to delete file - # delete_file = "r5-v7.0-all.jar" - if (!is.null(delete_file)) { - - # IF file does not exist, print message - if (!any(grepl(delete_file, files)) & delete_file != "all") { - message(paste0("The file '", delete_file, "' is not cached.")) - } - - # IF file exists, delete file - if (any(grepl(delete_file, files))) { - f <- files[grepl(delete_file, files)] - unlink(f, recursive = TRUE, force = TRUE) - message(paste0("The file '", delete_file, "' has been removed.")) - } - - # Delete ALL file - if (delete_file=='all') { - - # delete any files from censobr, current and old data releases - dir_above <- dirname(r5r_env$cache_dir) - unlink(dir_above, recursive = TRUE, force = TRUE) - message(paste0("All files have been removed.")) - - } - } - - # list cached files - files <- list.files(r5r_env$cache_dir, full.names = TRUE) - - # print file names - if(isTRUE(list_files)){ - message('Files currently cached:') - message(paste0(files, collapse = '\n')) - } -} diff --git a/r-package/R/r5r_sitrep.R b/r-package/R/r5r_sitrep.R index 39c0556b1..95077f564 100644 --- a/r-package/R/r5r_sitrep.R +++ b/r-package/R/r5r_sitrep.R @@ -19,23 +19,6 @@ r5r_sitrep <- function() { r5r_package_version <- utils::packageVersion("r5r") - jar_dir <- r5r_env$cache_dir - jar_dir_files <- list.files(jar_dir) - jar_dir_files_full_names <- list.files(jar_dir, full.names = TRUE) - - r5r_jar <- jar_dir_files[grepl("r5r_\\d_\\d_\\d.*\\.jar", jar_dir_files)] - - r5r_jar_version <- r5r_env$r5_jar_version - r5r_jar_path <- jar_dir_files_full_names[ - grepl("\\/r5r_\\d_\\d_\\d*\\.jar", jar_dir_files_full_names) - ] - - r5_jar <- jar_dir_files[grepl("r5-v\\d\\.\\d.*\\.jar", jar_dir_files)] - r5_jar_version <- substr(r5_jar, 5, 7) - r5_jar_path <- jar_dir_files_full_names[ - grepl("\\/r5-v\\d\\.\\d.*\\.jar", jar_dir_files_full_names) - ] - rJava::.jinit() java_version <- rJava::.jcall( "java.lang.System", @@ -45,9 +28,9 @@ r5r_sitrep <- function() { ) set_memory <- getOption("java.parameters") + output_list <- list(r5r_package_version, - r5_jar_version, java_version, # r5_jar_path, # r5r_jar_path, @@ -56,7 +39,6 @@ r5r_sitrep <- function() { utils::sessionInfo()) names(output_list) <- c('r5r_package_version', - 'r5_jar_version', 'java_version', # 'r5_jar_path', # 'r5r_jar_path', diff --git a/r-package/R/utils.R b/r-package/R/utils.R index 7f0cca73c..da0676505 100644 --- a/r-package/R/utils.R +++ b/r-package/R/utils.R @@ -127,37 +127,6 @@ start_r5r_java <- function(data_path, # r5r jar r5r_jar <- system.file("jar/r5r.jar", package = "r5r") rJava::.jaddClassPath(path = r5r_jar) - - # r5r jar - # check if the most recent JAR release is stored already. - fileurl <- fileurl_from_metadata( r5r_env$r5_jar_version ) - filename <- basename(fileurl) - - if (is.null(getOption("r5r.r5jar"))) { - jar_file <- data.table::fifelse( - temp_dir, - file.path(tempdir(), filename), - file.path( r5r_env$cache_dir, filename) - ) - - # If there isn't a JAR already larger than 60MB, download it - if (checkmate::test_file_exists(jar_file) && file.info(jar_file)$size > r5r_env$r5_jar_size) { - if (!verbose) message("Using cached R5 version from ", jar_file) - } else { - check <- download_r5(temp_dir = temp_dir, quiet = !verbose) - if (is.null(check)) { return(invisible(NULL)) } - } - } else { - jar_file <- getOption("r5r.r5jar") - if (checkmate::test_file_exists(jar_file)) { - message("Overriding default R5 with option r5r.r5jar, using ", jar_file) - } else { - stop(paste0("Cannot find r5 jar \"", jar_file, "\", specified in options(r5r.r5jar)")) - } - } - - # R5 jar - rJava::.jaddClassPath(path = jar_file) } # nocov end diff --git a/r-package/configure b/r-package/configure new file mode 100755 index 000000000..6c21296fd --- /dev/null +++ b/r-package/configure @@ -0,0 +1,7 @@ +#!/usr/bin/env sh +set -x + +( + cd java + ./gradlew shadowJar +) \ No newline at end of file diff --git a/r-package/configure.win b/r-package/configure.win new file mode 100644 index 000000000..9cff6ed2c --- /dev/null +++ b/r-package/configure.win @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +sh ./configure \ No newline at end of file diff --git a/r-package/inst/jar/.gitkeep b/r-package/inst/jar/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/java-r5rcore/.gitignore b/r-package/java/.gitignore similarity index 100% rename from java-r5rcore/.gitignore rename to r-package/java/.gitignore diff --git a/java-r5rcore/.idea/artifacts/r5r_1_1_0_jar.xml b/r-package/java/.idea/artifacts/r5r_1_1_0_jar.xml similarity index 100% rename from java-r5rcore/.idea/artifacts/r5r_1_1_0_jar.xml rename to r-package/java/.idea/artifacts/r5r_1_1_0_jar.xml diff --git a/java-r5rcore/.idea/misc.xml b/r-package/java/.idea/misc.xml similarity index 100% rename from java-r5rcore/.idea/misc.xml rename to r-package/java/.idea/misc.xml diff --git a/r-package/java/README b/r-package/java/README deleted file mode 100644 index 7abfa6f7a..000000000 --- a/r-package/java/README +++ /dev/null @@ -1,2 +0,0 @@ -Make CRAN quiet about: - Package has FOSS license, installs .class/.jar but has no 'java' directory. \ No newline at end of file diff --git a/r-package/java/gradle/wrapper/gradle-wrapper.jar b/r-package/java/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..d997cfc60 Binary files /dev/null and b/r-package/java/gradle/wrapper/gradle-wrapper.jar differ diff --git a/java-r5rcore/gradle/wrapper/gradle-wrapper.properties b/r-package/java/gradle/wrapper/gradle-wrapper.properties similarity index 93% rename from java-r5rcore/gradle/wrapper/gradle-wrapper.properties rename to r-package/java/gradle/wrapper/gradle-wrapper.properties index 1af9e0930..c61a118f7 100644 --- a/java-r5rcore/gradle/wrapper/gradle-wrapper.properties +++ b/r-package/java/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/java-r5rcore/gradlew b/r-package/java/gradlew similarity index 93% rename from java-r5rcore/gradlew rename to r-package/java/gradlew index 1aa94a426..739907dfd 100755 --- a/java-r5rcore/gradlew +++ b/r-package/java/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -112,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -170,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -203,15 +203,14 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/java-r5rcore/gradlew.bat b/r-package/java/gradlew.bat similarity index 85% rename from java-r5rcore/gradlew.bat rename to r-package/java/gradlew.bat index 6689b85be..e509b2dd8 100644 --- a/java-r5rcore/gradlew.bat +++ b/r-package/java/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,22 +59,21 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/r-package/java/r5 b/r-package/java/r5 new file mode 160000 index 000000000..81a25c8c5 --- /dev/null +++ b/r-package/java/r5 @@ -0,0 +1 @@ +Subproject commit 81a25c8c562069a236d28f486e4f2bc78ac19fdc diff --git a/r-package/java/r5r/build.gradle b/r-package/java/r5r/build.gradle new file mode 100644 index 000000000..66576e4f9 --- /dev/null +++ b/r-package/java/r5r/build.gradle @@ -0,0 +1,99 @@ +plugins { + id 'java' + id 'com.gradleup.shadow' version '9.4.1' +} + +tasks.withType(Jar).configureEach { + preserveFileTimestamps = false + reproducibleFileOrder = true + archiveFileName.set("r5r.jar") + destinationDirectory.set(file("../../inst/jar")) +} + +group 'org.ipea' +version '2.4.0-SNAPSHOT' + +// Project.exec is removed in gradle 9 so this needs to be its own task +def getRJavaPath = { + def result = providers.exec { + commandLine 'R', '--no-save', '-q', '-s', '-e', 'cat(system.file("jri/JRI.jar", package="rJava"))' + } + + result.standardOutput.asText.get() +} + +sourceSets { + main { + java { + srcDirs = ['src'] + } + } +} + +dependencies { + // GeoTools provides GIS functionality on top of JTS topology suite. + def geotoolsVersion = '25.2' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-main' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-opengis' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-referencing' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-shapefile' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-coverage' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-geojsondatastore' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-geopkg' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-geotiff' + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-image' + // Provides the EPSG coordinate reference system catalog as an HSQL database. + implementation group: 'org.geotools', version: geotoolsVersion, name: 'gt-epsg-hsql' + + implementation 'net.sf.trove4j:trove4j:3.0.3' + + // Provides our logging API + implementation 'org.slf4j:slf4j-api:2.0.7' + + // Implementation of the logging API + implementation 'ch.qos.logback:logback-classic:1.4.11' + + // JSON serialization and deserialization from and to Java objects + implementation 'com.fasterxml.jackson.core:jackson-core:2.10.3' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.3' + + // Provides some Kryo serializers for Guava and Trove collecitons. + // Also provides classes for testing that a round trip through serialization reproduces the same network. + // This is an external dependency (not merged into backend) because it's also used by OTP2. + implementation 'com.conveyal:kryo-tools:1.6.0' + + // Ensure the versions of the next three dependencies match the transitive dependencies of kryo-tools. + implementation 'com.esotericsoftware:kryo:5.5.0' + + implementation files(getRJavaPath()) + + implementation project(':r5') +} + +repositories { + // copied from r5 build.gradle + // Do not use mavenLocal() which is only for interoperability with Maven, let Gradle manage its own cache. + // Put Open Source Geospatial before Maven Central to get JAI core, see https://stackoverflow.com/a/26993223 + maven { url 'https://repo.osgeo.org/repository/release/' } + mavenCentral() + // Polyline encoder 0.2 is now in Maven repo + maven { url 'https://maven.conveyal.com' } +} + +jar { + // For Java 11+ Modules, specify a module name to avoid errors instantiating JAI classes + manifest { + attributes 'Automatic-Module-Name': 'org.ipea.r5r', + 'Build-Jdk-Spec': java.toolchain.languageVersion, + 'Implementation-Title': 'R5R', + 'Implementation-Vendor': 'Ipea', + 'Implementation-Version': project.version + } +} + +shadowJar { + filesMatching("META-INF/services/**") { + duplicatesStrategy = DuplicatesStrategy.INCLUDE + } + mergeServiceFiles() +} \ No newline at end of file diff --git a/java-r5rcore/src/main/resources/logback.xml b/r-package/java/r5r/src/main/resources/logback.xml similarity index 100% rename from java-r5rcore/src/main/resources/logback.xml rename to r-package/java/r5r/src/main/resources/logback.xml diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/FarePerRoute.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/FarePerRoute.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/FarePerRoute.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/FarePerRoute.java diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/FarePerTransfer.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/FarePerTransfer.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/FarePerTransfer.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/FarePerTransfer.java diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/FarePerType.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/FarePerType.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/FarePerType.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/FarePerType.java diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/FareStructure.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/FareStructure.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/FareStructure.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/FareStructure.java diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/FareStructureBuilder.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/FareStructureBuilder.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/FareStructureBuilder.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/FareStructureBuilder.java diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/IntegratedFare.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/IntegratedFare.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/IntegratedFare.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/IntegratedFare.java diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/R5RTransferAllowance.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/R5RTransferAllowance.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/R5RTransferAllowance.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/R5RTransferAllowance.java diff --git a/java-r5rcore/src/org/ipea/r5r/Fares/RuleBasedInRoutingFareCalculator.java b/r-package/java/r5r/src/org/ipea/r5r/Fares/RuleBasedInRoutingFareCalculator.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Fares/RuleBasedInRoutingFareCalculator.java rename to r-package/java/r5r/src/org/ipea/r5r/Fares/RuleBasedInRoutingFareCalculator.java diff --git a/java-r5rcore/src/org/ipea/r5r/JsonUtil.java b/r-package/java/r5r/src/org/ipea/r5r/JsonUtil.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/JsonUtil.java rename to r-package/java/r5r/src/org/ipea/r5r/JsonUtil.java diff --git a/java-r5rcore/src/org/ipea/r5r/Modifications/R5RFileStorage.java b/r-package/java/r5r/src/org/ipea/r5r/Modifications/R5RFileStorage.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Modifications/R5RFileStorage.java rename to r-package/java/r5r/src/org/ipea/r5r/Modifications/R5RFileStorage.java diff --git a/java-r5rcore/src/org/ipea/r5r/Network/NetworkBuilder.java b/r-package/java/r5r/src/org/ipea/r5r/Network/NetworkBuilder.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Network/NetworkBuilder.java rename to r-package/java/r5r/src/org/ipea/r5r/Network/NetworkBuilder.java diff --git a/java-r5rcore/src/org/ipea/r5r/Network/NetworkChecker.java b/r-package/java/r5r/src/org/ipea/r5r/Network/NetworkChecker.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Network/NetworkChecker.java rename to r-package/java/r5r/src/org/ipea/r5r/Network/NetworkChecker.java diff --git a/java-r5rcore/src/org/ipea/r5r/Planner/Trip.java b/r-package/java/r5r/src/org/ipea/r5r/Planner/Trip.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Planner/Trip.java rename to r-package/java/r5r/src/org/ipea/r5r/Planner/Trip.java diff --git a/java-r5rcore/src/org/ipea/r5r/Planner/TripLeg.java b/r-package/java/r5r/src/org/ipea/r5r/Planner/TripLeg.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Planner/TripLeg.java rename to r-package/java/r5r/src/org/ipea/r5r/Planner/TripLeg.java diff --git a/java-r5rcore/src/org/ipea/r5r/Planner/TripPlanner.java b/r-package/java/r5r/src/org/ipea/r5r/Planner/TripPlanner.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Planner/TripPlanner.java rename to r-package/java/r5r/src/org/ipea/r5r/Planner/TripPlanner.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/AccessibilityEstimator.java b/r-package/java/r5r/src/org/ipea/r5r/Process/AccessibilityEstimator.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/AccessibilityEstimator.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/AccessibilityEstimator.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/DetailedItineraryPlanner.java b/r-package/java/r5r/src/org/ipea/r5r/Process/DetailedItineraryPlanner.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/DetailedItineraryPlanner.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/DetailedItineraryPlanner.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/FaretoDebug.java b/r-package/java/r5r/src/org/ipea/r5r/Process/FaretoDebug.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/FaretoDebug.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/FaretoDebug.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/FastDetailedItineraryPlanner.java b/r-package/java/r5r/src/org/ipea/r5r/Process/FastDetailedItineraryPlanner.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/FastDetailedItineraryPlanner.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/FastDetailedItineraryPlanner.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/ParetoFrontierCalculator.java b/r-package/java/r5r/src/org/ipea/r5r/Process/ParetoFrontierCalculator.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/ParetoFrontierCalculator.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/ParetoFrontierCalculator.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/ParetoItineraryPlanner.java b/r-package/java/r5r/src/org/ipea/r5r/Process/ParetoItineraryPlanner.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/ParetoItineraryPlanner.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/ParetoItineraryPlanner.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/PathOptionsTable.java b/r-package/java/r5r/src/org/ipea/r5r/Process/PathOptionsTable.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/PathOptionsTable.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/PathOptionsTable.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/R5DataFrameProcess.jav b/r-package/java/r5r/src/org/ipea/r5r/Process/R5DataFrameProcess.jav similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/R5DataFrameProcess.jav rename to r-package/java/r5r/src/org/ipea/r5r/Process/R5DataFrameProcess.jav diff --git a/java-r5rcore/src/org/ipea/r5r/Process/R5DataFrameProcess.java b/r-package/java/r5r/src/org/ipea/r5r/Process/R5DataFrameProcess.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/R5DataFrameProcess.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/R5DataFrameProcess.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/R5Process.java b/r-package/java/r5r/src/org/ipea/r5r/Process/R5Process.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/R5Process.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/R5Process.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/RegularGridProcess.java b/r-package/java/r5r/src/org/ipea/r5r/Process/RegularGridProcess.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/RegularGridProcess.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/RegularGridProcess.java diff --git a/java-r5rcore/src/org/ipea/r5r/Process/TravelTimeMatrixComputer.java b/r-package/java/r5r/src/org/ipea/r5r/Process/TravelTimeMatrixComputer.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Process/TravelTimeMatrixComputer.java rename to r-package/java/r5r/src/org/ipea/r5r/Process/TravelTimeMatrixComputer.java diff --git a/java-r5rcore/src/org/ipea/r5r/R5/R5ParetoServer.java b/r-package/java/r5r/src/org/ipea/r5r/R5/R5ParetoServer.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/R5/R5ParetoServer.java rename to r-package/java/r5r/src/org/ipea/r5r/R5/R5ParetoServer.java diff --git a/java-r5rcore/src/org/ipea/r5r/R5/R5TravelTimeComputer.java b/r-package/java/r5r/src/org/ipea/r5r/R5/R5TravelTimeComputer.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/R5/R5TravelTimeComputer.java rename to r-package/java/r5r/src/org/ipea/r5r/R5/R5TravelTimeComputer.java diff --git a/java-r5rcore/src/org/ipea/r5r/R5RCore.java b/r-package/java/r5r/src/org/ipea/r5r/R5RCore.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/R5RCore.java rename to r-package/java/r5r/src/org/ipea/r5r/R5RCore.java diff --git a/java-r5rcore/src/org/ipea/r5r/RDataFrame.java b/r-package/java/r5r/src/org/ipea/r5r/RDataFrame.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/RDataFrame.java rename to r-package/java/r5r/src/org/ipea/r5r/RDataFrame.java diff --git a/java-r5rcore/src/org/ipea/r5r/RegularGridResult.java b/r-package/java/r5r/src/org/ipea/r5r/RegularGridResult.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/RegularGridResult.java rename to r-package/java/r5r/src/org/ipea/r5r/RegularGridResult.java diff --git a/java-r5rcore/src/org/ipea/r5r/RoutingProperties.java b/r-package/java/r5r/src/org/ipea/r5r/RoutingProperties.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/RoutingProperties.java rename to r-package/java/r5r/src/org/ipea/r5r/RoutingProperties.java diff --git a/java-r5rcore/src/org/ipea/r5r/Scenario/DummyScenario.java b/r-package/java/r5r/src/org/ipea/r5r/Scenario/DummyScenario.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Scenario/DummyScenario.java rename to r-package/java/r5r/src/org/ipea/r5r/Scenario/DummyScenario.java diff --git a/java-r5rcore/src/org/ipea/r5r/Scenario/R5RShapefileLts.java b/r-package/java/r5r/src/org/ipea/r5r/Scenario/R5RShapefileLts.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Scenario/R5RShapefileLts.java rename to r-package/java/r5r/src/org/ipea/r5r/Scenario/R5RShapefileLts.java diff --git a/java-r5rcore/src/org/ipea/r5r/Scenario/R5RShapefileMatcher.java b/r-package/java/r5r/src/org/ipea/r5r/Scenario/R5RShapefileMatcher.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Scenario/R5RShapefileMatcher.java rename to r-package/java/r5r/src/org/ipea/r5r/Scenario/R5RShapefileMatcher.java diff --git a/java-r5rcore/src/org/ipea/r5r/Scenario/RoadCongestionOSM.java b/r-package/java/r5r/src/org/ipea/r5r/Scenario/RoadCongestionOSM.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Scenario/RoadCongestionOSM.java rename to r-package/java/r5r/src/org/ipea/r5r/Scenario/RoadCongestionOSM.java diff --git a/java-r5rcore/src/org/ipea/r5r/Scenario/SetLtsOsm.java b/r-package/java/r5r/src/org/ipea/r5r/Scenario/SetLtsOsm.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Scenario/SetLtsOsm.java rename to r-package/java/r5r/src/org/ipea/r5r/Scenario/SetLtsOsm.java diff --git a/java-r5rcore/src/org/ipea/r5r/SnapFinder.java b/r-package/java/r5r/src/org/ipea/r5r/SnapFinder.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/SnapFinder.java rename to r-package/java/r5r/src/org/ipea/r5r/SnapFinder.java diff --git a/java-r5rcore/src/org/ipea/r5r/StreetNetwork.java b/r-package/java/r5r/src/org/ipea/r5r/StreetNetwork.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/StreetNetwork.java rename to r-package/java/r5r/src/org/ipea/r5r/StreetNetwork.java diff --git a/java-r5rcore/src/org/ipea/r5r/TransitNetwork.java b/r-package/java/r5r/src/org/ipea/r5r/TransitNetwork.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/TransitNetwork.java rename to r-package/java/r5r/src/org/ipea/r5r/TransitNetwork.java diff --git a/java-r5rcore/src/org/ipea/r5r/Utils/RMapBuilder.java b/r-package/java/r5r/src/org/ipea/r5r/Utils/RMapBuilder.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Utils/RMapBuilder.java rename to r-package/java/r5r/src/org/ipea/r5r/Utils/RMapBuilder.java diff --git a/java-r5rcore/src/org/ipea/r5r/Utils/SpeedSetter.java b/r-package/java/r5r/src/org/ipea/r5r/Utils/SpeedSetter.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Utils/SpeedSetter.java rename to r-package/java/r5r/src/org/ipea/r5r/Utils/SpeedSetter.java diff --git a/java-r5rcore/src/org/ipea/r5r/Utils/Utils.java b/r-package/java/r5r/src/org/ipea/r5r/Utils/Utils.java similarity index 100% rename from java-r5rcore/src/org/ipea/r5r/Utils/Utils.java rename to r-package/java/r5r/src/org/ipea/r5r/Utils/Utils.java diff --git a/r-package/java/settings.gradle b/r-package/java/settings.gradle new file mode 100644 index 000000000..7cf13e34a --- /dev/null +++ b/r-package/java/settings.gradle @@ -0,0 +1 @@ +include('r5r', 'r5') \ No newline at end of file diff --git a/r-package/man/accessibility.Rd b/r-package/man/accessibility.Rd index 4ea5f4dd2..60872c752 100644 --- a/r-package/man/accessibility.Rd +++ b/r-package/man/accessibility.Rd @@ -370,7 +370,7 @@ transit routing. Transportation Science, 49(3), 591-604. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) data_path <- system.file("extdata/poa", package = "r5r") diff --git a/r-package/man/arrival_travel_time_matrix.Rd b/r-package/man/arrival_travel_time_matrix.Rd index c7b5b9fd7..3c6aa5bee 100644 --- a/r-package/man/arrival_travel_time_matrix.Rd +++ b/r-package/man/arrival_travel_time_matrix.Rd @@ -276,7 +276,7 @@ transit routing. Transportation Science, 49(3), 591-604. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # build transport network diff --git a/r-package/man/build_network.Rd b/r-package/man/build_network.Rd index c14c68e46..2d72382a5 100644 --- a/r-package/man/build_network.Rd +++ b/r-package/man/build_network.Rd @@ -71,7 +71,7 @@ information and analysis. 93 (1). \url{https://escholarship.org/uc/item/05r820mz } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # directory with street network and gtfs files @@ -82,7 +82,6 @@ r5r_network <- build_network(data_path) } \seealso{ Other Build network: -\code{\link{download_r5}()}, \code{\link{setup_r5}()} } \concept{Build network} diff --git a/r-package/man/check_transit_availability.Rd b/r-package/man/check_transit_availability.Rd index 8e14b35da..8e0c19f59 100644 --- a/r-package/man/check_transit_availability.Rd +++ b/r-package/man/check_transit_availability.Rd @@ -50,7 +50,7 @@ You can specify the dates to check in two ways: You must use one of these two methods, but not both in the same function call. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) data_path <- system.file("extdata/poa", package = "r5r") r5r_network <- build_network(data_path) diff --git a/r-package/man/congestion_poly2geojson.Rd b/r-package/man/congestion_poly2geojson.Rd index d94c78643..fda7d6dd2 100644 --- a/r-package/man/congestion_poly2geojson.Rd +++ b/r-package/man/congestion_poly2geojson.Rd @@ -17,7 +17,7 @@ Support function that checks the input of speeds polygon passed to \code{build_custom_network()} and saves it to a \code{.geojson} temporary file. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} # read polygons with new speeds congestion_poly <- readRDS( diff --git a/r-package/man/detailed_itineraries.Rd b/r-package/man/detailed_itineraries.Rd index e110d9c23..c1640f385 100644 --- a/r-package/man/detailed_itineraries.Rd +++ b/r-package/man/detailed_itineraries.Rd @@ -312,7 +312,7 @@ Information Science, 33(9), 1759-1787. \doi{10.1080/13658816.2019.1605075} } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # build transport network diff --git a/r-package/man/download_r5.Rd b/r-package/man/download_r5.Rd deleted file mode 100644 index b9be19d00..000000000 --- a/r-package/man/download_r5.Rd +++ /dev/null @@ -1,45 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/download_r5.R -\name{download_r5} -\alias{download_r5} -\title{Download \code{R5.jar}} -\usage{ -download_r5( - version = NULL, - quiet = FALSE, - force_update = FALSE, - temp_dir = FALSE -) -} -\arguments{ -\item{version}{A string. The version of R5 to be downloaded. When \code{NULL}, it -defaults to the latest version.} - -\item{quiet}{A logical. Whether to show informative messages when downloading -the file. Defaults to \code{FALSE}.} - -\item{force_update}{A logical. Whether to overwrite a previously downloaded -\code{R5.jar} in the local directory. Defaults to \code{FALSE}.} - -\item{temp_dir}{A logical. Whether the file should be saved in a temporary -directory. Defaults to \code{FALSE}.} -} -\value{ -The path to the downloaded file. -} -\description{ -Downloads \code{R5.jar} and saves it locally, inside the package directory. -} -\examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} -library(r5r) - -download_r5(temp_dir = TRUE) -\dontshow{\}) # examplesIf} -} -\seealso{ -Other Build network: -\code{\link{build_network}()}, -\code{\link{setup_r5}()} -} -\concept{Build network} diff --git a/r-package/man/expanded_travel_time_matrix.Rd b/r-package/man/expanded_travel_time_matrix.Rd index 79b58cef3..e4c714c46 100644 --- a/r-package/man/expanded_travel_time_matrix.Rd +++ b/r-package/man/expanded_travel_time_matrix.Rd @@ -281,7 +281,7 @@ transit routing. Transportation Science, 49(3), 591-604. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # build transport network diff --git a/r-package/man/find_snap.Rd b/r-package/man/find_snap.Rd index 3649cdded..60c0b3424 100644 --- a/r-package/man/find_snap.Rd +++ b/r-package/man/find_snap.Rd @@ -47,7 +47,7 @@ because some network edges are not available to specific modes (e.g. a pedestrian-only street cannot be used to snap car trips). } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) path <- system.file("extdata/poa", package = "r5r") diff --git a/r-package/man/get_gtfs_errors.Rd b/r-package/man/get_gtfs_errors.Rd index 52d0f6c21..36cd72786 100644 --- a/r-package/man/get_gtfs_errors.Rd +++ b/r-package/man/get_gtfs_errors.Rd @@ -20,7 +20,7 @@ network build fails, you won't have a network object, so you can also call this with the \code{data_path} to where the network is stored. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # directory with street network and gtfs files diff --git a/r-package/man/isochrone.Rd b/r-package/man/isochrone.Rd index 544888be0..f02a41ef2 100644 --- a/r-package/man/isochrone.Rd +++ b/r-package/man/isochrone.Rd @@ -255,7 +255,7 @@ transit routing. Transportation Science, 49(3), 591-604. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} options(java.parameters = "-Xmx2G") library(r5r) library(ggplot2) diff --git a/r-package/man/lts_lines2shp.Rd b/r-package/man/lts_lines2shp.Rd index d3babef5f..cb9a94c63 100644 --- a/r-package/man/lts_lines2shp.Rd +++ b/r-package/man/lts_lines2shp.Rd @@ -17,7 +17,7 @@ Support function that checks the input of LTS lines passed to and saves it to a \code{.shp} temporary file. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} # read lines with new speeds new_lts_lines <- readRDS( diff --git a/r-package/man/pareto_frontier.Rd b/r-package/man/pareto_frontier.Rd index fe9392726..d4ddd76ca 100644 --- a/r-package/man/pareto_frontier.Rd +++ b/r-package/man/pareto_frontier.Rd @@ -267,7 +267,7 @@ Information Science, 33(9), 1759-1787. \doi{10.1080/13658816.2019.1605075} } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # build transport network diff --git a/r-package/man/r5r_cache.Rd b/r-package/man/r5r_cache.Rd deleted file mode 100644 index d5f044549..000000000 --- a/r-package/man/r5r_cache.Rd +++ /dev/null @@ -1,37 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/r5r_cache.R -\name{r5r_cache} -\alias{r5r_cache} -\title{Manage cached files from the r5r package} -\usage{ -r5r_cache(list_files = TRUE, delete_file = NULL) -} -\arguments{ -\item{list_files}{Logical. Whether to print a message with the address of r5r -JAR files cached locally. Defaults to \code{TRUE}.} - -\item{delete_file}{String. The file name (basename) of a JAR file cached -locally that should be deleted. Defaults to \code{NULL}, so that no -file is deleted. If \code{delete_file = "all"}, then all cached files are -deleted.} -} -\value{ -A message indicating which file exist and/or which ones have been -deleted from local cache directory. -} -\description{ -Manage cached files from the r5r package -} -\examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} -# download r5 JAR -r5r::download_r5() - -# list all files cached -r5r_cache(list_files = TRUE) - -# delete r5 JAR -r5r_cache(delete_file = 'r5-v7.0') -\dontshow{\}) # examplesIf} -} -\concept{Cache data} diff --git a/r-package/man/r5r_sitrep.Rd b/r-package/man/r5r_sitrep.Rd index 22ddddfa4..aad6915ca 100644 --- a/r-package/man/r5r_sitrep.Rd +++ b/r-package/man/r5r_sitrep.Rd @@ -21,7 +21,7 @@ The function reports a list with the following information: } } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} r5r_sitrep() \dontshow{\}) # examplesIf} } diff --git a/r-package/man/read_fare_structure.Rd b/r-package/man/read_fare_structure.Rd index bb2284ede..b0b36cbbc 100644 --- a/r-package/man/read_fare_structure.Rd +++ b/r-package/man/read_fare_structure.Rd @@ -22,7 +22,7 @@ A fare structure object. Read a fare structure object from a file } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} path <- system.file("extdata/poa/fares/fares_poa.zip", package = "r5r") fare_structure <- read_fare_structure(path) \dontshow{\}) # examplesIf} diff --git a/r-package/man/setup_fare_structure.Rd b/r-package/man/setup_fare_structure.Rd index afe36c4bb..32b412b1e 100644 --- a/r-package/man/setup_fare_structure.Rd +++ b/r-package/man/setup_fare_structure.Rd @@ -70,7 +70,7 @@ manually edited and adjusted to the existing rules in your study area, as long as they stick to some basic premises. Please see the \href{../doc/fare_structure.html}{fare-structure vignette} for more information. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) data_path <- system.file("extdata/poa", package = "r5r") diff --git a/r-package/man/setup_r5.Rd b/r-package/man/setup_r5.Rd index e22860818..57b40fb63 100644 --- a/r-package/man/setup_r5.Rd +++ b/r-package/man/setup_r5.Rd @@ -67,7 +67,7 @@ information and analysis. 93 (1). \url{https://escholarship.org/uc/item/05r820mz } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # directory with street network and gtfs files @@ -79,7 +79,6 @@ r5r_network <- build_network(data_path) } \seealso{ Other Build network: -\code{\link{build_network}()}, -\code{\link{download_r5}()} +\code{\link{build_network}()} } \concept{Build network} diff --git a/r-package/man/stop_r5.Rd b/r-package/man/stop_r5.Rd index d7910d349..3c92b2c50 100644 --- a/r-package/man/stop_r5.Rd +++ b/r-package/man/stop_r5.Rd @@ -17,7 +17,7 @@ No return value, called for side effects. Stops running r5r network } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) path <- system.file("extdata/poa", package = "r5r") diff --git a/r-package/man/street_network_bbox.Rd b/r-package/man/street_network_bbox.Rd index 4dc4c1f49..eac91cfe8 100644 --- a/r-package/man/street_network_bbox.Rd +++ b/r-package/man/street_network_bbox.Rd @@ -31,7 +31,7 @@ routable transport network built with \code{\link[=build_network]{build_network( memory-efficient alternative to \code{sf::st_bbox(street_network_to_sf(r5r_net))}. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) library(sf) diff --git a/r-package/man/street_network_to_sf.Rd b/r-package/man/street_network_to_sf.Rd index 0857af73e..427be8053 100644 --- a/r-package/man/street_network_to_sf.Rd +++ b/r-package/man/street_network_to_sf.Rd @@ -21,7 +21,7 @@ Extracts the OpenStreetMap network in \code{sf} format from a routable transport network built with \code{\link[=build_network]{build_network()}}). } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # build transport network diff --git a/r-package/man/transit_network_to_sf.Rd b/r-package/man/transit_network_to_sf.Rd index e7fd4c726..a102881d0 100644 --- a/r-package/man/transit_network_to_sf.Rd +++ b/r-package/man/transit_network_to_sf.Rd @@ -28,7 +28,7 @@ Extracts the transit network in \code{sf} format from a routable transport netwo built with \code{\link[=build_network]{build_network()}}). } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # build transport network diff --git a/r-package/man/travel_time_matrix.Rd b/r-package/man/travel_time_matrix.Rd index 2fd8876e4..e6695e35b 100644 --- a/r-package/man/travel_time_matrix.Rd +++ b/r-package/man/travel_time_matrix.Rd @@ -289,7 +289,7 @@ transit routing. Transportation Science, 49(3), 591-604. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) # build transport network diff --git a/r-package/man/write_fare_structure.Rd b/r-package/man/write_fare_structure.Rd index 7bf1bb824..505a03821 100644 --- a/r-package/man/write_fare_structure.Rd +++ b/r-package/man/write_fare_structure.Rd @@ -24,7 +24,7 @@ Writes a fare structure object do disk. Fare structure is saved as a collection of \code{.csv} files inside a \code{.zip} file. } \examples{ -\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) withAutoprint(\{ # examplesIf} +\dontshow{if (identical(tolower(Sys.getenv("NOT_CRAN")), "true")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(r5r) data_path <- system.file("extdata/poa", package = "r5r") diff --git a/r-package/pkgdown/_pkgdown.yml b/r-package/pkgdown/_pkgdown.yml index 8440ff1e0..0995dfb72 100644 --- a/r-package/pkgdown/_pkgdown.yml +++ b/r-package/pkgdown/_pkgdown.yml @@ -41,6 +41,4 @@ reference: - find_snap - get_gtfs_errors - r5r_sitrep - - r5r_cache - - download_r5 - stop_r5 diff --git a/r-package/tests/tests_marcus/fares.R b/r-package/tests/tests_marcus/fares.R index 32fd0e738..0ff54ba61 100644 --- a/r-package/tests/tests_marcus/fares.R +++ b/r-package/tests/tests_marcus/fares.R @@ -1,11 +1,11 @@ library("tidyverse") -fare_schema_df <- read_csv("../java-r5rcore/src/main/resources/fares/rio/fare_schema.csv") -routes_info_df <- read_csv("../java-r5rcore/src/main/resources/fares/rio/routes_info.csv") +fare_schema_df <- read_csv("src/src/main/resources/fares/rio/fare_schema.csv") +routes_info_df <- read_csv("src/src/main/resources/fares/rio/routes_info.csv") modes_prices_df <- routes_info_df %>% select(type, price) %>% distinct() -modes_prices_df %>% write_csv("../java-r5rcore/src/main/resources/fares/rio/price_per_mode.csv") +modes_prices_df %>% write_csv("src/src/main/resources/fares/rio/price_per_mode.csv") diff --git a/r-package/tests/tests_rafa/test_rafa.R b/r-package/tests/tests_rafa/test_rafa.R index d51937bab..04244940d 100644 --- a/r-package/tests/tests_rafa/test_rafa.R +++ b/r-package/tests/tests_rafa/test_rafa.R @@ -699,7 +699,6 @@ Sys.setenv(NOT_CRAN = "true") # each function separately -covr::function_coverage(fun=r5r::download_r5, test_file("tests/testthat/test-download_r5.R")) covr::function_coverage(fun=r5r::setup_r5, test_file("tests/testthat/test-setup_r5.R")) a <- covr::function_coverage(fun=r5r::travel_time_matrix, test_file("tests/testthat/test-travel_time_matrix.R")) a <- covr::function_coverage(fun=r5r::isochrone, test_file("tests/testthat/test-isochrone.R")) @@ -715,10 +714,6 @@ a <- covr::function_coverage(fun=r5r:::set_verbose, test_file("tests/testthat/te covr::function_coverage(fun=r5r::street_network_to_sf, test_file("tests/testthat/test-street_network_to_sf.R")) covr::function_coverage(fun=r5r::transit_network_to_sf, test_file("tests/testthat/test-transit_network_to_sf.R")) - -a <- covr::function_coverage(fun=r5r::r5r_cache, test_file("tests/testthat/test-z_r5r_cache.R")) - - covr::function_coverage(fun=r5r::set_max_walk_distance, test_file("tests/testthat/test-utils.R")) covr::function_coverage(fun=r5r::posix_to_string, test_file("tests/testthat/test-utils.R")) covr::function_coverage(fun=r5r::assert_points_input, test_file("tests/testthat/test-utils.R")) diff --git a/r-package/tests/testthat/test-download_r5.R b/r-package/tests/testthat/test-download_r5.R deleted file mode 100644 index 629dc3762..000000000 --- a/r-package/tests/testthat/test-download_r5.R +++ /dev/null @@ -1,28 +0,0 @@ -context("download_r5") - -# skips tests on CRAN -testthat::skip_on_cran() - -# expected behavior -test_that("download_r5 - expected behavior", { - - testthat::expect_vector(download_r5(force_update = TRUE, temp_dir = TRUE)) - testthat::expect_vector(download_r5(force_update = TRUE, temp_dir = FALSE)) - testthat::expect_vector(download_r5(force_update = FALSE, temp_dir = TRUE)) - testthat::expect_vector(download_r5(force_update = FALSE, quiet = TRUE)) - - # testthat::expect_vector(download_r5()) - # file.remove(file.path(.libPaths()[1], "r5r", "jar", "r5r_v4.9.0.jar")) - # testthat::expect_vector(download_r5(version='4.9.0')) - -}) - -# Expected errors -test_that("download_r5 - expected errors", { - - testthat::expect_error( download_r5(version = "0") ) - testthat::expect_error(download_r5(force_update = 'a')) - testthat::expect_error(download_r5(quiet = 'a')) - testthat::expect_error(download_r5(temp_dir = 'a')) - - }) diff --git a/r-package/tests/testthat/test-write_fare_structure.R b/r-package/tests/testthat/test-write_fare_structure.R index 32b351bb6..a81074860 100644 --- a/r-package/tests/testthat/test-write_fare_structure.R +++ b/r-package/tests/testthat/test-write_fare_structure.R @@ -29,6 +29,3 @@ test_that("written structure is identical to original", { written_struc <- read_fare_structure(tmpfile) expect_identical(struc, written_struc) }) - -# clean cache -r5r::r5r_cache(delete_file = 'all') diff --git a/r-package/tests/testthat/test-z_r5r_cache.R b/r-package/tests/testthat/test-z_r5r_cache.R deleted file mode 100644 index fa8c2cfe4..000000000 --- a/r-package/tests/testthat/test-z_r5r_cache.R +++ /dev/null @@ -1,56 +0,0 @@ -context("r5r_cache") - -# skip tests because they take too much time -skip_if(Sys.getenv("TEST_ONE") != "") -testthat::skip_on_cran() - -try(silent = TRUE, r5r::stop_r5()) - -# Reading the data ----------------------- - -test_that("r5r_cache", { - - # simply list files - testthat::expect_message( r5r::r5r_cache() ) - - ## delete existing - - # download - r5r::download_r5(force_update = FALSE) - - # cache dir - cache_d <- paste0('r5r/r5_jar_v', r5r_env$r5_jar_version) - cache_dir <- tools::R_user_dir(cache_d, which = 'cache') - - # list cached files - fname_full <- list.files(cache_dir, full.names = TRUE) - fname <- basename(fname_full) - - testthat::expect_true( file.exists(fname_full) ) - testthat::expect_message( r5r::r5r_cache(delete_file = fname) ) - # testthat::expect_false( file.exists(fname_full) ) - - ## delete ALL - # download - r5r::download_r5(force_update = FALSE) - - testthat::expect_true( file.exists(fname_full) ) - testthat::expect_message( r5r::r5r_cache(delete_file = 'all') ) - # testthat::expect_true( length(list.files(cache_dir)) == 0 ) - - # if file does not exist, simply print message - testthat::expect_message( r5r::r5r_cache(delete_file ='aaa') ) - - }) - - -# ERRORS and messages ----------------------- -test_that("r5r_cache", { - - testthat::expect_error(r5r_cache(list_files= 999)) - testthat::expect_error(r5r_cache(delete_file = 999)) - }) - - -# clean cache -r5r_cache(delete_file = 'all') diff --git a/r-package/vignettes/r5r.Rmd b/r-package/vignettes/r5r.Rmd index 042f52329..7dc277354 100644 --- a/r-package/vignettes/r5r.Rmd +++ b/r-package/vignettes/r5r.Rmd @@ -394,13 +394,6 @@ knitr::include_graphics("https://github.com/ipeaGIT/r5r/blob/master/r-package/in r5r::stop_r5(r5r_network) rJava::.jgc(R.gc = TRUE) ``` - -```{r, eval = TRUE, include = FALSE, message = FALSE} -# clean cache (CRAN policy) -r5r::r5r_cache(delete_file = 'all') - -``` - If you have any suggestions or want to report an error, please visit [the package GitHub page](https://github.com/ipeaGIT/r5r). diff --git a/r-package/vignettes/travel_time_matrix.Rmd b/r-package/vignettes/travel_time_matrix.Rmd index a04f96357..6abb15cc8 100644 --- a/r-package/vignettes/travel_time_matrix.Rmd +++ b/r-package/vignettes/travel_time_matrix.Rmd @@ -204,12 +204,6 @@ r5r::stop_r5(r5r_network) rJava::.jgc(R.gc = TRUE) ``` -```{r, eval = TRUE, include = FALSE, message = FALSE} -# clean cache (CRAN policy) -r5r::r5r_cache(delete_file = 'all') - -``` - If you have any suggestions or want to report an error, please visit [the package GitHub page](https://github.com/ipeaGIT/r5r). ## References