Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
MBoegers committed Jan 30, 2025
0 parents commit 826c756
Show file tree
Hide file tree
Showing 19 changed files with 780 additions and 0 deletions.
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root = true

[*]
insert_final_newline = true
trim_trailing_whitespace = true

[src/test*/java/**.java]
indent_size = 4
ij_continuation_indent_size = 2
28 changes: 28 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: ci

on:
push:
branches:
- main
tags-ignore:
- "*"
pull_request:
branches:
- main
workflow_dispatch: {}
schedule:
- cron: 0 17 * * *

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
uses: openrewrite/gh-automation/.github/workflows/ci-gradle.yml@main
secrets:
ossrh_username: ${{ secrets.OSSRH_S01_USERNAME }}
ossrh_token: ${{ secrets.OSSRH_S01_TOKEN }}
ossrh_signing_key: ${{ secrets.OSSRH_SIGNING_KEY }}
ossrh_signing_password: ${{ secrets.OSSRH_SIGNING_PASSWORD }}
15 changes: 15 additions & 0 deletions .github/workflows/comment-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: comment-pr

# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#using-data-from-the-triggering-workflow
on:
workflow_run:
workflows: ["receive-pr"]
types:
- completed

# https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
# Since this pull request has write permissions on the target repo, we should **NOT** execute any untrusted code.
jobs:
post-suggestions:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
uses: openrewrite/gh-automation/.github/workflows/comment-pr.yml@main
21 changes: 21 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: publish

on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+

concurrency:
group: publish-${{ github.ref }}
cancel-in-progress: false

jobs:
release:
uses: openrewrite/gh-automation/.github/workflows/publish-gradle.yml@main
secrets:
ossrh_username: ${{ secrets.OSSRH_S01_USERNAME }}
ossrh_token: ${{ secrets.OSSRH_S01_TOKEN }}
ossrh_signing_key: ${{ secrets.OSSRH_SIGNING_KEY }}
ossrh_signing_password: ${{ secrets.OSSRH_SIGNING_PASSWORD }}
17 changes: 17 additions & 0 deletions .github/workflows/receive-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: receive-pr

on:
pull_request:
types: [opened, synchronize]
branches:
- main

concurrency:
group: '${{ github.workflow }} @ ${{ github.ref }}'
cancel-in-progress: true

# https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
# Since this pull request receives untrusted code, we should **NOT** have any secrets in the environment.
jobs:
upload-patch:
uses: openrewrite/gh-automation/.github/workflows/receive-pr.yml@main
18 changes: 18 additions & 0 deletions .github/workflows/repository-backup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: repository-backup
on:
workflow_dispatch: {}
schedule:
- cron: 0 17 * * *

concurrency:
group: backup-${{ github.ref }}
cancel-in-progress: false

jobs:
repository-backup:
uses: moderneinc/gh-automation/.github/workflows/repository-backup.yml@main
secrets:
bucket_mirror_target: ${{ secrets.S3_GITHUB_REPOSITORY_BACKUPS_BUCKET_NAME }}
bucket_access_key_id: ${{ secrets.S3_GITHUB_REPOSITORY_BACKUPS_ACCESS_KEY_ID }}
bucket_secret_access_key: ${{ secrets.S3_GITHUB_REPOSITORY_BACKUPS_SECRET_ACCESS_KEY }}
51 changes: 51 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

.idea/
out/
build/
src/main/generated/
.moderne/
87 changes: 87 additions & 0 deletions LICENSE/moderne-source-available-license.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Moderne Source Available License

## Acceptance

This Agreement sets forth the terms and conditions on which the Licensor makes the Software available. By installing, downloading, accessing, using, or distributing any part of the Software, you agree to all of the terms and conditions of this agreement.

If you are receiving the Software on behalf of your company, you represent and warrant that you have the authority to agree to this agreement on behalf of such entity.

The Licensor reserves the right to update this agreement from time to time.

## Definitions

**Agreement**: This Moderne Source Available License agreement.

**Control**: Ownership, directly or indirectly, of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise.

**License**: The license as described in the License paragraph below.

**Licensor**: The entity offering these terms, including Moderne, Inc., on behalf of itself and its subsidiaries and affiliates worldwide.

**Modify**/**Modified**/**Modification**: Copying or adapting all or part of the work in a way that requires copyright permission, other than making an exact copy. The resulting work is called a _modified version_ of the original work.

**Moderne**: The Moderne software as described in [moderne.ai](https://www.moderne.ai/).

**Software**: Specific software components designed to work with Moderne and provided under this agreement.

**Trademark**: Trademarks, service marks, and any other similar rights associated with the Licensor.

**Use**: Any activity you perform with the Software that requires a license under this agreement.

**You**: The recipient of the Software, whether an individual or an entity, on whose behalf this agreement is accepted.

**Your Company**: Any legal entity, sole proprietorship, or organization that you work for, including all organizations that control, are controlled by, or are under common control with that organization.

**Your Licenses**: All licenses granted to you for the Software under this agreement.

## License

The Licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the Software, subject to the limitations and conditions below.

## Limitations

**You may not:**

1. Make the functionality of the Software or a modified version available to third parties as a service.

2. Distribute the Software or a modified version in a manner that makes its functionality available to third parties.

**Prohibited actions include (but are not limited to):**

* Enabling third parties to interact with the functionality of the Software or a modified version in distributed form or remotely through a computer network.

* Offering products or services whose value derives from the Software or a modified version.

* Providing a product or service that performs the functions of the Software or a modified version.

You may not alter, remove, or obscure any licensing, copyright, or other notices provided by the Licensor. Any use of the Licensor’s trademarks is subject to applicable law.

## Patents

The Licensor grants you a license under any patent claims the Licensor owns or can license, to make, use, sell, offer for sale, import, and distribute the Software, subject to the limitations and conditions in this agreement.

This license does not cover patent claims caused by your modifications or additions to the Software.

If you or your company make any written claim that the Software infringes or contributes to the infringement of any patent, your patent license under this agreement terminates immediately.

## Notices

You must ensure that anyone who receives a copy of any part of the Software from you also receives a copy of this agreement.

If you modify the Software, you must include prominent notices in any modified copies stating that you have modified the Software.

## No Other Rights

This agreement does not imply any licenses beyond those expressly granted.

## Termination

If you use the Software in violation of this agreement, such use is unlicensed, and your licenses will terminate automatically.

If the Licensor notifies you of a violation and you cease all violations within 30 days, your licenses will be reinstated retroactively.

However, subsequent violations will result in automatic and permanent termination of your licenses.

## No Liability

To the extent permitted by law, the Software is provided "as is," without warranties or conditions of any kind. The Licensor is not liable for any damages arising from this agreement or your use of the Software.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
![Logo](https://github.com/openrewrite/rewrite/raw/main/doc/logo-oss.png)
### Migrate OpenRewrite Recipe projects. Automatically.

[![ci](https://github.com/openrewrite/rewrite-rewrite/actions/workflows/ci.yml/badge.svg)](https://github.com/openrewrite/rewrite-rewrite/actions/workflows/ci.yml)
[![Maven Central](https://img.shields.io/maven-central/v/org.openrewrite.recipe/rewrite-rewrite.svg)](https://mvnrepository.com/artifact/org.openrewrite.recipe/rewrite-rewrite)

### What is this?

This project implements an [Rewrite module](https://github.com/openrewrite/rewrite) that performs common tasks for OpenRewrite recipes.

Browse [a selection of recipes available through this module in the recipe catalog](https://docs.openrewrite.org/recipes/java/Recipe).

## Contributing

We appreciate all types of contributions. See the [contributing guide](https://github.com/openrewrite/.github/blob/main/CONTRIBUTING.md) for detailed instructions on how to get started.
31 changes: 31 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
plugins {
id("org.openrewrite.build.recipe-library") version "latest.release"
id("org.openrewrite.build.moderne-source-available-license") version "latest.release"
}

group = "org.openrewrite.recipe"
description = "A rewrite module automating best practices and major version migrations for OpenRewrite recipes"

val rewriteVersion = rewriteRecipe.rewriteVersion.get()
dependencies {
implementation(platform("org.openrewrite:rewrite-bom:$rewriteVersion"))

implementation("org.openrewrite:rewrite-java")
implementation("org.openrewrite.recipe:rewrite-migrate-java:$rewriteVersion")
implementation("org.openrewrite.recipe:rewrite-static-analysis:$rewriteVersion")
implementation("org.openrewrite.recipe:rewrite-testing-frameworks:$rewriteVersion")

runtimeOnly("org.openrewrite.recipe:rewrite-java-dependencies:$rewriteVersion")

testImplementation("org.openrewrite:rewrite-test")

testImplementation("org.junit.jupiter:junit-jupiter-engine:latest.release")
testImplementation("org.junit-pioneer:junit-pioneer:2.3.0")
}

nexusPublishing {
repositories.getByName("sonatype") {
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
}
}
13 changes: 13 additions & 0 deletions gradle/licenseHeader.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Copyright ${year} the original author or authors.
<p>
Licensed under the Moderne Source Available License (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
<p>
https://docs.moderne.io/licensing/moderne-source-available-license
<p>
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.
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionSha256Sum=8d97a97984f6cbd2b85fe4c60a743440a347544bf18818048e611f5288d46c94
Loading

0 comments on commit 826c756

Please sign in to comment.