This is an automated email from the ASF dual-hosted git repository. jamesfredley pushed a commit to branch moved-grails-core in repository https://gitbox.apache.org/repos/asf/grails-wrapper.git
commit 49cdc2ef4964b5be539f7040733bab21add34a6d Author: James Fredley <[email protected]> AuthorDate: Fri May 2 12:19:43 2025 -0400 Moved to grails-core --- .github/dependabot.yml | 10 - .github/release-drafter.yml | 37 --- .github/workflows/gradle.yml | 42 ---- .github/workflows/release-notes.yml | 47 ---- .github/workflows/release.yml | 62 ----- .gitignore | 5 - LICENSE | 201 ---------------- README.md | 33 +-- build.gradle | 48 ---- gradle.properties | 5 - gradle/wrapper/gradle-wrapper.jar | Bin 43583 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 7 - gradlew | 252 --------------------- gradlew.bat | 94 -------- publishing/grailsCentralPublishing.gradle | 46 ---- settings.gradle | 29 --- shell/grailsw | 152 ------------- shell/grailsw.bat | 89 -------- starter/build.gradle | 8 - .../main/java/grails/init/FindReleaseHandler.java | 49 ---- starter/src/main/java/grails/init/Start.java | 124 ---------- .../proxy/SystemPropertiesAuthenticator.java | 17 -- wrapper/build.gradle | 115 ---------- .../src/main/groovy/grails/init/RunCommand.groovy | 60 ----- 24 files changed, 1 insertion(+), 1531 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 9b2d7bf..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: 2 -updates: -- package-ecosystem: gradle - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 - target-branch: main - labels: - - "type: dependency upgrade" diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index c049edc..0000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,37 +0,0 @@ -name-template: $NEXT_PATCH_VERSION -tag-template: v$NEXT_PATCH_VERSION -version-resolver: - major: - labels: - - 'type: major' - minor: - labels: - - 'type: minor' - patch: - labels: - - 'type: patch' - default: patch -categories: - - title: 🚀 Features - labels: - - "type: enhancement" - - "type: new feature" - - "type: major" - - title: 🚀 Bug Fixes/Improvements - labels: - - "type: improvement" - - "type: bug" - - "type: minor" - - title: 🛠 Dependency upgrades - labels: - - "type: dependency upgrade" - - "dependencies" -change-template: '- $TITLE @$AUTHOR (#$NUMBER)' -template: | - ## Changes - - $CHANGES - - ## Contributors - - $CONTRIBUTORS diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml deleted file mode 100644 index 921886b..0000000 --- a/.github/workflows/gradle.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Java CI -on: - push: - branches: - - '[1-9]+.[0-9]+.x' - - master - pull_request: - branches: - - '[1-9]+.[0-9]+.x' - - master -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - java: ['17'] - env: - WORKSPACE: ${{ github.workspace }} - GRADLE_OPTS: -Xmx1500m -Dfile.encoding=UTF-8 - steps: - - name: "📥 Checkout repository" - uses: actions/checkout@v4 - - name: "☕️ Setup JDK" - uses: actions/setup-java@v4 - with: - distribution: liberica - java-version: ${{ matrix.java }} - - name: "🐘 Setup Gradle" - uses: gradle/actions/setup-gradle@v4 - with: - develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }} - - name: "🔨 Run Assemble" - if: github.event_name == 'push' && matrix.java == '17' - run: ./gradlew assemble - - name: "📤 Publish Snapshot Artifacts to Apache Snapshot Repo" - if: github.event_name == 'push' && matrix.java == '17' - env: - MAVEN_PUBLISH_URL: ${{ secrets.GRAILS_NEXUS_PUBLISH_SNAPSHOT_URL }} - MAVEN_PUBLISH_USERNAME: ${{ secrets.NEXUS_USER }} - MAVEN_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PW }} - run: | - ./gradlew publish diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml deleted file mode 100644 index 2946a2a..0000000 --- a/.github/workflows/release-notes.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Changelog -on: - issues: - types: [closed,reopened] - push: - branches: - - master - - '[1-9]+.[0-9]+.x' - workflow_dispatch: -jobs: - release_notes: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Check if it has release drafter config file - id: check_release_drafter - run: | - has_release_drafter=$([ -f .github/release-drafter.yml ] && echo "true" || echo "false") - echo ::set-output name=has_release_drafter::${has_release_drafter} - - # If it has release drafter: - - uses: release-drafter/release-drafter@v6 - if: steps.check_release_drafter.outputs.has_release_drafter == 'true' - env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} - with: - prerelease: false - commitish: main - # Otherwise: - - name: Export Gradle Properties - if: steps.check_release_drafter.outputs.has_release_drafter == 'false' - uses: apache/grails-github-actions/export-gradle-properties@asf - - uses: apache/grails-github-actions/release-notes@asf - if: steps.check_release_drafter.outputs.has_release_drafter == 'false' - id: release_notes - # with: - # token: ${{ secrets.GH_TOKEN }} - - uses: ncipollo/release-action@1e3e9c6637e5566e185b7ab66f187539c5a76da7 - if: steps.check_release_drafter.outputs.has_release_drafter == 'false' && steps.release_notes.outputs.generated_changelog == 'true' - with: - allowUpdates: true - commit: ${{ steps.release_notes.outputs.current_branch }} - draft: true - name: ${{ env.title }} ${{ steps.release_notes.outputs.next_version }} - tag: v${{ steps.release_notes.outputs.next_version }} - bodyFile: CHANGELOG.md - token: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 0cebd3d..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Release -on: - release: - types: [published] -jobs: - release: - runs-on: ubuntu-latest - strategy: - matrix: - java: ['17'] - env: - GIT_USER_NAME: 'grails-build' - GIT_USER_EMAIL: '[email protected]' - steps: - - name: "📥 Checkout repository" - uses: actions/checkout@v4 - - name: "☕️ Setup JDK" - uses: actions/setup-java@v4 - with: - distribution: liberica - java-version: ${{ matrix.java }} - - name: "🐘 Setup Gradle" - uses: gradle/actions/setup-gradle@v4 - with: - develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }} - - name: "🔀 Extract Target Branch" - id: extract_branch - run: | - echo "Determining Target Branch" - TARGET_BRANCH=`cat $GITHUB_EVENT_PATH | jq '.release.target_commitish' | sed -e 's/^"\(.*\)"$/\1/g'` - echo $TARGET_BRANCH - echo ::set-output name=value::${TARGET_BRANCH} - - name: "📅 Set the current release version" - id: release_version - run: echo ::set-output name=release_version::${GITHUB_REF:11} - - name: "⚙️ Run pre-release" - uses: apache/grails-github-actions/pre-release@asf - with: - token: ${{ secrets.GITHUB_TOKEN }} - - name: "📤 Publish to Sonatype OSSRH" - id: publish - env: - SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} - SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} - SONATYPE_NEXUS_URL: ${{ secrets.SONATYPE_NEXUS_URL }} - SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} - SIGNING_KEY: ${{ secrets.SIGNING_KEY }} - SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }} - SECRING_FILE: ${{ secrets.SECRING_FILE }} - run: | - echo $SECRING_FILE | base64 -d > secring.gpg - echo "Publishing Artifacts" - (set -x; ./gradlew -Psigning.secretKeyRingFile="${GITHUB_WORKSPACE}/secring.gpg" publishToSonatype closeAndReleaseSonatypeStagingRepository --no-daemon) - (set -x; ./gradlew assemble --no-daemon) - - name: "📤 Export Gradle Properties" - uses: apache/grails-github-actions/export-gradle-properties@asf - - name: "⚙️ Run post-release" - uses: apache/grails-github-actions/post-release@asf - with: - token: ${{ secrets.GITHUB_TOKEN }} - env: - SNAPSHOT_SUFFIX: -SNAPSHOT diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 4eb4732..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -.gradle/ -.idea/ -**/build/ -**/.DS_Store -*.iml diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 8dada3e..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/README.md b/README.md index 53e8677..7cddb3c 100644 --- a/README.md +++ b/README.md @@ -1,32 +1 @@ -# Grails Wrapper - -#### Build Status -- [](https://github.com/apache/grails-wrapper/actions/workflows/gradle.yml) - -Update to the latest wrapper release based on Grails version ---- - - ./grailsw update-wrapper - -Versions ---- - -| Grails | Wrapper | -|---------------|---------------------------------------------------------------| -| 5.0.0 - 5.3.3 | [3.0.0.M1](https://github.com/apache/grails-wrapper/releases) | -| 5.3.4 - 5.3.X | [3.1.x](https://github.com/apache/grails-wrapper/releases) | -| 6.x.x | [4.0.x](https://github.com/apache/grails-wrapper/releases) | -| 7.x.x | [7.0.x](https://github.com/apache/grails-wrapper/releases) | - -Release Process ---- - -- Release new version via GitHub Releases -- After GitHub action is completed and only after the new release is visible on https://central.sonatype.com/artifact/org.apache.grails/grails7-wrapper/versions -- Update the branch to trigger gradle.yml to publish the next snapshot which will update the release version on https://repository.apache.org/content/groups/snapshots/org/apache/grails/grails7-wrapper/maven-metadata.xml -- The release version will be installed locally by grails-wrapper.jar, latest is only used when release is not present - -```xml - <latest>7.0.1-SNAPSHOT</latest> - <release>7.0.0</release> -``` \ No newline at end of file +This project has been relocated to [grails-core](https://github.com/apache/grails-core) as of Grails 7. \ No newline at end of file diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 70b1f04..0000000 --- a/build.gradle +++ /dev/null @@ -1,48 +0,0 @@ -buildscript { - repositories { - mavenCentral() - maven { url = 'https://repository.apache.org/content/groups/snapshots' } - maven { url = 'https://repo.grails.org/grails/core' } - maven { url = 'https://plugins.gradle.org/m2' } - } - dependencies { - classpath platform("org.apache.grails:grails-gradle-bom:$grailsVersion") - classpath "org.apache.grails:grails-gradle-plugins" - classpath "io.github.gradle-nexus:publish-plugin:$nexusPublishPluginVersion" - } -} - -ext.isSnapshot = project.projectVersion.endsWith("-SNAPSHOT") -ext.isReleaseVersion = !ext.isSnapshot -ext."signing.keyId" = System.getenv("SIGNING_KEY") ?: project.hasProperty("signing.keyId") ? project.getProperty('signing.keyId') : null -ext."signing.password" = System.getenv("SIGNING_PASSPHRASE") ?: project.hasProperty("signing.password") ? project.getProperty('signing.password') : null -ext."signing.secretKeyRingFile" = project.hasProperty("signing.secretKeyRingFile") ? project.getProperty('signing.secretKeyRingFile') : null - -if (isReleaseVersion) { - apply plugin: "io.github.gradle-nexus.publish-plugin" -} - -if (isReleaseVersion) { - nexusPublishing { - repositories { - sonatype { - def ossUser = System.getenv("SONATYPE_USERNAME") ?: project.hasProperty("sonatypeOssUsername") ? project.sonatypeOssUsername : '' - def ossPass = System.getenv("SONATYPE_PASSWORD") ?: project.hasProperty("sonatypeOssPassword") ? project.sonatypeOssPassword : '' - def ossStagingProfileId = System.getenv("SONATYPE_STAGING_PROFILE_ID") ?: project.hasProperty("sonatypeOssStagingProfileId") ? project.sonatypeOssStagingProfileId : '' - nexusUrl = uri("https://s01.oss.sonatype.org/service/local/") - username = ossUser - password = ossPass - stagingProfileId = ossStagingProfileId - } - } - } -} - -allprojects { - group = 'org.apache.grails' - version = projectVersion - - apply plugin: "java" - - compileJava.options.release = 17 -} diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index a07ab54..0000000 --- a/gradle.properties +++ /dev/null @@ -1,5 +0,0 @@ -projectVersion=7.0.0-SNAPSHOT -gradleNexusPluginVersion=2.3.1 -grailsVersion=7.0.0-SNAPSHOT -nexusPublishPluginVersion=2.0.0 -plexusSecDispatcherVersion=1.4 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index a4b76b9..0000000 Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index df97d72..0000000 --- a/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew deleted file mode 100755 index f5feea6..0000000 --- a/gradlew +++ /dev/null @@ -1,252 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 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. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/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/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# 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 -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# 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" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -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, -# 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 \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index 9b42019..0000000 --- a/gradlew.bat +++ /dev/null @@ -1,94 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@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 ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -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 - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -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 %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/publishing/grailsCentralPublishing.gradle b/publishing/grailsCentralPublishing.gradle deleted file mode 100644 index 272eefa..0000000 --- a/publishing/grailsCentralPublishing.gradle +++ /dev/null @@ -1,46 +0,0 @@ -publishing { - publications { - maven(MavenPublication) { - pom.withXml { - def xml = asNode() - xml.children().last() + pomInfo - try { - xml.dependencyManagement.replaceNode {} - } catch (Throwable e) { - // ignore - } - - // simply remove dependencies without a version - // version-less dependencies are handled with dependencyManagement - // see https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/8 for more complete solutions - xml.dependencies.dependency.findAll { - it.version.text().isEmpty() - }.each { - try { - it.replaceNode {} - } catch (Throwable e) { - // ignore - } - } - } - artifactId project.name - from components.java - artifact sourcesJar - artifact javadocJar - } - } - - repositories { - if (isSnapshot) { - maven { - credentials { - username = System.getenv('MAVEN_PUBLISH_USERNAME') - password = System.getenv('MAVEN_PUBLISH_PASSWORD') - } - url = System.getenv('MAVEN_PUBLISH_URL') ?: 'https://repository.apache.org/content/repositories/snapshots' - } - } - } -} - -task install(dependsOn: project.tasks.withType(PublishToMavenLocal)) diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 752ea6a..0000000 --- a/settings.gradle +++ /dev/null @@ -1,29 +0,0 @@ -plugins { - id 'com.gradle.develocity' version '4.0' - id 'com.gradle.common-custom-user-data-gradle-plugin' version '2.2.1' -} - -def isCI = System.getenv().containsKey('CI') -def isLocal = !isCI - -develocity { - server = 'https://ge.grails.org' - buildScan { - tag('grails') - tag('grails-wrapper') - publishing.onlyIf { it.authenticated } - uploadInBackground = isLocal - } -} - -buildCache { - local { enabled = isLocal } - remote(develocity.buildCache) { - push = isCI - enabled = true - } -} - -include 'starter' -include 'wrapper' -project(':wrapper').name = 'grails7-wrapper' diff --git a/shell/grailsw b/shell/grailsw deleted file mode 100755 index 8d0cc12..0000000 --- a/shell/grailsw +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Grails start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRAILS_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:CICompilerCount=3"' - - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -JAR_PATH=$APP_HOME/grails-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - JAVACMD=`cygpath --unix "$JAVACMD"` - JAR_PATH=`cygpath --path --mixed "$JAR_PATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRAILS_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRAILS_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRAILS_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRAILS_OPTS - -exec "$JAVACMD" -jar "${JVM_OPTS[@]}" "$JAR_PATH" "$@" diff --git a/shell/grailsw.bat b/shell/grailsw.bat deleted file mode 100755 index c48c384..0000000 --- a/shell/grailsw.bat +++ /dev/null @@ -1,89 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Grails startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRAILS_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:CICompilerCount=3" - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -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. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -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. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line -set JAR_PATH=%APP_HOME%/grails-wrapper.jar - -@rem Execute Grails -"%JAVA_EXE%" -jar %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRAILS_OPTS% %JAR_PATH% %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRAILS_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRAILS_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/starter/build.gradle b/starter/build.gradle deleted file mode 100644 index 289eb10..0000000 --- a/starter/build.gradle +++ /dev/null @@ -1,8 +0,0 @@ -apply plugin: 'java' - -jar { - archiveFileName = "grails-wrapper.jar" - manifest { - attributes 'Main-Class': 'grails.init.Start' - } -} diff --git a/starter/src/main/java/grails/init/FindReleaseHandler.java b/starter/src/main/java/grails/init/FindReleaseHandler.java deleted file mode 100644 index c05f3ae..0000000 --- a/starter/src/main/java/grails/init/FindReleaseHandler.java +++ /dev/null @@ -1,49 +0,0 @@ -package grails.init; - -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -/** - * Created by jameskleeh on 11/2/16. - */ -public class FindReleaseHandler extends DefaultHandler { - - private String releaseVersion; - private String latestVersion; - - private boolean foundRelease; - private boolean foundLatest; - - @Override - public void startElement(String uri, String localName,String qName, - Attributes attributes) { - if (qName.equalsIgnoreCase("RELEASE")) { - foundRelease = true; - } - if (qName.equalsIgnoreCase("LATEST")) { - foundLatest = true; - } - } - - @Override - public void characters(char ch[], int start, int length) throws SAXException { - if (foundRelease) { - releaseVersion = new String(ch, start, length); - } - if (foundLatest) { - latestVersion = new String(ch, start, length); - } - foundLatest = false; - foundRelease = false; - } - - public String getVersion() { - if (releaseVersion != null) { - return releaseVersion; - } else if (latestVersion != null) { - return latestVersion; - } - return null; - } -} diff --git a/starter/src/main/java/grails/init/Start.java b/starter/src/main/java/grails/init/Start.java deleted file mode 100644 index 8c5de32..0000000 --- a/starter/src/main/java/grails/init/Start.java +++ /dev/null @@ -1,124 +0,0 @@ -package grails.init; - -import grails.proxy.SystemPropertiesAuthenticator; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Method; -import java.net.Authenticator; -import java.net.HttpURLConnection; -import java.net.URL; -import java.net.URLClassLoader; -import java.nio.channels.Channels; -import java.nio.channels.ReadableByteChannel; -import java.nio.file.Files; - -import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; - -public class Start { - - private static final String PROJECT_NAME = "grails7-wrapper"; - private static final String WRAPPER_PATH = "/org/grails/" + PROJECT_NAME; - private static final String DEFAULT_GRAILS_CORE_ARTIFACTORY_BASE_URL = "https://repo.grails.org/grails/core"; - private static final File WRAPPER_DIR = new File(System.getProperty("user.home") + "/.grails/wrapper"); - private static final File NO_VERSION_JAR = new File(WRAPPER_DIR, PROJECT_NAME + ".jar"); - - private static String getGrailsCoreArtifactoryBaseUrl() { - String baseUrl = System.getProperty("grails.core.artifactory.baseUrl"); - if (baseUrl != null) { - return baseUrl; - } - baseUrl = System.getenv("GRAILS_CORE_ARTIFACTORY_BASE_URL"); - if (baseUrl != null) { - return baseUrl; - } - return DEFAULT_GRAILS_CORE_ARTIFACTORY_BASE_URL; - } - - private static String getVersion() { - try { - SAXParserFactory factory = SAXParserFactory.newInstance(); - SAXParser saxParser = factory.newSAXParser(); - FindReleaseHandler findReleaseHandler = new FindReleaseHandler(); - final String mavenMetadataFileUrl = getGrailsCoreArtifactoryBaseUrl() + WRAPPER_PATH + "/maven-metadata.xml"; - HttpURLConnection conn = createHttpURLConnection(mavenMetadataFileUrl); - saxParser.parse(conn.getInputStream(), findReleaseHandler); - return findReleaseHandler.getVersion(); - } catch (Exception e) { - if (!NO_VERSION_JAR.exists()) { - System.out.println("You must be connected to the internet the first time you use the Grails wrapper"); - e.printStackTrace(); - System.exit(1); - } - return null; - } - } - - private static HttpURLConnection createHttpURLConnection(String mavenMetadataFileUrl) throws IOException { - final URL url = new URL(mavenMetadataFileUrl); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setInstanceFollowRedirects(true); - return conn; - } - - - private static boolean updateJar(String version) { - - boolean success = false; - - final String jarFileName = PROJECT_NAME + "-" + version; - final String jarFileExtension = ".jar"; - - if (WRAPPER_DIR.exists() || WRAPPER_DIR.mkdirs()) { - try { - File downloadedJar = File.createTempFile(jarFileName, jarFileExtension); - final String wrapperUrl = getGrailsCoreArtifactoryBaseUrl() + WRAPPER_PATH + "/" + version + "/" + jarFileName + jarFileExtension; - HttpURLConnection conn = createHttpURLConnection(wrapperUrl); - success = downloadWrapperJar(downloadedJar, conn.getInputStream()); - } catch (Exception e) { - System.out.println("There was an error downloading the wrapper jar"); - e.printStackTrace(); - } - } - - - return success; - } - - private static boolean downloadWrapperJar(File downloadedJar, InputStream inputStream) throws IOException { - ReadableByteChannel rbc = Channels.newChannel(inputStream); - try (FileOutputStream fos = new FileOutputStream(downloadedJar)) { - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - } - Files.move(downloadedJar.getAbsoluteFile().toPath(), NO_VERSION_JAR.getAbsoluteFile().toPath(), REPLACE_EXISTING); - return true; - } - - public static void main(String[] args) { - Authenticator.setDefault(new SystemPropertiesAuthenticator()); - - try { - if (!NO_VERSION_JAR.exists() || (args.length > 0 && args[0].trim().equals("update-wrapper"))) { - System.out.println("Updating Grails wrapper jar to version: " + getVersion() + " located in: " + NO_VERSION_JAR.getAbsolutePath()); - updateJar(getVersion()); - // remove "update-wrapper" command argument - if(args.length > 0) { - args[0] = null; - } - } - - URLClassLoader child = new URLClassLoader(new URL[]{NO_VERSION_JAR.toURI().toURL()}); - Class<?> classToLoad = Class.forName("grails.init.RunCommand", true, child); - Method main = classToLoad.getMethod("main", String[].class); - main.invoke(null, (Object) args); - - } catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } -} diff --git a/starter/src/main/java/grails/proxy/SystemPropertiesAuthenticator.java b/starter/src/main/java/grails/proxy/SystemPropertiesAuthenticator.java deleted file mode 100644 index c6d2566..0000000 --- a/starter/src/main/java/grails/proxy/SystemPropertiesAuthenticator.java +++ /dev/null @@ -1,17 +0,0 @@ -package grails.proxy; - -import java.net.Authenticator; -import java.net.PasswordAuthentication; - -public class SystemPropertiesAuthenticator extends Authenticator { - - @Override - protected PasswordAuthentication getPasswordAuthentication() { - if(getRequestorType() == RequestorType.PROXY) { - return new PasswordAuthentication( - System.getProperty("http.proxyUser", ""), - System.getProperty("http.proxyPassword", "").toCharArray()); - } - return null; - } -} \ No newline at end of file diff --git a/wrapper/build.gradle b/wrapper/build.gradle deleted file mode 100644 index d80e536..0000000 --- a/wrapper/build.gradle +++ /dev/null @@ -1,115 +0,0 @@ -ext.pomInfo = { - delegate.name 'Grails 7 Wrapper' - delegate.description 'The Grails Wrapper Project' - delegate.url 'https://github.com/apache/grails-wrapper' - - delegate.licenses { - delegate.license { - delegate.name 'The Apache Software License, Version 2.0' - delegate.url 'https://www.apache.org/licenses/LICENSE-2.0.txt' - delegate.distribution 'repo' - } - } - - delegate.scm { - delegate.url "scm:[email protected]:grails/grails-wrapper.git" - delegate.connection "scm:[email protected]:grails/grails-wrapper.git" - delegate.developerConnection "scm:[email protected]:grails/grails-wrapper.git" - } - - delegate.developers { - delegate.developer { - delegate.id 'graemerocher' - delegate.name 'Graeme Rocher' - } - delegate.developer { - delegate.id 'jeffscottbrown' - delegate.name 'Jeff Brown' - } - delegate.developer { - delegate.id 'puneetbehl' - delegate.name 'Puneet Behl' - } - } -} - -apply plugin: 'groovy' -apply plugin: 'eclipse' -apply plugin: 'idea' -apply plugin: 'maven-publish' -apply plugin: 'signing' -apply plugin: "io.spring.dependency-management" - -ext { - userOrg = 'grails' - repo = 'grails-core' -} - -configurations { - groovyDoc.extendsFrom runtimeClasspath - - all { - resolutionStrategy.dependencySubstitution { - //update fields plugin used by scaffolding - substitute(module("org.codehaus.plexus:plexus-sec-dispatcher:2.0")).using(module("org.sonatype.plexus:plexus-sec-dispatcher:$plexusSecDispatcherVersion")) - } - } -} - -repositories { - mavenCentral() - maven { url = 'https://repository.apache.org/content/groups/snapshots' } - maven { url = 'https://repo.grails.org/grails/core' } -} - -dependencies { - implementation platform("org.apache.grails:grails-bom:$grailsVersion") - implementation "org.apache.groovy:groovy" - implementation "org.springframework.boot:spring-boot-cli" - implementation "org.apache.groovy:groovy-ant" - implementation "org.apache.grails:grails-shell-cli" - implementation "org.apache.groovy:groovy-templates" -} - -jar { - from { - (configurations.runtimeClasspath).collect { - it.isDirectory() ? it : zipTree(it) - } - } - manifest { - attributes 'Main-Class': 'grails.init.RunCommand' - } - - duplicatesStrategy = DuplicatesStrategy.INCLUDE -} - -task sourcesJar(type: Jar) { - archiveClassifier.set('sources') - from project.sourceSets.main.allSource -} - -task javadocJar(type: Jar) { - archiveClassifier.set('javadoc') - from groovydoc.outputs -} - -tasks.withType(Groovydoc) { - groovyClasspath = project.configurations.groovyDoc - includes = ["grails-wrapper/**"] -} - -afterEvaluate { - signing { - required { isReleaseVersion && gradle.taskGraph.hasTask("publish") } - sign publishing.publications.maven - } -} - -tasks.withType(io.github.gradlenexus.publishplugin.InitializeNexusStagingRepository).configureEach { - shouldRunAfter(tasks.withType(Sign)) -} - -apply from:'../publishing/grailsCentralPublishing.gradle' - - diff --git a/wrapper/src/main/groovy/grails/init/RunCommand.groovy b/wrapper/src/main/groovy/grails/init/RunCommand.groovy deleted file mode 100644 index 326669c..0000000 --- a/wrapper/src/main/groovy/grails/init/RunCommand.groovy +++ /dev/null @@ -1,60 +0,0 @@ -package grails.init - - -import org.grails.cli.compiler.grape.DependencyResolutionContext -import org.grails.cli.compiler.grape.MavenResolverGrapeEngine -import org.grails.cli.compiler.grape.MavenResolverGrapeEngineFactory -import org.grails.cli.compiler.grape.RepositoryConfiguration - -/** - * Created by jameskleeh on 10/31/16. - */ -class RunCommand { - - static final String DEFAULT_GRAILS_SHELL_VERSION = '7.0.0-SNAPSHOT' - - static void main(String[] args) { - - Properties props = new Properties() - String grailsVersion - String grailsShellVersion - String groovyVersion - try { - props.load(new FileInputStream("gradle.properties")) - grailsVersion = props.getProperty("grailsVersion") - grailsShellVersion = props.getProperty("grailsShellVersion") - groovyVersion = props.getProperty("groovyVersion") - } catch (IOException e) { - throw new RuntimeException("Could not determine grails version due to missing properties file") - } - - if(!grailsShellVersion) { - grailsShellVersion = DEFAULT_GRAILS_SHELL_VERSION - } - - GroovyClassLoader groovyClassLoader = new GroovyClassLoader(RunCommand.classLoader) - - List<RepositoryConfiguration> repositoryConfigurations = [new RepositoryConfiguration("grailsCentral", new URI("https://repo.grails.org/grails/core"), true)] - if (groovyVersion && groovyVersion.endsWith("SNAPSHOT")) { - repositoryConfigurations.add(new RepositoryConfiguration("JFrog OSS snapshot repo", new URI("https://oss.jfrog.org/oss-snapshot-local"), true)) - } - - MavenResolverGrapeEngine grapeEngine = MavenResolverGrapeEngineFactory.create(groovyClassLoader, repositoryConfigurations, new DependencyResolutionContext(), false) - try { - grapeEngine.grab([:], [group: "org.apache.grails", module: "grails-shell-cli", version: grailsVersion]) - } - catch(dependencyResolutionException){ - // Try grails shell version from gradle.properties or default - grapeEngine.grab([:], [group: "org.apache.grails", module: "grails-shell-cli", version: grailsShellVersion]) - } - - ClassLoader previousClassLoader = Thread.currentThread().contextClassLoader - Thread.currentThread().setContextClassLoader(groovyClassLoader) - - try { - groovyClassLoader.loadClass('org.grails.cli.GrailsCli').main(args) - } finally { - Thread.currentThread().setContextClassLoader(previousClassLoader) - } - } -}
